pkenc_adapt_chk04

Canetti-Halevi-Katz IBE-to-PKE Transform (CHK04)

Description: Transforms an Identity-Based Encryption scheme into a CCA-secure Public Key Encryption scheme using generic composition of IBE + one-time signature.

Based on: Chosen-Ciphertext Security from Identity-Based Encryption
Published in: CRYPTO 2004
Notes: Requires a selective-ID secure IBE scheme and an EU-CMA one-time signature scheme

Adapter Properties

  • Type: IBE-to-PKE transform

  • Underlying Scheme: selective-ID secure IBE + EU-CMA one-time signature

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

Implementation

Authors:
  1. Ayo Akinyele

Date:

1/2011

class pkenc_adapt_chk04.CHK04(ibe_scheme, ots_scheme, groupObj)[source]

Bases: PKEnc

>>> from charm.adapters.ibenc_adapt_identityhash import HashIDAdapter
>>> from charm.schemes.ibenc.ibenc_bb03 import IBE_BB04
>>> from charm.schemes.pksig.pksig_bls04 import BLS01
>>> group = PairingGroup('SS512')
>>> ibe = IBE_BB04(group)
>>> hash_ibe = HashIDAdapter(ibe, group)
>>> ots = BLS01(group)
>>> pkenc = CHK04(hash_ibe, ots, group)
>>> (public_key, secret_key) = pkenc.keygen(0)
>>> msg = group.random(GT)
>>> cipher_text = pkenc.encrypt(public_key, msg)
>>> decrypted_msg = pkenc.decrypt(public_key, secret_key, cipher_text)
>>> decrypted_msg == msg
True
decrypt(pk, sk, c)[source]
encrypt(pk, message)[source]
keygen(secparam)[source]