pksig_cl03

From: “J. Camenisch, A. Lysyanskaya.”
Published in: 2003
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
pksig_cl03.SHA1(bytes1)[source]
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
keygen(secparam=512, p=0, q=0)[source]
sign(pk, sk, m)[source]
signCommit(pk, sk, Cx)[source]
verify(pk, m, sig)[source]
verifyCommit(pk, sig, Cx)[source]
pksig_cl03.randomQR(n)[source]