Multiple Digital Signature Algorithm?

Suppose I have a data packet and that I am sending data to 10 users. I want to add an attribute to this data, something like a digital signature. Each of 10 users will have a different "key". When they apply their key to this special signature in the data packet, it returns either true or false. However, they cannot determine using their key, whether other users are true or false.

+3
source share
3 answers

Even if the data packet is large:

Hash the data in the packet. Encrypt the hash with each user key and attach the encrypted versions to the message.

Each user hashes the source packet (without signatures), and then checks that the hash matches their decrypted fragment.

This works for both symmetric and public-private algorithms.

+3
source

Assuming the data packet is small:

Encrypt data with the public keys of the users you want to True. Encrypt it with more random keys, so the total will add up to ten. True users will be able to read the file. False users will not. All users will only see that they have been encrypted to ten users, including (possibly) themselves.

, .

true false, ( ) . - - True False.

0

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)  
0
source

Source: https://habr.com/ru/post/1757833/


All Articles