You cannot send less than n bits on a channel to achieve this, where n is the number of users.
Each user generates his own HMAC (DATA, HIS_KEY).
Since you know all the keys, you can send only one bit for each user, and xor, which has the first bit in str in his HMAC, to the user.
So here it is
DATA=random(128)
result = DATA
For each user:
bit= MSB(HMAC(DATA,user["key"]))
bit= bit xor user["true/flase"]
result.append(bit)
source
share