kpabenc_adapt_hybrid¶
Hybrid Encryption Adapter for KP-ABE (KP-ABE Hybrid)
Description: Converts a Key-Policy Attribute-Based Encryption scheme into a hybrid encryption scheme capable of encrypting arbitrary-length messages.
Notes: Uses symmetric encryption (AES) with a randomly generated session key.
The session key is encrypted using the underlying KP-ABE scheme.
Adapter Properties
Type: hybrid encryption adapter
Underlying Scheme: any Key-Policy ABE scheme
Purpose: enables KP-ABE schemes to encrypt arbitrary-length byte messages
Implementation
- Authors:
Ayo Akinyele
- Date:
2011
- class kpabenc_adapt_hybrid.HybridABEnc(scheme, groupObj)[source]¶
Bases:
ABEnc>>> from charm.schemes.abenc.abenc_lsw08 import KPabe >>> group = PairingGroup('SS512') >>> kpabe = KPabe(group) >>> hyb_abe = HybridABEnc(kpabe, group) >>> access_policy = ['ONE', 'TWO', 'THREE'] >>> access_key = '((FOUR or THREE) and (TWO or ONE))' >>> msg = b"hello world this is an important message." >>> (master_public_key, master_key) = hyb_abe.setup() >>> secret_key = hyb_abe.keygen(master_public_key, master_key, access_key) >>> cipher_text = hyb_abe.encrypt(master_public_key, msg, access_policy) >>> hyb_abe.decrypt(cipher_text, secret_key) b'hello world this is an important message.'