Rabin signature algorithm
In cryptography, the Rabin signature algorithm is a method of digital signature originally published by Michael O. Rabin in 1979.[1][2]
The Rabin signature algorithm was one of the first digital signature schemes proposed. By using a trapdoor function with a hash of the message rather than with the message itself, in contrast to earlier proposals of one-time hash-based signatures or trapdoor-based signatures without hashing,[3][4] Rabin's was the first published design to meet what is now the modern standard of security for digital signatures for more than one message, existential unforgeability under chosen-message attack.[5]
Rabin signatures resemble RSA signatures with exponent , but this leads to qualitative differences that enable more efficient implementation[5] and a security guarantee relative to the difficulty of integer factorization,[1][2][6] which has not been proven for RSA. However, Rabin signatures have seen relatively little use or standardization outside IEEE P1363[7] in comparison to RSA signature schemes such as RSASSA-PKCS1-v1 5 and RSASSA-PSS.
Definition
The Rabin signature scheme is parametrized by a randomized hash function of a message and -bit randomization string .
- Public key
- A public key is a pair of integers with and odd. is chosen arbitrarily and may be a fixed constant.
- Signature
- A signature on a message is a pair of a -bit string and an integer such that
- Private key
- The private key for a public key is the secret odd prime factorization of , chosen uniformly at random from some large space of primes.
- Signing a message
- To make a signature on a message using the private key, the signer starts by picking a -bit string uniformly at random, and computes . Let . If is a quadratic nonresidue modulo , the signer starts over with an independent random .[1]: p. 10 Otherwise, the signer computes using a standard algorithm for computing square roots modulo a prime—picking makes it easiest. Square roots are not unique, and different variants of the signature scheme make different choices of square root;[5] in any case, the signer must ensure not to reveal two different roots for the same hash . and satisfy the equations The signer then uses the Chinese remainder theorem to solve the system for , so that satisfies as required. The signer reveals as a signature on .
- The number of trials for before can be solved for is geometrically distributed with an average around 4 trials, because about 1/4 of all integers are quadratic residues modulo .
Security
Security against any adversary defined generically in terms of a hash function (i.e., security in the random oracle model) follows from the difficulty of factoring : Any such adversary with high probability of success at forgery can, with nearly as high probability, find two distinct square roots and of a random integer modulo . If then is a nontrivial factor of , since so but .[2] Formalizing the security in modern terms requires filling in some additional details, such as the codomain of ; if we set a standard size for the prime factors, , then we might specify .[6]
Randomization of the hash function was introduced to allow the signer to find a quadratic residue, but randomized hashing for signatures later became relevant in its own right for tighter security theorems[2] and resilience to collision attacks on fixed hash functions.[8][9][10]
Variants
Removing b
The quantity in the public key adds no security, since any algorithm to solve congruences for given and can be trivially used as a subroutine in an algorithm to compute square roots modulo and vice versa, so implementations can safely set for simplicity; was discarded altogether in treatments after the initial proposal.[11][2][7][5] After removing , the equations for and in the signing algorithm become:
Rabin-Williams
The Rabin signature scheme was later tweaked by Williams in 1980[11] to choose and , and replace a square root by a tweaked square root , with and , so that a signature instead satisfies which allows the signer to create a signature in a single trial without sacrificing security. This variant is known as Rabin–Williams.[5][7]
Others
Further variants allow tradeoffs between signature size and verification speed, partial message recovery, signature compression (down to one-half size), and public key compression (down to one-third size), still without sacrificing security.[5]
Variants without the hash function have been published in textbooks,[12][13] crediting Rabin for exponent 2 but not for the use of a hash function. These variants are trivially broken—for example, the signature can be forged by anyone as a valid signature on the message if the signature verification equation is instead of .
In the original paper,[1] the hash function was written with the notation , with C for compression, and using juxtaposition to denote concatenation of and as bit strings:
By convention, when wishing to sign a given message, , [the signer] adds as suffix a word of an agreed upon length . The choice of is randomized each time a message is to be signed. The signer now compresses by a hashing function to a word , so that as a binary number …
This notation has led to some confusion among some authors later who ignored the part and misunderstood to mean multiplication, giving the misapprehension of a trivially broken signature scheme.[14]
References
- ↑ 1.0 1.1 1.2 1.3 Rabin, Michael O. (January 1979). Digitalized Signatures and Public Key Functions as Intractable as Factorization (PDF) (Technical report). Cambridge, MA, United States: MIT Laboratory for Computer Science. TR-212.
- ↑ 2.0 2.1 2.2 2.3 2.4 Bellare, Mihir; Rogaway, Phillip (May 1996). "The Exact Security of Digital Signatures—How to Sign with RSA and Rabin". in Maurer, Ueli. Advances in Cryptology – EUROCRYPT ’96. 1070. Saragossa, Spain: Springer. pp. 399–416. doi:10.1007/3-540-68339-9_34. ISBN 978-3-540-61186-8. https://link.springer.com/chapter/10.1007/3-540-68339-9_34.
- ↑ "New Directions in Cryptography". IEEE Transactions on Information Theory (IEEE) 22 (6): 644–654. November 1976. doi:10.1109/TIT.1976.1055638. https://ee.stanford.edu/%7Ehellman/publications/24.pdf.
- ↑ "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems". Communications of the ACM (ACM) 21 (2): 120–126. February 1978. doi:10.1145/359340.359342. https://dl.acm.org/doi/10.1145/359340.359342.
- ↑ 5.0 5.1 5.2 5.3 5.4 5.5 RSA signatures and Rabin–Williams signatures: the state of the art (Report). January 31, 2008. https://cr.yp.to/papers.html#rwsota. (additional information at https://cr.yp.to/sigs.html)
- ↑ 6.0 6.1 Bernstein, Daniel J. (April 2008). "Proving tight security for Rabin–Williams signatures". in Smart, Nigel. Advances in Cryptology – EUROCRYPT 2008. 4965. Istanbul, Turkey: Springer. pp. 70–87. doi:10.1007/978-3-540-78967-3_5. ISBN 978-3-540-78966-6. https://cr.yp.to/papers.html#rwtight.
- ↑ 7.0 7.1 7.2 IEEE Standard Specifications for Public-Key Cryptography. IEEE Std 1363-2000. Institute of Electrical and Electronics Engineers. August 25, 2000. doi:10.1109/IEEESTD.2000.92292. ISBN 0-7381-1956-3.
- ↑ Submission to IEEE P1393—PSS: Provably Secure Encoding Method for Digital Signatures (Report). August 1998. http://grouper.ieee.org/groups/1363/P1363a/contributions/pss-submission.pdf.
- ↑ Dwork, Cynthia, ed (August 2006). "Strengthening Digital Signatures via Randomized Hashing". Advances in Cryptology – CRYPTO 2006. 4117. Santa Barbara, CA, United States: Springer. pp. 41–59. doi:10.1007/11818175_3. http://webee.technion.ac.il/~hugo/rhash/rhash.pdf.
- ↑ Dang, Quynh (February 2009). Randomized Hashing for Digital Signatures (Report). NIST Special Publication. 800-106. United States Department of Commerce, National Institute for Standards and Technology. doi:10.6028/NIST.SP.800-106. https://csrc.nist.gov/publications/detail/sp/800-106/final.
- ↑ 11.0 11.1 "A modification of the RSA public-key encryption procedure". IEEE Transactions on Information Theory 26 (6): 726–729. doi:10.1109/TIT.1980.1056264. ISSN 0018-9448. https://cr.yp.to/bib/entries.html#1980/williams.
- ↑ Handbook of Applied Cryptography. CRC Press. October 1996. pp. 438–442. ISBN 0-8493-8523-7. https://cacr.uwaterloo.ca/hac/.
- ↑ Mathematics of Public Key Cryptography. Cambridge University Press. 2012. pp. 491–494. ISBN 978-1-10701392-6.
- ↑ "On the Rabin signature". Workshop on Computational Security. Centre de Recerca Matemàtica, Barcelona, Spain. 2011. https://www.math.uzh.ch/fileadmin/user/davide/publikation/SignatureRabin11.pdf.
External links
