Clever Geek Handbook
📜 ⬆️ ⬇️

Full domain hash

In cryptography, Full Domaine Hash ( FDH or full domain hash ) is an RSA- based signature scheme that follows the hashing and signature paradigm. It is provably protected (that is, it did not succumb to the influence of adaptive attacks using selected messages) in the random oracle model. FDH involves hashing a message using a function whose image size is equal to the size of the RSA module, and then raising the result to the power of the RSA secret exponent.

Introduction

Since the discovery by Whitfield Diffie of Whitfield and Martin Hellman of public key cryptography [1], one of the most important research topics has been the development of practical and provable (in practical understanding) secure cryptosystems. Proof of practical security is usually computational complexity from solving a well-known problem to breaking a cryptosystem. Well-known tasks include factorization of large integers , computing a discrete logarithm modulo a prime number p, or extracting a root modulo a composite integer on which the RSA cryptosystem is based [2] .

A very common practice for signing with RSA is to hash the message first, add salt to the message, and then raise it to the public key level. This hash and decrypt paradigm is the foundation of numerous standards such as [3] . The scheme is to take a hash function whose output size is exactly equal to the size of the module: this is the full-domain hash scheme (FDH) introduced by and in the article "Random oracles are practical: a paradigm for designing efficient protocols " [4] . The FDH scheme is provably safe in the random oracle model, assuming that it is difficult to invert RSA , that is, extract the root modulo a composite integer. The random oracle methodology was introduced by Bellar and Rogaway in "Random oracles are practical: a paradigm for designing efficient protocols" [4] , where they show how to develop highly secure signature schemes from any secret input function . In the random oracle model, the hash function is considered as an oracle that produces a random value for each new request. In the original article, a random oracle converts a sequence of 0 and 1 of fixed length into a sequence of infinite length and randomly selects from the sequence a subsequence of the required length{0,one}∗⟶{0,one}∞ {\ displaystyle {\ {0,1 \}} ^ {*} \ longrightarrow {\ {0,1 \}} ^ {\ infty}} {\displaystyle {\{0,1\}}^{*}\longrightarrow {\{0,1\}}^{\infty }} . The fundamental work of Bellar and Rogaway emphasizes that for the practical application of provable security, it is important to take into account the “hard” decline in security. The security decrease is “tough” when any cryptanalyst's actions to crack the signature scheme lead to the solution of a well-established task with sufficient probability, ideally with a probability of 1. In this case, the signature scheme is almost as safe as the established task. On the contrary, if the reduction is “weak”, that is, the aforementioned probability is too small, the guarantee on the signature scheme may be rather weak.

Definition

The signature scheme of the full domain hash (Gen, Sign, Verify) is defined as follows. The key generation algorithm launches RSA to obtain(N,e,d) {\ displaystyle (N, e, d)}   . He outputs(pk,sk) {\ displaystyle (pk, sk)}   wherepk=(N,e) {\ displaystyle pk = (N, e)}   andsk=(N,d) {\ displaystyle sk = (N, d)}   . Signature and verification algorithm has access to oracle with hash functionHFDH:{0,one}→ZN {\ displaystyle H_ {FDH}: {\ {0,1 \}} \ to {\ mathbb {Z} _ {N}}}  

Signature and verification are performed as follows:

SignFDHN,d(M)y←HFDH(M)return:ydmodNVerifyFDHN,e(M,x)y←xemodN;y′←HFDH(M)if(y=y′)thenreturn:oneelsereturn:0{\ textstyle {\ begin {aligned} SignFDH_ {N, d} (M) \\ y \ leftarrow H_ {FDH} (M) \\ return: y ^ {d} modN \\\\ VerifyFDH_ {N, e} (M, x) \\ y \ leftarrow x ^ {e} modN; \\ y '\ leftarrow H_ {FDH} (M) \\ if (y = y') then \\ return: 1 \\ else \\ return: 0 \ end {aligned}}}  

FDH Schema Security Analysis

Bellar and Rogway Approach

Theorem 1 Assume that RSA(t′,ε′) {\ displaystyle (t ', \ varepsilon')}   -safe (hacking with probability ɛ ′ takes t ′ of time) Then the FDH signature scheme is(t,ε) {\ displaystyle (t, \ varepsilon)}   -safe where

t=t′-(qhash+qsig+one)ε=(qhash+qsig)∗ε′{\ displaystyle {\ begin {aligned} t & = t '- (q _ {\ text {hash}} + q _ {\ text {sig}} + 1) \\\ varepsilon & = (q _ {\ text {hash}} + q _ {\ text {sig}}) * \ varepsilon '\ end {aligned}}}   .

The disadvantage of this result is thatε′ {\ displaystyle \ varepsilon '}   could be much smallerε {\ displaystyle \ varepsilon}   . For example, if we assume that a cryptanalyst can requestqsig=2thirty {\ displaystyle q _ {\ text {sig}} = 2 ^ {30}}   number of signatures and calculate hashes onqhash=260 {\ displaystyle q _ {\ text {hash}} = 2 ^ {60}}   messages, even if the probability of RSA inversion is only2-61 {\ displaystyle 2 ^ {- 61}}   , then all we get is that the probability is almostone/2 {\ displaystyle 1/2}   that is not satisfactory. To obtain an acceptable level of security, we must use a larger module size, which will positively affect the efficiency of the circuit.

To get the most appropriate security margin, Bellar and Rogaway developed a new scheme - a probabilistic signature scheme.(PSS) {\ displaystyle (PSS)}   , which provides a strict security reduction: the probability of a fake signature is almost as low as when invertingRSA(ε=ε′) {\ displaystyle RSA (\ varepsilon = \ varepsilon ')}   . Instead, there is an alternative approach that can be applied to the FDH scheme to get a better border. [five]

Alternative Approach

Another abbreviation that provides the best safety rating for FDH is based on the proof of the theorem.

Theorem 2 Let RSA(t′,ϵ′) {\ displaystyle (t ', \ epsilon')}   - safe. Then the FDH signature scheme is(t,ϵ) {\ displaystyle (t, \ epsilon)}   -safe where

t=t′-(qhash+qsig+one)ϵ=one(one-one q sig ) q sig + one ⋅ q sig ⋅ ϵ ′{\ displaystyle {\ begin {aligned} t & = t '- (q _ {\ text {hash}} + q _ {\ text {sig}} + 1) \\\ epsilon & = {\ frac {1} {\ left (1 - {\ frac {1} {q _ {\ text {sig}}}} right) ^ {q _ {\ text {sig}} + 1}}} \ cdot q _ {\ text {sig}} \ cdot \ epsilon '\ end {aligned}}}   .

For largeqsig {\ displaystyle q _ {\ text {sig}}}   ,ϵ∼exp⁡(one)⋅qsig⋅ϵ′ {\ displaystyle \ epsilon \ sim \ exp (1) \ cdot q _ {\ text {sig}} \ cdot \ epsilon '}   .

Definition 1:

InverterI {\ displaystyle I}  (t,ϵ) {\ displaystyle (t, \ epsilon)}   - we will call the algorithm cracking RSA, the probability of success of which after no more than t processing time is at least ɛ.

Definition 2:

CounterfeiterF {\ displaystyle F}  (t,qsig,qhash,ϵ) {\ displaystyle (t, q _ {\ text {sig}}, q _ {\ text {hash}}, \ epsilon)}   - we will call the algorithm violating the signature scheme (Gen, Sign, Verify), if after no more thanqhash {\ displaystyle q _ {\ text {hash}}}   requests to the hash oracle,qsig {\ displaystyle q _ {\ text {sig}}}   signed requests andt {\ displaystyle t}   processing time, displays a fake signature with a probability of at least ɛ.


Proof letF {\ displaystyle F}   - counterfeiter(t,qsig,qhash,ϵ) {\ displaystyle (t, q _ {\ text {sig}}, q _ {\ text {hash}}, \ epsilon)}   that hacks FDH. We assume thatF {\ displaystyle F}   never repeats the same oracle hash request or signature request. Build an inverterI {\ displaystyle I}  (t′,ϵ′) {\ displaystyle (t ', \ epsilon')}   that hacks the RSA. InverterI {\ displaystyle I}   receives as input(N,e,y) {\ displaystyle (N, e, y)}   where(N,e) {\ displaystyle (N, e)}   Is the public key, andy {\ displaystyle y}   randomly selected inZN {\ displaystyle \ mathbb {Z} _ {N}}   (subsets of all hashed messages). InverterI {\ displaystyle I}   trying to findx=f-one(y) {\ displaystyle x = f ^ {- 1} (y)}   wheref {\ displaystyle f}   - RSA function defined fromN,e {\ displaystyle N, e}   . InverterI {\ displaystyle I}   starts upF {\ displaystyle F}   for this public key. ForgerF {\ displaystyle F}   makes requests to the oracle hash and requests for signature.I {\ displaystyle I}   receiving a response from the hash oracle independently signs them.

For simplicity, we assume that whenF {\ displaystyle F}   makes a request to sign a messageM {\ displaystyle M}   he has already made the corresponding request to the hash oracle forM {\ displaystyle M}   . If not, continue and independently create a request to the hash oracle for the messageM {\ displaystyle M}   .In inverterI {\ displaystyle I}   counter is usedi {\ displaystyle i}   initially set to zero. WhenF {\ displaystyle F}   makes an oracle hash request for a messageM {\ displaystyle M}   inverterI {\ displaystyle I}   increasesi {\ displaystyle i}   , matches the hashed message with the original messageMi=M {\ displaystyle M_ {i} = M}   , and also selects a random numberri {\ displaystyle r_ {i}}   atZN {\ displaystyle \ mathbb {Z} _ {N}}   .I {\ displaystyle I}   then returnshi=riemodN {\ displaystyle h_ {i} = r_ {i} ^ {e} modN}   with probabilityp {\ displaystyle p}   andhi=y∗riemodN {\ displaystyle h_ {i} = y * r_ {i} ^ {e} modN}   with probabilityone-p {\ displaystyle 1-p}   . Herep {\ displaystyle p}   - a fixed probability, which will be determined later. WhenF {\ displaystyle F}   makes a request for a signature forM {\ displaystyle M}   he already requested a hashM {\ displaystyle M}   , so thatM=Mi {\ displaystyle M = M_ {i}}   for somei {\ displaystyle i}   .If ahi=riemodN {\ displaystyle h_ {i} = {r_ {i}} ^ {e} modN}   thenI {\ displaystyle I}   returnsri {\ displaystyle r_ {i}}   as a signature. Otherwise, the process stops and the inverter fails.

Finally,F {\ displaystyle F}   finishes work and displays a fake(M,x) {\ displaystyle (M, x)}   . We assume thatF {\ displaystyle F}   requested a hashM {\ displaystyle M}   earlier. If not,I {\ displaystyle I}   independently makes a hash oracle request, so anywayM=Mi {\ displaystyle M = M_ {i}}   for somei {\ displaystyle i}   . Then ifhi=y∗riemodN {\ displaystyle h_ {i} = y * {r_ {i}} ^ {e} modN}   , we get,x=hid=yd∗rimodN {\ displaystyle x = {h_ {i}} ^ {d} = y ^ {d} * r_ {i} modN}   andI {\ displaystyle I}   displaysyd=xrimodN {\ displaystyle y ^ {d} = {\ frac {x} {r_ {i}}} modN}   as the reciprocal ofy {\ displaystyle y}   . Otherwise, the process stops and the inverter fails.

The probability that we will respond to all signature requests is at leastpqsig {\ displaystyle p ^ {q _ {\ text {sig}}}}   . ThenI {\ displaystyle I}   deduces the oppositey {\ displaystyle y}   forf {\ displaystyle f}   with probabilityone-p {\ displaystyle 1-p}   . Thus, with a probability of at leastα(p)=pqsig∗(one-p) {\ displaystyle \ alpha (p) = p ^ {q _ {\ text {sig}}} * (1-p)}   ,I {\ displaystyle I}   deduces the oppositey {\ displaystyle y}   forf {\ displaystyle f}   . Functionα(p) {\ displaystyle \ alpha (p)}   maximum forpmax=one-one/(qsig+one) {\ displaystyle p _ {\ text {max}} = 1-1 / (q _ {\ text {sig}} + 1)}   and

α(pmax)=oneqsig(one-oneone+qsig)one+qsig{\ displaystyle \ alpha (p _ {\ text {max}}) = {\ frac {1} {q _ {\ text {sig}}}} (1 - {\ frac {1} {1 + q _ {\ text { sig}}}}) ^ {1 + q _ {\ text {sig}}}}  

Therefore, we get:

ϵ(k)=one(one-oneqsig+one)qsig+one⋅qsig⋅ϵ′{\ displaystyle {\ begin {aligned} \ epsilon (k) & = {\ frac {1} {\ left (1 - {\ frac {1} {q _ {\ text {sig}} + 1}} \ right) ^ {q _ {\ text {sig}} + 1}}} \ cdot q _ {\ text {sig}} \ cdot \ epsilon '\ end {aligned}}}   .

For largeqsig {\ displaystyle q _ {\ text {sig}}}   ,

ϵ∼exp⁡(one)⋅qsig⋅ϵ′{\ displaystyle \ epsilon \ sim \ exp (1) \ cdot q _ {\ text {sig}} \ cdot \ epsilon '}   .

Working hoursI {\ displaystyle I}   Is work timeF {\ displaystyle F}   added to the time needed to calculate the valueshi {\ displaystyle h_ {i}}   . Essentially, this is one RSA calculation that is cubic time (or better). This gives the formula fort {\ displaystyle t}   .

Final reduction

The quality of the new reduction does not depend on the number of hash calls made by the falsifier, and depends only on the number of requests for signatures. This is of practical importance, since in real applications the number of hash function calls is limited only by the forger’s processing power, while the number of signature requests may be limited: the signer may refuse to sign more220 {\ displaystyle 2 ^ {20}}   or2thirty {\ displaystyle 2 ^ {30}}   messages. However, the reduction is still not tough and there is a significant gap between the exact security of FDH and the exact security of PSS .

In many security proofs in the random oracle model, the inverter must “guess” which hash request the adversary will use to fake, resulting in a coefficientqhash {\ displaystyle q _ {\ text {hash}}}   in the likelihood of success. It is proven that the best method is to include a queryy {\ displaystyle y}   in response to many hash requests, so that a fake is more likely to be useful for the inverter. This observation also applies to the signature scheme of Rabin [6] , the signature scheme of Peyet [7] , as well as the signature scheme of Gennaro-Halevi-Rabin [8] , for which the coefficientqhash {\ displaystyle q _ {\ text {hash}}}   in evidence of the safety of an accidental oracle can also be reduced toqsig {\ displaystyle q_ {sig}}   .

Notes

  1. ↑ New directions in cryptography (neopr.) .
  2. ↑ A method for obtaining digital signatures and public key cryptosystems (neopr.) .
  3. ↑ RSA cryptography specifications (neopr.) .
  4. ↑ 1 2 Random oracles are practical: a paradigm for designing efficient protocols (neopr.) .
  5. ↑ The exact security of digital signatures - How to sign with RSA and Rabin (neopr.) .
  6. ↑ Digitalized signatures and public-key functions as intractable as factorization ( unspecified ) .
  7. ↑ Public-key crypto systems based on composite degree residuosity classes. Proceedings of Eurocrypt'99 (neopr.) .
  8. ↑ Secure hash-and-sign signatures without the ran- dom oracle, proceedings of Eurocrypt'99 (unspecified) .


Source - https://ru.wikipedia.org/w/index.php?title=Full_domain_hash&oldid=98180018


More articles:

  • Signs of postal payment of the USSR (1990)
  • Odom, Roderick
  • Mexico City Light Rail
  • Signs of the postage of the USSR (1969)
  • Catlovker, Benedict Avrahamovich
  • Katz, Jacob Iudovich
  • Kolesnikov, Nikolai Ivanovich
  • Vilchinsky, Roman
  • Nelipa, Maxim Vladimirovich
  • Dirección General de Fabricaciones Militares

All articles

Clever Geek | 2019