Clever Geek Handbook
📜 ⬆️ ⬇️

Elliptical cryptography

Elliptic cryptography is a section of cryptography that studies asymmetric cryptosystems based on elliptic curves over finite fields . The main advantage of elliptic cryptography is that today it is not known that there are subexponential algorithms for solving the discrete logarithm problem.

The use of elliptic curves to create cryptosystems was independently proposed by Neil Koblitz and Victor Miller in in 1985 [1]

Introduction

In 1985, independently, Neil Koblitz and Victor Miller proposed using the algebraic properties of elliptic curves in cryptography. From this moment began a rapid development of a new direction of cryptography, for which the term "cryptography on elliptic curves" is used. The role of the main cryptographic operation is performed by the operation of scalar multiplication of a point on an elliptic curve by a given integer, determined through the addition and doubling of the points of the elliptic curve. The latter, in turn, are performed on the basis of addition, multiplication and inversion operations in the final field, over which the curve is considered. Of particular interest in the cryptography of elliptic curves is due to the advantages that its application in wireless communications provides - high speed and short key length [2] Asymmetric cryptography is based on the complexity of solving some mathematical problems. Early public-key cryptosystems, such as the RSA algorithm , are cryptographic-proof due to the fact that it is difficult to factor the composite into prime factors. When using algorithms on elliptic curves, it is assumed that there are no subexponential algorithms for solving the discrete logarithm problem in groups of their points. The order of the group of points of the elliptic curve determines the complexity of the problem. It is believed that to achieve the same level of cryptographic strength as in RSA, smaller orders are required, which reduces the cost of storing and transmitting information. For example, at the RSA 2005 conference, the National Security Agency announced the creation of “Suite B”, which uses exclusively elliptic cryptography algorithms, and only 384-bit keys are used to protect information classified before “Top Secret”.

Elliptic Curves Above Finite Fields

An elliptic curve is called a set of points.(x,y) {\ displaystyle (x, y)} (x,y) satisfying the equation:

y2+aonexy+a3y=x3+a2x2+afourx+a6{\ displaystyle y ^ {2} + a_ {1} xy + a_ {3} y = x ^ {3} + a_ {2} x ^ {2} + a_ {4} x + a_ {6}}  

This equation can be considered over arbitrary fields and, in particular, over finite fields of particular interest for cryptography.

In cryptography, elliptic curves are considered over two types of finite fields : simple fields of odd characteristic (Zp {\ displaystyle \ mathbb {Z} _ {p}}   wherep>3 {\ displaystyle p> 3}   Is a prime number) and fields of characteristic 2 (GF(2m) {\ displaystyle GF (2 ^ {m})}   )

Elliptic Curves Above Odd Characteristic Fields

Over the fieldZp {\ displaystyle \ mathbb {Z} _ {p}}   specificationsp>3 {\ displaystyle p> 3}   the equation of the elliptic curve E can be reduced to the form:

E:y2=x3+Ax+B(modp),{\ displaystyle E: \ quad y ^ {2} = x ^ {3} + Ax + B {\ pmod {p}},}  

WhereA,B∈Zp {\ displaystyle A, B \ in \ mathbb {Z} _ {p}}   Are constants satisfyingfourA3+27B2≢0(modp) {\ displaystyle 4A ^ {3} + 27B ^ {2} \ not \ equiv 0 {\ pmod {p}}}   .

The group of points of an elliptic curve E over a fieldZp {\ displaystyle \ mathbb {Z} _ {p}}   called a lot of pairs(x,y) {\ displaystyle (x, y)}   lying on E , combined with the zero elementO {\ displaystyle {\ mathcal {O}}}   :

E(Zp)=O∪{(x,y)∈Zp×Zp|y2≡x3+Ax+B(modp)}.{\ displaystyle E (\ mathbb {Z} _ {p}) = {\ mathcal {O}} \ cup \ left \ {(x, y) \ in \ mathbb {Z} _ {p} \ times \ mathbb { Z} _ {p} | y ^ {2} \ equiv x ^ {3} + Ax + B {\ pmod {p}} \ right \}.}  

It should be noted that inZp {\ displaystyle \ mathbb {Z} _ {p}}   each nonzero element has either two square roots or none, so the points of the elliptic curve are divided into pairs of the form(x,y) {\ displaystyle (x, y)}   and(x,-y) {\ displaystyle (x, -y)}   .

Example

Consider an elliptic curvey2=x3+3x+2 {\ displaystyle y ^ {2} = x ^ {3} + 3x + 2}   over the fieldZfive {\ displaystyle \ mathbb {Z} _ {5}}   . On this curve, in particular, lies the point(one,one) {\ displaystyle (1,1)}   , becauseone2≡one3+3⋅one+2(modfive) {\ displaystyle 1 ^ {2} \ equiv 1 ^ {3} +3 \ cdot 1 + 2 {\ pmod {5}}}   .

Hasse Theorem

Hasse's elliptic curve theorem states that the number of points on an elliptic curve is close to the size of the final field:

(p-one)2⩽|E(Zp)|⩽(p+one)2,{\ displaystyle ({\ sqrt {p}} - 1) ^ {2} \ leqslant | E (\ mathbb {Z} _ {p}) | \ leqslant ({\ sqrt {p}} + 1) ^ {2 },}  

which implies:

||E(Zp)|-p|<2p+one.{\ displaystyle \ left || E (\ mathbb {Z} _ {p}) | -p \ right | <2 {\ sqrt {p}} + 1.}  

Elliptic curves over characteristic 2 fields

Over the field of characteristic 2, two types of elliptic curves are considered:

  • Supersingular curve
    y2+ay=x3+bx+c{\ displaystyle y ^ {2} + ay = x ^ {3} + bx + c}  
  • Nonsupersingular curve
    y2+axy=x3+bx2+c{\ displaystyle y ^ {2} + axy = x ^ {3} + bx ^ {2} + c}  

A particular convenience of supersingular elliptic curves is that it is easy to calculate the order for them, while calculating the order of non-supersingular curves is difficult. Supersingular curves are especially convenient for creating a homemade ECC cryptosystem. To use them, you can do without the time-consuming procedure of calculating the order.

Projective coordinates

To calculate the sum of a pair of points on an elliptic curve requires not only several operations of addition and multiplication inFq {\ displaystyle \ mathbb {F} _ {q}}   , but also an inversion operation, i.e. for a givenx∈Fq {\ displaystyle x \ in \ mathbb {F} _ {q}}   finding suchy∈Fq {\ displaystyle y \ in \ mathbb {F} _ {q}}   , whatxy=one {\ displaystyle xy = 1}   which is one to two orders of magnitude slower than multiplication. Fortunately, points on an elliptic curve can be represented in various coordinate systems that do not require the use of inversion when adding points:

  • in the projective coordinate system, every point(x,y) {\ displaystyle (x, y)}   represented by three coordinates(X,Y,Z) {\ displaystyle (X, Y, Z)}   which satisfy the relations:
    x=XZ{\ displaystyle x = {\ frac {X} {Z}}}   ,y=YZ {\ displaystyle y = {\ frac {Y} {Z}}}   .
  • in the Jacobi coordinate system, the point is also represented by three coordinates(X,Y,Z) {\ displaystyle (X, Y, Z)}   with ratios:x=XZ2 {\ displaystyle x = {\ frac {X} {Z ^ {2}}}}   ,y=YZ3 {\ displaystyle y = {\ frac {Y} {Z ^ {3}}}}   .
  • in the Lopez-Dahab coordinate system (洛佩斯 · 達哈卜 Chinese / Lopez-Dahab lat.), the following relation holds:x=XZ {\ displaystyle x = {\ frac {X} {Z}}}   ,y=YZ2 {\ displaystyle y = {\ frac {Y} {Z ^ {2}}}}   .
  • 4 coordinates are used in the modified Jacobi coordinate system(X,Y,Z,aZfour) {\ displaystyle (X, Y, Z, aZ ^ {4})}   with the same ratios.
  • 5 coordinates are used in the Chudnovsky-Jacobi coordinate system(X,Y,Z,Z2,Z3) {\ displaystyle (X, Y, Z, Z ^ {2}, Z ^ {3})}   .

It is important to note that there may be various naming conventions - for example, IEEE P1363-2000 calls projective coordinates what are usually called Jacobi coordinates.

Elliptic Encryption / Decryption

The first task in this system is the encryption of the plaintext messagem {\ displaystyle m}   to be forwarded as valuex-y {\ displaystyle xy}   (How?) For a pointPm {\ displaystyle P_ {m}}   . Here is the pointPm {\ displaystyle P_ {m}}   will represent encrypted text and will subsequently be decrypted. Please note that it is not possible to encode a message simply by coordinatex {\ displaystyle x}   ory {\ displaystyle y}   points, since not all such coordinates are inEp(a,b) {\ displaystyle E_ {p} (a, b)}   .
As in the case of a key exchange system, in the encryption, decryption system, the point is also consideredG {\ displaystyle G}   and elliptic groupEp(a,b) {\ displaystyle E_ {p} (a, b)}   . UserA {\ displaystyle A}   selects a private keynA {\ displaystyle n_ {A}}   and generates a public keyPA=nAG {\ displaystyle P_ {A} = n_ {A} G}   . To encrypt and send a messagePm {\ displaystyle P_ {m}}   the userB {\ displaystyle B}   userA {\ displaystyle A}   selects a random positive integerk {\ displaystyle k}   and calculates ciphertextGm {\ displaystyle G_ {m}}   consisting of a pair of points

Gm=(kG,Pm+kPB){\ displaystyle G_ {m} = (kG, P_ {m} + kP_ {B})}   . Wherein,Gm≠Pm,Gm {\ displaystyle G_ {m} \ neq P_ {m}, G_ {m}}   - a pair of points.

Note that the sideA {\ displaystyle A}   uses side public keyB {\ displaystyle B}   :PB {\ displaystyle P_ {B}}   . To decrypt this ciphertext,B {\ displaystyle B}   multiplies the first point in a pair by a secret keynB {\ displaystyle n_ {B}}   and subtracts the result from the second point:
(Pm+kPB)-nB(kG)=Pm+k(nBG)-nB(kG)=Pm+knB(G)-knB(G)=Pm{\ displaystyle (P_ {m} + kP_ {B}) - n_ {B} (kG) = P_ {m} + k (n_ {B} G) -n_ {B} (kG) = P_ {m} + {\ cancel {kn_ {B} (G)}} - {\ cancel {kn_ {B} (G)}} = P_ {m}}  

UserA {\ displaystyle A}   disguised messagePm {\ displaystyle P_ {m}}   by adding to itkPB {\ displaystyle kP_ {B}}   . No one except this user knows the valuek {\ displaystyle k}   therefore thereforePB {\ displaystyle P_ {B}}   and is a public key, no one can remove the maskkPB {\ displaystyle kP_ {B}}   . However, the userA {\ displaystyle A}   includes in the message and a "hint", which will be enough to remove the mask to someone who has a private keynB {\ displaystyle n_ {B}}   . An adversary will have to figure out a message to recoverk {\ displaystyle k}   according toG {\ displaystyle G}   andkG {\ displaystyle kG}   , which seems to be a difficult task [3] .

Arithmetic operations with points on an elliptic curve are not equivalent to these arithmetic operations with their coordinates.

The points of an elliptic curve over a finite field represent a group [4] . Multiplication is reduced to multiple doubling and summing.

For example, G + G ≠ 2G (these are different operations), 2G + 2 ^ 115G = 2 ^ 115G + 2G (summation is commutative);

2G = 2 * G; 4G = 2 * 2G; 8G = 2 * 4G; 16G = 2 * 8G, etc. (for two identical points, only the doubling operation);

25 * G; 25 = 11001 (in binary); 25 = 1 * 2 ^ 0 + 0 * 2 ^ 1 + 0 * 2 ^ 2 + 1 * 2 ^ 3 + 1 * 2 ^ 4 = 1 + 8 + 16; 25G = 16G + 8G + G = 1 * (2 ^ 4) G + 2 * (2 ^ 3) G + 1 * G (summation operation).

24G / 3G = 24G * (3G ^ -1 mod P); 5G - 3G = 5G + (3G ^ -1 mod P); where 3G ^ -1 mod P is modular multiplicative inverse.

Example

Consider the casep=751 {\ displaystyle p = 751}   ,Ep(-one,188) {\ displaystyle E_ {p} (- 1,188)}   that corresponds to the curve

y2=x3-x+188{\ displaystyle y ^ {2} = x ^ {3} -x + 188}   andG=(0,376) {\ displaystyle G = (0,376)}   .

Suppose userA {\ displaystyle A}   going to send to userB {\ displaystyle B}   elliptic encoded messagePm=(562,201) {\ displaystyle P_ {m} = (562,201)}   , and that userA {\ displaystyle A}   selects a random numberk=386 {\ displaystyle k = 386}   . Public keyB {\ displaystyle B}   is anPB=(201,five) {\ displaystyle P_ {B} = (201.5)}   . We have:

386(0,376)=(676,558){\ displaystyle 386 (0,376) = (676,558)}  
(562,201)+386(201,five)=(385,328){\ displaystyle (562,201) +386 (201,5) = (385,328)}   .

User thusA {\ displaystyle A}   should send ciphertext(676,558),(385,328) {\ displaystyle (676,558), (385,328)}   .

Encryption Implementation

Specific implementations of encryption algorithms on an elliptic curve are described below. Here we consider the general principles of elliptical cryptography.

Parameter Set

To use elliptic cryptography, all participants must agree on all parameters defining the elliptic curve, i.e. cryptographic protocol parameter set. The elliptic curve is determined by the constantsa {\ displaystyle a}   andb {\ displaystyle b}   from equation (2). The Abelian subgroup of points is cyclic and is defined by one generating point G. In this case, the cofactorh=|E|n {\ displaystyle h = {\ frac {| E |} {n}}}   , where n is the order of the point G , should be small (h≤four {\ displaystyle h \ leq 4}   preferably evenh=one {\ displaystyle h = 1}   )

So, for the field of characteristic 2, a set of parameters:(m,f,a,b,G,n,h) {\ displaystyle (m, f, a, b, G, n, h)}   , and for the final fieldZp {\ displaystyle \ mathbb {Z} _ {p}}   wherep>3 {\ displaystyle p> 3}   parameter set:(p,a,b,G,n,h) {\ displaystyle (p, a, b, G, n, h)}   .

There are several recommended parameter sets:

  • NIST [5]
  • SECG [6]

To create your own set of parameters, do the following.

  1. Select a set of parameters.
  2. Find an elliptic curve satisfying this set of parameters.

Two methods are used to find the curve for a given set of parameters.

  • Select a random curve, then use the point counting algorithm [7] [8] .
  • Select points, and then build a curve at these points using the technique of multiplication.

There are several classes of cryptographically “weak” curves that should be avoided:

  • Curves overF2m {\ displaystyle \ mathbb {F} _ {2 ^ {m}}}   wherem {\ displaystyle m}   Is not a prime number. The encryption on these curves is subject to Weil attacks .
  • Curves with|E(Fq)|=q {\ displaystyle | E (\ mathbb {F} _ {q}) | = q}   vulnerable to an attack that maps the points of a given curve to an additive field groupFq {\ displaystyle \ mathbb {F} _ {q}}   .

Fast Reduction (NIST Curves)

The division modulo p (which is necessary for addition and multiplication) can be performed faster if p is a prime close to the power of 2. In particular, the prime Mersenne can be p . For example, a good choice isp=2251-one {\ displaystyle p = 2 ^ {251} -1}   orp=2256-232-29-2eight-27-26-2four-one {\ displaystyle p = 2 ^ {256} -2 ^ {32} -2 ^ {9} -2 ^ {8} -2 ^ {7} -2 ^ {6} -2 ^ {4} -1}   . The National Institute of Standards and Technology (NIST) recommends using such prime numbers as p .

Another advantage of NIST recommended curves is the choice of valuea=-3 {\ displaystyle a = -3}   , which speeds up the addition operation in Jacobi coordinates.

NIST Recommended Elliptic Curves

NIST recommends 15 elliptic curves, many of which were obtained by Jerry Solinas (NSA) based on the findings of Neil Koblitz [9] . In particular, FIPS 186-3 [10] recommends 10 end fields. Some of them:

  • fieldsFp {\ displaystyle \ mathbb {F} _ {p}}   where prime p has a length of 192, 224, 256, 384 or 521 [11] bits ,
  • fieldsF2m {\ displaystyle \ mathbb {F} _ {2 ^ {m}}}   where m = 163, 233, 283, 409 or 571.

Moreover, for each final field, one elliptic curve is recommended. These end fields and elliptic curves are chosen, as is often mistakenly thought to be due to the high level of security. According to NIST, their choice was justified by the effectiveness of software implementation [12] . There are doubts about the safety of at least a few of them [13] [14] [15] .

Key Size

The fastest algorithms that solve the discrete logarithm problem on elliptic curves, such as the Shanks algorithm and the Pollard ρ-method , needO(n) {\ displaystyle O ({\ sqrt {n}})}   operations. Therefore, the size of the field should be at least twice the size of the key. For example, for a 128-bit key, it is recommended to use an elliptical curve above the fieldFp {\ displaystyle \ mathbb {F} _ {p}}   where p has a length of 256 bits.

The most complex elliptic curve schemes that have been publicly hacked to date contain a 112-bit key for a finite simple field and a 109-bit key for a finite field of characteristic 2 . In July 2009, a cluster of more than two hundred Sony Playstation 3 found a 109-bit key in 3.5 months. The key over feature field 2 was found in April 2004, using 2,600 computers, for 17 months .

Diffie-Hellman Algorithm for Key Exchange

Suppose that subscribers A and B want to agree on a key that they will subsequently use in some classic cryptosystem. First of all, they openly choose a finite fieldFq {\ displaystyle F_ {q}}   and some elliptic curveE {\ displaystyle E}   over it. Their key is built at a random pointP {\ displaystyle P}   on this elliptical curve. If they have a random pointP {\ displaystyle P}   then, for example, herx {\ displaystyle x}   - coordinate gives a random elementFq {\ displaystyle F_ {q}}   which can then be converted tor {\ displaystyle r}   -bit integer inp {\ displaystyle p}   -ary number system (whererq=p {\ displaystyle rq = p}   ), and this number can serve as a key in their classical cryptosystem. They have to pick a point.P {\ displaystyle P}   so that all their messages to each other are open and yet no one but the two of them would know anything aboutP {\ displaystyle P}   .

Subscribers (users) A and B first of all openly choose a pointB {\ displaystyle B}   ∈E {\ displaystyle E}   as a "basis";B {\ displaystyle B}   plays the same role as formingq {\ displaystyle q}   in the Diffie-Hellman system for finite fields. However, we do not require thatB {\ displaystyle B}   was a forming element in the group of curve pointsE {\ displaystyle E}   . This group may not be cyclic. Even if it is cyclic, we will not waste time checking thatB {\ displaystyle B}   - a generating element (or even finding the total number N of points that we will not need in the future). We would like the subgroup B generated to be large, preferably of the same order of magnitude asE {\ displaystyle E}   . Assume for now thatB {\ displaystyle B}   - taken open point onE {\ displaystyle E}   very large order (equal to eitherN {\ displaystyle N}   or a large divisorN {\ displaystyle N}   )

To form a key,A {\ displaystyle A}   randomly selects an integer at firsta {\ displaystyle a}   comparable in order of magnitude withq {\ displaystyle q}   (which is close toN {\ displaystyle N}   ); he keeps this number a secret. He calculatesaB {\ displaystyle aB}   ∈E {\ displaystyle E}   and passes this point openly. Subscriber B does the same: he randomly choosesb {\ displaystyle b}   and openly conveysbB {\ displaystyle bB}   ∈E {\ displaystyle E}   . Then the secret key they use isP=abB {\ displaystyle P = abB}   ∈E {\ displaystyle E}   . Both users can calculate this key. For example,A {\ displaystyle A}   knowsbB {\ displaystyle bB}   (the point was transmitted openly) and its own secreta {\ displaystyle a}   . However, any third party knows onlyaB {\ displaystyle aB}   andbB {\ displaystyle bB}   . In addition to solving the discrete logarithm problem - finding a byB {\ displaystyle B}   andaB {\ displaystyle aB}   (or findingb {\ displaystyle b}   byB {\ displaystyle B}   andbB {\ displaystyle bB}   ) there seems to be no way to findabB {\ displaystyle abB}   knowing onlyaB {\ displaystyle aB}   andbB {\ displaystyle bB}   [16] .

Diffie-Hellman Key Exchange Example

Take as an example

p=211{\ displaystyle p = 211}   ,Ep(0,-four) {\ displaystyle E_ {p} (0, -4)}   ,

which corresponds to the curve

y2=x3-four{\ displaystyle y ^ {2} = x ^ {3} -4}   andG=(2,2) {\ displaystyle G = (2,2)}   .

It can be calculated that241G= {\ displaystyle 241G =}  O {\ displaystyle {\ mathcal {O}}}   . User A's private key isnA=121 {\ displaystyle n_ {A} = 121}   , therefore, public key A will be

PA=121(2,2)=(115,48){\ displaystyle P_ {A} = 121 (2,2) = (115,48)}   .

User B's private key isnB=203 {\ displaystyle n_ {B} = 203}   , so member B’s public key will be

203(2,2)=(130,203){\ displaystyle 203 (2,2) = (130,203)}   .

The shared secret is

121(130,203)=203(115,48)=(161,69){\ displaystyle 121 (130,203) = 203 (115,48) = (161,69)}   .

Cryptography Security Using Elliptic Curves

  • The security provided by the cryptographic approach based on elliptic curves depends on how difficult it is to solve the problem of determiningk {\ displaystyle k}   according tokP {\ displaystyle kP}   andP {\ displaystyle P}   . This problem is usually called the logarithm problem on an elliptic curve. The fastest elliptic curve logarithm method known today is the so-calledp {\ displaystyle p}   method of Pollard. The table (see below) compares the effectiveness of this method and the method of factorization using a sieve in the field of numbers of a general form. It can be seen that, compared to RSA, in the case of using cryptography methods on elliptic curves, approximately the same level of protection is achieved with significantly smaller key lengths.
    Moreover, with equal key lengths, the computational effort required when using RSA and cryptography based on elliptic curves does not differ much. Thus, in comparison with RSA with equal protection levels, a clear computational advantage belongs to cryptography based on elliptic curves with a shorter key length [17] .

Table: Computational efforts required for cryptanalysis using elliptic curves and RSA

  • Logarithm on an elliptic curve withp {\ displaystyle p}   Pollard method.
Key sizeMIPS years
1503.8 * 10 ^ 10
2057.1 * 10 ^ 18
2341.6 * 10 ^ 28
  • Factorization in integers using the sieve method in a field of numbers of a general form.
Key sizeMIPS years
5123 * 10 ^ 4
7683 * 10 ^ 2
10243 * 10 ^ 11
12803 * 10 ^ 14
15363 * 10 ^ 16
20483 * 10 ^ 20

Building an electronic digital signature using elliptic curves

ECDSA (Elliptic Curve Digital Signature Algorithm) has been adopted as ANSI X9F1 and IEEE P1363 .

Key Creation

  1. An elliptical curve is selectedEp(a,b) {\ displaystyle E_ {p} (a, b)}   . The number of points on it should be divided by a large prime number n.
  2. Base point selectedG∈Ep(a,b) {\ displaystyle G \ in E_ {p} (a, b)}   of ordern,n⋅G=∞ {\ displaystyle n, n \ cdot G = \ infty}   .
  3. Random number selectedd∈(one,n) {\ displaystyle d \ in (1, n)}   .
  4. CalculatedQ=d⋅G {\ displaystyle Q = d \ cdot G}   .
  5. The private key is d, the public key is the tuple <a, b, G, n, Q>.

Signature Creation

  1. Random number selectedk∈(one,n) {\ displaystyle k \ in (1, n)}   .
  2. Calculatedk⋅G=(xone,yone) {\ displaystyle k \ cdot G = (x_ {1}, y_ {1})}   andr=xone(mod⁡n) {\ displaystyle r = x_ {1} (\ operatorname {mod} n)}   .
  3. Condition checkedr≠0 {\ displaystyle r \ neq 0}   , since otherwise the signature will not depend on the private key. Если r = 0, то выбирается другое случайное число k.
  4. Вычисляется k-one(mod⁡n){\displaystyle k^{-1}(\operatorname {mod} n)}   .
  5. Вычисляется s=k-one⋅(H(M)+dr)(mod⁡n){\displaystyle s=k^{-1}\cdot (H(M)+dr)(\operatorname {mod} n)}   .
  6. Проверяется условие s≠0{\displaystyle s\neq 0}   , так как в этом случае необходимого для проверки подписи числа s-one(mod⁡n){\displaystyle s^{-1}(\operatorname {mod} n)}   не существует. Если s = 0, то выбирается другое случайное число k .

Подписью для сообщения М является пара чисел (r, s).

Проверка подписи

  1. Проверим, что числа r и s принадлежат диапазону чисел (1, n). В противном случае результат проверки отрицательный, и подпись отвергается.
  2. Вычислить w=s-one(mod⁡n){\displaystyle w=s^{-1}(\operatorname {mod} n)}   и H(M).
  3. Вычислить uone=H(M)w(mod⁡n){\displaystyle u_{1}=H(M)w(\operatorname {mod} n)}   and u2=rw(mod⁡n){\displaystyle u_{2}=rw(\operatorname {mod} n)}   .
  4. Вычислить uoneG+u2Q=(x0,y0),v=x0(mod⁡n){\displaystyle u_{1}G+u_{2}Q=(x_{0},y_{0}),v=x_{0}(\operatorname {mod} n)}   .
  5. Подпись верна в том и только том случае, когда v = r [18] .

Приложения

Большинство криптосистем современной криптографии естественным образом можно «переложить» на эллиптические кривые. Основная идея заключается в том, что известный алгоритм, используемый для конкретных конечных групп, переписывается для использования групп рациональных точек эллиптических кривых:

  • алгоритм ECDSA основывающийся на ЭЦП ,
  • алгоритм ECDH , основывающийся на алгоритме Диффи — Хеллмана ,
  • алгоритм ECMQV , основывающийся на MQV , протоколе распределения ключей Менезеса-Кью-Венстоуна,
  • ГОСТ Р 34.10-2012 ,
  • факторизация Ленстры с помощью эллиптических кривых ,
  • dual EC DRBG .

Необходимо отметить, что безопасность таких систем цифровой подписи опирается не только на криптостойкость алгоритмов шифрования, но и на криптостойкость используемых криптографических хеш-функций и генераторов случайных чисел .

По обзору 2013 года чаще всего используются кривые nistp256, nistp384, nistp521, secp256k1, secp384r1, secp521r1 [19] .

Notes

  1. ↑ Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. An introduction to mathematical cryptography . — Springer, 2008. — 524 с. — (Undergraduate Texts in Mathematics). — ISBN 9780387779942 .
  2. ↑ Болотов А.А., Гашков С.Б., Фролов А.Б., Часовских А.А . Элементарное введение в эллиптическую криптографию. 11 с.
  3. ↑ Жданов О.Н., Золотарев В.В. Методы и средства криптографической защиты информации. 167 с.
  4. ↑ Эллиптическая криптография: теория . Дата обращения 13 октября 2016.
  5. ↑ Recommended Elliptic Curves for Government Use
  6. ↑ SEC 2: Recommended Elliptic Curve Domain Parameters
  7. ↑ Schoof's algorithm (inaccessible link)
  8. ↑ Schoof – Elkies – Atkin algorithm
  9. ↑ Neal Koblitz. Random Curves: Journeys of a Mathematician . - Springer, 2009 .-- S. 312-313. - 402 s. - ISBN 9783540740780 .
  10. ↑ FIPS 186-3 Archived on October 7, 2013. // NIST, 2009; deprecated in 2013 with the release of FIPS 186-4
  11. ↑ It may seem that a mistake has been made in this sequence. However, the last value is exactly 521, not 512 bits.
  12. ↑ Daniel J. Bernstein , Tanja Lange, Security dangers of the NIST curves // 2013.09.16: "Why did NIST choose these curves? * Most people we have asked: security * Actual NIST design document: eficiency" ( [1] )
  13. ↑ Daniel J. Bernstein and Tanja Lange. SafeCurves: choosing safe curves for elliptic-curve cryptography. (eng.) . safecurves.cr.yp.to (2013.11.18). Date of treatment December 20, 2013.
  14. ↑ Evgeny Zolotov . Snowden and the elliptical crypto: Bitcoin and TOR are beyond suspicion, but what about other projects? , Computerra (September 16, 2013). Date of treatment December 20, 2013.
  15. ↑ Dr Michael Scott, Backdoors in NIST elliptic curves Archived December 20, 2013 to Wayback Machine , Oct 24, 2013: "The curves themselves were suggested by Jerry Solinas who worked at the NSA."
  16. ↑ Chalkin T.A. Zhdanov O.N. The use of elliptic curves in cryptography.
  17. ↑ Zhdanov O.N., Zolotarev V.V. Methods and means of cryptographic information protection. 186 p.
  18. ↑ Ishmukhametov Sh.T. Methods of factorization of natural numbers. 99 p.
  19. ↑ Bos et al, Elliptic Curve Cryptography in Practice // MSR-TR-2013-119, November 2013

Links

  • Bolotov A.A., Gashkov S.B., Frolov A.B., Chasovskikh A.A. Algorithmic basis of elliptic cryptography . - Moscow: MPEI, 2000 .-- 100 p.
  • Bolotov A.A., Gashkov S.B., Frolov A.B., Chasovskikh A.A. An elementary introduction to elliptical cryptography. Algebraic and algorithmic foundations .. - Moscow: KomKniga, 2006. - 328 p.
  • Zhdanov O.N., Zolotarev V.V. Methods and means of cryptographic information protection. - Krasnoyarsk: “The City”, 2007. - 217 p.
  • Ishmukhametov Sh.T. Methods of factorization of natural numbers. - Kazan: KFU, 2011 .-- 190 p.
  • Koblitz NA Course in number theory and cryptography .. - USA: Springer-Verlag, 1994 .-- 235 p.
Source - https://ru.wikipedia.org/w/index.php?title=Elliptic_cryptography&oldid=100839059


More articles:

  • Palen (Province)
  • Tsarskoe Selo (Museum-Reserve)
  • Beakheads
  • Foot Bandaging
  • Golovatenko, Victor Petrovich
  • 1151
  • Thyroid Adenoma
  • Structural Programming
  • Coliclon
  • Suez Isthmus

All articles

Clever Geek | 2019