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:
  1. 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.'
decrypt(ct, sk)[source]
encrypt(pk, M, object)[source]
keygen(pk, mk, object)[source]
setup()[source]
kpabenc_adapt_hybrid.main()[source]