ES2159274T3 - CALCULATION PROCEDURE TO CRYPTTOGRAPH AN ELIPTICAL CURVE. - Google Patents

CALCULATION PROCEDURE TO CRYPTTOGRAPH AN ELIPTICAL CURVE.

Info

Publication number
ES2159274T3
ES2159274T3 ES00949685T ES00949685T ES2159274T3 ES 2159274 T3 ES2159274 T3 ES 2159274T3 ES 00949685 T ES00949685 T ES 00949685T ES 00949685 T ES00949685 T ES 00949685T ES 2159274 T3 ES2159274 T3 ES 2159274T3
Authority
ES
Spain
Prior art keywords
lambda
value
point
division
added
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00949685T
Other languages
Spanish (es)
Other versions
ES2159274T1 (en
Inventor
Erik Knudsen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Oberthur Card Systems SA France
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oberthur Card Systems SA France filed Critical Oberthur Card Systems SA France
Publication of ES2159274T1 publication Critical patent/ES2159274T1/en
Application granted granted Critical
Publication of ES2159274T3 publication Critical patent/ES2159274T3/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Abstract

Procedimiento de criptografía puesto en práctica entre dos entidades que intercambian informaciones a través de un canal de comunicación no seguro, del tipo que comprende, al menos, una fase operativa consistente en multiplicar un punto de orden impar de una curva elíptica no supersingular por un entero, caracterizado porque, con objeto de realizar el intercambio de informaciones a través del canal de comunicación no seguro, tal fase operativa comprende adiciones y divisiones por dos de puntos de la citada curva elíptica, en donde la adición de puntos es una operación conocida y la división por dos de un punto P se define como el punto único D de orden impar tal que [2] D=P, representándose dicho punto por [1/] P, y la operación de división por 2:[1/2].Cryptography procedure implemented between two entities that exchange information through an unsecured communication channel, of the type that includes, at least, an operational phase consisting of multiplying an odd point of order of a non-supersingular elliptic curve by an integer , characterized in that, in order to exchange information through the non-secure communication channel, said operational phase comprises additions and divisions by two points of said elliptic curve, where the addition of points is a known operation and the division by two of a point P is defined as the single point D of odd order such that [2] D = P, said point being represented by [1 /] P, and the operation of division by 2: [1/2].

Description

Procedimiento de cálculo para criptografiar una curva elíptica.Calculation procedure to cryptograph a elliptical curve

La invención se refiere a un procedimiento de criptografía puesto en práctica entre dos entidades que intercambian informaciones a través de un canal de comunicación no protegido, por ejemplo, una red cableada, o hertziana, y que permite asegurar la confidencialidad y la integridad de las transferencias de informaciones entre estas dos entidades. La invención se refiere, de modo más particular, a un perfeccionamiento de los sistemas de crioptografía que ponen en práctica cálculos en una curva elíptica. El perfeccionamiento permite, principalmente, reducir los tiempos de cálculo.The invention relates to a method of cryptography implemented between two entities that exchange information through a communication channel not protected, for example, a wired network, or hertzian, and that allows ensure the confidentiality and integrity of transfers of information between these two entities. The invention relates, more particularly, to a refinement of the systems of Cryptography that puts calculations into an elliptical curve. The improvement allows, mainly, to reduce the times Calculation

Se conoce un protocolo de criptografía, utilizado, de modo más particular, para realizar un intercambio de claves protegido entre dos entidades. Éste es conocido con la denominación de "Intercambio de Claves de Diffie-Hellmann" o "ECDH". Su puesta en práctica necesita la utilización de un grupo en el sentido matemático del término. Una curva elíptica del tipo:A cryptography protocol is known, used, more particularly, to perform an exchange of Protected keys between two entities. This one is known with the denomination of "Exchange of Keys of Diffie-Hellmann "or" ECDH ". Its setting in practice needs the use of a group in the sense term mathematician. An elliptical curve of the type:

y^{2} + xy = x^{3} + \alpha x^{2} + \betay 2 + xy = x 3 +? x2 + \beta

puede constituir un grupo utilizable en un procedimiento de este tipo.it can constitute a usable group in a procedure of this kind.

Se sabe que si P = (x, y) pertenece a la curva elíptica E, puede definirse un "producto" o "multiplicación escalar" del punto P de E por un entero m. Esta operación se define como sigue:It is known that if P = (x, y) belongs to the curve elliptical E, you can define a "product" or "multiplication scale "from point P of E by an integer m. This operation is define as follows:

[m] \ P = P + P + P +...+ P \ (m \ veces)[m] \ P = P + P + P + ... + P \ (m \ times)

Se sabe que en un algoritmo del tipo "ECDH", se utiliza la multiplicación por 2 de un punto P elegido de una curva elíptica de este tipo. Esta operación se denomina "doblamiento de punto" y se inscribe en un proceso iterativo de doblamiento-y-adición. Una multiplicación por 2 de este tipo requiere tiempo.It is known that in an "ECDH" type algorithm, the multiplication by 2 of a point P chosen from a elliptical curve of this type. This operation is called "point bending" and is part of an iterative process of  bending-and-adding. A multiplication by 2 of this type requires time.

La parte más lenta del protocolo de Intercambio de Claves de Diffie-Hellmann (ECDH) es la multiplicación de un punto de la curva no conocido de antemano por un escalar aleatorio. Se consideran aquí solamente las curvas elípticas definidas en un cuerpo de característica 2; ésta es una elección extendida para las implementaciones, porque la adición en un cuerpo de este tipo corresponde a la operación "o exclusivo".The slowest part of the Exchange protocol of Keys of Diffie-Hellmann (ECDH) is the multiplication of a curve point not known in advance by a random scalar. Only curves are considered here ellipticals defined in a body of characteristic 2; this is one extended choice for implementations, because the addition in such a body corresponds to the operation "or exclusive".

Se sabe que la multiplicación por un escalar puede acelerarse en las curvas definidas en un cuerpo de baja cardinalidad utilizando el morfismo de Frobenius. Pueden elegirse las curvas de modo que ninguno de los ataques conocidos se aplique a ellas. Sin embargo, es preferible, eventualmente, al menos en el plano del principio, poder elegir la curva que se quiere utilizar en una clase de curvas tan general como sea posible. El método descrito en la invención se aplica, en su versión más rápida, a la mitad de las curvas elípticas. Además, desde un punto de vista criptográfico, este método es el mejor. Antes de dar el principio del método, se recuerdan los conceptos básicos.It is known that multiplication by a scalar can be accelerated in the curves defined in a low body cardinality using the morphism of Frobenius. Can be chosen the curves so that none of the known attacks apply to they. However, it is preferable, if any, at least in the plane of the principle, to be able to choose the curve you want to use in a class of curves as general as possible. The method described in the invention applies, in its fastest version, to the half of the elliptical curves. Also, from a point of view Cryptographic, this method is the best. Before giving the beginning of the method, the basics are remembered.

Como ilustración simplemente, se toma la curva elíptica (E) representable geométricamente definida en el conjunto R de los números reales por la ecuación y^{2} + y = x^{3} - x^{2}, representada en la figura 1 en la que una línea horizontal representa un número entero m, una línea vertical representa un número entero n y cada intersección de tales líneas horizontal y vertical representa el par de coordenadas enteras (m, n).As an illustration simply, the curve is taken Elliptical (E) geometrically representable in the set R of the real numbers by the equation y2 + + = x3 - x 2, represented in Figure 1 in which a horizontal line represents an integer m, a vertical line represents a integer n and each intersection of such horizontal lines and vertical represents the pair of integer coordinates (m, n).

(E) pasa por un número finito de puntos de coordenadas enteras, y cualquier secante a (E) procedente de un punto de este tipo corta a (E) en 2 puntos, eventualmente confundidos (caso de las tangentes a la curva).(E) goes through a finite number of points of whole coordinates, and any secant to (E) coming from a point of this type cuts to (E) in 2 points, eventually confused (case of the tangents to the curve).

La operación de adición entre dos cualesquiera de estos puntos A y B se define del modo siguiente: sea B_{1} el punto en que la recta (AB) corta a (E); la vertical de B_{1} corta a (E) en C = A + B.The addition operation between any two of these points A and B are defined as follows: let B_ {1} be the point where the line (AB) cuts to (E); the vertical of B_ {1} cut to (E) at C = A + B.

En el caso particular en que (AB') sea tangente a (E), C' es la suma buscada.In the particular case where (AB ') is tangent to (E), C 'is the sum sought.

El punto O, "intersección de todas las verticales", se denomina punto en el infinito de (E) y es el elemento neutro de la adición así definida, puesto que aplicando la construcción geométrica de definición de la adición, se tiene: A + O = O + A = A.Point O, "intersection of all vertical, "is called the point at the infinity of (E) and is the neutral element of the addition so defined, since applying the geometric construction of definition of the addition, you have: A + O = O + A = A.

El doblamiento de A, indicado por [2]A se define como: A + A, es, por tanto, el punto B', siendo la recta (Ax) tangente en A a (E).The doubling of A, indicated by [2] A is defined as: A + A, is therefore the point B ', being the line (Ax) tangent in A to (E).

Aplicando al punto B' la construcción de adición de A, se obtendría el punto [3]A y así sucesivamente: ésta es la definición del producto [n]A de un punto por un entero.Applying to point B 'the addition construction of A, point [3] A and so on would be obtained: this is the product definition [n] A of a point by a whole.

La presente invención se refiere, de hecho, a una familia de curvas elípticas, no representables geométricamente, pero definidas como sigue:The present invention relates, in fact, to a family of elliptical curves, not geometrically representable, but defined as follows:

Sea n un entero dado, F_{2^{n}} el cuerpo de 2^{n} elementos, y \overline{F}_{2^{n}}, su cierre algebraico. Sea O el punto en el infinito. Se denomina curva elíptica E no supersingular definida en F_{2^{n}}, el conjunto:Let n be a given integer, F_ {2} {n} the body of 2 ^ n elements, and \ overline {F} 2 n, its algebraic closure. Let O be the point at infinity. It is called elliptic curve E no supersingular defined in F_ {2 ^ {n}}, the set:

E = {(x,y) \in F_{2^{\ddot{n}}} x F_{2^{\ddot{n}}} ly^{2} + xy = x^{3} + \alpha x^{2} + \beta} \cup {O} \alpha, \beta \in F_{2^{n}}, \beta \neq 0E = {(x, y) \ in F_ {2 ^ {\ ddot {n}} x F_ {2 ^ {\ ddot {n}}} ly2 + xy = x3 +? x2 + \ beta} \ cup {O} \ alpha, \ beta \ in F_ {2}, \ beta \ neq 0

Los elementos de E se denominan, habitualmente, "puntos". Es bien conocido que E puede estar dotado de una estructura de grupo abeliano tomando el punto en el infinito como elemento neutro. En lo que sigue, se considera el subgrupo finito de los puntos racionales de E, definido por:The elements of E are usually called "points". It is well known that E may be endowed with a abelian group structure taking the point at infinity as neutral element. In what follows, the finite subgroup is considered of the rational points of E, defined by:

E(F_{2^{n}}) = {(x,y) \in F_{2^{n}} X F_{2^{n}} ly^{2} + xy = x^{3} + \alpha x ^{2} + \beta} \cup {O} \alpha, \beta \in F_{2^{n}}, \beta \neq 0E (F_2n) = {(x, y) \ in F_ {2} n X F_ {2 ^ {n}} ly2 + xy = x3 + α x 2 + \ beta} \ cup {O} \ alpha, \ beta \ in F_ {2}, \ beta \ neq 0

Siendo N el conjunto de los enteros naturales, para cualquier m \in N, se define en E la aplicación "multiplicación por m" por:N being the set of natural integers, for any m \ in N, the application is defined in E "multiplication by m" by:

[m] : E \rightarrow E[m]: E \ rightarrow AND

P \rightarrow P + ..... + P \ (m \ veces) \ y \ \forall P \in E :[O]P = OP \ rightarrow P + ..... + P \ (m \ times) \ y \ \ forall P \ in E: [O] P = OR

E[m] indica el núcleo de esta aplicación. Los puntos del grupo E[m] se denominan los puntos de torsión m de E. La estructura de grupo de los puntos de torsión m es bien conocida.E [m] indicates the core of this application. The points of group E [m] are called the torsion points m of E. The group structure of the torsion points m is fine known.

Limitándose al caso en que m es una potencia de 2, se tiene:Limiting itself to the case where m is a power of 2, you have:

\forall k \in N:E[2^{k}] \cong Z/2^{k}Z\ forall k \ in N: E [2k] \ cong Z / 2k Z

donde Z es el conjunto de los enteros relativos.where Z is the set of integers relative.

Como E(F_{2^{n}}) es un subgrupo finito de E, existe k'\geq 1 tal que E[2^{k}] está contenido en E(F_{2^{n}}) si, y sólo si, k \leq k'. Limitándose a las curvas elípticas E para las cuales k' = 1, la estructura de E(F_{2^{n}}) es:Since E (F_ {n}}) is a finite subgroup of E, there is k '? 1 such that E [2k] is contained in E (F_ {n}}) if, and only if, k \ leq k '. Limited to elliptic curves E for which k '= 1, the structure of E (F 2 n) is:

E(F_{2^{n}}) = G \ x \ \{O, T_{2}\}E (F_ {n}}) = G \ x \ \ {Or, T_ {2} \}

donde G es un grupo de orden impar y T_{2} designa el punto único de orden 2 de E. Se dice que una curva de este tipo tiene una torsión 2 mínima.where G is an odd order group and T_ {2} designates the single point of order 2 of E. It is said that a curve of this guy has a twist 2 minimum

Se está ahora en condiciones de aplicar el objeto de la invención. La multiplicación por dos, no es inyectiva cuando ésta está definida en E o E(F_{2^{n}}), porque ésta tiene por núcleo: E[2] = {O, T_{2}).You are now able to apply the object of the invention. Multiplication by two is not injective when it is defined in E or E (F_ {2 ^ {n}}), because it has per core: E [2] = {O, T_ {2}).

Por otra parte, si se reduce el ámbito de la invención de la multiplicación por 2 a un subgrupo de orden impar G \subset E(F_{2^{n}}), la multiplicación por 2 se hace biyectiva.On the other hand, if the scope of the invention of multiplication by 2 to an odd order subgroup G  \ subset E (F_ {2 ^ {n}}), multiplication by 2 is done Bijective

Resulta, así, que la multiplicación por 2 admite en este subgrupo una aplicación inversa que se denominará división por 2:It turns out, thus, that multiplication by 2 admits in this subgroup an inverse application that will be called division For 2:

[1/2]: G \rightarrow G[1/2]: G \ rightarrow G

P \rightarrow Q \ tal \ que: [2]Q = PP \ rightarrow Q \ such \ that: [2] Q = P

[1/2]P indica el punto de G al cual la aplicación de doblamiento hace corresponder el punto P.[1/2] P indicates the point of G at which the bending application corresponds to the point P.

Para cualquier k \geq 1, se escribe:For any k \ geq 1, it is written:

\left[\frac{1}{2^{k}}\right]=\left[\frac{1}{2}\right]o\left[\frac{1}{2}\right]o . ........ o\left[\frac{1}{2}\right]\ left [\ frac {1} {2 ^ {k}} \ right] = \ left [\ frac {1} {2} \ right] or \ left [\ frac {1} {2} \ right] or . ........ o \ left [\ frac {1} {2} \ right]

Para representar k composiciones de la aplicación de división por 2 consigo mismo.To represent k application compositions of division by 2 with himself.

De modo general, la invención se refiere, por tanto, a un procedimiento de criptografía puesto en práctica entre dos entidades que intercambian las informaciones a través de un canal de comunicación no protegido, del tipo que comprende, al menos, una fase operatoria consistente en multiplicar un punto de orden impar de una curva elíptica no supersingular por un entero, en coordenadas afines, caracterizado porque una fase operatoria de este tipo comprende adiciones y divisiones por dos de puntos de la citada curva elíptica; donde la adición de puntos es una operación conocida, y la división por dos de un punto P se define como el punto único D de orden impar tal que [2]D = P, estando indicado un punto de este tipo porIn general, the invention relates, by therefore, to a cryptography procedure implemented between two entities that exchange information through a unprotected communication channel, of the type comprising, at less, an operational phase consisting of multiplying a point of odd order of an elliptic curve not supersingular for an integer, in related coordinates, characterized in that an operational phase of This type includes additions and divisions by two points of the cited elliptic curve; where the addition of points is an operation known, and the division by two of a point P is defined as the single point D of odd order such that [2] D = P, being indicated such a point by

\left[\frac{1}{2}\right]P\ left [\ frac {1} {2} \ right] P

y la operación de división por 2, por:and the division operation by 2, by:

\left[\frac{1}{2}\right]\ left [\ frac {1} {2} \ right]

La aplicación de división por 2 es interesante para la multiplicación escalar de un punto de una curva elíptica por la razón siguiente: si se trabaja en coordenadas afines, es posible reemplazar todas las multiplicaciones de punto por 2 de una multiplicación escalar por divisiones de punto por 2.The application of division by 2 is interesting for the scalar multiplication of a point of an elliptic curve for the following reason: if you work in related coordinates, it is possible to replace all point multiplications by 2 of a scalar multiplication by point divisions by 2.

La división por 2 de un punto es mucho más rápida de calcular que su multiplicación por 2. Desde un punto de vista criptográfico, es bueno tener que elegir entre el mayor número de curvas posible, y se tiene costumbre de utilizar una curva en la cual la torsión 2 de E(F_{2^{n}}) es mínima o isomórfica en Z/4Z. Para un cuerpo F_{2^{n}} dado, las curvas elípticas de torsión 2 mínima constituyen exactamente la mitad del conjunto de curvas elípticas definidas en F_{2^{n}}. Por esta razón, aunque el método descrito no sea totalmente general, se aplica, en su versión más rápida, a una gran parte de las curvas interesantes en criptografía. Ésta es siempre aplicable en el caso en que los elementos del cuerpo están representados en una base normal. En el caso de una base polinómica, el espacio de memoria requerido es del orden de O(n^{2}) bits.The division by 2 of a point is much faster of calculating that its multiplication by 2. From a point of view cryptographic, it is good to have to choose between the largest number of possible curves, and it is customary to use a curve in the which torsion 2 of E (F 2 n) is minimal or isomorphic in Z / 4Z. For a given body F 2 n, the elliptic curves of minimum twist 2 constitute exactly half of the set of elliptic curves defined in F 2 n. For this reason, although the described method is not totally general, it is applied, in its faster version, to a large part of the interesting curves in cryptography. This is always applicable in the case where Body elements are represented on a normal basis. In the In the case of a polynomial base, the required memory space is order of O (n2) bits.

A continuación se dan algunos ejemplos, refiriéndose a los dibujos anejos, en los cuales:Next, there are some examples, referring to the attached drawings, in which:

- la figura 1 es un gráfico que ilustra una curva elíptica muy particular pero representable geométricamente, que permite aclarar las operaciones elementales puestas en práctica en el marco de la invención, habiéndose explicado anteriormente estas operaciones;- Figure 1 is a graph illustrating a curve very particular elliptic but geometrically representable, that allows to clarify the elementary operations implemented in the framework of the invention, having explained previously these operations;

- la figura 2 es un esquema que ilustra intercambios de informaciones de acuerdo con la invención, entre dos entidades;- Figure 2 is a diagram illustrating information exchanges according to the invention, between two entities;

- las figuras 3 a 6 son organigramas que explican algunas aplicaciones de acuerdo con la invención; y- Figures 3 to 6 are organizational charts that explain some applications according to the invention; Y

- la figura 7 es un esquema de bloques de otro esquema de intercambio de informaciones entre dos entidades A y B, susceptible de poner en práctica un proceso de criptogrfía de acuerdo con la invención.- Figure 7 is a block diagram of another information exchange scheme between two entities A and B, liable to implement a cryptography process of according to the invention.

Se va a mostrar cómo calcular [1/2]P \in G a partir de P \in G. Después, se mostrará cómo reemplazar los doblamientos de puntos por divisiones por 2 para ejecutar una multiplicación por un escalar.It will show how to calculate [1/2] P \ in G from P \ in G. Next, it will show how to replace the point doubling by divisions by 2 to execute a multiplication by a scalar.

Se utilizará la representación afín habitual de un punto: P = (x,y) y la representación: (x, \lambda_{p}) con \lambda_{p} = x + y/x.The usual related representation of a point: P = (x, y) and the representation: (x, \ lambda_ {p}) with \ lambda_ {p} = x + y / x.

De la segunda representación, se deduce y = x(x +\lambda_{p}) que solamente utiliza una multiplicación.From the second representation, it follows y = x (x + \ lambda_ {p}) that only uses one multiplication.

Procediendo así, para multiplicar un punto por un escalar, se ahorran las multiplicaciones calculando los resultados con la ayuda de la representación (x,\lambda_{p}) y la coordenada de la representación afín se determina solamente al final del cálculo.Proceeding like this, to multiply a point by a scale, multiplications are saved by calculating the results with the help of the representation (x, \ lambda_ {p}) and the coordinate of the related representation is determined only at end of calculation

La división por dos de un punto P se obtiene del modo siguiente:The division by two of a point P is obtained from following way:

Sea calcular [1/2]P a partir de P. Se consideran para esto los dos puntos de E:Let be calculate [1/2] P from P. Se consider for this the two points of E:

P = (x,y) = (x, x \ (x + \lambda_{p}))P = (x, y) = (x, x \ (x + λ_ {p}))

yY

Q = (u, v) = (u, u \ (u + \lambda_{Q}))Q = (u, v) = (u, u \ (u + \ lambda_ {Q}))

Tales que: [2]Q = PSuch that: [2] Q = P

Las fórmulas de multiplicación por 2 conocidas danKnown multiplication formulas by 2 give

(1)\lambda_{Q} = u + v/u(1) \ lambda_ {Q} = u + v / u

(2)x = \lambda_{Q}^{2} + \lambda_{Q} + \alpha(2) x = \ lambda_ {Q} 2 + \ lambda_ {Q} + α

(3)y = (x + u) \lambda_{Q} + x + v(3) y = (x + u) \ lambda_ {Q} + x + v

Multiplicando (1) por u y llevando el valor de v así obtenido a (3), este sistema pasa a ser:Multiplying (1) by u and carrying the value of v thus obtained at (3), this system becomes:

v = u (u + \lambda_{Q})v = u (u + \ lambda_ {Q})

\lambda_{Q}^{2} + \lambda_{Q} = \alpha + xλ Q 2 + \ lambda_ {Q} = \ alpha + x

y = (x + u) \lambda_{Q} + x + u^{2} + u \lambda_{Q} = u^{2} + x(\lambda_{Q} + 1)y = (x + u) \ lambda_ {Q} + x + u2 + u \ lambda_ {Q} = u2 + x (\ lambda_ {Q} + one)

o, puesto que y = x(x + \lambda_{p}):or, since y = x (x + \ lambda_ {p}):

(i)\lambda_{Q}^{2} + \lambda_{Q} = \alpha + x(i) \ lambda_ {Q} 2 + \ lambda_ {Q} = \ alpha + x

(ii)u^{2} = x(\lambda_{Q} + 1) + y = (\lambda_{Q} + \lambda_{p} + x + 1)(ii) u2 = x (\ lambda_ {Q} + 1) + y = (\ lambda_ {Q} + \ lambda_ {p} + x + one)

(iii)v = u \ (u + \lambda_{Q})(iii) v = u \ (u + \ lambda_ {Q})

Partiendo de P = (x,y) = (x, x(x + \lambda_{p})) en coordenadas afines o en representación (x, \lambda_{p}), este sistema de ecuaciones determina los dos puntos:Starting from P = (x, y) = (x, x (x + \ lambda_ {p})) in related coordinates or in representation (x, \ lambda_ {p}), this system of equations determines the two points:

[1/2]P\in G y [1/2]P + T_{2} \in E(F_{2^{n}}) \setminus G[1/2] P \ in G and [1/2] P + T_ {2} \ in E (F_ {2 ^ {n}}) \ setminus G

que dan P por multiplicación por 2. La propiedad que sigue permite distinguirla.that give P by multiplication by 2. The property which follows allows distinguish it

Sea E una curva elíptica de torsión 2 mínima, y P \in E(F_{2^{n}}) = G x {O, T_{2}} uno de sus elementos de orden impar.Let E be an elliptic curve of minimum torsion 2, and P \ in E (F_ {2}}) = G x {O, T_ {2}} one of its elements of odd order.

Sea Q \in {[1/2]P, [1/2]P + T_{2}} y Q_{1} uno de los dos puntos de E tales que [2]Q_{1} = Q.Let Q \ in {[1/2] P, [1/2] P + T_ {2}} and Q_ {1} one of the two points of E such that [2] Q_ {1} = Q.

Se tiene la condición necesaria y suficiente:You have the necessary and sufficient condition:

(a)Q + [1/2]P \Leftrightarrow Q1 \in E(F_{2^{n}})(a) Q + [1/2] P \ Leftrightarrow Q1 \ in E (F 2 n)

Se deduce que es posible probar si Q = [1/2]P aplicando las fórmulas (i), (ii) y (iii) a Q y verificando si uno de los puntos obtenidos pertenece a E(F_{2^{n}}).It follows that it is possible to test if Q = [1/2] P applying formulas (i), (ii) and (iii) to Q and verifying if one of the points obtained belongs to E (F 2 n).

Este procedimiento puede extenderse a una curva elíptica arbitraria E (F_{2^{n}}) = G x E [2^{k}]. Para esto se aplican k veces las fórmulas (i), (ii) y (iii): la 1ª vez a Q, para, para obtener Q_{1}, tal que [2]Q_{1} = Q, la iésima vez a Q_{i-1} para obtener un punto Q_{i}, tal que [2]Q_{i} = Q_{i-1}. El punto resultado Q_{k} será de la formaThis procedure can extend to a curve arbitrary elliptical E (F 2 n) = G x E [2 k]. For this I know formulas (i), (ii) and (iii) apply k times: the 1st time to Q, for, to obtain Q_ {1}, such that [2] Q_ {1} = Q, the ith time to Q_ {i-1} to get a point Q_ {i}, such than [2] Q_ {i} = Q_ {i-1}. Point result Q_ {k} will be of the form

       \newpage\ newpage
    

\left[\frac{1}{2^{k+i}}\right]P + T_{2}\ left [\ frac {1} {2 ^ {k + i}} \ right] P + T_ {2}

si, y solamente si, Q = [1/2]P + T2, y será de la formayes, and only if, Q = [1/2] P + T2, and will be of the shape

\left[\frac{1}{2^{k+i}}\right]P + T_{2^{i}}\ left [\ frac {1} {2 ^ {k + i}} \ right] P + T_2i

con 0 \leq i \leq k si, y solamente si, Q = [1/2]P. Se tiene, por tanto, la condición necesaria y suficiente:with 0 \ leq i \ leq k if, and only if, Q = [1/2] P. There is, therefore, the necessary condition and enough:

Q = [1/2]P \Leftrightarrow Q_{k} \in E(F_{2^{n}})Q = [1/2] P \ Leftrightarrow Q_ {k} \ in E (F 2 n)

Este procedimiento es evidentemente largo si k es grande.This procedure is obviously long if k is big.

La relación (a) muestra que puede saberse si Q = [1/2]P o Q = [1/2]P + T_{2} observando si las coordenadas de Q_{1}, pertenecen a F_{2^{n}} o a un supercuerpo de F_{2}n. Como Q_{1} está determinado por las ecuaciones (i), (ii) y (iii), se tienen que estudiar las operaciones utilizadas en la resolución de estas ecuaciones que no son internas al cuerpo, pero tienen su resultado en un supercuerpo de F_{2^{n}}. El único caso posible es el de la resolución de la ecuación de 2º grado (i): se tiene que calcular, también, una raíz cuadrada para calcular la 1ª coordenada de Q_{1}, pero en característica 2 la raíz cuadrada es una operación interna al cuerpo. Se tiene, por tanto:The relationship (a) shows that one can know if Q = [1/2] P or Q = [1/2] P + T_ {2} observing if the coordinates of Q_ {1}, belong to F_ {2 ^ {}} or a superbody of F_ {n} n. Since Q_ {1} is determined by equations (i), (ii) and (iii), the operations used in the resolution of these equations that are not internal to the body, but they have their result in a superbody of F_ {2}. The only Possible case is the resolution of the 2nd degree equation (i): you also have to calculate a square root to calculate the 1st coordinate of Q_ {1}, but in characteristic 2 the square root It is an operation internal to the body. It has, therefore:

Q = (u, v) = [1/2]P \Leftrightarrow \exists\lambda\in F_{2^{n}}: \lambda^{2} + \lambda = \alpha + uQ = (u, v) = [1/2] P \ Leftrightarrow \ exists \ lambda \ in F_ {2 ^ {n}}: \ lambda2 + \ lambda = \ alpha + or

Esta condición necesaria y suficiente se escribe, también, puesto que la raíz cuadrada es interna al cuerpo:This necessary and sufficient condition is written, also, since the square root is internal to the body:

Q = (u, v) = [1/2]P \Leftrightarrow\exists\lambda\in F_{2^{n}}: \lambda^{2} + \lambda = \alpha^{2} + u^{2}Q = (u, v) = [1/2] P \ Leftrightarrow \ exists \ lambda \ in F_ {2 ^ {n}}: \ lambda2 + + lambda = α2 + u2

La relación precedente permite optimizar el algoritmo enunciado seguidamente en el caso en que el tiempo de cálculo de la raíz cuadrada no sea despreciable.The previous relationship allows to optimize the algorithm set forth below in the case where the time of Square root calculation is not negligible.

Para P \in G, las 2 soluciones de (i) son \lambda_{[1/2]P} y \lambda_{[1/2]P} + 1, y se deduce de (ii) que las 1^{as} coordenadas de los puntos asociados son u y (u +\surdx). Por tanto, puede deducirse un algoritmo que permite calcular [1/2]P del modo siguiente:For P \ in G, the 2 solutions of (i) are λ [1/2] P} and λ [1/2] P} + 1, and deduces from (ii) that the 1 as coordinates of the associated points they are u and (u + \ surdx). Therefore, an algorithm can be deduced that allows to calculate [1/2] P as follows:

Si F_{2^{n}} es un cuerpo finito de 2^{n} elementos, E(F_{2^{n}}) es el subgrupo de una curva elíptica E, definido por:If F 2 n is a finite body of 2 n elements, E (F_ {2}}) is the subgroup of a curve elliptical E, defined by:

E(F_{2^{n}}) = \{(x,y) \in F_{2^{n}} \ X \ F_{2^{n}} \ ly^{2} + xy = x^{3} + \alpha x^{2} + \beta\} \cup \{O\} \alpha, \beta\in F_{2^{n}}, \beta \neq 0E (F_2n) = \ {(x, y) \ in F_ {2 ^ {n}} \ X \ F_ {2 ^ {n}} \ ly ^ {2} + xy = x ^ {3} + α x 2 + \ beta \} \ cup \ {O \} \ alpha, \ beta \ in F_ {2 ^ n}, \ beta \ neq 0

y E[2^{k}] es el conjunto de los puntos P de la citada curva elíptica tales que P, adicionado 2^{k} veces a sí mismo da el elemento neutro O, con k entero superior o igual a 1, entonces, un punto P = (x, y) de la citada curva elíptica da por la citada división por dos el puntoand E [2k] is the set of points P of said elliptic curve such that P, added 2k times itself gives the neutral element O, with k integer greater than or equal to 1, then, a point P = (x, y) of said elliptic curve gives by the said division by two the point

\left[\frac{1}{2}\right]P = (u_{0}, v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

de la citada curva elíptica, obtenido efectuando las operaciones siguientes ilustradas por el organigrama de la figura 3:of said elliptic curve, obtained by effecting the following operations illustrated by the organization chart of the figure 3:

\bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x

\bullet se calcula un segundo valor u_{0}^{2} tal que u_{0}^{2} = x(\lambda_{0}+ 1) + ya second value is calculated u_ {0} 2 such that u_ {0} 2 = x (\ lambda_ {0} + 1) + y

\bullet si k vale 1, se busca si la ecuación: \lambda^{2}+\lambda = \alpha^{2} + u_{o}^{2} tiene soluciones en F_{2^{n}},If k is worth 1, it is searched if the equation: [lambda] 2 + [lambda] = [alpha] 2 + u_ {2} has solutions in F 2 n,

\bullet en caso afirmativo se calcula la citada división por dos por:If so, the abovementioned is calculated Division by two by:

u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

v_{0} = u_{0} \ (u_{0} + \lambda_{0})v_ {0} = u_ {0} \ (u_ {0} + \ lambda_ {0})

yY

\left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

\bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente;? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation;

\bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:

buscar un valor \lambda_{i}, tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{i-1}find a value \ lambda_ {i}, such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {i-1}

calcular después el valor u^{2}_{i} tal que u^{2}_{i} = u_{i-1} (\lambda_{i} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u 2 i such that u 2 = u_ {i-1} (\ lambda_ {i} + \ lambda_ {i-1} + u_ {i-1} + 1)

incrementando i a partir de i = 1 hasta obtener el valor u_{k-1}^{2}increasing i from i = 1 until the value u_ {k-1} 2 is obtained

\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2}^{n}? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 it has solutions in F2 {n}

\bullet en caso afirmativo se calcula la división por dos por:If so, the Division by two by:

u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

v_{0} = u_{0} (u_{0} + \lambda_{0})v_ {0} = u_ {0} (u_ {0} + \ lambda_ {0})

yY

\left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

\bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation.

Si se elige representar el puntoIf you choose to represent the point

\left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

de la citada curva elíptica por (u_{0}, \lambda_{0}) con \lambda_{0} = u_{0} + v_{0}/u_{0}, entonces el algoritmo es de acuerdo con el organigrama de la figura 4, en el que:of said elliptic curve by (u_ {0}, \ lambda_ {0}) with \ lambda_ {0} = u_ {0} + v_ {0} / u_ {0}, then the algorithm is according to the flow chart of the figure 4, in the what:

\bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x

\bullet se calcula un segundo valor u^{2}_{0} tal que u_{0}^{2} = x(\lambda_{0} + 1) + ya second value is calculated u 2 0 such that u 0 2 = x (λ 0 + 1) + y

\bullet si k vale 1, se busca si la ecuación: \lambda^{2} + \lambda = \alpha^{2} + u_{0}^{2} tiene soluciones en F_{2^{n}},If k is worth 1, it is searched if the equation: λ 2 + λ = α 2 + u 0 {2} has solutions in F 2 n,

\bullet en caso afirmativo se calcula la citada división por dos porIf so, the abovementioned is calculated division by two by

u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

y:Y:

\left[\frac{1}{2}\right]P = (u_{0}, \lambda_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda_ {0})

\bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente;? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation;

\bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:

buscar un valor \lambda_{i} tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{i-1}find a value \ lambda_ {i} such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {i-1}

calcular después el valor u_{i}^{2} tal que u_{i}^{2} = u_{i-1}(\lambda_{1} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u_ {2} such that u_ {2} = u_ {i-1} (\ lambda_ {1} + \ lambda_ {i-1} + u_ {i-1} + one)

incrementando i a partir de i = 1 hasta obtener el valor u^{2}_{k-1}increasing i from i = 1 until the value u 2 k-1 is obtained

\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2}^{n},? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 it has solutions in F 2 n,

\bullet en caso afirmativo se calcula la citada división por dos por:If so, the abovementioned is calculated Division by two by:

u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

yY

\left[\frac{1}{2}\right]P = (u_{0},\lambda_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda_ {0})

\bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation.

Si se elige representar el punto P = (x, y) por (x, \lambda_{p}) con \lambda_{p} = x+y/x que da por la citada división por dos el puntoIf you choose to represent the point P = (x, y) by (x, \ lambda_ {p}) with \ lambda_ {p} = x + y / x given by the cited division by two point

\left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

de la curva elíptica, entonces el algoritmo es de acuerdo con el organigrama de la figura 5, en el que:of the elliptic curve, then the algorithm is according to the flow chart of figure 5, in the what:

\bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x

\bullet se calcula un segundo valor u^{2}_{0} tal que u_{0}^{2} = x(\lambda_{0} + \lambda_{p} + x + 1)a second value is calculated u2 {0} such that u_ {2} = x (\ lambda_ {0} + \ lambda_ {p} + x + 1)

\bullet si k vale 1, se busca si la ecuación: \lambda^{2} + \lambda = \alpha^{2} + u_{0}^{2} tiene soluciones en F_{2}^{n},If k is worth 1, it is searched if the equation: λ 2 + λ = α 2 + u 0 {2} has solutions in F 2 n,

\bullet en caso afirmativo se calcula la citada división por dos por:If so, the abovementioned is calculated Division by two by:

u_{0}=\sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

v_{0} = u_{0} (u_{0} + \lambda _{0})v_ {0} = u_ {0} (u_ {0} + λ 0)

yY

\left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

\bullet en caso negativo, se añade x al citado segundo valor u^{2}_{0} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente;? If not, x is added to the aforementioned second value u 2 0 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation;

\bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:

buscar un valor \lambda_{i}, tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{i-1}find a value \ lambda_ {i}, such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {i-1}

calcular después el valor u^{2}_{i} tal que u^{2}_{i} = u_{i-1} (\lambda_{i} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u 2 i such that u 2 = u_ {i-1} (\ lambda_ {i} + \ lambda_ {i-1} + u_ {i-1} + 1)

incrementando i a partir de i = 1 hasta obtener el valor u^{2}_{k-1}increasing i from i = 1 until the value u 2 k-1 is obtained

\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2}^{n}? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 it has solutions in F2 {n}

\bullet en caso afirmativo se calcula la división por dos por:If so, the Division by two by:

u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

v_{0} = u_{0} (u_{0} + \lambda_{0})v_ {0} = u_ {0} (u_ {0} + \ lambda_ {0})

yY

\left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

\bullet en caso negativo, se añade x al citado segundo valor u^{2}_{0} y se añade 1 al citado primer valor \lambda_{0} para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u 2 0 and 1 is added to said first value \ lambda_ {0} to calculate the said division by two as in the previous operation.

Finalmente, si se elige representar el punto P = (x, y) por (x, \lambdap) con \lambda_{p} = x + y/x que da la citada división por dos el puntoFinally, if you choose to represent the point P = (x, y) by (x, \ lambdap) with \ lambda_ {p} = x + y / x giving the cited division by two point

\left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0})

de la curva elíptica representado por (u_{0}, \lambda_{0}) con \lambda_{0} = u_{0} + v_{0}/u_{0}, entonces el algoritmo es de acuerdo con el organigrama de la figura 6, en el que:of the elliptic curve represented by (u_ {0}, \ lambda_ {0}) with \ lambda_ {0} = u_ {0} + v_ {0} / u_ {0}, then the algorithm is according to the flow chart of the figure 6, in the what:

\bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x

\bullet se calcula un segundo valor u_{0}^{2} tal que u_{0}^{2} = x(\lambda_{0} + \lambda_{p} + x + 1)a second value is calculated u_ {0} 2 such that u_ {0} 2 = x (\ lambda_ {0} + \ lambda_ {p} + x + 1)

\bullet si k vale 1, se busca si la ecuación: \lambda^{2} + \lambda = \alpha^{2} + u_{0}^{2} tiene soluciones en F_{2}^{n},If k is worth 1, it is searched if the equation: λ 2 + λ = α 2 + u 0 {2} has solutions in F 2 n,

en caso afirmativo se calcula la citada división por dos por:if so, the said division is calculated by two for:

u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

yY

\left[\frac{1}{2}\right]P = (u_{0}, \lambda _{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda 0)

\bullet en caso negativo, se añade x al citado segundo valor u^{2}_{0} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente;? If not, x is added to the aforementioned second value u 2 0 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation;

\bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:

buscar un valor \lambda_{i}, tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{i-1}find a value \ lambda_ {i}, such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {i-1}

calcular después el valor u^{2}_{i} tal que u^{2}_{i} = u_{i-1} (\lambda_{i} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u 2 i such that u 2 = u_ {i-1} (\ lambda_ {i} + \ lambda_ {i-1} + u_ {i-1} + 1)

incrementando i a partir de i = 1 hasta obtener el valor u^{2}_{k-1}increasing i from i = 1 until the value u 2 k-1 is obtained

\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2}^{n}? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 it has solutions in F2 {n}

\bullet en caso afirmativo se calcula la división por dos por:If so, the Division by two by:

u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}}

y:Y:

\left[\frac{1}{2}\right]P = (u_{0}, \lambda _{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda 0)

\bullet en caso negativo, se añade x al citado segundo valor u_{0} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u_ {0} and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation.

Se va a describir ahora cómo efectuar rápidamente la prueba, la resolución de la ecuación de segundo grado, y el cálculo de la raíz cuadrada en el algoritmo de división de un punto por 2. Se considerarán los dos casos en base normal y polinómica.It will now be described how to effect quickly the proof, the resolution of the second degree equation, and the calculation of the square root in the division algorithm of a point by 2. The two cases will be considered on a normal basis and polynomial

Los resultados en base normal son conocidos. Puede considerarse F_{2^{n}} como espacio vectorial de n dimensiones en F_{2}. En una base normal, un elemento del cuerpo está representado por:The results on a normal basis are known. F_ {2 ^ n} can be considered as a vector space of n dimensions in F_ {2}. On a normal basis, an element of the body It is represented by:

x = \sum\limits_{i = 0}^{n-1}x_{i} \ \beta^{2^{i}}

\hskip4cm
x_{i}\in\{0,1\}x = \ sum \ limits_ {i = 0} ^ {n-1} x_ {i} \ \ beta ^ {2 ^ {}}
 \ hskip4cm 
x_ {i} \ in \ {0,1 \}

donde \beta\in F_{2^{n}}, se elige tal que: {\beta, \beta^{2}, ..., \beta^{2n-1}} es una base F_{2^{n}}. En una base normal, la raíz cuadrada se calcula por un desplazamiento circular izquierdo, y la elevación al cuadrado por un desplazamiento circular derecho. Los tiempos de cálculo correspondientes son, por tanto, despreciables.where \ beta \ in F_ {2}, is chosen such that: {?,? 2, ...,? 2n-1} is a base F_ {n}. On a normal basis, the square root is calculates by a left circular displacement, and the elevation at square by a right circular displacement. The times of Corresponding calculations are therefore despicable.

Si la ecuación de segundo grado: \lambda^{2} + \lambda = x tiene soluciones en F_{2^{n}}, una solución viene dada, entonces, por:If the second degree equation: λ2 + \ lambda = x has solutions in F_ {2}, a solution comes given, then, by:

\lambda = \sum\limits_{i = 1}^{n-1}\lambda_{i} \ \beta^{2^{i}}

\hskip0,5cm
con: \lambda_{i} = \sum\limits_{k=1}^{i} x_{i}
\hskip1cm
con \ 1\leq i \leq n - 1\ lambda = \ sum \ limits_ {i = 1} ^ {n-1} \ lambda_ {i} \ \ beta ^ {2 ^ {}}
 \ hskip0,5cm 
with: \ lambda_ {i} = \ sum \ limits_ {k = 1} ^ {i} x_ {i}
 \ hskip1cm 
with \ 1 \ leq i \ leq n - 1

El tiempo de cálculo de \lambda es despreciable frente al tiempo de cálculo de una multiplicación o de una inversión dentro del cuerpo. Como el tiempo de cálculo de una solución de la ecuación de segundo grado es despreciable, puede efectuarse la prueba del modo siguiente: se calcula un candidato \lambda a partir de x y se prueba si \lambda^{2} + \lambda = x. Si este no es el caso, la ecuación no tiene solución en F_{2^{n}}.The calculation time of λ is negligible versus the calculation time of a multiplication or an investment inside the body As the calculation time of a solution of the second degree equation is negligible, the test as follows: a candidate is calculated? starting from x and testing if λ 2 + λ = x. If this this is not the case, the equation has no solution in F_ {2}.

En base polinómica, se utiliza la representación:On a polynomial basis, the representation:

x = \sum\limits_{i = 0}^{n-1}x_{i} \ T^{i}x = \ sum \ limits_ {i = 0} ^ {n-1} x_ {i} \ Ti

con x_{i} \in {0,1}. La raíz cuadrada de x puede calcularse almacenando el elemento \surdT si se observa que:with x_ {i} \ in {0,1}. The square root of x can be calculated by storing the element \ surdT if observed what:

- en un cuerpo de característica 2, la raíz cuadrada es un morfismo del cuerpo,- in a characteristic body 2, the root square is a morphism of the body,

\sqrt{\sum_{i \ par} x_{i}T^{i}} = \sum_{i \ par} x_{i} T^{\tfrac{i}{2}}\ sqrt {\ sum_ {i \ par} x_ {i} T ^} = \ sum_ {i \ par} x_ {i} T ^ {\ tfrac {i} {2}}

Reagrupando en x las potencias pares e impares de T y tomando la raíz cuadrada, se llega a:Regrouping in x the odd and even powers of T and taking the square root, you get to:

\sqrt{x} = \sum\limits_{i \ impar} x_{i} T^{\tfrac{i}{2}} + \sqrt{T} \sum\limits_{i \ impar} x_{i} T^{\tfrac{i-1}{2}}\ sqrt {x} = \ sum \ limits_ {i \ odd} x_ {i} T ^ {\ tfrac {i} {2}} + \ sqrt {T} \ sum \ limits_ {i \ odd} x_ {i} T ^ {\ tfrac {i-1} {2}}

así, para calcular una raíz cuadrada, basta con "reducir" dos vectores a la mitad, y ejecutar después una multiplicación de un valor precalculado por un elemento de longitud n/2. Por este motivo, el tiempo de cálculo de una raíz cuadrada en una base polinómica es equivalente a la mitad del tiempo de cálculo de una multiplicación dentro del cuerpo.so, to calculate a square root, just "reduce" two vectors in half, and then run one multiplication of a precalculated value by an element of length n / 2 For this reason, the calculation time of a square root in a polynomial base is equivalent to half the calculation time of a multiplication within Body.

Para la prueba y la resolución de la ecuación de segundo grado, se considera F_{2^{n}} como un espacio vectorial de n dimensiones en F_{2}. La aplicación F definida por:For testing and solving the equation of second grade, F_ {2} is considered as a vector space of n dimensions in F_ {2}. The F application defined by:

F: F_{2^{n}}\rightarrow F_{2^{n}}F: F_ {2 ^ {n}} \ rightarrow F_ {n}

\lambda\rightarrow\lambda^{2} + \lambda\ lambda \ rightarrow \ lambda2 + λ

es entonces un operador lineal de núcleo {0,1}.it is then a linear core operator {0,1}.

Para un x dado, la ecuación \lambda^{2} + \lambda = x tiene sus soluciones en F_{2^{n}} si, y sólo si, el vector x es la imagen de F. Im(F) es un subespacio de F_{2^{n}} de n-1 dimensiones. Para una base dada de F_{2^{n}} y el producto escalar correspondiente, existe un solo vector no trivial ortogonal a todos los vectores de Im(F). Sea w este vector. Se tiene:For a given x, the equation λ2 + λ = x has its solutions in F_ {2 ^ n} if, and only if, the vector x is the image of F. Im (F) is a subspace of F_2n of n-1 dimensions. For a given base of F_ {n}} and the corresponding scalar product, there is a single orthogonal nontrivial vector to all vectors of IM f). Let w be this vector. It has:

\exists\lambda\in F_{2^{n}} : \lambda^{2} + \lambda = x \Leftrightarrow x . w = 0\ exists \ lambda \ in F_ {2 ^ {n}}: λ 2 + λ = x \ Leftrightarrow x. w = 0

Así, la ejecución de la prueba puede hacerse adicionando las componentes de x a las cuales corresponden componentes de w iguales a 1. El tiempo de ejecución de esta prueba es despreciable.Thus, the execution of the test can be done adding the components of x to which they correspond w components equal to 1. The runtime of this test It is negligible.

Para la resolución de la ecuación de 2º grado: F(\lambda) = \lambda^{2} + \lambda = x en una base polinómica, se propone un método simple y directo que impone el almacenaje de una matriz de n x n. Para eso, se busca un operador lineal G tal que:For the resolution of the 2nd degree equation: F (λ) = λ 2 + λ = x on a base polynomial, a simple and direct method that imposes the storage of a matrix of n x n. For that, an operator is sought linear G such that:

\forall x \in Im(F):F(G(x)) = (G(x))^{2} + G(x) = x\ forall x \ in Im (F): F (G (x)) = (G (x)) 2 + G (x) = x

Sea \gamma \inF_{2}^{n} un vector tal que \gamma \notinIm(F) y se define G por:Let \ gamma \ inF_ {2} be a vector such that \ gamma \ notinIm (F) and G is defined by:

1010

Dado queGiven the

x = \sum_{i = 1}^{n - 1} x_{1} F(T^{i})\in Im(F)x = \ sum_ {i = 1} ^ {n - 1} x_ {1} F (Ti) \ in IM f)

entonces G(x) es solución de la ecuación de 2º grado Una implementación consiste en precalcular la matriz que representa G en la base {1, T, ....., T^{n-1}). En característica 2, la multiplicación de una matriz por un vector se reduce a la adición de las columnas de la matriz a las cuales corresponden una componente del vector igual a 1. Se deduce que este método de resolución de una ecuación de 2º grado consume como media n/2 adiciones dentro del cuerpo F_{2^{n}}.then G (x) is a solution to the equation 2nd grade An implementation consists of precalculating the matrix which represents G at the base {1, T, ....., T n-1). In characteristic 2, the multiplication of a matrix by a vector is reduced to the addition of the columns of the matrix to which a vector component corresponds equal to 1. It follows that this method of solving an equation 2nd grade consumes on average n / 2 additions within the body F_2n.

Se describe seguidamente la aplicación de los principios expuestos a la multiplicación escalar.The application of the principles exposed to scalar multiplication.

Sean P\in E (F_{2^{n}}) un punto de orden r impar, c un entero aleatorio y m la parte entera de log_{2} (r). Se calcula el producto [c]P de un punto por un escalar utilizando la aplicación de división de un punto por 2.Let P \ in E (F_ {2 ^ {n}}) be an order point r odd, c a random integer and m the integer part of log_ {2} (r). The product [c] P of a point is calculated by a scalar using the application of division of a point by 2.

Se demuestra que:It is shown that:

Para cualquier entero c, existe un número racional de la forma:For any integer c, there is a number rational form:

\sum\limits_{i = 0}^{m}\frac{c_{i}}{2^{i}}

\hskip0,5cm
c_{i} = \in\{0,1\}\ sum \ limits_ {i = 0} ^ {m} \ frac {c_ {i}} {2 ^ {}}
 \ hskip0,5cm 
c_ {i} = \ in \ {0,1 \}

tal que:such what:

C = \sum\limits_{i = 0}^{m} \frac{c_{i}}{2^{i}}

\hskip0,5cm
(mod \ r)C = \ sum \ limits_ {i = 0} ^ {m} \ frac {c_ {i}} {2 ^ {}}
 \ hskip0,5cm 
(mod \ r)

Sea <P> el grupo cíclico generado por P. Como se tiene el isomorfismo de anillos:Let <P> be the cyclic group generated by P. How to have the ring isomorphism:

P = Z/rZP = Z / rZ

k[P] \rightarrow kk [P] \ rightarrow k

La multiplicación escalar puede calcularse por:Scalar multiplication can be calculated by:

[c]P = \sum\limits_{i = 0}^{m} \left[\frac{c_{i}}{2^{i}}\right]P[c] P = \ sum \ limits_ {i = 0} ^ {m} \ left [\ frac {c_ {i}} {2 ^ {i}} \ right] P

utilizando divisiones por 2 y adiciones. El algoritmo bien conocido de doblamiento-adición puede utilizarse para estos cálculos. Para esto basta reemplazar en el algoritmo los doblamientos por divisiones por 2. Hay que realizar log_{2}(r) divisiones por 2 y, como media, 1/2 log_{2}(r) adiciones. Existen mejoras del algoritmo de doblamiento-adición que solamente exigen 1/3 log_{2}(r) adiciones como media.using divisions by 2 and additions. The well-known doubling-adding algorithm It can be used for these calculations. For this it is enough to replace in the doubling algorithms by divisions by 2. You have to perform log_ {2} (r) divisions by 2 and, on average, 1/2 log_ {2} (r) additions. There are improvements to the algorithm of bending-addition that only require 1/3 log_ {2} (r) additions as half.

Por consiguiente, se obtiene una citada multiplicación escalar utilizando una división por dos tal como la definida anteriormente por las operaciones siguientes:Therefore, one cited is obtained scalar multiplication using a division by two such as the defined above by the following operations:

--
si el citado escalar de la multiplicación se indica por S_{i}, se eligen m+1 valores So...Sm \in {0,1} para definir S por:if the aforementioned scalar of the multiplication is indicated by S_ {i}, m + 1 values are chosen So ... Sm \ in {0,1} to define S by:

S = \sum\limits_{i = 0}^{m} \ S_{i} \left(\frac{r+1}{2}\right)^{i}S = \ sum \ limits_ {i = 0} ^ {m} \ S_ {i} \ left (\ frac {r + 1} {2} \ right) ^ {i}

--
siendo r el orden impar antes citado y m el entero único comprendido entre log_{2}(r) – 1 y log_{2} (r).r being the order odd cited above and m the unique integer between log_ {2} (r) - 1 and log_ {2} (r).

--
se calcula la multiplicación escalar [S]P de un punto P de la citada curva elíptica por el escalar S por aplicación de un algoritmo consistente en determinar la sucesión de puntos (Q_{m+1}, Q_{m}..., Q_{i}...Q_{o}) de la citada curva elíptica E tal quethe scalar multiplication [S] P of a point P of the aforementioned elliptic curve by the S scalar by application of an algorithm consisting of determining the succession of points (Q_ {m + 1}, Q_ {m} ..., Q_ {i} ... Q_ {o}) of the said elliptical curve E such what

Q_{m+1} = O (elemento neutro)Q_ {m + 1} = O (element neutral)

Q_{i} = [S_{i}]P + \left[{\frac{1}{2}}\right]Q_{i+1}

\hskip0,5cm
con \ 0 \leq i \leq mQ_ {i} = [S_ {i}] P + \ left [{\ frac {1} {2}} \ right] Q_ {i + 1}
 \ hskip0,5cm 
with \ 0 \ leq i \ leq m

--
el cálculo del último punto Q_{o} de la citada sucesión da el resultado [S]P de la citada multiplicación escalar.the calculation of last point Q_ {o} of the aforementioned sequence gives the result [S] P of the aforementioned scalar multiplication.

Para adicionar el punto P inicial a un resultado intermedioTo add the initial P point to a result intermediate

Q = \left[\frac{1}{2}\right]Q_{i}Q = \ left [\ frac {1} {2} \ right] Q_ {i}

se utiliza el algoritmo siguiente, que es el algoritmo tradicional, ligeramente modificado:the following algorithm is used, which is the traditional algorithm, slightly modified:

Entrada: P = (x,y) en coordenadas afines y Q = (u, u(u + \lambda_{Q})) representado por (u, \lambda_{Q})Input: P = (x, y) in related coordinates and Q = (u, u (u + \ lambda_ {Q})) represented by (u, \ lambda_ {Q})

Salida: P + Q = (s, t) en coordenadas afinesOutput: P + Q = (s, t) in related coordinates

Algoritmo Algorithm

1. Se calcula: \lambda = (y + u(u + \lambda_{Q}))/(x + u)1. It is calculated: \ lambda = (y + u (u + \ lambda_ {Q})) / (x + u)

2. Se calcula: s = \lambda^{2} + \lambda + a + x + u2. It is calculated: s = \ lambda2 + \ lambda + a + x + u

3. Se calcula: t = (s + x)\lambda + s + y3. It is calculated: t = (s + x) \ lambda + s + Y

4. Resultado: (s, t)4. Result: (s, t)

Este algoritmo utiliza 1 inversión, 3 multiplicaciones, y 1 raíz cuadrada.This algorithm uses 1 inversion, 3 multiplications, and 1 square root.

La ganancia de tiempo obtenida reemplazando las operaciones de multiplicación por 2 por divisiones por 2 es importante. En coordenadas afines, la multiplicación por 2 y la adición exigen, ambas: una inversión, dos multiplicaciones, y una raíz cuadrada. Si el escalar de la multiplicación por un escalar está representado por un vector de bits de longitud m y de k componentes no nulas, las operaciones para la multiplicación escalar exigen:The time gain obtained by replacing the multiplication operations by 2 by divisions by 2 is important. In related coordinates, the multiplication by 2 and the addition require, both: an investment, two multiplications, and one square root. If the scalar multiplication by a scalar It is represented by a bit vector of length m and k non-zero components, operations for multiplication scalar demand:

operaciónoperation doblamiento y adiciónbending and addition División por 2 y adiciónDivision by 2 and addition inversionesinvestments m + km + k kk multiplicacionesmultiplications 2m + 2k2m + 2k m + 3km + 3k cuadradossquares m + km + k kk resolución \lambda^{2} + \lambda = a + xresolution λ 2 + λ = a + x 00 mm raíces cuadradasestate square 00 mm pruebastests 00 mm

       \newpage\ newpage
    

Así, utilizando la división por 2, se ahorran m inversiones, m-k multiplicaciones, y m cuadrados, a costa de m resoluciones de 2º grado, m raíces cuadradas y m pruebas.Thus, using division by 2, you save m investments, m-k multiplications, and m squares, to coast of m 2nd grade resolutions, m square roots and m tests.

En base polinómica, puede obtenerse una mejora en tiempo de ejecución próxima al 50%.On the polynomial basis, an improvement in Runtime close to 50%.

En base normal, se estima el tiempo de cálculo de la raíz cuadrada, de la prueba y de la resolución de la ecuación de 2º grado despreciable frente al tiempo de cálculo de una multiplicación o de una inversión. Suponiendo, además, que el tiempo de cálculo de una inversión es equivalente al tiempo de cálculo de 3 multiplicaciones, se llega a una mejora en el tiempo de ejecución del 55%.On a normal basis, the calculation time of the square root of the test and the resolution of the equation of 2nd grade negligible against the calculation time of a multiplication or an investment. Assuming, in addition, that time Calculation of an investment is equivalent to the calculation time of 3 multiplications, you get an improvement in the runtime 55%

La figura 2 ilustra esquemáticamente una aplicación posible de los algoritmos descritos anteriormente, puestos en práctica entre dos entidades A y B que intercambian informaciones a través de un canal de comunicación no protegido. El citado canal de comunicación, puede resumirse aquí en simples conexiones eléctricas establecidas entre las dos entidades el tiempo de una transacción. Éste puede comprender, también, una red de telecomunicación, hertziana u óptica. En este caso, la entidad A es aquí una tarjeta de microcircuito y la entidad B es un servidor. Una vez puestas en relación una con otra por el citado canal de comunicación, las dos entidades van a aplicar un protocolo de construcción de una clave común. Para hacer esto:Figure 2 schematically illustrates a possible application of the algorithms described above, implemented between two entities A and B that exchange information through an unprotected communication channel. The quoted communication channel, can be summarized here in simple electrical connections established between the two entities the Time of a transaction. This one can also comprise a network of telecommunication, hertzian or optical. In this case, entity A This is a microcircuit card and entity B is a server. Once placed in relation to one another by the aforementioned channel of communication, the two entities will apply a protocol of Construction of a common key. To do this:

--
la entidad A tiene una clave secreta aentity A has a secret key to

--
la entidad B tiene una clave secreta bentity B has a secret key b

Éstas tienen que elaborar una clave secreta x sólo conocida por ellas, a partir de una clave pública constituida por un punto P de orden impar r de una curva elíptica E elegida y no supersingular.They have to make a secret code x only known to them, from a public key constituted by a point P of odd order r of an elliptic curve E chosen and not supersingular.

El protocolo puesto en práctica es del tipo de Diffie-Hellmann reemplazando las "multiplicaciones por dos" habituales, denominadas doblamientos de punto, por la operación denominada "división por dos", de acuerdo con la invención descrita anteriormente.The protocol implemented is of the type of Diffie-Hellmann replacing the usual "multiplications by two", called doubling point, for the operation called "division by two", of according to the invention described above.

Para hacer esto, el algoritmo es el siguiente:To do this, the algorithm is the next:

--
la primera entidad (por ejemplo A) calcula la multiplicación escalar [a]P y envía el punto resultado a la segunda entidad,the first entity (for example A) calculate the scalar multiplication [a] P and send the result point to the second entity,

--
la segunda entidad (B) calcula la multiplicación escalar [b]P y envía el punto resultado a la primera entidad,the second entity (B) calculate the scalar multiplication [b] P and send the point result to the first entity,

--
las dos entidades calculan, respectivamente, un punto común (C) = (x,y) de la citada curva elíptica (E) efectuando, respectivamente, las multiplicaciones escalares [a] ([b]P) y [b] ([a]P), ambas iguales a [a,b]P,the two entities calculate, respectively, a common point (C) = (x, y) of that elliptic curve (E) performing, respectively, the multiplications scalars [a] ([b] P) and [b] ([a] P), both equal to [a, b] P,

--
las dos entidades eligen como clave común la coordenada x del citado punto común (C) obtenido por la citada multiplicación escalar [a,b]P, efectuándose, al menos, una de las multiplicaciones escalares precedentes, y preferentemente todas, con la ayuda de divisiones por do predefinidas.the two entities choose as common key the x coordinate of the said common point (C) obtained by the aforementioned scalar multiplication [a, b] P, performing at least one of the scalar multiplications precedents, and preferably all, with the help of divisions per do predefined.

A título de ejemplo más preciso, la figura 7 representa un servidor B unido a una red de comunicación 1 por intermedio de una interfaz de comunicación 2, por ejemplo del tipo módem. De modo análogo, una estación de cálculo 3 está unida a la red 1 por una interfaz de comunicación 4. La estación 3 está equipada con un lector de tarjeta de microcircuto 5, en el cual está insertada la tarjeta de microcircuito A.By way of a more precise example, Figure 7 represents a server B linked to a communication network 1 by intermediate of a communication interface 2, for example of the type modem. Similarly, a calculation station 3 is connected to the network 1 through a communication interface 4. Station 3 is equipped with a microcircuit card reader 5, in which microcircuit card A is inserted.

La memoria viva 6 del servidor B contiene un programa 7 capaz de ejecutar cálculos criptográficos en curvas elípticas y, en particular, el producto de un punto por un escalar y la división de un punto por 2.Live memory 6 of server B contains a program 7 capable of executing cryptographic calculations in curves elliptical and, in particular, the product of a point by a scalar and the division of a point by 2.

La tarjeta A comprende una unidad central 11, una memoria viva denominada "RAM" 8, una memoria muerta denominada "ROM" 9 y una memoria reinscriptible denominada "EEPROM" 10. Una de las memorias 9 ó 10 contiene un programa 12 capaz de ejecutar cálculos criptográficos en curvas elípticas y, en particular, el producto de un punto por un escalar y la división de un punto por 2.Card A comprises a central unit 11, a living memory called "RAM" 8, a dead memory called "ROM" 9 and a rewritable memory called "EEPROM" 10. One of memories 9 or 10 contains a program 12 capable of run cryptographic calculations on elliptical curves and, in particular, the product of a point by a scalar and the division of one point for 2.

Los dos programas 7 y 12 tienen una referencia común constituida por una misma curva elíptica (E) y un mismo punto P = (x_{0}, y_{0}) de (E).Both programs 7 and 12 have a reference common consisting of the same elliptic curve (E) and the same point P = (x_ {0}, y_ {0}) of (E).

Cuando A desea construir en paralelo con B una clave secreta común para proteger un diálogo con B, elige un escalar a y envía a B el producto Q = [a,b]P = (x_{1},y_{1}). En respuesta a este envío, B elige un escalar b y devuelve a A el producto R = [b]P = (x_{2}, y_{2}).When A wishes to construct a common secret key in parallel with B to protect a dialogue with B, he chooses a scalar a and sends B the product Q = [a, b] P = (x_ {1}, y_ {1}). In response to this shipment, B chooses a scalar b and returns to A the product R = [b] P = (x_ {2}, y_ {2}).

A calcula, entonces, el producto [a]R = [ab]P = (x, y), mientras que B calcula el producto [b]Q = [ab]P = (x,y), y A y B adoptan x como clave secreta común.A calculates, then, the product [a] R = [ab] P = (x, y), while B calculates the product [b] Q = [ab] P = (x, y), and A and B adopt x as the key common secret

       \newpage\ newpage
    

Estas operaciones pueden representarse por la tabla que seguidamente se indica. Las que se efectúan en el servidor B están indicadas en la columna de la derecha, mientras que las que se efectúan en la tarjeta A están indicadas en la columna de la izquierda, las flechas horizontales simbolizan las transferencias de informaciones a través de la red 1.These operations can be represented by the table indicated below. Those made in the server B are indicated in the right column, while that those made on card A are indicated on the left column, the horizontal arrows symbolize the information transfers through the network 1.

1one

Otra aplicación posible que pone en juego la invención es susceptible de ser puesta en práctica entre las dos entidades A y B de la figura 7. Se trata de un protocolo de firma de un mensaje M transmitido entre A y B a través del canal no protegido, es decir, la red 1. El objeto de este protocolo, conocido en sus grandes líneas, es aportar la certeza de que el mensaje recibido por una de las entidades ha sido emitido bien por aquélla con la que ésta se corresponde.Another possible application that brings the invention is likely to be implemented between the two entities A and B of Figure 7. This is a protocol for signing a message M transmitted between A and B through channel no protected, that is, network 1. The purpose of this protocol, known in its main lines, it is to provide the certainty that the message received by one of the entities has been issued well by that with which it corresponds.

Para hacer esto, la entidad emisora (por ejemplo A) tiene dos claves permanentes, una secreta a y otra pública Q = [a]P, siendo P un punto de una curva elíptica (E), siendo P y (E) conocidos y convenidos por A y B. Otra clave pública está constituida por el punto P de orden impar r de la curva elíptica E elegida, no supersingular. Las operaciones puestas en juego implican divisiones por dos, en el sentido definido anteriormente.To do this, the issuing entity (for example A) has two permanent keys, one secret a and one public Q = [a] P, where P is a point of an elliptic curve (E), where P and (E) are known and agreed by A and B. Another public key is constituted by the point P of odd order r of the elliptic curve E chosen, not supersingular. The operations put into play imply divisions by two, in the sense defined above.

De acuerdo con un ejemplo posible:According to a possible example:

--
la primera entidad (A) que tiene el citado par de claves permanentes construye un par de claves de utilización única, eligiéndose una (g) arbitrariamente y la otra, [g]P resultante de una multiplicación escalar de la citada clave (g) elegida arbitrariamente por el punto P público de la citada curva elíptica, indicándose las coordenadas de esta clave ([g]P) por (x, y), con 2 \leq g \leq r-2,the first entity (A) that has the aforementioned permanent key pair builds a pair of single use keys, one (g) being chosen arbitrarily and the other, [g] P resulting from a scalar multiplication of the aforementioned key (g) arbitrarily chosen by public point P of said elliptic curve, indicating the coordinates of this key ([g] P) by (x, y), with 2 \ leq g \ leq r-2,

--
la primera entidad (A) convierte el polinomio x de la citada clave de utilización única [g]P = (x, y) en un entero i cuyo valor binario está representado por la secuencia de los coeficientes binarios del citado polinomio x,the first entity (A) convert the polynomial x of the cited usage key unique [g] P = (x, y) in an integer i whose binary value is represented by the sequence of the binary coefficients of cited polynomial x,

--
la citada primera entidad (A) calcula una firma (c, d) del mensaje (M) del modo siguiente:the first mentioned entity (A) calculates a signature (c, d) of the message (M) of the mode next:

c = i módulo rc = i module r

d = g^{-1} (M + ac) módulo r,d = g <-1> (M + ac) module r,

--
la citada primera entidad envía el citado mensaje (M) y la citada firma (c, d) a la segunda entidad; en recepciónthe first mentioned entity sends said message (M) and said signature (c, d) to the second entity; at reception

--
la citada segunda entidad (B) verifica si los elementos de la citada firma (c, d) pertenecen cada uno al intervalo [1, r-1],the second cited entity (B) verifies whether the elements of the said firm (c, d) each belong to the interval [1, r-1],

--
en caso negativo, declara la firma no válida y se detiene,if not, declares the signature invalid and stops,

--
en caso afirmativo, la citada segunda entidad (B) calcula tres parámetros:if so, the said second entity (B) calculates three parameters:

h = d^{-1} módulo rh = d <-1> module r

h_{1} = Mh módulo rh_ {1} = Mh module r

h_{2} = ch módulo rh_ {2} = ch module r

--
la citada segunda entidad calcula un punto T de la citada curva elíptica por la suma de las multiplicaciones escalares de los puntos P y Q por los dos últimos parámetros citados:the second cited entity calculates a point T of said elliptic curve by the sum of the scalar multiplications of points P and Q by both Last parameters cited:

T = [h_{1}]P + [h_{2}]QT = [h_ {1}] P + [h_ {2}] Q

si el punto resultante T es el elemento neutro, la citada segunda entidad declara la firma no válida y se detieneif the resulting point T is the neutral element, the said second entity declares the signature invalid and stop

si no, considerando el punto T de coordenadas x' e y': T = (x', y'),if not, considering the point T of coordinates x ' e y ': T = (x', y '),

la citada segunda entidad (B) convierte el polinomio x' de este punto en un entero i' cuyo valor binario está representado por la secuencia de los coeficientes binarios del citado polinomio x'the said second entity (B) converts the polynomial x 'of this point in an integer i' whose binary value is represented by the sequence of the binary coefficients of cited polynomial x '

--
la citada segunda entidad (B) calcula c' = i' módulo r, ythe second cited entity (B) calculates c '= i' module r, and

--
verifica que c' = c para validar la citada firma o invalidarla en caso contrario, efectuándose, al menos, una citada operación de multiplicación escalar, y preferentemente todas, con la ayuda de divisiones por dos predefinidas.verify that c '= c to validate the aforementioned signature or otherwise invalidate it, performing at least one said multiplication operation scale, and preferably all, with the help of divisions by two predefined.

Estas operaciones pueden representarse por la tabla que seguidamente se indica, donde las operaciones efectuadas en el servidor B están indicadas en la columna de la derecha mientras que las operaciones efectuadas en la tarjeta A están indicadas en la columna de la izquierda, simbolizando la flecha entre las dos columnas las transferencias de informaciones a través de la red 1.These operations can be represented by the table indicated below, where the operations carried out on server B they are indicated in the right column while the operations performed on card A are indicated in the left column, symbolizing the arrow between the two columns the transfers of information through of the network 1.

2two

Claims (10)

1. Procedimiento de criptografía puesto en práctica entre dos entidades que intercambian informaciones a través de un canal de comunicación no protegido, del tipo que comprende, al menos, una fase operatoria consistente en multiplicar un punto de orden impar de una curva elíptica no supersingular por un entero, en coordenadas afines, caracterizado porque, con objeto de realizar el intercambio de informaciones a través del canal de comunicación no protegido, una fase operatoria de este tipo comprende adiciones y divisiones por dos de puntos de la citada curva elíptica, donde la adición de puntos es una operación conocida, y la división por dos de un punto P se define como el punto único D de orden impar tal que [2]D = P, siendo indicado un punto de este tipo por:1. Cryptography procedure implemented between two entities that exchange information through an unprotected communication channel, of the type that includes, at least, an operational phase consisting of multiplying an odd point of order of a non-supersingular elliptic curve by an integer, in related coordinates, characterized in that, in order to exchange information through the unprotected communication channel, an operational phase of this type includes additions and divisions by two points of said elliptic curve, where the addition of points is a known operation, and the division by two of a point P is defined as the single point D of odd order such that [2] D = P, a point of this type being indicated by: \left[\frac{1}{2}\right]P,\ left [\ frac {1} {2} \ right] P, y la operación de división por 2, por:and the division operation by 2, by: \left[\frac{1}{2}\right]\ left [\ frac {1} {2} \ right] 2. Procedimiento de acuerdo con la reivindicación 1, en el que: F_{2^{n}} es un cuerpo finito de 2^{n} elementos, E(F_{2^{n}}) es el subgrupo de una curva elíptica E, definido por:2. Procedure according to claim 1, in which: F_2n is a finite body of 2n elements, E (F 2 n) is the subgroup of an elliptical curve E, defined by: E(F_{2^{n}}) = {(x,y) \in F_{2^{n}} X F_{2}^{n} ly^{2} + xy = x^{3} + \alphax^{2}+ \beta} \cup {O} \alpha, \beta \in F_{2^{n}}, \beta \neq 0E (F_2n) = {(x, y) \ in F_ {2} x X F_ {2} n and ly2 + xy = x3 + αx2 + \ beta} \ cup {O} \ alpha, \ beta \ in F_ {2}, \ beta \ neq 0 y E[2^{k}] es el conjunto de los puntos P de la citada curva elíptica tales que P, adicionado 2^{k} veces a sí mismo da el elemento neutro O, con k entero superior o igual a 1, caracterizado porque un punto P = (x, y) de la citada curva elíptica da por la citada división por dos el puntoand E [2k] is the set of points P of said elliptic curve such that P, added 2k times to itself, gives the neutral element O, with an integer greater than or equal to 1, characterized in that a point P = (x, y) of the said elliptical curve gives the point divided by two the point \left[\frac{1}{2}\right]P=(u_{0}, v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0}) de la citada curva elíptica, obtenido efectuando las operaciones siguientes:of said elliptic curve, obtained by effecting the operations following: \bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x \bullet se calcula un segundo valor u_{0}^{2} tal que u_{0}^{2} = x(\lambda_{0}+ 1) + ya second value is calculated u_ {0} 2 such that u_ {0} 2 = x (\ lambda_ {0} + 1) + y \bullet si k vale 1, se busca si la ecuación: \lambda^{2}+\lambda = \alpha^{2} + u_{o}^{2} tiene soluciones en F_{2^{n}},If k is worth 1, it is searched if the equation: [lambda] 2 + [lambda] = [alpha] 2 + u_ {2} has solutions in F 2 n, \bullet en caso afirmativo se calcula la citada división por dos por:If so, the abovementioned is calculated Division by two by: u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}} v = u_{0} \ (u_{0} + \lambda_{0})v = u_ {0} \ (u_ {0} + \ lambda_ {0}) yY \left[\frac{1}{2}\right]P=(u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0}) \bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation. \bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:
buscar un valor \lambda_{i} tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{i-1}find a value \ lambda_ {i} such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {i-1}
calcular después el valor u_{1}^{2} tal que u_{1}^{2} = u_{i-1}(\lambda_{1} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u_ {1} 2 such that u_ {2} = u_ {i-1} (\ lambda_ {1} + \ lambda_ {i-1} + u_ {i-1} + one)
incrementando i a partir de i = 1 hasta obtener el valor u^{2}_{k-1}increasing i from i = 1 until the value u 2 k-1 is obtained
\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2}^{n},? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 it has solutions in F 2 n, \bullet en caso afirmativo se calcula la citada división por dos porIf so, the abovementioned is calculated division by two by u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}} v = u_{0} (u_{0} + \lambda_{0})v = u_ {0} (u_ {0} + \ lambda_ {0}) yY \left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0}) en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.if not, x is added to the second one value u_ {2} {2} and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the operation preceding.
3. Procedimiento de acuerdo con la reivindicación 1, en el que: F_{2^{n}} es un cuerpo finito de 2^{n} elementos, E(F_{2^{n}}) es el subgrupo de una curva elíptica E, definido por:3. Procedure according to claim 1, in which: F 2 is a finite body of 2 n elements, E (F_ {2}}) is the subgroup of a curve elliptical E, defined by: E(F_{2^{n}}) = {(x,y) \in F_{2^{n}} X F_{2^{n}} ly^{2} + xy = x^{3} + \alphax^{2} + \beta} \cup {O} \alpha, \beta \in F_{2^{n}}, \beta \neq 0E (F_2n) = {(x, y) \ in F_ {2} n X F_ {2 ^ {n}} ly2 + xy = x3 + αx2 + \ beta} \ cup {O} \ alpha, \ beta \ in F_ {2}, \ beta \ neq 0 y E[2^{k}] es el conjunto de los puntos P de la citada curva elíptica tales que P, adicionado 2^{k} veces a sí mismo da el elemento neutro O, con k entero superior o igual a 1, caracterizado porque un punto P = (x, y) de la citada curva elíptica da por la citada división por dos el puntoand E [2k] is the set of points P of said elliptic curve such that P, added 2k times to itself, gives the neutral element O, with an integer greater than or equal to 1, characterized in that a point P = (x, y) of the said elliptical curve gives the point divided by two the point \left[\frac{1}{2}\right]P = (u_{0},\lambda_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda_ {0}) con \lambda_{0}= u_{0} + v_{0}/u_{0}, obtenido efectuando las operaciones siguientes:with \ lambda_ {0} = u_ {0} + v_ {0} / u_ {0}, obtained by performing the operations following: \bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x \bullet se calcula un segundo valor u_{0}^{2} tal que u_{0}^{2} = x(\lambda_{0}+ 1) + ya second value is calculated u_ {0} 2 such that u_ {0} 2 = x (\ lambda_ {0} + 1) + y \bullet si k vale 1, se busca si la ecuación: \lambda^{2}+\lambda = \alpha^{2} + u_{o}^{2} tiene soluciones en F_{2}^{n},If k is worth 1, it is searched if the equation: [lambda] 2 + [lambda] = [alpha] 2 + u_ {2} has solutions in F 2 n, \bullet en caso afirmativo se calcula la citada división por dos por:If so, the abovementioned is calculated Division by two by: u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}} yY \left[\frac{1}{2}\right]P=(u_{0},\lambda_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda_ {0}) en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente:if not, x is added to the second one value u_ {2} {2} and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the  operation preceding: \bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:
buscar un valor \lambda_{1}, tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{i-1}find a value \ lambda_ {1}, such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {i-1}
calcular después el valor u^{2}_{i} tal que u^{2}_{i}= u_{i-1} (\lambda_{i} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u 2 i such that u 2 = u_ {i-1} (\ lambda_ {i} + \ lambda_ {i-1} + u_ {i-1} + 1)
incrementando i a partir de i = 1 hasta obtener el valor u^{2}_{k-1}increasing i from i = 1 until the value u 2 k-1 is obtained
\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2^{n}}? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 has solutions in F_ {n} \bullet en caso afirmativo se calcula la división por dos por:If so, the Division by two by: u_{0} = \sqrt{u_{0}^{2}}
 \ 
y
 \ 
\left[\frac{1}{2}\right]P = (u_{0},\lambda_{0})
u_ {0} = \ sqrt {u_ {0} ^ {2}}
 \ 
Y
 \ 
\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda_ {0})
\bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in The preceding operation.
4. Procedimiento de acuerdo con la reivindicación 1, en el que: F_{2^{n}} es un cuerpo finito de 2^{n} elementos, E(F_{2^{n}}) es el subgrupo de una curva elíptica E, definido por:4. Procedure according to claim 1, in which: F_2n is a finite body of 2n elements, E (F 2 n) is the subgroup of an elliptical curve E, defined by: E(F_{2^{n}}) = {(x,y)} \in F_{2^{n}} X F_{2^{n}} ly^{2} + xy = x^{3} + \alphax^{2} + \beta} \cup {O} \alpha, \beta \in F_{2^{n}}, \beta \neq 0E (F_2n) = {(x, y)} \ in F_ {2 ^ {}} X F_ {2 ^ n} ly2 + xy = x3 + αx2 + \ beta} \ cup {O} \ alpha, \ beta \ in F_ {2}, \ beta \ neq 0 y E[2^{k}] es el conjunto de los puntos P de la citada curva elíptica tales que P, adicionado 2^{k} veces a sí mismo da el elemento neutro O, con k entero superior o igual a 1, caracterizado porque un punto P = (x, y) de la citada curva elíptica representado por (x, \lambda_{p}) con \lambda_{p} = x + y/x da por la citada división por dos el puntoand E [2k] is the set of points P of said elliptic curve such that P, added 2k times to itself, gives the neutral element O, with an integer greater than or equal to 1, characterized in that a point P = (x, y) of the said elliptic curve represented by (x, λ_ {p}) with λ_ {p} = x + y / x gives the point by said division by two the point \left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0}) de la citada curva elíptica obtenido efectuando las operaciones siguientes:of the aforementioned elliptical curve obtained by performing the operations following: \bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x \bullet se calcula un segundo valor u_{0}^{2} tal que u_{0}^{2} = x(\lambda_{0}+ \lambda_{p} + x + 1)a second value is calculated u_ {0} 2 such that u_ {0} 2 = x (\ lambda_ {0} + \ lambda_ {p} + x + 1) \bullet si k vale 1, se busca si la ecuación: \lambda^{2}+\lambda = \alpha^{2}+u_{o}^{2} tiene soluciones en F_{2^{n}},If k is worth 1, it is searched if the equation: [lambda] 2 + [lambda] = [alpha] 2 + u_ {2} has solutions in F 2 n, \bullet en caso afirmativo se calcula la citada división por dos por:If so, the abovementioned is calculated Division by two by: u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}} v_{0} = u_{0} (u_{0} + \lambda_{0})v_ {0} = u_ {0} (u_ {0} + \ lambda_ {0}) yY \left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0}) \bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente;? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation; \bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:
buscar un valor \lambda_{i}, tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{1-1}find a value \ lambda_ {i}, such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {1-1}
calcular después el valor u^{2}_{i} tal que u^{2}_{i} = u_{i-1} (\lambda_{i} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u 2 i such that u 2 = u_ {i-1} (\ lambda_ {i} + \ lambda_ {i-1} + u_ {i-1} + 1)
incrementando i a partir de i=1 hasta obtener el valor u^{2}_{k-1}increasing i from i = 1 until the value u 2 k-1 is obtained
\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2}^{n}? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 it has solutions in F2 {n} \bullet en caso afirmativo se calcula la división por dos por:If so, the Division by two by: u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}} v_{0} = u_{0} (u_{0} + \lambda_{0})v_ {0} = u_ {0} (u_ {0} + \ lambda_ {0}) yY \left[\frac{1}{2}\right]P = (u_{0},v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0}) \bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation.
5. Procedimiento de acuerdo con la reivindicación 1, en el que: F_{2^{n}} es un cuerpo finito de 2^{n} elementos, E(F_{2^{n}}) es el subgrupo de una curva elíptica E, definido por:5. Procedure according to claim 1, in which: F 2 is a finite body of 2 n elements, E (F_ {2}}) is the subgroup of a curve elliptical E, defined by: E(F_{2^{n}}) = {(x,y)} \in F_{2^{n}} X F_{2^{n}} ly^{2} + xy = x^{3} + \alphax^{2} + \beta} \cup {O} \alpha, \beta \in F_{2^{n}}, \beta \neq 0E (F_2n) = {(x, y)} \ in F_ {2 ^ {}} X F_ {2 ^ n} ly2 + xy = x3 + αx2 + \ beta} \ cup {O} \ alpha, \ beta \ in F_ {2}, \ beta \ neq 0 y E[2^{k}] es el conjunto de los puntos P de la citada curva elíptica tales que P, adicionado 2^{k} veces a sí mismo da el elemento neutro O, con k entero superior o igual a 1, caracterizado porque un punto P = (x, y) de la citada curva elíptica representado por (x, \lambda_{p}) con \lambda_{p} = x + y/x da por la citada división por dos el puntoand E [2k] is the set of points P of said elliptic curve such that P, added 2k times to itself, gives the neutral element O, with an integer greater than or equal to 1, characterized in that a point P = (x, y) of the said elliptic curve represented by (x, λ_ {p}) with λ_ {p} = x + y / x gives the point by said division by two the point \left[\frac{1}{2}\right]P = (u_{0}, v_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, v_ {0}) de la citada curva elíptica representado por (u_{0}, \lambda_{0}) con \lambda_{0} = u_{0} + v_{0}/u_{0} obtenido efectuando las operaciones siguientes:of said elliptical curve represented by (u_ {0}, \ lambda_ {0}) with \ lambda_ {0} = u_ {0} + v_ {0} / u_ {0} obtained by performing the operations following: \bullet se busca un primer valor \lambda_{0} tal que \lambda_{0}^{2} + \lambda_{0} = \alpha + x? a first value is sought \ lambda_ {0} such that \ lambda_ {0} 2 + \ lambda_ {0} = α + x \bullet se calcula un segundo valor u_{0}^{2} tal que u_{0}^{2} = x(\lambda_{0}+ \lambda_{p}+x +1)a second value is calculated u_ {0} 2 such that u_ {0} 2 = x (\ lambda_ {0} + \ lambda_ {p} + x +1) \bullet si k vale 1, se busca si la ecuación: \lambda^{2}+ \lambda = \alpha^{2}+ u_{o}^{2} tiene soluciones en F_{2}^{n},If k is worth 1, it is searched if the equation: [lambda] 2 + [lambda] = [alpha] 2 + u_ {2} has solutions in F 2 n, \bullet en caso afirmativo se calcula la citada división por dos por:If so, the abovementioned is calculated Division by two by: u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}} yY \left[\frac{1}{2}\right]P=(u_{0}, \lambda_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda_ {0}) \bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente:? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation: \bullet si k es mayor que 1, se efectúa un cálculo iterativo consistente en:• if k is greater than 1, a iterative calculation consisting of:
buscar un valor \lambda_{i}, tal que \lambda_{i}^{2} + \lambda_{i} = \alpha + u_{i-1}find a value \ lambda_ {i}, such that \ lambda_ {i} 2 + \ lambda_ {i} = α + u_ {i-1}
calcular después el valor u^{2}_{i} tal que u^{2}_{i} = u_{i-1} (\lambda_{i} + \lambda_{i-1} + u_{i-1} + 1)calculate the value later u 2 i such that u 2 = u_ {i-1} (\ lambda_ {i} + \ lambda_ {i-1} + u_ {i-1} + 1)
incrementando i a partir de i=1 hasta obtener el valor u^{2}_{k-1}increasing i from i = 1 until the value u 2 k-1 is obtained
\bullet se busca si la ecuación \lambda^{2} + \lambda = \alpha^{2} + u^{2}_{k-1} tiene soluciones en F_{2}^{n}? is sought if the equation \ lambda2 + λ = α 2 + u 2 k-1 it has solutions in F2 {n} \bullet en caso afirmativo se calcula la división por dos por:If so, the Division by two by: u_{0} = \sqrt{u_{0}{}^{2}}u_ {0} = \ sqrt {u_ {0} {} ^ {2}} yY
         \newpage\ newpage
      
\left[\frac{1}{2}\right]P = (u_{0}, \lambda_{0})\ left [\ frac {1} {2} \ right] P = (u_ {0}, \ lambda_ {0}) \bullet en caso negativo, se añade x al citado segundo valor u_{0}^{2} y se añade 1 al citado primer valor \lambda_{0}, para calcular la citada división por dos como en la operación precedente.? If not, x is added to the aforementioned second value u_ {2} 2 and 1 is added to said first value \ lambda_ {0}, to calculate the said division by two as in the previous operation.
6. Procedimiento de acuerdo con una de las reivindicaciones precedentes, caracterizado porque se trata de un protocolo de construcción de una clave común a partir de dos claves secretas que pertenecen, respectivamente, a las dos citadas entidades y de una clave pública constituida por un punto P de orden impar r de una curva elíptica E elegida y no supersingular.6. Method according to one of the preceding claims, characterized in that it is a protocol for the construction of a common key from two secret keys that belong, respectively, to the two said entities and a public key consisting of a point P of odd order r of an elliptic curve E chosen and not supersingular. 7. Procedimiento de acuerdo con la reivindicación 6, caracterizado porque, de modo en sí conocido, siendo a y b las claves secretas de una primera y de una segunda entidades, respectivamente:7. Method according to claim 6, characterized in that, in a manner known per se, a and b being the secret keys of a first and a second entity, respectively:
--
la primera entidad calcula la multiplicación escalar [a]P y envía el punto resultado a la segunda entidadthe first entity calculate the scalar multiplication [a] P and send the point result to the second entity
--
la segunda entidad calcula la multiplicación escalar [b]P y envía el punto resultado a la primera entidadthe second entity calculate the scalar multiplication [b] P and send the point result to the first entity
--
las dos entidades calculan, respectivamente, un punto común C = (x,y) de la citada curva elíptica (E) efectuando, respectivamente, las multiplicaciones escalares [a] ([b]P) y [b] ([a]P), ambas iguales a [a.b]P,the two entities calculate, respectively, a common point C = (x, y) of that elliptic curve (E) performing, respectively, the multiplications scalars [a] ([b] P) and [b] ([a] P), both equal to [a.b] P,
--
las dos entidades eligen como clave común la coordenada (x) del citado punto común (C) obtenido por la citada multiplicación escalar [a.b]P, efectuándose, al menos, una de las multiplicaciones precedentes y, preferentemente, todas, con la ayuda de divisiones por dos predefinidas.the two entities choose as common key the coordinate (x) of the said common point (C) obtained by the aforementioned scalar multiplication [a.b] P, at least one of the preceding multiplications being carried out and, preferably, all, with the help of divisions by two predefined.
8. Procedimiento de acuerdo con una de las reivindicaciones 1 a 5, caracterizado porque se trata de un protocolo de firma entre dos entidades a partir de un par de claves permanentes que pertenecen a una de las entidades, una secreta (a) y la otra pública (Q), resultante de la multiplicación escalar de la clave secreta (a) por otra clave pública constituida por un punto (P) de orden impar r de una curva elíptica (E) elegida y no supersingular.Method according to one of claims 1 to 5, characterized in that it is a signing protocol between two entities based on a pair of permanent keys belonging to one of the entities, one secret (a) and the other public (Q), resulting from the scalar multiplication of the secret key (a) by another public key consisting of an odd order point (P) of a chosen elliptic curve (E) and not supersingular. 9. Procedimiento de acuerdo con la reivindicación 8, caracterizado por las operaciones siguientes:9. Method according to claim 8, characterized by the following operations:
--
la primera entidad (A) que tiene el citado par de claves permanentes construye un par de claves de utilización única, eligiéndose una (g) arbitrariamente, y la otra, [g]P resultante de una multiplicación escalar de la citada clave (g) elegida arbitrariamente por el punto P público de la citada curva elíptica, indicándose las coordenadas de esta clave ([g]P) por (x, y), con 2 \leq g \leq r-2,the first entity (A) that has the aforementioned permanent key pair builds a pair of single use keys, choosing one (g) arbitrarily, and the other, [g] P resulting from a scalar multiplication of the aforementioned key (g) arbitrarily chosen by public point P of said elliptic curve, indicating the coordinates of this key ([g] P) by (x, y), with 2 \ leq g \ leq r-2,
--
la primera entidad (A) convierte el polinomio x de la citada clave de utilización única [g]P = (x, y) en un entero i cuyo valor binario está representado por la secuencia de los coeficientes binarios del citado polinomio x,the first entity (A) convert the polynomial x of the cited usage key unique [g] P = (x, y) in an integer i whose binary value is represented by the sequence of the binary coefficients of cited polynomial x,
--
la citada primera entidad (A) calcula una firma (c, d) del mensaje (M) del modo siguiente:the first mentioned entity (A) calculates a signature (c, d) of the message (M) of the mode next:
c = i módulo rc = i module r d = g^{-1} (M + ac) módulo r,d = g <-1> (M + ac) module r,
--
la citada primera entidad envía el citado mensaje (M) y la citada firma (c, d) a la segunda entidad; en recepciónthe first mentioned entity sends said message (M) and said signature (c, d) to the second entity; at reception
--
la citada segunda entidad (B) verifica si los elementos de la citada firma (c, d) pertenecen cada uno al intervalo [1, r-1],the second cited entity (B) verifies whether the elements of the said firm (c, d) each belong to the interval [1, r-1],
--
en caso negativo, declara la firma no válida y se detiene,if not, declares the signature invalid and stops,
--
en caso afirmativo, la citada segunda entidad (B) calcula tres parámetros:if so, the said second entity (B) calculates three parameters:
h = d^{-1} módulo rh = d <-1> module r h_{1} = Mh módulo rh_ {1} = Mh module r h_{2} = ch módulo rh_ {2} = ch module r
--
la citada segunda entidad calcula un punto T de la citada curva elíptica por la suma de las multiplicaciones escalares de los puntos P y Q por los dos últimos parámetros citados:the second cited entity calculates a point T of said elliptic curve by the sum of the scalar multiplications of points P and Q by both Last parameters cited:
T = [h_{1}]P + [h_{2}]QT = [h_ {1}] P + [h_ {2}] Q
si el punto resultante T es el elemento neutro, la citada segunda entidad declara la firma no válida y se detiene   if the resulting point T is the neutral element, the said second entity declares the signature no valid and stops
si no, considerando el punto T de coordenadas x' e y': T = (x', y'),if not, considering point T of coordinates x 'e y': T = (x ', y'),
--
la citada segunda entidad (B) convierte el polinomio x' de este punto en un entero i' cuyo valor binario está representado por la secuencia de los coeficientes binarios del citado polinomio x'the second cited entity (B) converts the polynomial x 'of this point into an integer i' whose binary value is represented by the sequence of binary coefficients of the aforementioned polynomial x '
--
la citada segunda entidad (B) calcula c' = i' módulo r, ythe second cited entity (B) calculates c '= i' module r, and
--
verifica que c' = c para validar la citada firma o invalidarla en caso contrario, efectuándose, al menos, una citada operación de multiplicación escalar, y preferentemente todas, con la ayuda de divisiones por dos predefinidas.verify that c '= c to validate the aforementioned signature or otherwise invalidate it, performing at least one said multiplication operation scale, and preferably all, with the help of divisions by Two predefined.
10. Procedimiento de acuerdo con las reivindicaciones 7 ó 9, caracterizado porque una citada multiplicación escalar que utiliza divisiones por dos se obtiene por las operaciones siguientes:10. Method according to claims 7 or 9, characterized in that said scalar multiplication using divisions by two is obtained by the following operations:
--
si el citado escalar de la multiplicación se indica por S_{i}, se eligen m+1 valores So...Sm \in {0,1} para definir S por:if the aforementioned scalar of the multiplication is indicated by S_ {i}, m + 1 values are chosen So ... Sm \ in {0,1} to define S by:
S = \sum\limits_{i = 1}^{m} S_{i} \left(\frac{r+1}{2}\right)^{i}S = \ sum \ limits_ {i = 1} ^ {m} Yes} \ left (\ frac {r + 1} {2} \ right) ^ {i}
--
siendo r el orden impar antes citado y m el entero único comprendido entre log_{2}(r) – 1 y log_{2} (r).r being the order odd cited above and m the unique integer between log_ {2} (r) - 1 and log_ {2} (r).
se calcula la multiplicación escalar [S]P de un punto P de la citada curva elíptica por el escalar S, por aplicación de un algoritmo consistente en determinar la sucesión de puntos (Q_{m+1}, Q_{m}..., Q_{i}...Q_{o}) de la citada curva elíptica E, tal quethe scalar multiplication is calculated [S] P of a point P of said elliptic curve by the scalar S, by application of an algorithm consisting in determining the sequence of points (Q_ {m + 1}, Q_ {m} ..., Q_ {i} ... Q_ {o}) of the mentioned curve  elliptical E, such that Q_{m+1} = O \ (elemento \ neutro)Q_ {m + 1} = O \ (element \ neutral) Q_{i} = [S_{i}]P + \left[\frac{1}{2}\right]Q_{i+1}Q_ {i} = [S_ {i}] P + \ left [\ frac {1} {2} \ right] Q_ {i + 1} con 0 \leq l \leq mwith 0 \ leq l \ leq m dando el cálculo del último punto Q_{o} de la citada sucesión, el resultado [S] P de la citada multiplicación escalar.giving the calculation of the last point Q_ {o} of the said succession, the result [S] P of the said multiplication climb.
ES00949685T 1999-07-09 2000-07-07 CALCULATION PROCEDURE TO CRYPTTOGRAPH AN ELIPTICAL CURVE. Expired - Lifetime ES2159274T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9908949 1999-07-09
FR9908949A FR2796177B1 (en) 1999-07-09 1999-07-09 CRYPTOGRAPHY PROCESS USED BETWEEN TWO ENTITIES EXCHANGING INFORMATION

Publications (2)

Publication Number Publication Date
ES2159274T1 ES2159274T1 (en) 2001-10-01
ES2159274T3 true ES2159274T3 (en) 2004-05-16

Family

ID=9547945

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00949685T Expired - Lifetime ES2159274T3 (en) 1999-07-09 2000-07-07 CALCULATION PROCEDURE TO CRYPTTOGRAPH AN ELIPTICAL CURVE.

Country Status (8)

Country Link
US (1) US7079650B1 (en)
EP (1) EP1110140B1 (en)
JP (1) JP4704640B2 (en)
CA (1) CA2342737C (en)
DE (2) DE60005284T2 (en)
ES (1) ES2159274T3 (en)
FR (1) FR2796177B1 (en)
WO (1) WO2001004742A1 (en)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1261498A (en) * 1997-05-21 2000-07-26 E·S·P·通讯股份有限公司 System, method and apparatus for 'caller only' initiated two-way wireless communication with caller generated billing
US7200225B1 (en) 1999-11-12 2007-04-03 Richard Schroeppel Elliptic curve point ambiguity resolution apparatus and method
EP1451967A1 (en) * 2001-12-07 2004-09-01 NTRU Cryptosystems, Inc. Digital signature and authentication method and apparatus
US7769167B2 (en) 2003-07-25 2010-08-03 Microsoft Corporation Weil and Tate pairing techniques using parabolas
US7298839B2 (en) * 2003-07-25 2007-11-20 Microsoft Corporation Squared Weil and Tate pairing techniques for use with elliptic curves
US7440569B2 (en) * 2003-07-28 2008-10-21 Microsoft Corporation Tate pairing techniques for use with hyperelliptic curves
KR100530372B1 (en) * 2003-12-20 2005-11-22 삼성전자주식회사 Cryptographic method capable of protecting elliptic curve code from side channel attacks
US7483533B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi x-coordinates embedding
US7483534B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi y-coordinates embedding
US7742596B2 (en) * 2004-08-24 2010-06-22 General Dynamics C4 Systems, Inc. Reliable elliptic curve cryptography computation
JP4752313B2 (en) 2004-09-30 2011-08-17 ソニー株式会社 Cryptographic processing operation method, cryptographic processing apparatus, and computer program
US20070229350A1 (en) * 2005-02-01 2007-10-04 Scalisi Joseph F Apparatus and Method for Providing Location Information on Individuals and Objects using Tracking Devices
US7598855B2 (en) 2005-02-01 2009-10-06 Location Based Technologies, Inc. Apparatus and method for locating individuals and objects using tracking devices
WO2007048430A1 (en) * 2005-10-28 2007-05-03 Telecom Italia S.P.A. A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems
DE102006002891B4 (en) * 2006-01-20 2009-06-04 Siemens Ag Method, apparatus and system for verifying points determined on an elliptic curve
KR20080012633A (en) * 2006-08-04 2008-02-12 삼성전자주식회사 Method and apparatus of adding points in prime finite field for implementation of fault detecting operation used in fast montgomery power ladder algorithm
US8497774B2 (en) 2007-04-05 2013-07-30 Location Based Technologies Inc. Apparatus and method for adjusting refresh rate of location coordinates of a tracking device
US8774827B2 (en) 2007-04-05 2014-07-08 Location Based Technologies, Inc. Apparatus and method for generating position fix of a tracking device in accordance with a subscriber service usage profile to conserve tracking device power
US8224355B2 (en) 2007-11-06 2012-07-17 Location Based Technologies Inc. System and method for improved communication bandwidth utilization when monitoring location information
US8244468B2 (en) * 2007-11-06 2012-08-14 Location Based Technology Inc. System and method for creating and managing a personalized web interface for monitoring location information on individuals and objects using tracking devices
US9111189B2 (en) * 2007-10-31 2015-08-18 Location Based Technologies, Inc. Apparatus and method for manufacturing an electronic package
US8102256B2 (en) 2008-01-06 2012-01-24 Location Based Technologies Inc. Apparatus and method for determining location and tracking coordinates of a tracking device
US8654974B2 (en) 2007-10-18 2014-02-18 Location Based Technologies, Inc. Apparatus and method to provide secure communication over an insecure communication channel for location information using tracking devices
US20170207918A1 (en) * 2009-06-16 2017-07-20 Morpho Cryptography on an elliptical curve
US20140314229A1 (en) * 2011-12-09 2014-10-23 Morpho Cryptography on a simplified elliptical curve
US8548160B2 (en) * 2010-01-13 2013-10-01 Microsoft Corporation Determination of pairings on a curve using aggregated inversions
US8731187B2 (en) * 2010-12-21 2014-05-20 Microsoft Corporation Computing genus-2 curves using general isogenies
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
CN103124213B (en) * 2013-03-05 2015-09-16 丁勇 Based on the sensor network cipher key management method of elliptic curve cipher
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
CA2984390A1 (en) * 2016-11-07 2018-05-07 Infosec Global Inc. Elliptic curve isogeny-based cryptographic scheme
US11157240B2 (en) * 2019-02-15 2021-10-26 International Business Machines Corporation Perform cryptographic computation scalar multiply instruction
CN111106937A (en) * 2019-12-31 2020-05-05 深圳职业技术学院 Secret key exchange method of double-channel exchange super-singular elliptic curve algorithm based on random prime number
WO2021225578A1 (en) 2020-05-04 2021-11-11 Pqsecure Technologies, Llc An efficient hardware architecture for highly secure isogeny-based cryptosystems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3073595A (en) * 1994-07-29 1996-03-04 Certicom Corp. Elliptic curve encryption systems
US6490352B1 (en) * 1999-03-05 2002-12-03 Richard Schroeppel Cryptographic elliptic curve apparatus and method
JP3639153B2 (en) * 1999-08-16 2005-04-20 日本電信電話株式会社 Elliptic curve calculation device and program recording medium using sequential enlargement
US20020055962A1 (en) * 1999-11-12 2002-05-09 Richard Schroeppel Automatically solving equations in finite fields
US7031468B2 (en) * 2000-08-29 2006-04-18 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus
CA2439736C (en) * 2002-09-03 2013-05-21 Certicom Corp. Method and apparatus for performing validation of elliptic curve public keys

Also Published As

Publication number Publication date
CA2342737C (en) 2004-06-01
ES2159274T1 (en) 2001-10-01
DE60005284D1 (en) 2003-10-23
EP1110140A1 (en) 2001-06-27
FR2796177A1 (en) 2001-01-12
CA2342737A1 (en) 2001-01-18
WO2001004742A1 (en) 2001-01-18
DE1110140T1 (en) 2002-02-21
US7079650B1 (en) 2006-07-18
EP1110140B1 (en) 2003-09-17
DE60005284T2 (en) 2004-07-01
FR2796177B1 (en) 2001-10-12
JP2003504695A (en) 2003-02-04
JP4704640B2 (en) 2011-06-15

Similar Documents

Publication Publication Date Title
ES2159274T3 (en) CALCULATION PROCEDURE TO CRYPTTOGRAPH AN ELIPTICAL CURVE.
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
Liardet et al. Preventing SPA/DPA in ECC systems using the Jacobi form
US7379546B2 (en) Method for XZ-elliptic curve cryptography
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US9425961B2 (en) Method for performing an encryption of an AES type, and corresponding system and computer program product
Akkar et al. A fast and secure implementation of Sflash
US8144864B2 (en) Method for speeding up the computations for characteristic 2 elliptic curve cryptographic systems
ES2604460T3 (en) Procedure to securely encode or decode a message
US7483534B2 (en) Elliptic polynomial cryptography with multi y-coordinates embedding
ES2379100T3 (en) Procedure for the secure determination of data
US7483533B2 (en) Elliptic polynomial cryptography with multi x-coordinates embedding
KR20050061544A (en) Cryptography using finite fields of odd characteristic on binary hardware
US8666066B2 (en) Encoding points of an elliptic curve
US20220407719A1 (en) Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers
Granger et al. A comparison of CEILIDH and XTR
El Mrabet What about vulnerability to a fault attack of the Miller’s algorithm during an identity based protocol?
ES2255568T3 (en) METHOD AND APPARATUS OF STORAGE AND RECOVERY OF PRIVATE KEY OF CRYPTOGRAPHY.
ES2357290T3 (en) PROCEDURE AND DEVICE FOR REDUCING A POLYNOMY IN A BINARY FINITE FIELD, IN PARTICULAR FOR A CRYPTOGRAPHIC APPLICATION.
ES2371333T3 (en) DEVICE AND PROCEDURE FOR EXECUTION OF A CRYPTOGRAPHIC ALGORITHM.
Jalali et al. Optimized supersingular isogeny key encapsulation on armv8 processors
Paar et al. Elliptic curve cryptosystems
Jalali Efficient implementations of post-quantum isogeny-based cryptography
US20220385448A1 (en) Methods and systems for public and private-key leveled fully homomorphic encryption without bootstrapping with hensel codes
JP3945497B2 (en) Information processing device, IC card