pksig_cl03¶
From: “J. Camenisch, A. Lysyanskaya.”
Published in: 2003
Available from: http://cs.brown.edu/~anna/papers/camlys02b.pdf
Notes: Schemes 2.2 (on page 4) and 4 (on page 8).
- type: signature
- setting: integer groups
Authors: | Christina Garman/Antonio de la Piedra |
---|---|
Date: | 11/2013 |
-
class
pksig_cl03.
Sig_CL03
(lmin=160, lin=160, secparam=512)[source]¶ Bases:
charm.toolbox.PKSig.PKSig
>>> pksig = Sig_CL03() >>> p = integer(21281327767482252741932894893985715222965623124768085901716557791820905647984944443933101657552322341359898014680608292582311911954091137905079983298534519) >>> q = integer(25806791860198780216123533220157510131833627659100364815258741328806284055493647951841418122944864389129382151632630375439181728665686745203837140362092027) >>> (public_key, secret_key) = pksig.keygen(1024, p, q) >>> msg = integer(SHA1(b'This is the message I want to hash.')) >>> signature = pksig.sign(public_key, secret_key, msg) >>> pksig.verify(public_key, msg, signature) True >>> from charm.toolbox.conversion import Conversion >>> g = {} >>> m = {} >>> j = 16 >>> for i in range(1, j + 1): g[str(i)] = randomQR(public_key['N']) >>> for i in range(1, j + 1): m[str(i)] = integer(SHA1(Conversion.IP2OS(random(public_key['N'])))) >>> Cx = 1 % public_key['N'] >>> for i in range(1, len(m) + 1): Cx = Cx*(g[str(i)] ** m[str(i)]) >>> pksig = Sig_CL03() >>> p = integer(21281327767482252741932894893985715222965623124768085901716557791820905647984944443933101657552322341359898014680608292582311911954091137905079983298534519) >>> q = integer(25806791860198780216123533220157510131833627659100364815258741328806284055493647951841418122944864389129382151632630375439181728665686745203837140362092027) >>> (public_key, secret_key) = pksig.keygen(1024, p, q) >>> signature = pksig.signCommit(public_key, secret_key, Cx) >>> pksig.verifyCommit(public_key, signature, Cx) True