abenc_waters09¶
Ciphertext-Policy Attribute-Based Encryption (Waters09)
Authors: Brent Waters
Title: “Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and Provably Secure Realization”
Published in: Cryptology ePrint Archive, 2008 (Appendix C)
Available from: http://eprint.iacr.org/2008/290.pdf
Notes: The sole disadvantage of this scheme is the high number of pairings that must be computed during the decryption process (2 + N) for N attributes matching in the key.
Scheme Properties
Type: ciphertext-policy attribute-based encryption (public key)
Setting: Pairing groups
Assumption: parallel q-DBDHE
Implementation
- Authors:
Ayo Akinyele
- Date:
11/2010
- class abenc_waters09.CPabe09(groupObj)[source]¶
Bases:
ABEnc>>> from charm.toolbox.pairinggroup import PairingGroup,GT >>> group = PairingGroup('SS512') >>> cpabe = CPabe09(group) >>> msg = group.random(GT) >>> (master_secret_key, master_public_key) = cpabe.setup() >>> policy = '((ONE or THREE) and (TWO or FOUR))' >>> attr_list = ['THREE', 'ONE', 'TWO'] >>> secret_key = cpabe.keygen(master_public_key, master_secret_key, attr_list) >>> cipher_text = cpabe.encrypt(master_public_key, msg, policy) >>> decrypted_msg = cpabe.decrypt(master_public_key, secret_key, cipher_text) >>> decrypted_msg == msg True