Clever Geek Handbook
📜 ⬆️ ⬇️

ESIGN

ESIGN ( English Efficient digital SIGNature - an effective digital signature) - a digital signature scheme with a public key , based on the problem of factorization of numbers. A distinctive feature of this scheme is the ability to quickly generate a signature. [one]

Content

History

The digital signature was developed at NTT in Japan in 1985. [2] The scheme proved to be effective in terms of the speed of digital signature generation. However, the first versions were cracked by Ernie Btickel and John DeLaurentis, after which the recommended algorithm parameters were modified. [3] Subsequent hacking attempts were unsuccessful. The authors claim that the complexity of hacking the latest version of ESIGN is comparable to the complexity of the problem of factoring a numbern {\ displaystyle n}   kind ofp2q {\ displaystyle p ^ {2} q}   wherep {\ displaystyle p}   andq {\ displaystyle q}   Are prime numbers . [four]

Protocol Description

Introduction

Two subjects are involved in the protocol: subjectA {\ displaystyle A}   whose purpose is to prove that he is the author of the messagem {\ displaystyle m}   , and subjectB {\ displaystyle B}   whose purpose is to verify authorship. At ESIGN to achieve your goalsA {\ displaystyle A}   andB {\ displaystyle B}   must perform the following actions [5] .

  • PreliminaryA {\ displaystyle A}   generates keys : public, known to all, and private , known only to the subjectA {\ displaystyle A}   .
  • SubjectA {\ displaystyle A}   generates digital signatures {\ displaystyle s}   for messagem {\ displaystyle m}   based on the private key.
  • A{\ displaystyle A}   sends a messagem {\ displaystyle m}   with signatures {\ displaystyle s}   subjectb {\ displaystyle b}   .
  • SubjectB {\ displaystyle B}   Validates the signature based on the public key.

Public and private key generation

ESIGN keys are generated as follows [6] .

  1. Randomly selects two primesp {\ displaystyle p}   andq {\ displaystyle q}   same bit length.
  2. The number is calculatedn=p2q {\ displaystyle n = p ^ {2} q}   .
  3. Selects a positive integerk⩾four {\ displaystyle k \ geqslant 4}   .
  4. A pair of numbers(n,k) {\ displaystyle (n, k)}   is a public key.
  5. A pair of numbers(p,q) {\ displaystyle (p, q)}   - private key.

Signature Generation

To sign a messagem {\ displaystyle m}   wherem {\ displaystyle m}   Is a binary number of arbitrary length, the following steps are taken [6] .

  1. Calculatedμ=h(m) {\ displaystyle \ mu = h (m)}   whereh {\ displaystyle h}   - a pre-selected hash function taking values ​​from0 {\ displaystyle 0}   beforen-one {\ displaystyle n-1}   .
  2. Random number selectedx {\ displaystyle x}   from interval[0,pq) {\ displaystyle [0, pq)}   .
  3. Calculatedχ=⌈μ-(xkmodn)pq⌉ {\ displaystyle \ chi = \ left \ lceil {\ frac {\ mu - (x ^ {k} {\ bmod {n}})} {pq}} \ right \ rceil}   andϰ=(χk∗xk-one)modp {\ displaystyle \ varkappa = \ left ({\ frac {\ chi} {k * x ^ {k-1}}} \ right) {\ bmod {p}}}   where⌈⋅⌉:R→Z {\ displaystyle \ lceil \ cdot \ rceil \ colon \ mathbb {R} \ to \ mathbb {Z}}   - function of rounding to the smallest integer, larger argument.
  4. The signature is calculateds=x+ϰpq {\ displaystyle s = x + \ varkappa pq}   .

Signature Verification

To verify that the signatures {\ displaystyle s}   really signs the messagem {\ displaystyle m}   , the following steps are taken [6] .

  1. Calculatedμ=h(m) {\ displaystyle \ mu = h (m)}   whereh {\ displaystyle h}   - The same hash function that was used to generate the signature.
  2. Calculatedξ=⌈23log2⁡n⌉ {\ displaystyle \ xi = \ left \ lceil {\ frac {2} {3}} \ log _ {2} {n} \ right \ rceil}   .
  3. Check for inequalityμ⩽skmodn⩽μ+2ξ {\ displaystyle \ mu \ leqslant s ^ {k} {\ bmod {n}} \ leqslant \ mu +2 ^ {\ xi}}   .
  4. A signature is considered valid if the inequality is satisfied.

Previous Versions

In the originally proposed ESIGN option, the parameterk {\ displaystyle k}   was equal to two. [5] However, after the successful attack by Ernie Brickell and John DeLaurentis, which also extended to a variant of the scheme withk=3 {\ displaystyle k = 3}   , the authors changed the requirement for this parameter to the existing onek⩾four {\ displaystyle k \ geqslant 4}   . [7]

Cryptanalysis

Attack on a hash function

Hash Attacksh {\ displaystyle h}   for the purpose of falsifying a signature, they are based on its imperfection, that is, on the hash function mismatching with one or more criteria of cryptographic strength with the caveat that in the case of ESIGN, equality in the criteria should be understood to the accuracy(log2⁡n)/3 {\ displaystyle (\ log _ {2} {n}) / 3}   high bits. This relief is due to the signature verification condition, which is satisfied not only for the initial value of the hash function, but also for the others that coincide in the first(log2⁡n)/3 {\ displaystyle (\ log _ {2} {n}) / 3}   high bits.

Assume that the functionh {\ displaystyle h}   unstable to search for collisions, that is, you can find such differentm {\ displaystyle m}   andm′ {\ displaystyle m '}   , whath(m) {\ displaystyle h (m)}   andh(m′) {\ displaystyle h (m ')}   match in the first(log2⁡n)/3 {\ displaystyle (\ log _ {2} {n}) / 3}   high bits. Then, signing the messagem {\ displaystyle m}   authorA {\ displaystyle A}   Suspecting nothing, automatically signs the messagem′ {\ displaystyle m '}   , since the inequalityh(m′)⩽skmodn⩽h(m′)+2⌈23log2⁡n ⌉ {\ displaystyle h (m ') \ leqslant s ^ {k} {\ bmod {n}} \ leqslant h (m') + 2 ^ {\ left \ lceil {\ frac {2} {3}} \ log _ {2} {n} \ right \ rceil}}  

If the selected hash function is cryptographically strong, then an attack using collisions will take2(log2⁡n)/3 {\ displaystyle 2 ^ {(\ log _ {2} {n}) / 3}}   hash function calculation operations, attack using the second prototype -2(log2⁡n)/6 {\ displaystyle 2 ^ {(\ log _ {2} {n}) / 6}}   operations, which is considered impracticable, at largen {\ displaystyle n}   . [8] [9]

Public Key Attack

Attack on the public key(n,k) {\ displaystyle (n, k)}   consists in trying to get a private key based on it(p,q) {\ displaystyle (p, q)}   . You can do this by solving the equationn=p2q {\ displaystyle n = p ^ {2} q}   , i.e. factoring the numbern {\ displaystyle n}   . You may notice that in RSA the numbern {\ displaystyle n}   generated in a similar way theren=pq {\ displaystyle n = pq}   , but today the question of in which case factorization becomes easier or more complicated remains open, since there are still no effective factorization algorithms. Right now the fastest way to factor a numbern {\ displaystyle n}   that for ESIGN, that for RSA, is a sieve method of a number field that does this with a speed depending on the bit lengthn {\ displaystyle n}   . However, with a large bit length of the numbern {\ displaystyle n}   the factorization task becomes impossible. [10] [9]

Recommended Options

In addition to the restrictions already introduced in the ESIGN description, it is recommended that you select a sizep {\ displaystyle p}   andq {\ displaystyle q}   equal or greater320 {\ displaystyle 320}   bit sizen {\ displaystyle n}   equal or greater960 {\ displaystyle 960}   respectively, and the parameterk {\ displaystyle k}   greater than or equal to 8 [11] :

  • log2⁡p⩾320{\ displaystyle \ log _ {2} {p} \ geqslant 320}   ;
  • k⩾eight{\ displaystyle k \ geqslant 8}   ;

Security level relative to other digital signature schemes

The table below shows the correspondence of the ESIGN security level to RSA and ECDSA security levels for various parameter sizesn {\ displaystyle n}   in bits. You may notice that with the same sizen {\ displaystyle n}   RSA and ESIGN are comparable in terms of security. [12]

The sizen {\ displaystyle n}   in ESIGN, bitsThe sizen {\ displaystyle n}   in RSA, bitsThe sizen {\ displaystyle n}   in ECDSA, bits
960960152
10241024160
20482048224
30723072256
76807680384

Benefits

The ESIGN scheme allows you to quickly generate a signature. Since computationally complex operations such as exponentiation(xkmodn) {\ displaystyle (x ^ {k} {\ bmod {n}})}   and finding the inverse element(k∗xk-one)-one {\ displaystyle (k * x ^ {k-1}) ^ {- 1}}   are independent of the message being signedm {\ displaystyle m}   , they can be carried out in advance and save the obtained values ​​in memory. Thus, to sign a message, it is enough to perform the remaining operations of addition, multiplication and division, the proportion of which is small in the computational complexity of the signature creation algorithm . In the case whenk=four {\ displaystyle k = 4}   , and the bit lengthn {\ displaystyle n}   is equal to768 {\ displaystyle 768}   signature generation speed inten÷100 {\ displaystyle 10 \ div 100}   more than for RSA with the corresponding parameters. As for the verification of the signature, its speed is comparable to the speed of signature verification in the RSA algorithm , whose open exponent is small. [13] [9]

ESIGN-based authentication protocols

With ESIGN, zero-disclosure identification protocols can be implemented that allow the subjectP {\ displaystyle P}   ( Eng. Prover - proving) prove to the subjectV {\ displaystyle V}   ( English Verifier - checking) the fact of the availability of information, keeping it secret fromV {\ displaystyle V}   . ESIGN-based authentication protocols are not inferior to the Feig-Fiat-Shamir protocol in their effectiveness. We will consider two such protocols: three-round and two-round. [14]

Three Round Identification Scheme

  1. P{\ displaystyle P}   generates open(n,k) {\ displaystyle (n, k)}   and secret(p,q) {\ displaystyle (p, q)}   ESIGN keys.
  2. P{\ displaystyle P}   randomly selects numbersr {\ displaystyle r}   andu {\ displaystyle u}   calculatesx=f(r‖u) {\ displaystyle x = f (r \ | u)}   wheref {\ displaystyle f}   - one - way function ,‖ {\ displaystyle \ |}   - concatenation operation, and sendsx {\ displaystyle x}   inspectorV {\ displaystyle V}   .
  3. V{\ displaystyle V}   randomly selects a numbery {\ displaystyle y}   and sends it to the reviewer.
  4. P{\ displaystyle P}   calculatesm=r⊕y {\ displaystyle m = r \ oplus y}   generates a signatures {\ displaystyle s}   form {\ displaystyle m}   and sends a three(s,r,u) {\ displaystyle (s, r, u)}   to the inspector.
  5. V{\ displaystyle V}   checks equalityx=f(r‖u) {\ displaystyle x = f (r \ | u)}   and signature accuracys {\ displaystyle s}   for messagem {\ displaystyle m}   .

Two Round Identification Scheme

  1. P{\ displaystyle P}   generates open(n,k) {\ displaystyle (n, k)}   and secret(p,q) {\ displaystyle (p, q)}   ESIGN keys.
  2. V{\ displaystyle V}   randomly selects a numberr {\ displaystyle r}   and sends it to the reviewer.
  3. P{\ displaystyle P}   randomly selects a numberu {\ displaystyle u}   calculatesm=f(r‖u) {\ displaystyle m = f (r \ | u)}   generates a signatures {\ displaystyle s}   form {\ displaystyle m}   and sends(s,u) {\ displaystyle (s, u)}   to the inspector.
  4. V{\ displaystyle V}   checks equalitym=f(r‖u) {\ displaystyle m = f (r \ | u)}   and signature accuracys {\ displaystyle s}   for messagem {\ displaystyle m}   .

In the above protocols, the secret information is keys(p,q) {\ displaystyle (p, q)}   whose knowledge is proved by the subjectP {\ displaystyle P}   . If the results of all checks at the final stages are successful, then it is considered thatP {\ displaystyle P}   really has a secret.

Notes

  1. ↑ Menezes, Oorschot, Vanstone, 1996 , §11.7 p. 2, pp. 473–474.
  2. ↑ Minghua, 2001 , p. one.
  3. ↑ Schneier, 2002 , chapter 20, p. 6.
  4. ↑ Atsushi, 1991 , chapter 2, paragraph 3: "We conjective that to break our higher degree version (ESIGN) is as hard as facctoring N".
  5. ↑ 1 2 Schneier, 2002 , chapter 2, paragraph 6.
  6. ↑ 1 2 3 Menezes, Oorschot, Vanstone, 1996 , §11.7 p. 2, p. 473.
  7. ↑ Menezes, Oorschot, Vanstone, 1996 , §11.9, pp. 486-487.
  8. ↑ Minghua, 2001 , p. 3.
  9. ↑ 1 2 3 Menezes, Oorschot, Vanstone, 1996 , §11.7 p. 2, p. 474.
  10. ↑ Minghua, 2001 , p. four.
  11. ↑ Minghua, 2001 , p. 6.
  12. ↑ Minghua, 2001 , p. 7.
  13. ↑ Atsushi, 1991 , chapter 3.
  14. ↑ Atsushi, 1991 , chapter 4.

Literature

  • Schneier B. Applied Cryptography. Protocols, algorithms, C source code = Applied Cryptography. Protocols, Algorithms and Source Code in C. - M .: Triumph, 2002 .-- 816 p. - 3000 copies. - ISBN 5-89392-055-4 .
  • Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone. Chapter 11. Digital Signatures // Handbook of Applied Cryptography . - 5th ed. - CRC Press , 1996 .-- S. 473-474. - 816 s. - ISBN 0-8493-8523-7 .
  • Atsushi Fujioka, Tatsuaki Okamoto, Shoji Miyaguchi. ESIGN: An Efficient Digital Signature Implementation for Smart Cards // Advances in Cryptology - EUROCRYPT '91: Conf. / Advances in Cryptology - EUROCRYPT '91, Brighton, Great Britain, April 8-11, 1991 .-- Springer Berlin Heidelberg, 1991 .-- S. 446-457 . - ISBN 978-3-540-54620-7 . (inaccessible link)
  • Alfred Menezes, Minghua Qu, Doug Stinson, Yongge Wang. Evaluation of security level of cryptography: ESIGN signature scheme : project materials / CRYPREC Project, Japan. - 2001. - January.
Source - https://ru.wikipedia.org/w/index.php?title=ESIGN&oldid=96549753


More articles:

  • Barrett, Malcolm
  • Police Romance
  • ISS Pro Evolution 2
  • Mabe Manabu
  • 10G-EPON
  • Yaremchuk, Roman Olegovich
  • Walloon Flanders
  • Melinishin, Sergey Vitalievich
  • Tsacheva, Tsetsk
  • Sibutu

All articles

Clever Geek | 2019