pre_mg07

Identity-Based Proxy Re-Encryption

From: “M. Green, G. Ateniese Identity-Based Proxy Re-Encryption”, Section 4.3.
Published in: Applied Cryptography and Network Security. Springer Berlin/Heidelberg, 2007
  • type: proxy encryption (identity-based)
  • setting: bilinear groups (symmetric)
Authors:
  1. Fotiou
Date:

11/2012

class pre_mg07.PreGA(groupObj)[source]

Bases: object

>>> from charm.toolbox.pairinggroup import PairingGroup,pc_element  
>>> ID = "nikos fotiou"
>>> ID2 = "test user"
>>> msg = "hello world!!!!!"
>>> group = PairingGroup('SS512', secparam=1024)  
>>> pre = PreGA(group)
>>> (master_secret_key, params) = pre.setup()
>>> id_secret_key = pre.keyGen(master_secret_key, ID)
>>> id2_secret_key = pre.keyGen(master_secret_key, ID2)
>>> ciphertext = pre.encrypt(params, ID, msg);
>>> pre.decryptFirstLevel(params,id_secret_key, ciphertext, ID)
b'hello world!!!!!'
>>> re_encryption_key = pre.rkGen(params,id_secret_key, ID, ID2)
>>> ciphertext2 = pre.reEncrypt(params, ID, re_encryption_key, ciphertext)
>>> pre.decryptSecondLevel(params,id2_secret_key,ID, ID2, ciphertext2)
b'hello world!!!!!'
decryptFirstLevel(params, skid, cid, ID)[source]
decryptSecondLevel(params, skid, IDsrc, ID, cid)[source]
encrypt(params, ID, M)[source]
keyGen(msk, ID)[source]
reEncrypt(params, IDsrc, rk, cid)[source]
rkGen(params, skid, IDsrc, IDdest)[source]
setup()[source]