ibenc_adapt_hybrid

Hybrid Encryption Adapter for IBE (IBE Hybrid)

Description: Converts an Identity-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 IBE scheme.

Adapter Properties

  • Type: hybrid encryption adapter

  • Underlying Scheme: any Identity-Based Encryption scheme

  • Purpose: enables IBE schemes to encrypt arbitrary-length byte messages

Implementation

Authors:
  1. Ayo Akinyele

Date:

2011

class ibenc_adapt_hybrid.HybridIBEnc(scheme, groupObj)[source]

Bases: IBEnc

>>> from charm.schemes.ibenc.ibenc_bb03 import IBE_BB04
>>> group = PairingGroup('SS512')
>>> ibe = IBE_BB04(group)
>>> hashID = HashIDAdapter(ibe, group)
>>> hyb_ibe = HybridIBEnc(hashID, group)
>>> (master_public_key, master_key) = hyb_ibe.setup()
>>> ID = 'john.doe@example.com'
>>> secret_key = hyb_ibe.extract(master_key, ID)
>>> msg = b"Hello World!"
>>> cipher_text = hyb_ibe.encrypt(master_public_key, ID, msg)
>>> decrypted_msg = hyb_ibe.decrypt(master_public_key, secret_key, cipher_text)
>>> decrypted_msg == msg
True
decrypt(pk, ID, ct)[source]
encrypt(pk, ID, M)[source]
extract(mk, ID)[source]
setup()[source]