pkenc_adapt_bchk05

Boneh-Canetti-Halevi-Katz IBE-to-PKE Transform (BCHK05)

Description: Transforms an Identity-Based Encryption scheme into a CCA-secure Public Key Encryption scheme using the BCHK construction.

Based on: Improved Efficiency for CCA-Secure Cryptosystems Built Using Identity-Based Encryption
Published in: Topics in Cryptology, CT-RSA 2005
Notes: Section 4 of the paper; more efficient than CHK04 transform

Adapter Properties

  • Type: IBE-to-PKE transform

  • Underlying Scheme: any selective-ID secure IBE scheme

  • Purpose: constructs CCA-secure public key encryption from IBE

Implementation

Authors:

Christina Garman

Date:

12/2011

class pkenc_adapt_bchk05.BCHKIBEnc(scheme, groupObj, encscheme)[source]

Bases: IBEnc

>>> from charm.schemes.encap_bchk05 import EncapBCHK 
>>> from charm.schemes.ibenc.ibenc_bb03 import PairingGroup, IBE_BB04
>>> group = PairingGroup('SS512')
>>> ibe = IBE_BB04(group)
>>> encap = EncapBCHK()
>>> hyb_ibe = BCHKIBEnc(ibe, group, encap)
>>> (public_key, secret_key) = hyb_ibe.keygen()
>>> msg = b"Hello World!"
>>> cipher_text = hyb_ibe.encrypt(public_key, msg)
>>> decrypted_msg = hyb_ibe.decrypt(public_key, secret_key, cipher_text)
>>> decrypted_msg == msg
True
decrypt(pk, sk, c)[source]
elmtToString(g, length)[source]
encrypt(pk, m)[source]
keygen()[source]
str_XOR(m, k)[source]