pksig_waters05¶
David Naccache based Identity-Based Encryption
From: “David Naccache Secure and Practical Identity-Based Encryption Section 4”
Available from: http://eprint.iacr.org/2005/369.pdf
- type: encryption (identity-based)
- 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 pre-calculated 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