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)
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:
  1. 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
decrypt(pk, sk, ct)[source]
encrypt(pk, M, policy_str)[source]
keygen(pk, msk, attributes)[source]
setup()[source]
abenc_waters09.main()[source]