pksig_waters05¶
David Naccache based IdentityBased Encryption
From: “David Naccache Secure and Practical IdentityBased Encryption Section 4”
Available from: http://eprint.iacr.org/2005/369.pdf
 type: encryption (identitybased)
 setting: bilinear groups (asymmetric)
Authors:  Gary Belvin 

Date:  06/2011 
Improved by:  Fan Zhang(zfwise@gwu.edu), supported by GWU computer science department 
Date:  3/2013 
Notes: 
 e(g1,g2) is precalculated as part of public parameters.
2. g1 and g2 have been swapped. In the original scheme, signature happens in G2 but now, it happens in G1. 3. I stored U_z and u as part of mk. This will speed up the sign() a lot. The trick is that, instead of doing exponential operation and then multiply all together, I compute the exponent first and then do one exponential operation

class
pksig_waters05.
IBE_N04_Sig
(groupObj)[source]¶ Bases:
charm.toolbox.PKSig.PKSig
>>> from charm.toolbox.pairinggroup import PairingGroup >>> group = PairingGroup('SS512') >>> waters = Waters(group) >>> ibe = IBE_N04_Sig(group) >>> (public_key, secret_key) = ibe.keygen() >>> ID = "bob@example.com" >>> msg = waters.hash("This is a test.") >>> signature = ibe.sign(public_key, secret_key, msg) >>> ibe.verify(public_key, msg, signature) True