ES2279887T3 - Procedimiento de calculo universal aplicado a las puntas de una curva eliptica. - Google Patents
Procedimiento de calculo universal aplicado a las puntas de una curva eliptica. Download PDFInfo
- Publication number
- ES2279887T3 ES2279887T3 ES02772475T ES02772475T ES2279887T3 ES 2279887 T3 ES2279887 T3 ES 2279887T3 ES 02772475 T ES02772475 T ES 02772475T ES 02772475 T ES02772475 T ES 02772475T ES 2279887 T3 ES2279887 T3 ES 2279887T3
- Authority
- ES
- Spain
- Prior art keywords
- point
- coordinates
- curve
- lambda
- points
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7261—Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Credit Cards Or The Like (AREA)
Abstract
Procedimiento criptográfico en el que medios Automáticos realizan una adición de un primer punto P1 definido por primeras coordenadas afines (X1, Y1) y un segundo punto P2 definido por segundas coordenadas afines (X2, Y2), estos puntos, primero y segundo, pertenecen a una curva elíptica definida por una ecuación de Weierstrass de tipo: Y 2 + a1xXxY + a3xY = X 3 + a2xX 2 + a4xX + a6, (X, Y) son coordenadas afines de un punto de la curva, y a1, a2, a3, a4, a5, a6 son parámetros de la curva elíptica, y el resultado de la adición es un tercer punto P3 definido en la curva elíptica por terceras coordenadas afines (X3, Y3), el segundo punto P2 es diferente del inverso (-P1) del primer punto P1, las terceras coordenadas afines (X3, Y3) se calculan mediante las siguientes relaciones: X3 = lambda 2 + a1xlambda - a2 - X1 - X2 Y3 = - (lambda + a1)xX3 - µ - a3 con µ = Y1 - lambda xX1 el procedimiento se caracteriza porque lambda se calcula dividiendo (X1 2 + X1xX2 + X2 2 + a2xX1 + a2xX2 + a4-a1xY1) entre (Y1 + Y2 + a1xX1 + a3).
Description
Procedimiento de cálculo universal aplicado a
las puntas de una curva elíptica.
La presente invención se refiere a un
procedimiento de cálculo universal que se aplica a las puntas de
una curva elíptica, y un componente electrónico que comprende
medios para aplicar este procedimiento. La invención se aplica,
principalmente, cuando se utilizan algoritmos criptográficos de tipo
de clave pública, por ejemplo en las tarjetas inteligentes.
Los algoritmos de clave pública en curva
elíptica permiten aplicaciones criptográficas de tipo codificación,
firma digital, autenticación...
Éstos son muy utilizados sobre todo en las
aplicaciones de tipo tarjeta inteligente, porque permiten emplear
claves de baja longitud, permitiendo tiempos de tratamiento
bastante cortos, y que pueden no requerir la utilización de
criptoprocesadores para su implementación, lo que disminuye el
precio de coste de los componentes electrónicos en los que están
implementados.
Existen distintas parametrizaciones para definir
una curva elíptica aplicable en criptografía. Una parametrización
corrientemente utilizada es la parametrización dicha de
Weierstrass. No obstante, podemos observar que la parametrización de
Weierstrass es muy general, ya que las curvas elípticas pueden
reducirse bajo esta parametrización.
Para memoria, si IK es un cuerpo, el conjunto de
los puntos (X, Y)
\euroIKxIK, si se verifica la ecuación general de Weierstrass (fórmula F1):
E/IK: Y^{2}
+ a1xXxY + a3xY = X^{3} + a2xX^{2} + a4xX +
a6
con ai
\euroIK, y el punto al infinito O forman una curva elíptica E. Toda curva elíptica en un cuerpo se expresa en esta forma.
El conjunto de los puntos (X, Y) y el punto al
infinito O forman un grupo abeliano, en el que el punto al infinito
O es el elemento neutro y en el que la operación de grupo es la
adición de puntos, anotada + y dada por la regla muy conocida de la
secante y de la tangente. En este grupo, el par (X, Y), en el que
la abscisa X y la ordenada Y son elementos del cuerpo IK, forma las
coordenadas afines de un punto P de la curva elíptica.
El punto P representado por el par (X, Y) en
coordenadas afines también puede representarse por coordenadas
proyectivas de la forma general (U, V, W).
Las coordenadas proyectivas son interesantes,
principalmente, en los cálculos de exponenciación que se aplican a
los puntos de una curva elíptica, ya que no conllevan cálculos de
inversión en el cuerpo.
El punto P puede representarse por coordenadas
proyectivas, dichas de Jacobi de la forma general (U, V, W), (X, Y)
y (U, V, W) están vinculadas por las siguientes relaciones:
(fórmulas F2)X
= U/W^{2} \
\hskip0.5cme \
\hskip0.5cmY= V/W^{3}
Con estas coordenadas de Jacobi, la ecuación de
Weierstrass de una curva elíptica resulta:
E/IK: V^{2}
+ a1UVW + a3VW^{3} = U^{3} + a2U^{2}W^{2} +
a4UW^{4} +
a6W^{6}
El punto P también puede representarse por
coordinadas proyectivas dichas homogéneas de la forma general (U,
V, W), (X, Y) y (U, V, W) están ahora ligadas por las
relaciones:
(fórmulas F3)X
\ = \ U/W \
\hskip0.5cme \
\hskip0.5cm\ Y = V/W
Con coordenadas homogéneas, la ecuación de
Weierstrass de una curva elíptica se presenta de este modo:
(fórmula
F4)E/IK: V^{2}W + a1UVW + a3VW^{2} =
U^{3} + a2U^{2}W + a4UW^{2} +
a6W^{3}
La ecuación de Weierstrass puede simplificarse
según la característica del cuerpo en el que se define la curva.
Recordamos, que en un cuerpo terminado, el número de elementos del
cuerpo siempre se expresa con la forma p^{n}, en donde p es un
número primo. p es la característica del cuerpo. Si el cuerpo no
está acabado, la característica se define por convención igual a
cero.
\newpage
En caso de que la característica del cuerpo sea
diferente de 2 y 3, la ecuación de Weierstrass, en coordenadas
afines, se simplifica de la siguiente manera:
(fórmula
F5)E/IK: Y^{2} = X^{3} + axX +
b,
en donde a y b son parámetros de la
curva elíptica, elementos de
IK.
De esta ecuación simplificada en coordenadas
afines se deducen evidentemente formulaciones equivalentes en el
caso de una parametrización de Weierstrass en coordenadas
proyectivas, de Jacobi u homogéneas.
En el caso en que la característica del cuerpo
sea igual a 2, la ecuación de Weierstrass de una curva no
supersingular, en coordenadas afines, se simplifica del siguiente
modo:
(fórmula
F6)E/IK: Y^{2} + XY = X^{3} + axX^{2} +
b,
en donde a y b son parámetros de la
curva elíptica, elementos de
IK.
De esta ecuación simplificada en coordenadas
afines se deducen evidentemente del mismo que el descrito más
arriba formulaciones equivalentes en el caso de una parametrización
de Weierstrass en coordenadas proyectivas, de Jacobi u
homogéneas.
Según la parametrización que define la curva
elíptica y según las coordenadas con las que se trabaja, pueden
aplicarse distintas fórmulas de adición, sustracción y de
duplicación de puntos no aplicables. Estas fórmulas se dan en
numerosas referencias conocidas por el profesional. También
observamos que en el caso de coordenadas proyectivas, las fórmulas
no son únicas, ya que como lo demuestran las fórmulas F2 y F3, un
punto en coordenadas afines tiene varias representaciones
proyectivas equivalentes.
En el ejemplo de una curva elíptica E dada por
una parametrización de Weierstrass en coordenadas afines, estas
fórmulas son las siguientes (ver documento I. Blake y a1:
"Elliptic Curves in Cryptography", 1999, Cambridge University
Press, ISBN 0 521 653746, pp29-34).
El inverso de un punto P1 = (X1, Y1) de esta
curva es el punto -P1 de coordenadas (X1, Y1), con
(fórmula
F11)Y1 = -Y1 - a1xX1 -
a3
La operación de adición de los puntos P1 de
coordinadas (X1, Y1) y P2 de coordenadas (X2, Y2) de esta curva,
con P1 \neq - P2, da un punto P3 = P1 + P2, de coordenadas (X3,
Y3), tales como:
(fórmula
F12)X3 = \lambda ^{2} + a1x \lambda - a2 - X1 -
X2
- Y3 = - (\lambda + a1)xX3 - \mu - a3
- (fórmula F13)
con
- \lambda = (Y1-Y2)/(X1-X2), \hskip0,3cm si \ X1 \neq X2
- (fórmula F14)
- \lambda = (3X1^{2} + 2xa2XX1 + a4 - a1XY1)/(2Y1 + a1xX1 + a3), \ si \ X1 = X2
- (fórmula F15)
y
(fórmula
F16)\mu = Y1 - \lambda
xX1
La fórmula F14 es la fórmula de adición de dos
puntos distintos: P3 = P1 + P2 mientras que la fórmula F15 es la
fórmula de duplicación del punto: P3 = 2xP1.
De estas ecuaciones en coordenadas afines se
deducen evidentemente formulaciones equivalentes en coordenadas
proyectivas, de Jacobi u homogéneas.
En el ejemplo de una curva elíptica E dada por
una parametrización de Weierstrass en un cuerpo de características
distintas de 2 y 3, las fórmulas de adición, sustracción y
duplicación de puntos se simplifican ya que la ecuación de la misma
curva se reduce. Se pone a1 = a2 = a3 = 0, a4 = a y a5 = b.
\newpage
En el caso de una parametrización de Weierstrass
en coordenadas afines, las fórmulas simplificadas de adición, de
sustracción y de duplicación de puntos son entonces los
siguientes.
El inverso de un punto P1 = (X1, Y1) de la curva
E es el punto -P1 = (X1, Y1), con
(fórmula
F17)Y1 = -
Y1
La operación de adición de los puntos P1 de
coordenadas (X1, Y1) y P2 de coordenadas (X2, Y2) de esta curva, con
P1 \neq - P2, da el punto P3 = P1 + P2, cuyas coordenadas (X3,
Y3), son tales como:
- \quad
- X3 = \lambda ^{2} - X1 - X2
Y3 = \lambda
x(X1-X3) -
Y1,
con
(fórmula
F18)\lambda =
(Y1-Y2)/(X1-X2), \ si \ P1 \neq
P2
- \lambda = (3X1^{2} + a)/(2xY1), \ si \ P1 = P2
- (fórmula F19)
La fórmula 18 es la fórmula de adición de dos
puntos distintos: P3 = P1 + P2 mientras que la fórmula 19 es la
fórmula de duplicación del punto: P3 = 2xP1.
Las fórmulas simplificadas de adición y de
duplicación de puntos en una curva elíptica no supersingular
definida en un cuerpo de característica 2 se obtienen de modo
similar a partir de las fórmulas generales (fórmulas F12 a F16)
poniendo a1 = 1, a3 = a4 = 0, a2 = a y a6 = b.
Las operaciones de adición o sustracción y de
duplicación de un punto son las operaciones de base utilizadas en
los algoritmos de exponenciación en las curvas elípticas: dado un
punto P1 que pertenece a una curva elíptica E y d un número
predeterminado (un entero), el resultado de la multiplicación
escalar del punto P1 por el número d es un punto P2 de la curva E,
tal como P2 = dxP1 = P1 + P1 +... + P1, d veces. Los algoritmos
criptográficos de clave pública en curva elíptica se basan
igualmente en la multiplicación escalar de un punto P1 seleccionado
en la curva, por un número predeterminado d, una clave secreta. El
resultado de esta multiplicación escalar dxP1 es un punto P2 de la
curva elíptica. En un ejemplo de aplicación a la codificación según
el procedimiento de El Gamal, el punto P2 obtenido es la clave
pública que sirve para codificar un mensaje.
El cálculo de la multiplicación escalar P2 =
dxP1 puede realizarse por distintos algoritmos. Podemos citar
algunos de ellos, como el algoritmo de duplicación y de adición
(double and add en la literatura anglosajona) basado en la
representación binaria del exponente d, aquel de adiciónsustracción
basado en la representación binaria firmada del exponente d, el
algoritmo con ventana.... Todos estos algoritmos utilizan las
fórmulas de adición, de sustracción y de duplicación definidas en
las curvas elípticas.
No obstante, estos algoritmos resultan ser
sensibles a los ataques que ponen la mira en descubrir
principalmente el valor de la clave secreta. Podemos citar, en
particular, los ataques de canales ocultos, simples o
diferenciales.
Entendemos por ataque a canal oculto simple o
diferencial, un ataque basado en una magnitud física mensurable
desde el exterior del dispositivo, y cuyo análisis directo (ataque
simple) o el análisis según un método estadístico (ataque
diferencial) permite descubrir informaciones contenidas y
manipuladas en tratamientos en el dispositivo. Estos ataques pueden
permitir así descubrir informaciones confidenciales. Estos ataques
fueron desvelados principalmente por Paul Kocher (Advances in
Cryptology - CRYPTO'99, vol. 1666 of Lectura Notes in Computer
Science, pp.388-397.
Springer-Verlag, 1999). Entre las magnitudes físicas
que pueden explotarse con estos fines, podemos citar el tiempo de
ejecución, el consumo de corriente, el campo electromagnético
irradiado por la parte del componente utilizado para ejecutar el
cálculo, etc... Estos ataques se basan en el hecho de que la
manipulación de un bit, es decir, su tratamiento por una instrucción
particular, da una idea particular sobre la magnitud física
considerada según el valor de este bit y/o según la
instrucción.
En los sistemas criptográficos basados en curvas
elípticas, estos ataques ponen la mira en la multiplicación
escalar.
Si tomamos como ejemplo un algoritmo de
multiplicación escalar en curvas elípticas con la parametrización
de Weierstrass, este algoritmo puede ser susceptible a los ataques
de canales ocultos de tipo simple, ya que las operaciones de base de
duplicación y de adición son prácticamente distintas, al igual que
lo muestra el cálculo del lambda en las fórmulas F14 y F15 o F18 y
F19 supra.
Por tanto es necesario prever procedimientos de
contramedida para impedir que prosperen los distintos ataques. En
otros términos, es necesario asegurar los algoritmos de
multiplicación escalar.
Un objeto del invento consiste en aplicar un
procedimiento de cálculo universal, y más generalmente un
procedimiento criptográfico, en curvas elípticas, protegido contra
los ataques de canales ocultos.
Con este objetivo en vista, la invención tiene
como objeto un procedimiento de cálculo universal en los puntos de
una curva elíptica definida por una ecuación de Weierstrass. Según
la invención, se utilizan medios de cálculo programados idénticos
para realizar una operación de adición de puntos y una operación de
duplicación de puntos. Los medios de cálculo comprenden,
principalmente, una unidad central y una memoria.
De este modo, con la invención, las operaciones
de base de duplicación y de adición de puntos de una curva elíptica
son idénticos, realizado por medios de cálculo idénticos, y tienen
la misma formulación. Así pues, ya no es posible distinguirlos,
principalmente, en el marco de ataques de canales ocultos simples.
Por consiguiente, un procedimiento de cálculo universal según la
invención está protegido contra dichos ataques.
Más generalmente, un procedimiento de
multiplicación escalar aplicado a puntos de una curva elíptica, o
un procedimiento criptográfico en curva elíptica que utilice un
procedimiento de cálculo universal según la invención, están
protegidos de la misma manera.
Esto es cierto, cualesquiera que sean las
coordenadas utilizadas para realizar los cálculos: coordenadas
afines, proyectivas, de Jacobi u homogéneas, etc. Así se utiliza un
solo valor de lambda para realizar una adición o una duplicación de
puntos.
Según un modo de realización general, APRA
realizar la adición de un primer punto P1 definido por primeras
coordenadas afines (X1, Y1) y un segundo punto P2 definido por
segundas coordenadas afines (X2, Y2) las coordenadas afines del
primer punto P1 y las del segundo punto P2 se memorizan en primeros
y segundos registros de la memoria, el primer punto y el segundo
punto pertenecen a una curva elíptica definida por una ecuación de
Weierstrass de tipo:
Y^{2} + a1xXxY
+ a3xY = X^{3} + a2xX^{2} + a4xX +
a6,
(X, Y) son coordenadas afines de un
punto de la curva, y a1, a2, a3, a4, a5, a6 son parámetros de la
curva
elíptica,
los medios de cálculo programados calculan
terceras coordenadas afines (X3, Y3) que definen un tercer punto
P3, resultado de la adición, por las siguientes relaciones:
(fórmula
F12)X3 = \lambda ^{2} + a1x\lambda - a2 - X1 -
X2
- Y3 = - (\lambda + a1)xX3 - \mu - a3
- (fórmula F13)
con
- \lambda = (X1^{2} + X1xX2 + X2^{2} + a2xX1 + a2xX2 + a4 - a1xY1)/(Y1 + Y2 + a1xX2 + a3)
- (fórmula F20)
- \mu = Y1 - \lambda xX1
- (fórmula F16)
el segundo punto es diferente del
inverso (-P1) del primer punto P1 y el segundo punto es igual o
diferente al primer
punto,
luego memorizan las terceras coordenadas afines
(X3, Y3) en terceros registros de la memoria.
La relación \lambda, definida por la fórmula
F20 es idéntica a la relación \lambda, del arte anterior definida
por la fórmula F14, en caso de que X1 \neq X2, es decir en caso de
que P1 \neq P2 (caso de una verdadera adición de dos puntos
distintos). Del mismo modo, la relación \lambda, definida por la
fórmula F20 es idéntica a la relación \lambda, del art. anterior
definida por la fórmula F15, en caso de que X1 = X2 (caso de una
operación de duplicación de un punto), es decir en caso de que P1 =
P2 duplicación de un punto). Esto se demostrará de manera más
precisa más adelante en un ejemplo.
El mismo valor de lambda también permite
realizar una adición o una duplicación de puntos en caso de una
curva elíptica definida por una parametrización de Weierstrass.
Según otro modo de realización, para realizar la
adición del primer punto P1 definido por las primeras coordenadas
afines (X1, Y1) y del segundo punto P2 definido por las segundas
coordenadas afines (X2, Y2), las coordenadas afines del primer
punto P1 y aquellas del segundo punto P2 se memorizan en los
primeros y segundos registros de la memoria, el primer punto y el
segundo punto pertenecen a una curva elíptica en un cuerpo de
características distintas de 2 ó 3, definida por una ecuación
simplificada de Weierstrass de tipo:
Y^{2} = x3 +
axX +
b,
(X, Y) son coordenadas afines de un
punto de la curva, y a, b, son parámetros de la curva
elíptica,
los medios de cálculo programados calculan las
terceras coordenadas afines (X3, Y3) que definen el tercer punto P3,
resultado de la adición, por las siguientes relaciones:
- \quad
- X3 = \lambda ^{2} - X1 - X2
Y3 = \lambda
x(X1 - X3) -
Y1
con:
(fórmula
F21)\lambda = (X1^{2} + X1xX2 + X2^{2} + a)/(Y1 +
Y2)
el segundo punto es diferente del
inverso (-P1) del primer punto P1 y el segundo punto es igual o
diferente al primer
punto,
luego memorizan las terceras coordenadas afines
(X3, Y3) en los terceros registros de la memoria.
También en este caso, el mismo valor de lambda
permite realizar una adición o una duplicación de puntos en caso de
una curva elíptica en un cuerpo de características diferentes de 2
y 3 y definida por una parametrización de Weierstrass
simplificada.
Según otro modo de realización igualmente, para
realizar la adición del primer punto P1 definido por las primeras
coordenadas afines (X1, Y1) y del segundo punto P2 definido por las
segundas coordenadas afines (X2, Y2), las coordenadas afines del
primer punto P1 y aquellas del segundo punto P2 se memorizan en los
primeros y segundos registros de la memoria (6,8), el primer punto y
el segundo punto pertenecen a una curva elíptica no supersingular
en un cuerpo de características iguales a 2, definida por una
ecuación simplificada de Weierstrass de tipo:
Y^{2} + XY =
X^{3} + axX^{2} +
b,
(X, Y) son coordenadas afines de un
punto de la curva, y a, b son parámetros de la curva
elíptica,
los medios de cálculo programados calculan las
terceras coordenadas afines (X3, Y3) definen el tercer punto P3,
resultado de la adición, por las siguientes relaciones:
X3 = \lambda
^{2} + \lambda + a + X1 +
X2
- \quad
- Y3 = \lambda x \ (X1 + X3) + X3 + Y1
con:
(fórmula
F22)\lambda = (X1^{2}+ X1xX2 + X2^{2} + aX1 + aX2+Y1)
\ / \ (Y1 + Y2 +
X2)
el segundo punto es diferente del
inverso (-P1) del primer punto P1 y el segundo punto es igual o
diferente del primer
punto.
También en este caso, el mismo valor de lambda
permite realizar una adición o una duplicación de puntos en el caso
de una curva elíptica no supersingular en un cuerpo de
característica igual a 2.
Como acabamos de verlo, el procedimiento de
cálculo según el invento permite realizar operaciones de adición o
de duplicación de puntos que pertenecen a curvas elípticas,
utilizando la misma formulación.
Más generalmente, el procedimiento según el
invento puede utilizarse en un procedimiento global de cálculo de
multiplicación escalar aplicado a puntos de una curva elíptica y/o
en un procedimiento criptográfico.
La invención tiene como objeto igualmente un
componente electrónico que incluye medios de cálculo programados,
que comprenden principalmente una unidad central y una memoria, para
poner en aplicación un procedimiento de cálculo universal para
efectuar una adición o una duplicación de puntos de una curva
elíptica tal como se describe anteriormente. Dicho componente
electrónico puede comprender medios de aplicación global de un
algoritmo criptográfico que utiliza un procedimiento de cálculo
universal tal como se describe más arriba.
Por último, la invención tiene como objeto
igualmente una tarjeta inteligente que comprende un componente
electrónico tal como se describe más arriba.
\newpage
La invención y las ventajas que de ella se
deducen aparecerán más claramente cuando se lea la lectura de la
siguiente descripción de ejemplos particulares de realización del
invento, los cuales se dan a título puramente indicativo y en
referencia a la figura única en anexo. Ésta representa en forma de
esquema bloque un dispositivo 1 electrónico en condiciones de
realizar cálculos criptográficos.
En los siguientes ejemplos, el dispositivo 1 es
una tarjeta inteligente destinada a ejecutar un programa
criptográfico. Con este fin, el dispositivo 1 reúne en un chip
medios de cálculo programados, compuestos de una unidad central 2
vinculada funcionalmente a un conjunto de memorias, entre las
cuales:
- una memoria 4 accesible en lectura solamente,
en el ejemplo del tipo ROM máscara, igualmente conocida con la
denominación inglesa "mask read-only memory (mask
ROM)",
- una memoria 6 reprogramable eléctricamente en
el ejemplo del tipo EEPROM (del inglés "electrically erasable
programmable ROM"), y
- una memoria de trabajo 8 accesible en lectura
y en escritura, en el ejemplo del tipo RAM (del inglés "random
access memory"). Esta memoria comprende principalmente registros
de cálculo utilizados por el dispositivo 1.
El código ejecutable correspondiente al
algoritmo de exponenciación está contenido en memoria programa.
Este código puede estar contenido en la práctica en la memoria 4,
accesible en lectura solamente, y/o en memoria 6,
reinscriptible.
La unidad central 2 está vinculada a una
interfaz de comunicación 10 que se ocupa del intercambio de señales
hacia el exterior y la alimentación del chip. Esta interfaz puede
comprender contactos en la tarjeta para una conexión dicha "de
contacto" con un lector, y/o una antena en el caso de una tarjeta
dicha "sin contacto".
Una de las funciones del dispositivo 1 es de
codificar o descodificar un mensaje m confidencial respectivamente
transmitido hacia, o recibido de, del exterior. Este mensaje puede
concernir por ejemplo códigos personales, informaciones médicas, una
contabilidad sobre transacciones bancarias o comerciales,
autorizaciones de acceso a ciertos servicios limitados, etc. Otra
función consiste en calcular o verificar una firma digital.
Para realizar estas funciones, la unidad central
2 ejecuta un algoritmo criptográfico en datos de programación que
están almacenados en las partes ROM máscara 4 y/o EEPROM 6.
El algoritmo utilizado en este caso es un
algoritmo con clave pública en curva elíptica en el marco de una
parametrización de Weierstrass. Nos interesaremos más especialmente
aquí en una parte de este algoritmo, que permite realizar
operaciones de base, es decir, operaciones de adición o de
duplicación de puntos, en coordenadas afines.
En un primer ejemplo, la curva elíptica es una
curva en un cuerpo de características estrictamente superior a 3,
que tiene como ecuación, con a, b ? IK:
E/IK: Y^{2} =
X^{3} + axX +
b
Cuando se solicita el dispositivo 1 de cálculo
de exponenciación para el cálculo de una operación de adición, la
unidad central 2 memoriza en primer lugar coordenadas (X1, Y1),
(X2, Y2) de dos puntos P1, P2 de la curva elíptica, a adicionar.
Suponemos en este caso que el punto P2 es diferente del punto
inverso (-P1) del punto P1.
La unidad central 2 calcula seguidamente una
variable intermedia \lambda según la relación:
(fórmula
F21)\lambda = (X1^{2} + X1xX2 + X2^{2} + a) \ / \ (Y1
+
Y2)
La unidad central memoriza la variable \lambda
en un registro de la memoria de trabajo 8 y seguidamente calcula las
coordenadas (X3, Y3) del punto P3, resultado de la adición del
punto P1 y del punto P2:
X3 = \lambda
^{2} - X1 -
X2
- \quad
- Y3 = \lambda x(X1 - X3) - Y1
Las coordenadas (X3, Y3) se memorizan finalmente
en otros registros de la memoria de trabajo 8, para utilizarlos en
otras ocasiones, por ejemplo para el resto del algoritmo de
codificación.
En este ejemplo igualmente, la relación
\lambda definida por la fórmula F21 es idéntica a la relación
\lambda, del arte anterior definida por la fórmula F18, en caso de
que X1 \neq X2, es decir en caso de que P1 \neq P2 (caso de una
verdadera adición de puntos distintos).
\newpage
\global\parskip0.950000\baselineskip
En efecto, partiendo de la relación F18, tenemos
\lambda = (Y1-Y2)/(X1-X2), si X1
\neq X2, es decir:
\lambda =
(Y1-Y2) / (X1-X2) =
[(Y1-Y2) \
(Y1-Y2)]
/ \
[(X1-X2) \
(Y1-Y2)]
- \quad
- = (Y1^{2}-Y2^{2}) / [(X1-X2) \ (Y1 + Y2)]
puesto que Y2 = -Y2 (fórmula F17) en este
ejemplo, deducimos de ello:
\lambda =
(X1^{3} + axX1-X2^{3} - axX2) \ / \
[(X1-X2) \ (Y1 +
Y2)]
puesto que Yi^{2} = Xi^{3} +
axXi + b para un punto Pi de la curva elíptica considerada en este
ejemplo, el punto Pi tiene como coordenadas (Xi, Yi). Resulta de
este
modo,
\lambda =
(X1^{2} + X1xX2 + X2^{2} + a) \ / \ (Y1 +
Y2),
ya sea la fórmula
F21.
Del mismo modo, la relación \lambda, definida
por la fórmula F21 es idéntica a la relación \lambda del arte
anterior definida por la fórmula F19, en caso de que X1 = X2 (caso
de una operación de duplicación de un punto), es decir en caso de
que P1 = P2. En efecto, partiendo de la fórmula F21, tomando X1 =
X2 e Y1 = Y2, viene inmediatamente:
(fórmula
F16)\lambda = (3xX1^{2} + a) \ / \
(2xY1)
El mismo valor de lambda permite también
realizar una adición o una duplicación de puntos en el caso de una
curva elíptica de características estrictamente superior a 3 y
definida por una parametrización de Weierstrass simplificada.
En un segundo ejemplo, la curva elíptica es una
curva no supersingular en un cuerpo de características igual a 2,
que tiene como ecuación, con a, b ? IK:
E/IK: Y^{2}
+ XY = X^{3} + axX^{2} +
b
Del mismo bodoque en el ejemplo anterior, cuando
el dispositivo 1 de cálculo de exponenciación es solicitado para
el cálculo de una operación de adición, la unidad central 2 memoriza
en primer lugar las coordenadas (X1, Y1), (X2, Y2) de los dos
puntos P1, P2 que deben adicionarse. Aquí también suponemos que el
punto P2 es diferente de un punto inverso (-P1) del punto P1.
La unidad central 2 calcula seguidamente una
variable intermedia \lambda según la relación:
(fórmula
F21)\lambda = (X1^{2} + X1xX2 + X2^{2} + aX1 + aX2 +
Y1) \ / \ (Y1 + Y2 +
X2)
La unidad central memoriza la variable \lambda
en un registro de la memoria de trabajo 8 y seguidamente calcula las
coordenadas (X3, Y3) del punto P3, resultado de la adición del
punto P1 y del punto P2:
X3 = \lambda
^{2} + \lambda + a + X1 +
X2
- \quad
- Y3 = \lambda ,x \ (X1 + X3) + X3 + Y1
Las coordenadas (X3, Y3) se memorizan finalmente
en otros registros de la memoria de trabajo 8, para utilizarlos en
otras ocasiones.
En este ejemplo igualmente, la relación
\lambda definida por la fórmula F21 es idéntica a la relación
\lambda del arte anterior definida por la fórmula F18, en caso de
que X1 \neq X2, es decir en caso de que P1 \neq P2 (caso de una
verdadera adición de puntos distintos).
El mismo valor de lambda permite igualmente
realizar una adición o una duplicación de puntos en caso de que una
curva elíptica de característica igual a 2 y definida por una
parametrización de Weierstrass.
\global\parskip0.990000\baselineskip
Podemos observar que en todos los ejemplos
descritos anteriormente, se han utilizado coordenadas afines. No
obstante, es absolutamente posible utilizar coordenadas proyectivas,
homogéneas o de Jacobi. Llegado el caso, tendremos cuidado de volver
a escribir las fórmulas en forma proyectiva.
Para ello, reemplazaremos, en las fórmulas de
\lambda, de X3 y de Y3 dados como ejemplo, las coordenadas afines
Xi, Yi por:
* en coordenadas proyectivas de Jacobi:
Xi = Ui/Wi^{2}
\
\hskip0,5cme
\hskip0,5cm\ Yi = Vi/Wi^{3}
* en coordenadas proyectivas homogéneas:
Xi = Ui/Wi
\hskip0,5cme
\hskip0,5cmYi = Vi/Wi.
Claims (6)
-
\global\parskip0.950000\baselineskip
1. Procedimiento criptográfico en el que medios Automáticos realizan una adición de un primer punto P1 definido por primeras coordenadas afines (X1, Y1) y un segundo punto P2 definido por segundas coordenadas afines (X2, Y2), estos puntos, primero y segundo, pertenecen a una curva elíptica definida por una ecuación de Weierstrass de tipo:Y^{2} + a1xXxY + a3xY = X^{3} + a2xX^{2} + a4xX + a6,(X, Y) son coordenadas afines de un punto de la curva, y a1, a2, a3, a4, a5, a6 son parámetros de la curva elíptica, y el resultado de la adición es un tercer punto P3 definido en la curva elíptica por terceras coordenadas afines (X3, Y3), el segundo punto P2 es diferente del inverso (-P1) del primer punto P1, las terceras coordenadas afines (X3, Y3) se calculan mediante las siguientes relaciones:X3 = \lambda ^{2} + a1x\lambda - a2 - X1- X2- \quad
- Y3 = - (\lambda + a1)xX3 - \mu - a3
con\mu = Y1 - \lambda xX1el procedimiento se caracteriza porque \lambda se calcula dividiendo (X1^{2} + X1xX2 + X2^{2} + a2xX1 + a2xX2 + a4-a1xY1) entre (Y1 + Y2 + a1xX1 + a3). - 2. Procedimiento criptográfico según la reivindicación 1, caracterizado porque la curva elíptica se define en un cuerpo de característica diferente de 2 o 3 y responde a la ecuación de Weierstrass simplificada de tipo:Y^{2} = X^{3} + axX + b,y porque los parámetros a1 a a6 de la curva elíptica se utilizan con los valores a1 = 0; a2 = 0; a = 0; a4 = a; y a6 = b.
- 3. Procedimiento criptográfico según la reivindicación 1, caracterizado porque la curva elíptica no es supersingular, se define en un cuerpo de característica igual a 2, y responde a la ecuación de Weierstrass simplificada de tipo:Y^{2} + XY = X^{3} + axX^{2} + b,y porque los parámetros al a a6 de la curva elíptica se utilizan con los valores a1 = 1; a2 = a; a3 = 0; a4 = 0; y a6 = b.
- 4. Procedimiento según cualquiera de las reivindicaciones 1 a 3, en el transcurso del cual se realiza una operación de multiplicación escalar aplicada a puntos de una curva elíptica.
- 5. Componente electrónico adaptado a la aplicación de un procedimiento criptográfico en el transcurso del cual se realiza una adición de un primer punto P1 definido por primeras coordenadas afines (X1, Y1) y de un segundo punto P2, definido por segundas coordenadas afines (X2, Y2), estos puntos, primero y segundo, pertenecen a una curva elíptica definida por una ecuación de Weierstrass de tipo:Y^{2} + a1xXxY + a3xY = X^{3} + a2xX^{2} + a4xX + a6,(X, Y) son coordenadas afines de un punto de la curva, a1, a2, a3, a4, a5, y a6 son parámetros de la curva elíptica, y el resultado de la adición es un tercer punto P3 definido en la curva elíptica por terceras coordenadas afines (X3, Y3), el segundo punto P2 es diferente del inverso (-P1) del primer punto P1,el componente comprende una memoria (4, 6, 8) que incluye los primeros, segundos y terceros registros para almacenar respectivamente las coordenadas afines del primero, segundo y tercer punto (P1, P2, P3),el componente se caracteriza porque comprende igualmente medios de cálculo programados para calcular las terceras coordenadas afines (X3, Y3) mediante las siguientes relaciones:X3 = \lambda ^{2} + a1x\lambda, - a2 - X1 - X2
- \quad
- Y3 = - (\lambda + a1)xX3 - \mu - a3
\newpage
\global\parskip0.990000\baselineskip
con:\mu = Y1 - \lambda xX1 \ y\lambda = se calcula dividiendo (X1^{2} + X1xX2 + X2^{2} + a2xX1 + a2xX2 + a4 - a1xXY1) entre (Y1 + Y2 + a1xX1 + a3). - 6. Tarjeta inteligente que incluye un componente electrónico según la reivindicación 5.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0110873A FR2828779B1 (fr) | 2001-08-17 | 2001-08-17 | Procede de calcul universel applique a des points d'une courbe elliptique |
FR0110873 | 2001-08-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2279887T3 true ES2279887T3 (es) | 2007-09-01 |
Family
ID=8866574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02772475T Expired - Lifetime ES2279887T3 (es) | 2001-08-17 | 2002-07-31 | Procedimiento de calculo universal aplicado a las puntas de una curva eliptica. |
Country Status (7)
Country | Link |
---|---|
US (1) | US20040247114A1 (es) |
EP (1) | EP1421473B1 (es) |
CN (1) | CN1571952A (es) |
DE (1) | DE60217131T2 (es) |
ES (1) | ES2279887T3 (es) |
FR (1) | FR2828779B1 (es) |
WO (1) | WO2003017087A1 (es) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2843506B1 (fr) * | 2002-08-09 | 2004-10-29 | Gemplus Card Int | Procede de calcul universel applique a des points d'une courbe elliptique definie par une quartique, procede cryptographique et composant electronique associes |
US7961873B2 (en) * | 2004-03-03 | 2011-06-14 | King Fahd University Of Petroleum And Minerals | Password protocols using XZ-elliptic curve cryptography |
US7379546B2 (en) * | 2004-03-03 | 2008-05-27 | King Fahd University Of Petroleum And Minerals | Method for XZ-elliptic curve cryptography |
US7961874B2 (en) * | 2004-03-03 | 2011-06-14 | King Fahd University Of Petroleum & Minerals | XZ-elliptic curve cryptography with secret key embedding |
ATE464599T1 (de) | 2005-10-18 | 2010-04-15 | Telecom Italia Spa | Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über primkörpern für nebenkanal-attacken-beständige kryptosysteme |
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 |
US8102998B2 (en) * | 2007-05-02 | 2012-01-24 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
US8369517B2 (en) * | 2008-08-12 | 2013-02-05 | Inside Secure | Fast scalar multiplication for elliptic curve cryptosystems over prime fields |
US8509426B1 (en) | 2010-12-01 | 2013-08-13 | King Fahd University Of Petroleum And Minerals | XZ-elliptic curve cryptography system and method |
US8699701B2 (en) | 2010-12-01 | 2014-04-15 | King Fahd University | Method of performing XZ-elliptic curve cryptography for use with network security protocols |
US8861721B2 (en) * | 2012-12-26 | 2014-10-14 | Umm Al-Qura University | System and method for securing scalar multiplication against simple power attacks |
US8804952B2 (en) | 2012-12-26 | 2014-08-12 | Umm Al-Qura University | System and method for securing scalar multiplication against differential power attacks |
US11146397B2 (en) * | 2017-10-31 | 2021-10-12 | Micro Focus Llc | Encoding abelian variety-based ciphertext with metadata |
CN112099760B (zh) * | 2020-08-24 | 2022-11-11 | 清华大学 | 国密sm2算法中点加与倍点的单乘法器无缝调度方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69113245D1 (de) * | 1991-03-14 | 1995-10-26 | Omnisec Ag Regensdorf | Verschlüsselungssystem mit öffentlichem Schlüssel unter Verwendung elliptischer Kurven über Ringe. |
US5272755A (en) * | 1991-06-28 | 1993-12-21 | Matsushita Electric Industrial Co., Ltd. | Public key cryptosystem with an elliptic curve |
US6038581A (en) * | 1997-01-29 | 2000-03-14 | Nippon Telegraph And Telephone Corporation | Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed |
JPH11242434A (ja) * | 1998-02-26 | 1999-09-07 | Hitachi Ltd | 楕円曲線暗号実行方法及び暗号処理システム |
JP3796993B2 (ja) * | 1998-12-22 | 2006-07-12 | 株式会社日立製作所 | 楕円曲線暗号実行方法及び装置並びに記録媒体 |
US6611597B1 (en) * | 1999-01-25 | 2003-08-26 | Matsushita Electric Industrial Co., Ltd. | Method and device for constructing elliptic curves |
FR2791497B1 (fr) * | 1999-03-26 | 2001-05-18 | Gemplus Card Int | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique |
JP3821631B2 (ja) * | 2000-05-30 | 2006-09-13 | 株式会社日立製作所 | 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体 |
US6826586B2 (en) * | 2000-12-15 | 2004-11-30 | Sun Microsystems, Inc. | Method for efficient computation of point doubling operation of elliptic curve point scalar multiplication over finite fields F(2m) |
KR100817048B1 (ko) * | 2005-03-05 | 2008-03-26 | 삼성전자주식회사 | 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치 |
-
2001
- 2001-08-17 FR FR0110873A patent/FR2828779B1/fr not_active Expired - Fee Related
-
2002
- 2002-07-31 ES ES02772475T patent/ES2279887T3/es not_active Expired - Lifetime
- 2002-07-31 CN CN02820507.3A patent/CN1571952A/zh active Pending
- 2002-07-31 WO PCT/FR2002/002769 patent/WO2003017087A1/fr active IP Right Grant
- 2002-07-31 DE DE60217131T patent/DE60217131T2/de not_active Expired - Fee Related
- 2002-07-31 US US10/486,974 patent/US20040247114A1/en not_active Abandoned
- 2002-07-31 EP EP02772475A patent/EP1421473B1/fr not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
FR2828779B1 (fr) | 2004-01-16 |
WO2003017087A1 (fr) | 2003-02-27 |
CN1571952A (zh) | 2005-01-26 |
DE60217131T2 (de) | 2007-09-27 |
US20040247114A1 (en) | 2004-12-09 |
EP1421473B1 (fr) | 2006-12-27 |
FR2828779A1 (fr) | 2003-02-21 |
DE60217131D1 (de) | 2007-02-08 |
EP1421473A1 (fr) | 2004-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2279887T3 (es) | Procedimiento de calculo universal aplicado a las puntas de una curva eliptica. | |
JP4188571B2 (ja) | 情報処理装置の演算方法および耐タンパ演算攪乱実装方式 | |
JP3950638B2 (ja) | 耐タンパーモジュラ演算処理方法 | |
ES2159274T3 (es) | Procedimiento de calculo para criptografiar una curva eliptica. | |
KR100693239B1 (ko) | 정보 처리 장치, ic 카드 | |
ES2331456T3 (es) | Procedimiento de contramedida en un componente electronico que emplea un algoritmo de codificacion con clave publica de tipo curva eliptica. | |
US6666381B1 (en) | Information processing device, information processing method and smartcard | |
US20030059042A1 (en) | Elliptic scalar multiplication system | |
US7379546B2 (en) | Method for XZ-elliptic curve cryptography | |
ES2247326T3 (es) | Procedimiento de contramedida en un componente electrico que utiliza un algoritmo criptografico de tipo llave publica en curva eliptica. | |
US7483534B2 (en) | Elliptic polynomial cryptography with multi y-coordinates embedding | |
EP2211265B1 (en) | Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method | |
JP2009531725A (ja) | 安全にデータを求める方法 | |
ES2287745T3 (es) | Procedimiento para la aplicacion asegurada de un algoritmo de criptografia de tipo rsa y componente correspondiente. | |
WO2019121747A1 (en) | Device and method for protecting execution of a cryptographic operation | |
EP1296224B1 (en) | Elliptic scalar multiplication system | |
JP2002261751A (ja) | 暗号処理方法 | |
Kern et al. | Low-resource ECDSA implementation for passive RFID tags | |
US20040064715A1 (en) | Method and device for accessing a memory to prevent tampering of a program in the memory | |
JP2008525834A (ja) | 暗号用の安全かつコンパクトな累乗方法 | |
US20060056619A1 (en) | Method for universal calculation applied to points of an elliptic curve | |
CN111480140B (zh) | 计算设备和方法 | |
Berta et al. | Implementing elliptic curve cryptography on PC and smart card | |
MXPA02006801A (es) | Algoritmo de exponenciacion modular en un componente electronico utilizando un algoritmo de codificacion de clave publica. | |
EP4372548A1 (en) | Protecting cryptographic operations againt horizontal side-channel analysis attacks |