Clever Geek Handbook
📜 ⬆️ ⬇️

Adleman Algorithm

Adlemen Algorithm - the first sub-exponential discrete logarithm algorithm in the residue ring modulo a prime number . The algorithm was proposed by Leonard Max Adleman (born Leonard Adleman - Aidleman ) in 1979 . Leonard Max Adleman ( born Leonard Adleman - Aidleman ; born December 31, 1945 ) is an American computer science theorist , professor of computer science and molecular biology at the University of Southern California . He is known as a co-author of the RSA encryption system (Rivest - Shamir - Adleman, 1977 ) and DNA computing . RSA is widely used in computer security applications, including the HTTPS protocol .

Content

Mathematical apparatus

The reduced residue system modulo m is the set of all numbers of the complete residue system modulo m coprime to m . The reduced residue system modulo m consists of φ ( m ) numbers, where φ (·) is the Euler function . Any φ (m) pairwise incomparable modulo m and mutually prime numbers with this module represent a reduced system of residues. As a reduced system of residues modulo m, we usually take mutually prime numbers from m from 1 tom-one {\ displaystyle m-1}   . If a(a,m)=one {\ displaystyle (a, m) = 1}   and x runs through the reduced residue system modulo m, then ax also takes the values ​​that form the reduced residue system modulo [1] .

The reduced residue system with multiplication modulo m forms a group called the multiplicative group or the group of invertible elements of the residue ring modulo m , which is denoted byZm× {\ displaystyle \ mathbb {Z} _ {m} ^ {\ times}}   orU(Zm) {\ displaystyle U (\ mathbb {Z} _ {m})}   .

Factorization of a polynomial is a representation of a given polynomial in the form of a product of polynomials of lower degrees.

The basic theorem of algebra states that each polynomial over the field of complex numbers can be represented as a product of linear polynomials, moreover, uniquely up to a constant factor and order of factors.

The opposite of factorization of polynomials is their extension , multiplication of polynomial factors to obtain an “extended” polynomial written as the sum of summands.

Task

Let polynomials be givenα,β,f∈GF(pn),p⩽n {\ displaystyle \ alpha, \ beta, f \ in GF (p ^ {n}), p \ leqslant n}   such that

f{\ displaystyle f}   - irreducible normalized polynomial of degreen, {\ displaystyle n,}  
α{\ displaystyle \ alpha}   - generator of a multiplicative group of degree lessn, {\ displaystyle n,}  
β≢0(modf).{\ displaystyle \ beta \ not \ equiv 0 {\ pmod {f}}.}  

It is necessary to find (if such exists) a natural numberx {\ displaystyle x}   satisfying comparison

αx≡β(modf).{\ displaystyle \ alpha ^ {x} \ equiv \ beta {\ pmod {f}}.}  

Algorithm Description

Stage 1. Put

m=⌈nlog⁡nlog⁡p⌉.{\ displaystyle m = \ left \ lceil {\ sqrt {\ frac {n \ log n} {\ log p}}} \ right \ rceil.}  

2 stage. Find a lotT {\ displaystyle T}   irreducible normalized polynomialsfi∈GF(pn) {\ displaystyle f_ {i} \ in GF (p ^ {n})}   degree no higherm {\ displaystyle m}   and number them with numbers fromone {\ displaystyle 1}   beforeω, {\ displaystyle \ omega,}   Where

ω=|T|.{\ displaystyle \ omega = | T |.}  

3 stage. Putz=one. {\ displaystyle z = 1.}   Randomly select numbersr {\ displaystyle r}   ands {\ displaystyle s}   such that

0⩽r,s<pn-one,{\ displaystyle 0 \ leqslant r, s <p ^ {n} -1,}  

and calculate the polynomialγ {\ displaystyle \ gamma}   such that

γ≡αrβs(modf).{\ displaystyle \ gamma \ equiv \ alpha ^ {r} \ beta ^ {s} {\ pmod {f}}.}  

4th stage. If the polynomial obtained is the product of all irreducible polynomialsfi {\ displaystyle f_ {i}}   out of manyT, {\ displaystyle T,}   i.e

γ=γ~∏i=oneωfiei,{\ displaystyle \ gamma = {\ tilde {\ gamma}} \ prod _ {i = 1} ^ {\ omega} {f_ {i} ^ {e_ {i}}},}  

Whereγ~ {\ displaystyle {\ tilde {\ gamma}}}   - senior coefficientγ {\ displaystyle \ gamma}   (to factorize unitary polynomials over a finite field, you can use, for example, the Berlekamp algorithm ), then putrz=r, {\ displaystyle r_ {z} = r,}  sz=s, {\ displaystyle s_ {z} = s,}  vz=⟨eone,e2,...,eω+one⟩. {\ displaystyle v_ {z} = \ left \ langle e_ {1}, e_ {2}, \ dots, e _ {\ omega +1} \ right \ rangle.}   Otherwise, we choose other randomr {\ displaystyle r}   ands {\ displaystyle s}   and repeat steps 3 and 4. Then setz=z+one {\ displaystyle z = z + 1}   and repeat steps 3 and 4. Repeat untilz⩽ω+one. {\ displaystyle z \ leqslant \ omega +1.}   Thus we get the setsri {\ displaystyle r_ {i}}   ,si {\ displaystyle s_ {i}}   andvi {\ displaystyle v_ {i}}   forone⩽i⩽ω+one. {\ displaystyle 1 \ leqslant i \ leqslant \ omega +1.}  

5 stage. We calculateaone,a2,...,aω+one {\ displaystyle a_ {1}, a_ {2}, \ dots, a _ {\ omega +1}}   such that GCD(aone,a2,...,aω+one)=one {\ displaystyle (a_ {1}, a_ {2}, \ dots, a _ {\ omega +1}) = 1}   and

∑i=oneω+oneaivi≡⟨0,0,...,0⟩(modpn-one).{\ displaystyle \ sum \ limits _ {i = 1} ^ {\ omega +1} {a_ {i} v_ {i}} \ equiv \ left \ langle 0,0, \ dots, 0 \ right \ rangle {\ pmod {p ^ {n} -1}}.}  

6 stage. Calculate the numberl {\ displaystyle l}   such that

l=∑i=oneω+onesiai.{\ displaystyle l = \ sum _ {i = 1} ^ {\ omega +1} s_ {i} a_ {i}.}  

7th stage. If GCD(l,pn-one)≠one, {\ displaystyle (l, p ^ {n} -1) \ neq 1,}   then we go to step 3 and pick up new setsri {\ displaystyle r_ {i}}   ,si {\ displaystyle s_ {i}}   andvi {\ displaystyle v_ {i}}   forone⩽i⩽ω+one. {\ displaystyle 1 \ leqslant i \ leqslant \ omega +1.}   Otherwise, calculate the numbersk,y {\ displaystyle k, y}   and polynomials {\ displaystyle s}   such that

k=∑i=oneω+oneriai,{\ displaystyle k = \ sum _ {i = 1} ^ {\ omega +1} r_ {i} a_ {i},}  
s≡ α k β l ( mod f ) ,{\ displaystyle s \ equiv \ alpha ^ {k} \ beta ^ {l} {\ pmod {f}},}  
αypn-onep-one≡s(modf).{\ displaystyle \ alpha ^ {y {\ frac {p ^ {n} -1} {p-1}}} \ equiv s {\ pmod {f}}.}  

8 stage. We calculate the desired numberx {\ displaystyle x}  

x≡ypn-onep-one-kl(modpn-one).{\ displaystyle x \ equiv {\ frac {y {\ frac {p ^ {n} -1} {p-1}} - k} {l}} {\ pmod {p ^ {n} -1}}. }  

Another version of the algorithm

Source data

Let a comparison be given

ax≡b(modp),{\ displaystyle a ^ {x} \ equiv b {\ pmod {p}},}  ((one))

It is necessary to find a natural number x satisfying the comparison (1).

Algorithm Description

Stage 1. Form a factor base consisting of all primes q :

q≤B=econstlog⁡plog⁡log⁡p{\ displaystyle q \ leq B = e ^ {const {\ sqrt {\ log {p} \ log {\ log {p}}}}}}  

2 stage. Using enumeration, find natural numbersri {\ displaystyle r_ {i}}   such that

ari≡∏q≤Bqαiq(modp),{\ displaystyle a ^ {r_ {i}} \ equiv \ prod \ limits _ {q \ leq B} q ^ {\ alpha _ {iq}} {\ pmod {p}},}  

i.earimodp {\ displaystyle a ^ {r_ {i}} \ mod {p}}   laid out on a factor basis. It follows that


ri≡∑q≤Bαiqloga⁡q(modp-one).{\ displaystyle r_ {i} \ equiv \ sum \ limits _ {q \ leq B} \ alpha _ {iq} \ log _ {a} {q} {\ pmod {p-1}}.}  ((2))

3 stage. Having collected a lot of relations (2), solve the resulting system of linear equations for unknown discrete logarithms of the elements of the factor base (loga⁡q {\ displaystyle \ log _ {a} {q}}   )

4th stage. Using some enumeration, find one value of r for which

ar≡∏q≤Bqβqpone⋅...⋅pk(modp),{\ displaystyle a ^ {r} \ equiv \ prod \ limits _ {q \ leq B} q ^ {\ beta _ {q}} p_ {1} \ cdot ... \ cdot p_ {k} {\ pmod { p}},}  

Wherepone,...,pkmodp {\ displaystyle p_ {1}, ..., p_ {k} \ mod {p}}   - prime numbers of "average" size, that isB<pi<Bone {\ displaystyle B <p_ {i} <B_ {1}}   whereBone {\ displaystyle B_ {1}}   - also some subexponential boundary,Bone=econstlog⁡plog⁡log⁡p. {\ displaystyle B_ {1} = e ^ {const {\ sqrt {\ log {p} \ log {\ log {p}}}}}.  

5 stage. Using calculations similar to steps 2 and 3, find discrete logarithmsloga⁡pi {\ displaystyle \ log _ {a} {p_ {i}}}   .

6 stage. Determine the desired discrete logarithm:


x≡loga⁡b≡∑q≤Bβqloga⁡q+∑i=onekloga⁡pi(modp-one).{\ displaystyle x \ equiv \ log _ {a} {b} \ equiv \ sum \ limits _ {q \ leq B} \ beta _ {q} \ log _ {a} {q} + \ sum \ limits _ { i = 1} ^ {k} \ log _ {a} {p_ {i}} {\ pmod {p-1}}.}  

Computational complexity

Adleman's algorithm has a heuristic complexity estimateO(exp⁡(c(log⁡plog⁡log⁡p)one/2)) {\ displaystyle O (\ exp {(c (\ log {p} \ log {\ log {p}}) ^ {1/2})})}   arithmetic operations wherec {\ displaystyle c}   Is some constant. In practice, it is not effective enough.

Applications

The discrete logarithm problem is one of the main tasks on which public key cryptography is based.

Discrete Logarithm

Discrete Logarithm (DLOG) - Function Inversion Problemgx {\ displaystyle g ^ {x}}   in some finite multiplicative groupG {\ displaystyle G}   .

Most often, the discrete logarithm problem is considered in the multiplicative group of residue rings or a finite field , as well as in the group of points of an elliptic curve above a finite field. Effective algorithms for solving the discrete logarithm problem are generally unknown.

For given g and a, the solution x of the equationgx=a {\ displaystyle g ^ {x} = a}   is called the discrete logarithm of the element a at the base g . In the case when G is a multiplicative group of the residue ring modulo m , the solution is also called the index of the number a along the base g . The base number index a is guaranteed to exist if g is a primitive root modulo m .

Public Key Cryptography

A public key cryptographic system (or asymmetric encryption , asymmetric cipher ) is an encryption and / or electronic signature (ES) system in which the public key is transmitted over an open (i.e., insecure, observable) channel and is used to verify ES and for encryption messages. To generate the electronic signature and to decrypt the message, the private key is used [2] . Public key cryptographic systems are now widely used in various network protocols , in particular, in the TLS protocols and its predecessor SSL (underlying HTTPS ), in SSH . Also used in PGP , S / MIME. Classical cryptographic schemes based on it are the Diffie-Hellman common key generation scheme, El-Gamal electronic signature scheme, the Massey-Omura cryptosystem for transmitting messages. Their cryptographic strength is based on the supposedly high computational complexity of the exponential function .

Diffie-Hellman Protocol

The Diffie-Hellman Protocol ( Diffie-Hellman , DH ) is a cryptographic protocol that allows two or more parties to obtain a shared secret key using an unprotected communication channel. The received key is used to encrypt further exchanges using symmetric encryption algorithms.

The open key distribution scheme proposed by Diffie and Hellman made a real revolution in the encryption world, as it removed the main problem of classical cryptography - the problem of key distribution.

In its pure form, the Diffie-Hellman algorithm is vulnerable to data modification in the communication channel, including the Man in the Middle attack, therefore, schemes using it use additional methods of one-way or two-way authentication.

El Gamal Scheme

The Elgamal scheme is an open-key cryptosystem based on the difficulty of computing discrete logarithms in a finite field . The cryptosystem includes an encryption algorithm and a digital signature algorithm. The El-Gamal scheme is the basis of the former standards of electronic digital signature in the USA ( DSA ) and Russia ( GOST R 34.10-94 ).

The scheme was proposed by Taher El-Gamal in 1985 . [3] El-Gamal developed one of the variants of the Diffie-Hellman algorithm . He improved the Diffie-Hellman system and obtained two algorithms that were used for encryption and for authentication. Unlike RSA, the El-Gamal algorithm was not patented and, therefore, became a cheaper alternative, since it did not require payment of license fees. It is believed that the algorithm is subject to the Diffie-Hellman patent.

Notes

  1. ↑ Buchstaff, A.A. Number Theory. - M.: Education, 1966 .-- 385 p.
  2. ↑ Bruce Schneier. Applied cryptography. 2nd ed. Protocols, algorithms and source codes in the C language. Chapter 2.7 Digital Signatures and Encryption.
  3. ↑ Taher ElGamal. A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms (English) // IEEE Transactions on Information Theory : journal. - 1985. - Vol. 31 , no. 4 . - P. 469-472 . - DOI : 10.1109 / TIT.1985.1057074 .

Literature

  • Leonard M. Adleman, Jonathan Demarrais. A subexponential algorithm for discrete logarithms over all finite fields (English) // Mathematics of computation. - 1993.
  • Vasilenko O.N. Number-theoretic algorithms in cryptography (Russian) . - 2003. (unavailable link)
  • Coppersmith D. Fast evaluation of discrete logarithms in fields of characteristic two. - 1984.
Source - https://ru.wikipedia.org/w/index.php?title=Adleman's algorithm&oldid = 101025815


More articles:

  • Come in
  • Moshki (Brest region)
  • Fine structure
  • Sure Know Something
  • Timber mill (stopping point)
  • Mariinsky Gymnasium (Kremenchug)
  • Chirvon Strahl
  • Ak-Bashat (Moscow region)
  • Murake
  • Sprechstimme

All articles

Clever Geek | 2019