Clever Geek Handbook
📜 ⬆️ ⬇️

Fast digital signature

Fast digital signature is a variant of digital signature that uses an algorithm with a much smaller (tenfold) number of calculations of modular arithmetic compared to traditional EDS schemes. A fast electronic signature scheme, like a regular one, includes an algorithm for generating key user pairs , a function for calculating a signature, and a function for verifying a signature.

EDS Problems

Since the invention of EDS in 1976, it has been the most promising field of research in public-key cryptosystems . One of the standard mathematical solutions for building cryptographic algorithms is the discrete logarithm problem, on the basis of which many algorithms for obtaining digital signature have been developed. The main drawback of traditional EDS algorithms , such as the El-Gamal and RSA schemes , is their computational complexity. Calculation of exponentials in modular arithmetic requires the largest computational cost in public key cryptosystems . Currently, a large number of works are underway to improve the performance of cryptographic algorithms by reducing the number of exponential calculations. The shortest known EDS scheme is BLS (Boneh - Lynn - Shacham), using elliptic curves , but it is limited to groups in which there is a pairing function . Algorithm developers work both on improving traditional discrete logarithm schemes using parallel exponential computations, and are studying fundamentally different approaches based, for example, on graph theory instead of modular arithmetic .

Some Fast Digital Signature Algorithms

Fast EDS based on the Diffie-Hellman algorithm

Let beG {\ displaystyle \ G} \ G - abelian group ,Gg,q {\ displaystyle \ G_ {g, q}} \ G_{g,q} - its cyclic subgroup with generatorg {\ displaystyle \ g} \ g of orderq {\ displaystyle \ q} \ q whereq {\ displaystyle \ q} \ q Is a large prime . Let belq {\ displaystyle \ l_ {q}} \ l_q andlp {\ displaystyle \ l_ {p}} \ l_p - security settings, moreoverlq=|q| {\ displaystyle \ l_ {q} = | q |} \ l_q = |q| . Let beH:{0,one}∗→Gg,q {\ displaystyle H: {\ {0,1 \} ^ {*}} \ rightarrow \ G_ {g, q}} H: { \{0, 1\}^* } \rightarrow\ G_{g,q} ,L:{0,one}∗→Zq∗ {\ displaystyle L: {\ {0,1 \} ^ {*}} \ rightarrow \ Z_ {q} ^ {*}} L: { \{ 0, 1 \}^*}\rightarrow\ Z_q^* andG:{0,one}∗→Zq∗ {\ displaystyle G: {\ {0,1 \} ^ {*}} \ rightarrow \ Z_ {q} ^ {*}} G: { \{0, 1 \}^*}\rightarrow\ Z_q^* - hash functions . The signature scheme is as follows:

Key generation

User selects a random secret key.x∈Zq∗ {\ displaystyle x \ in \ Z_ {q} ^ {*}} x \in\ Z_q^* and calculates the public keyy=gx {\ displaystyle y = g ^ {x}} y = g^x .

Signature Creation

The input is the secret key.x∈Zq∗ {\ displaystyle x \ in \ Z_ {q} ^ {*}} x \in\ Z_q^* and messagem∈{0,one}∗ {\ displaystyle m \ in \ {0,1 \} ^ {*}} m \in \{ 0, 1 \}^* .

Further, the party creating the signature:

1. selects a random numberk∈Zq∗ {\ displaystyle k \ in \ mathbb {Z} _ {q} ^ {*}}   and random bitbm∈{0,one} {\ displaystyle b_ {m} \ in \ {0,1 \}}   ;

2. calculatesh=H(m,bm) {\ displaystyle \ h = H (m, b_ {m})}   ;

3. calculatesu=hx {\ displaystyle \ u = h ^ {x}}   ;

4. calculatesv=(gn∗h)k {\ displaystyle \ v = (g ^ {n} * h) ^ {k}}   wheren=L(m,g,h,y,u) {\ displaystyle \ n = L (m, g, h, y, u)}   ;

5. calculatesr=G(m,g,h,y,u,v) {\ displaystyle \ r = G (m, g, h, y, u, v)}   ;

6. calculatess=k-xrmodq {\ displaystyle s = k-xr \ mod \ q}   .

Message signaturem {\ displaystyle \ m}   is anσ=(u,r,s,bm) {\ displaystyle \ sigma \ = (u, r, s, b_ {m})}   .

Signature Verification

To verify the signatureσ {\ displaystyle \ \ sigma}   message m, the following is done:

one.σ {\ displaystyle \ \ sigma}   appears as(u,r,s,bm) {\ displaystyle \ (u, r, s, b_ {m})}   ;

2. is calculatedh=H(m,bm) {\ displaystyle \ h = H (m, b_ {m})}   andn=L(m,g,h,y,u) {\ displaystyle \ n = L (m, g, h, y, u)}   ;

3. is calculatedv′=(gn∗h)s∗(yn∗u)r {\ displaystyle v \ prime \ = (g ^ {n} * h) ^ {s} * (y ^ {n} * u) ^ {r}}   ;

4. checks to see ifr=G(m,g,h,y,u,v′) {\ displaystyle \ r = G (m, g, h, y, u, v \ prime)}   .

If the equality in step 4 is satisfied, the signature is verified.

Fast EDS based on the Fiat-Shamir algorithm

ZN denotes the ring of integers moduloN {\ displaystyle \ N}   ,t {\ displaystyle \ t}   andp {\ displaystyle \ p}   - security settings, usuallyt⩽four {\ displaystyle \ t \ leqslant \ 4}   ,p⩽20 {\ displaystyle \ p \ leqslant \ 20}  

The role of the key authentication center (CAC)

CAC selects:

  • random primesp {\ displaystyle \ p}   andq {\ displaystyle \ q}   so thatp,q⩾2256 {\ displaystyle \ p, q \ geqslant \ 2 ^ {256}}   ;
  • unidirectional hash functionh:ZN⊗Z→{0,one}tk {\ displaystyle \ h: Z_ {N} \ otimes Z \ rightarrow \ {\ {0,1 \}} ^ {t} k}   ;
  • your own private and public keys.

CAC publishesN=p∗q {\ displaystyle \ N = p * q}   ,h {\ displaystyle \ h}   and public key .

The CAC secret key is used to sign the public keys it creates. To create such signatures, the CAC can use any secure digital signature scheme.

Custom Key Generation.

Each user selects a secret keys=(sone,⋯sk) {\ displaystyle \ s = (s_ {1}, \ cdots \, s_ {k})}   consisting of random numberssi {\ displaystyle \ s_ {i}}   ,si {\ displaystyle \ s_ {i}}   varies from 1 toN {\ displaystyle \ N}   such that GCD(si,N)=one {\ displaystyle \ (si, N) = 1}   for alls {\ displaystyle \ s}   from 1 tok {\ displaystyle \ k}   . Signature creation can be accelerated by choosing assone,⋯sk {\ displaystyle \ s_ {1}, \ cdots \, s_ {k}}   small integers . The security of such a scheme is based on the assumption that root computation2tmodN {\ displaystyle 2 ^ {t} \ mod \ N}   is difficult. Currently unknown about the existence of algorithms that calculate the roots2tmodN {\ displaystyle 2 ^ {t} \ mod \ N}   provided that these roots of orderN2- t + one {\ displaystyle \ N ^ {2 ^ {- t + 1}}}   .

User registration.

CAC checks user compliance, creates a stringI {\ displaystyle \ I}   containing the name, address, etc., and creates a signatureS {\ displaystyle \ S}   for a couple(I,v) {\ displaystyle \ (I, v)}   consisting ofI {\ displaystyle \ I}   and user public keyv {\ displaystyle \ v}   .

Create a signature.

Input messagem {\ displaystyle \ m}   secret keys=(sone,⋯sk) {\ displaystyle \ s = (s_ {1}, \ cdots \, s_ {k})}   andN {\ displaystyle \ N}   - the module by which calculations are performed.

1. Choose a random numberr {\ displaystyle \ r}   out of range[one,N] {\ displaystyle \ [1, N]}   is calculatedx=r2t {\ displaystyle \ x = r ^ {2 ^ {t}}}   .

2. Calculatede=(eoneone,⋯etk)=h(x,m) {\ displaystyle \ e = (e_ {1} 1, \ cdots \, e_ {t} k) = h (x, m)}   .

3. Calculatedy=r∏j=oneksj∑i=oneteij∗2i-onemodN {\ displaystyle \ y = r \ prod \ nolimits _ {j = 1} ^ {k} s_ {j} ^ {\ sum \ nolimits _ {i = 1} ^ {t} e_ {ij} * 2 ^ {i -1}} \ mod \ N}   .

The signature on the output is a pair(e,y) {\ displaystyle \ (e, y)}   .

Signature creation requires no more thank∗t+t-one {\ displaystyle \ {k * t + t-1}}   modulation operations, and on average for randome {\ displaystyle \ e}   only requiredt(k+2)/2+one {\ displaystyle \ t (k + 2) / 2 + 1}   multiplication operations.

Signature Verification.

Input - Signature(e,y) {\ displaystyle \ (e, y)}   , messagem {\ displaystyle \ m}   ,v=(vone,⋯vk) {\ displaystyle \ v = (v_ {1}, \ cdots \, v_ {k})}   ,I,S,N {\ displaystyle \ I, S, N}   .

1. Signature verifiedS {\ displaystyle \ S}   for(I,v) {\ displaystyle \ (I, v)}   .

2. Calculatedz=y2t∏j=onekvj∑i=oneeij∗2i-onemodN {\ displaystyle \ z = y ^ {2 ^ {t}} \ prod \ nolimits _ {j = 1} ^ {k} v_ {j} ^ {\ sum \ nolimits _ {i = 1} e_ {ij} * 2 ^ {i-1}} \ mod \ N}   .

3. It is verified thate=h(z,m) {\ displaystyle \ e = h (z, m)}   .

Signature verification requires an average for randome {\ displaystyle \ e}  t(k+2)/2+one {\ displaystyle \ t (k + 2) / 2 + 1}   multiplication operations modulo maximumk∗t+t {\ displaystyle \ {k * t + t}}   .

Signature Security.

To fake a message signaturem {\ displaystyle \ m}   cryptanalyst must solve the equatione=h(y2t∏j=onekvj∑i=onetei,j∗2i-one,m)modN {\ displaystyle \ e = h (y ^ {2 ^ {t}} \ prod \ nolimits _ {j = 1} ^ {k} v_ {j} ^ {\ sum \ nolimits _ {i = 1} ^ {t } e_ {i, j} * 2 ^ {i-1}}, m) \ mod \ N}   fore {\ displaystyle \ e}   andy {\ displaystyle \ y}   .

There are currently no algorithms for solving this equation.

Application of fast EDS

Fast digital signature algorithms are most effective in cases where the key acquisition speed and small signature size are of primary importance. Similar requirements occur in mobile, sensor or personal networks (the radius of which is limited to one room) when transmitting multimedia traffic. The use of a digital signature in GSM mobile phones allows users to create a PIN code on their own, rather than receiving it from an operator.

Implementation of accelerated EDS algorithms for devices with limited resources, such as PDAs, built-in smart cards and mobile phones, whose computing power is much inferior to the capabilities of personal computers, will allow you to spend less energy on creating and storing a signature and thereby increase the device’s battery life without recharging .

Literature

  • Fast Digital Signature Schemes as Secure as Diffie-Hellman Assumptions, Changshe Ma , Jian Weng and Dong Zheng , January 22, 2007
  • Fasr Signature Generation with a Fiat Shamir-Like Scheme, H.Ong , CPSchnorr

See also

  • Diffie-Hellman Algorithm
  • Shamir scheme
  • Fast cryptosystem with a public key
  • Public Key Cryptosystem
  • RSA
  • El Gamal Scheme
  • Digital signature

Links

  • [one]
  • [2]
  • [3]
  • US Patent 5,263,085
Source - https://ru.wikipedia.org/w/index.php?title=Fast_digital_signature&oldid=99181308


More articles:

  • Rodriguez, Rodolfo Sergio
  • Amano, Masamichi
  • Dmitryashevsky Settlements
  • Yusuf Balasaguni
  • The City Sleeps in Flames
  • Cross country skiing
  • Killerpilze
  • Girovertical
  • Jozefina (Pinsk district)
  • Murat, Joachim

All articles

Clever Geek | 2019