pksig_rsa_hw09

Hohenberger-Waters RSA Stateless Signature (HW09-RSA)

Authors: S. Hohenberger, B. Waters

Title: “Realizing Hash-and-Sign Signatures under Standard Assumptions”
Published in: EUROCRYPT, 2009
Notes: Section 3. Status: Needs improvement.

Scheme Properties

  • Type: signature (public key)

  • Setting: RSA

  • Assumption: RSA

Implementation

Authors:
  1. Ayo Akinyele, Christina Garman

Date:

12/2011

class pksig_rsa_hw09.BlumIntegerSquareRoot(p, q)[source]

Bases: object

pow(modularInt)[source]
class pksig_rsa_hw09.LogFunction(base=10)[source]

Bases: object

class pksig_rsa_hw09.Prf[source]

Bases: object

classmethod eval(k, input1)[source]
classmethod keygen(bits)[source]
pksig_rsa_hw09.SHA1(bytes1)[source]
class pksig_rsa_hw09.Sig_RSA_Stateless_HW09(CH=<class 'charm.schemes.chamhash_rsa_hw09.ChamHash_HW09'>)[source]

Bases: PKSig

This scheme is probablistic and thus time consuming, so we skip it when running doctests.

#doctest: +SKIP

>>> pksig = Sig_RSA_Stateless_HW09()
>>> p = integer(13075790812874903063868976368194105132206964291400106069285054021531242344673657224376055832139406140158530256050580761865568307154219348003780027259560207)
>>> q = integer(12220150399144091059083151334113293594120344494042436487743750419696868216757186059428173175925369884682105191510729093971051869295857706815002710593321543)
>>> (public_key, secret_key) = pksig.keygen(1024, p, q)
>>> msg = SHA1(b'this is the message I want to sign.')
>>> signature = pksig.sign(public_key, secret_key, msg)
>>> pksig.verify(public_key, msg, signature)
True
HW_hash(key, c, input, keyLen)[source]
keygen(keyLength=1024, p=0, q=0)[source]
sign(pk, sk, message, s=0)[source]
verify(pk, message, sig)[source]
pksig_rsa_hw09.randomQR(n)[source]