Demonstration of "Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private Keys" BGW05
this code depends on mcl-wasm and other modules. Install them with:
npm i
node src/bgw.js
Demonstrate the special case:
- setup a system of
nusers, run time and public key size linear withn(64 bytes, 2.4 ms per user.) - create a random set
Sof users that will be allowed to decrypt. - create a random encryption key
Kand encrypt it. Run time linear with|S|(12usec per user) - select
ntrialrandom users and check that only users inScan decrypt and retrieveK. Run time linear with|S|(4usec per user)
The general construction is achieved by splitting the users into shards of size n 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.