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 PDF

Info

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
Application number
ES02772475T
Other languages
English (en)
Inventor
Marc Joye
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Application granted granted Critical
Publication of ES2279887T3 publication Critical patent/ES2279887T3/es
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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform 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)
\euro
IKxIK, 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
\euro
IK, 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.5cm
e \
\hskip0.5cm
Y= 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.5cm
e \
\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,5cm
e
\hskip0,5cm
\ Yi = Vi/Wi^{3}
* en coordenadas proyectivas homogéneas:
Xi = Ui/Wi
\hskip0,5cm
e
\hskip0,5cm
Yi = Vi/Wi.

Claims (6)

  1. \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 xX1
    el procedimiento se caracteriza porque \lambda se calcula dividiendo (X1^{2} + X1xX2 + X2^{2} + a2xX1 + a2xX2 + a4-a1xY1) entre (Y1 + Y2 + a1xX1 + a3).
  2. 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. 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. 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. 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. 6. Tarjeta inteligente que incluye un componente electrónico según la reivindicación 5.
ES02772475T 2001-08-17 2002-07-31 Procedimiento de calculo universal aplicado a las puntas de una curva eliptica. Expired - Lifetime ES2279887T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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대책을 위한 암호화 방법 및 장치

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