This code is based on "Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private Keys" paper BGW05 by Dan Boneh
npm i
npm test
This is just a POC of an earlier version of broadcast based encryption by Dan Boneh et al. For use in 2023, one should use the newer constructions of broadcast encryption.
- setup a channel of
nusers, runtime and public key size linear withn(96 bytes per user.) - create a random subset
Sof users that will be allowed to decrypt. - create a random encryption key
Kand encrypt it. Runtime linear with|S| - select random users and check that only users in
Scan decrypt and retrieveK. Run time linear with|S|(4usec per user)
This construction splits the users into shards of size m and splitting S accordingly. You can use the same public key in each shard except for a different gammain each shard. So now all sizes are proportional to the shard size.