dabe_aw11¶
Decentralized Attribute-Based Encryption (AW11)
Authors: Allison Lewko, Brent Waters
Title: “Decentralizing Attribute-Based Encryption”
Published in: EUROCRYPT, 2011 (Appendix D)
Available from: http://eprint.iacr.org/2010/351.pdf
Notes: Decentralized multi-authority ABE construction
Scheme Properties
Type: decentralized attribute-based encryption
Setting: Bilinear groups (asymmetric)
Assumption: Decisional Bilinear Diffie-Hellman
Implementation
- Authors:
Gary Belvin
- Date:
06/2011
- class dabe_aw11.Dabe(groupObj)[source]¶
Bases:
ABEncMultiAuthDecentralized Attribute-Based Encryption by Lewko and Waters
>>> group = PairingGroup('SS512') >>> dabe = Dabe(group) >>> public_parameters = dabe.setup() >>> auth_attrs= ['ONE', 'TWO', 'THREE', 'FOUR'] #setup an authority >>> (master_secret_key, master_public_key) = dabe.authsetup(public_parameters, auth_attrs)
Setup a user and give him some keys
>>> ID, secret_keys = "bob", {} >>> usr_attrs = ['THREE', 'ONE', 'TWO'] >>> for i in usr_attrs: dabe.keygen(public_parameters, master_secret_key, i, ID, secret_keys) >>> msg = group.random(GT) >>> policy = '((one or three) and (TWO or FOUR))' >>> cipher_text = dabe.encrypt(public_parameters, master_public_key, msg, policy) >>> decrypted_msg = dabe.decrypt(public_parameters, secret_keys, cipher_text) >>> decrypted_msg == msg True
- decrypt(gp, sk, ct)[source]¶
Decrypt a ciphertext SK is the user’s private key dictionary {attr: { xxx , xxx }}