ES2427740T3 - Criptografía sobre una curva elíptica simplificada - Google Patents

Criptografía sobre una curva elíptica simplificada Download PDF

Info

Publication number
ES2427740T3
ES2427740T3 ES10738014T ES10738014T ES2427740T3 ES 2427740 T3 ES2427740 T3 ES 2427740T3 ES 10738014 T ES10738014 T ES 10738014T ES 10738014 T ES10738014 T ES 10738014T ES 2427740 T3 ES2427740 T3 ES 2427740T3
Authority
ES
Spain
Prior art keywords
term
point
calculate
square root
following
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.)
Active
Application number
ES10738014T
Other languages
English (en)
Inventor
Thomas Icart
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 Identity and Security France SAS
Original Assignee
Morpho 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41480154&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2427740(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Morpho SA filed Critical Morpho SA
Application granted granted Critical
Publication of ES2427740T3 publication Critical patent/ES2427740T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Un procedimiento de ejecución de un cálculo criptográfico en un componente electrónico que comprende unaetapa de obtención de un punto P(X,Y) a partir de al menos un parámetro t, sobre una curva elíptica que verifica laecuación: Y2 >= f(X); y a partir de polinomios X1(t), X2(t) y U(t) que verifican la igualdad siguiente: -f(X1 (t)).f(X2(t))>=U(t)2 en el cuerpo finito Fq, cualquiera que sea el parámetro t, q verificando la ecuación q >= 3 mod 4; comprendiendo dicho procedimiento las etapas siguientes: /1/ obtener un valor del parámetro t; /2/ determinar el punto P efectuando las subetapas siguientes: /i/ calcular (11) X1 >= X1(t), X2 >= (X2(t) y U>=U(t) /ii/ probar (12) si el término f(X1) es un término al cuadrado en el cuerpo finito Fq y en este caso, calcular (13) la raíz cuadrada del término f(X1), teniendo el punto P por abscisa X1 y por ordenada Y1 laraíz cuadrada del término f(X1); /iii/ si no calcular (14) la raíz cuadrada del término f(X2), teniendo el punto P porabscisa X2 y por ordenada Y2 la raíz cuadrada del término f(X2); /3/ utilizar dicho punto P en una aplicación criptografía sea de cifrado o de aplicación defunciones hash o de firma de autentificación o de identificación.

Description

Criptografía sobre una curva elíptica simplificada.
El presente invento se refiere a la criptografía de mensajes basada en la utilización de puntos de una curva elíptica, y más particularmente a tal criptografía de manera determinista.
A fin de aplicar un cálculo criptográfico a un mensaje, se emplean clásicamente algoritmos de inserción de valores arbitrarios en el seno de estructuras matemáticas. A este efecto, las curvas elípticas son estructuras matemáticas que permiten a la vez facilitar el empleo de tales cálculos criptográficos y guardar espacio de memoria con relación al empleo de otros cálculos criptográficos.
Sin embargo los algoritmos eficaces de inserción de valores arbitrarios que utilizan las curvas elípticas son probabilistas. Por consiguiente, el tiempo de empleo de tales algoritmos no es constante, es función del mensaje a codificar. Así, si un atacante determina diferentes tiempos de empleo del algoritmo aplicado, puede obtener informaciones sobre el mensaje codificado.
A fin de enmascarar el tiempo utilizado por un algoritmo de inserción probabilista, es posible prever añadir etapas inútiles en este algoritmo con el fin de que su aplicación se despliegue siempre sobre un período de tiempo de longitud idéntica, cualquiera que sea el mensaje tratado.
Un punto P de una curva elíptica está definido por su abscisa X y su ordenada Y, verificando X e Y la siguiente ecuación:
f(X) = Y2 (1)
donde f(X) es el polinomio f(X) = X3 + aX + b
Se conoce una familia de polinomios, que verifican la igualdad de Skalba que permite determinar un punto de una curva elíptica, tal como se ha definido en el documento 'Construcción de Puntos Racionales sobre Curvas Elípticas sobre campos finitos' de Andrew Shallue y Christiaan van de Woestijne.
Los polinomios X1(t), X2(t), X3(t) y U(t) verifican la igualdad de Skalba si verifican la siguiente ecuación:
f(X1 (t)).f(X2(t)).f(X3(t))=U2(t) (2)
donde f es la función que define la curva elíptica considerada, y
donde t es un parámetro.
Los polinomios que verifican la igualdad de Skalba pueden tomar dos parámetros u y t. En este caso, la igualdad de Skalba se escribe:
f(X1 (t,u)).f(X2(t,u)).f(X3(t,u))=U2(t,u)
Se puede utilizar este tipo de ecuaciones con dos parámetros u y t. Sin embargo, en las aplicaciones consideradas, se puede prever ventajosamente fijar u, o incluso fijar t, a un valor cualquiera. Así, queda por elegir el valor de un solo parámetro.
Dados los parámetros elegidos t y u, se observa que X1 = X1(t,u), X2=X2(t,u), X3=X3(t,u), U=U(t,u), donde X1, X2, X3 y U son elementos de Fq. Esta ecuación (2) significa que uno al menos de entre los valores f(X1), f(X2) y f(X3) corresponde a un término al cuadrado en el cuerpo finito Fq.
Luego, una vez que el término al cuadrado de Fq, f(Xi), es identificado, se puede obtener a continuación un punto de
la curva elíptica P(X ,
i
El cálculo de f (Xi )puede hacerse con ayuda de un cálculo de exponenciación cuando la característica q del
cuerpo Fq verifica:
q = 3 mod 4 En este caso, se sabe que:
q+1)/4
f (Xi ) = f (Xi )( (3)
Para determinar un punto de la curva elíptica (1), conviene por tanto determinar qué valor de entre los tres valores
f(X1), f(X2) y f(X3) corresponde a un término al cuadrado en el cuerpo finito Fq. Se podría a este efecto prever controlar en primer lugar si el término f(X1) es un término al cuadrado en el cuerpo finito Fq, luego, si no es este el caso, aplicar este mismo control al término f(X2), y finalmente si sigue sin ser el caso nunca, el término f(X3) de manera similar. Sin embargo, procediendo así, la determinación de un punto sobre la curva elíptica no consume siempre el mismo tiempo, ya que esta determinación es efectuada más rápidamente si el primer término controlado es un término al cuadrado que si solo el tercer término es un término al cuadrado.
Un atacante potencial podría extraer parte de esta diferencia de tiempo transcurrido en determinar un punto sobre la curva elíptica para violar el secreto unido al parámetro que ha permitido generar este punto. Ahora bien, en el dominio de la criptografía, estos parámetros deben permanecer secretos.
Estos parámetros pueden en particular corresponder a contraseñas. Así, es importante que la determinación de estos puntos no proporcione en sí misma informaciones que permitan violar el secreto del parámetro, y por este hecho, hay que evitar ataques basados sobre un análisis del tiempo transcurrido en determinar un punto de la curva.
Para paliar esta desventaja, sería posible controlar de manera sistemática los tres términos f(Xi) yendo i de 1 a 3. Así, el tiempo para determinar un punto de la curva no sería ya función del punto determinado.
Pero, el hecho de controlar si un término de la ecuación (2) es un término al cuadrado en el cuerpo finito Fq es una operación compleja que pone en práctica en particular una exponenciación que es costosa en tiempo de ejecución. En el caso en que se desea determinar un punto de una curva elíptica sobre la base de las igualdades de Skalba, efectuando al mismo tiempo estas determinaciones en tiempo constante, se requieren cuatro operaciones de exponenciación en el caso descrito anteriormente, una exponenciación por control de cada uno de los términos de la ecuación (2) de Skalba y una exponenciación para calcular la raíz cuadrada, tal como se ha descrito en la ecuación (3).
El presente invento pretende mejorar la situación.
Un primer aspecto del presente invento propone un procedimiento de ejecución de un cálculo criptográfico en un componente electrónico que comprende una etapa de obtención de un punto P(X,Y) a partir de al menos un parámetro t, sobre una curva elíptica que verifica la ecuación:
Y2 = f(X); y
a partir de polinomios X1(t), X2(t) y U(t) que verifican la igualdad siguiente:
-
f(X1 (t)).f(X2(t))=U(t)2
en el cuerpo finito Fq, cualquiera que sea el parámetro t, verificando q la ecuación q = 3 mod 4;
comprendiendo dicho procedimiento las etapas siguientes:
/1/ obtener un valor del parámetro t;
/2/ determinar el punto P efectuando las sub etapas siguientes:
/i/ calcular X1 = X1(t), X2 = (X2(t) y U(t)=U(t)
/ii/ probar si el término f(X1) es un término al cuadrado en el cuerpo finito Fq y en este caso, calcular la raíz cuadrada del término f(X1), teniendo el punto P por abscisa X1 y por ordenada la raíz cuadrada del término f(X1);
/iii/ si no calcular la raíz cuadrada en el término f(X2), teniendo el punto P por abscisa X2 y por ordenada la raíz cuadrada del término f(X2);
/3/ utilizar dicho punto P en una aplicación criptografía sea de cifrado o de aplicación de funciones hash o de firma de autentificación o de identificación.
Conviene aquí observar que la determinación de un punto sobre una curva elíptica es efectuada sobre la base de una ecuación ventajosa:
-
f(X1).f(X2)=U(t)2 (4)
Esta ecuación proviene de la igualdad de Skalba (2). En efecto, se puede obtener esta ecuación poniendo:
f(X3)= -1
Ahora bien, en el cuerpo finito Fq con q = 3 mod 4, el -1 no es un término al cuadrado. Por consiguiente, solamente dos términos de la ecuación (4) quedan aún por ser controlados para decidir cuál de los dos términos corresponde a un término al cuadrado en Fq.
Gracias a estas disposiciones, se puede determinar un punto de una curva elíptica de manera adaptada a una utilización en el dominio de la criptografía, ya que por una parte, esta determinación consume el mismo tiempo cualquiera que sea el parámetro de entrada t y por otra parte, es eficaz pues el número de operaciones pesadas es reducido.
Esta determinación consume un tiempo constante que no depende del o de los parámetros de entrada. En efecto, incluso si este procedimiento ofrece diferentes voces de tratamiento en función del término que corresponde a un término cuadrado en la igualdad de Skalba, el mismo número de operaciones del mismo tipo es efectuado cualquiera que sea el punto de la curva determinado. De manera más precisa, cualquiera que sea el punto de la curva determinado, se efectúa la lista de las operaciones siguientes:
-
ensayo de un término al cuadrado en Fq;
-
determinación de una raíz cuadrada.
No es por tanto posible proceder a un ataque de tipo ' ataque de temporización'.
Además, esta determinación es eficaz ya que el número de las operaciones costosas empleadas es limitado. En efecto, gracias a la ecuación (4), sólo hay que controlar dos términos, en lugar de tres en la ecuación (2), para determinar si corresponden a términos al cuadrado en el cuerpo finito Fq, empleando como máximo dos operaciones de tipo exponenciación.
Este modo de realización es general y puede ser aplicado fácilmente a todas las familias de polinomios que verifican la igualdad (4).
En un modo de realización del presente invento, está previsto, en la etapa /2/-/ii/, efectuar las etapas siguientes:
-
calcular R1 tal que:
q-1 R1 = f (X1) 2
-
si R1 es igual a 1,
-
decidir que el término f(X1) es un término al cuadrado en el cuerpo Fq; y
q+1
-
calcular Y1 = f (X1) 4
q+1
-
si no, calcular Y2 = f (X 2) 4
Aquí, sólo son efectuadas dos exponenciaciones, cualquiera que sea la vía de tratamiento aplicada.
En otro modo de realización, es aún posible reducir el número de exponenciaciones, que son las operaciones más pesadas a realizar en este procedimiento. En efecto, en la etapa /2/-/ii/, se pueden efectuar las etapas siguientes:
-
calcular R1' tal que:
q+1
q-1-
R1'= f (X1) 4
-
calcular R2' tal que:
R2'= R1'2
-
calcular R3' tal que:
R '= R '.f (X )
32 1
y si R3' no es igual a 1, en la etapa /2/-/iii/, se obtiene la raíz cuadrada de f(X) según la ecuación siguiente:
f (X ) = R .R '
2 01
donde R0 verifica la ecuación siguiente:
q+1
q-1-
R0 = U (t).(-1) 4
Conviene observar aquí que, ventajosamente, solamente se efectúa una exponenciación en este caso en el curso de la ejecución de un procedimiento según un modo de realización del presente invento.
En efecto, se utiliza astutamente el hecho de que se puede recuperar finalmente la raíz cuadrada de f(X2) en el caso en que el término f(X2) corresponde a un término al cuadrado, sin emplear sin embargo una exponenciación suplementaria. En efecto, la raíz cuadrada de f(X2) se obtiene por:
f (X ) = R .R '
2 01
donde el término R es finalmente obtenido por una operación de multiplicación que es menos pesada que el empleo de una exponenciación. Además, sólo hay que calcular el término U(t) en este modo de realización, pues el término
q+1
q-1
(-1) 4
es un término de cálculo inmediato. No es útil de ninguna forma por este hecho calcular previamente este último término y almacenarlo en una memoria. Se puede por tanto preservar sitio en la memoria.
Luego, si R3' es igual a 1, entonces en la etapa /2/-/iii/, se puede obtener la raíz cuadrada de f(X1) según la ecuación siguiente:
f (X ) = R '.f (X )
Lo que corresponde igualmente a una multiplicación. Durante la ejecución de tales cálculos según un modo de realización del presente invento, el tiempo consumido para la puesta en práctica de las operaciones distintas de una exponenciación es despreciable con relación al tiempo consumido por la puesta en práctica de una exponenciación. Ahora bien, gracias a las características del presente
invento se puede pasar de cuatro exponenciaciones, como se ha descrito antes en un caso clásico, a dos exponenciaciones como máximo. Tal reducción del número de exponenciaciones es muy ventajosa. En un modo de realización del presente invento, los polinomios que verifican la ecuación (4) según un modo de
realización del presente invento en X e Y son expresados en coordenadas jacobianas en X', Y' y Z tales que: X' = X.Z2, Y' = Y.Z3
y las operaciones de inversión son transformadas en operación de multiplicación.
La transformación en coordenadas jacobianas permite transformar las inversiones en multiplicaciones, cuando el término Z es elegido correctamente. En un modo de realización del presente invento, los polinomios son expresados en coordenadas jacobianas según
las cuales el punto P(X,Y) se escribe P(X',Y',Z) tales que X' = X.Z2, Y' = Y.Z3
donde la función f se escribe fZ(X') y verifica:
fZ (X') = X'3+a.X'.Z4 + b.Z6
verificando la curva elíptica la ecuación:
Y'2 = fZ (X')
en la que los polinomios expresados en coordenadas jacobianas son X'1(t), X'2(t), Z(t) y U'(t) y verifican la igualdad siguiente en coordenadas jacobianas: U'(t)2 = -fZ(t)(X'1(t)).fZ(t)(X'2(t)))
y en la que Z(t) es determinada de manera que las operaciones de inversión sean transformadas en operación de multiplicación.
En la etapa /1/, el valor del parámetro t puede ser obtenido en función de una contraseña o un identificador. Se puede así prever tomar como parámetro la contraseña directamente o aún un derivado de la contraseña.
En un modo de realización del presente invento, la aplicación criptográfica es una aplicación de autentificación o de identificación por una entidad de control, y
en la etapa /1/, se realizan las etapas siguientes:
/a/ generar un valor aleatorio;
/b/ obtener un valor cifrado cifrando dicho valor aleatorio sobre la base de una función de cifrado utilizando una clave de cifrado determinada a partir de una contraseña o identificador correspondiente al parámetro; y
/c/ transmitir el valor cifrado a la entidad de control.
Procediendo así, la entidad de control tiene la posibilidad de obtener el valor aleatorio en función del valor cifrado recibido a partir de la contraseña. Luego, recupera el valor del parámetro t aplicando una función adaptada.
Un segundo aspecto del presente invento propone un dispositivo electrónico que comprende medios adaptados para la puesta en práctica de un procedimiento de ejecución de un cálculo criptográfico según el primer aspecto del presente invento.
Otros aspectos, propósitos y ventajas del invento aparecerán en la lectura de la descripción de uno de sus modos de realización.
El invento será igualmente mejor comprendido con ayuda de las figuras siguientes:
La fig. 1 ilustra las principales etapas de un procedimiento de ejecución de un cálculo criptográfico según un modo de realización del presente invento;
La fig. 2 ilustra un procedimiento de ejecución de un cálculo criptográfico en detalle según un modo de realización del presente invento; y
La fig. 3 ilustra un procedimiento de ejecución de un cálculo criptográfico en detalle según un modo de realización del presente invento.
La fig. 1 ilustra las principales etapas de un procedimiento de ejecución de un cálculo según un modo de realización del presente invento.
Estas principales etapas están adaptadas para la determinación de un punto sobre una curva elíptica con el propósito de utilizar este punto en el seno de una aplicación criptográfica. Tal cálculo criptográfico puede ser ejecutado en un componente electrónico de manera segura, es decir sin que la determinación de este punto dé una información cualquiera sobre el punto determinado, y por este hecho sobre el parámetro t.
Este cálculo comprende, en un cuerpo finito Fq, donde q es igual a 3 mod 4, una etapa de obtención de un punto P(X,Y) sobre una curva elíptica que verifica la ecuación:
Y2 = f(X)
Un punto P(X,Y) tiene su abscisa X que corresponde a una entre X1(t) y X2(t), para un valor de t obtenido, tales que:
-
f(X1).f(X2)=U(t)2 (4)
en el cuerpo finito Fq.
Tales polinomios pueden ser función de los parámetros u y t. En el contexto del presente invento, uno de los parámetros puede ser fijado ventajosamente y por consiguiente los polinomios que verifican la ecuación (4) son entonces función de un solo parámetro t.
De manera general, a fin de determinar un punto sobre la curva, se busca determinar, dados los parámetros de entrada u y t, aquellos entre los valores X1 = X1(t,u) y X2 = X2(t,u) que corresponden a un término al cuadrado en el cuerpo finito Fq. A este efecto, en una etapa 11, se toma el parámetro t en cuenta y se calcula:
Xi =Xi(t) para i igual a 1 o 2,
y
U=U(t)
En una etapa 12, se decide si el término f(X1) es un término al cuadrado sobre la base de ciertos cálculos. Si el término f(X1) es un término al cuadrado entonces se calcula su raíz cuadrada con el fin de obtener, en una etapa 13, el punto P de abscisa X1 y de ordenada Y1, salido del cálculo de la raíz cuadrada precedente.
En caso contrario, se obtiene en una etapa 14 el punto P de abscisa X2 y de ordenada Y2. Se prevé este efecto calcular la raíz cuadrada del término f(X2).
Conviene observar que alcanzar las etapas 13 ó 14 de obtención de un punto de la curva elíptica según un modo de realización del presente invento requiere operaciones similares. Así, cualquiera que sea el o los parámetros de entrada t y u no es posible hacer un ataque sobre la base del tiempo transcurrido.
El punto P(Xi,Yi), para una i igual a 1 ó 2, puede a continuación ser utilizado ventajosamente en una aplicación criptográfica de cifrado o de aplicación de funciones hash o de firma o de autentificación o de identificación, ya que su determinación no ha proporcionado ningún elemento susceptible de violar su secreto.
En el cuerpo Fq, correspondiendo q a 3 mod 4, es posible controlar si un término es un término al cuadrado de diferentes maneras.
La fig. 2 ilustra la puesta en práctica del procedimiento según un modo de realización del presente invento.
En una etapa 21, se calcula:
q-1 R1 = f (X1) 2
Luego, la prueba para controlar si el término f(X1) es un término al cuadrado en Fq, puede ser efectuada, en una etapa 22, comparando R1 a 1. En efecto, en Fq, si R1 es igual a 1, entonces f(X1) es un término al cuadrado. En este caso, en la etapa 24, se calcula la raíz cuadrada de este término como sigue:
q+1
= f (X1) 4
Si no, es el término f(X2) el que es un término al cuadrado. Entonces, en una etapa 23, se calcula su raíz cuadrada como sigue:
q+1
= f (X 2) 4
En este modo de realización, conviene observar que el número y el tipo de operaciones efectuadas para la determinación de un punto P es el mismo cualquiera que sea la vía de tratamiento emprendida, es decir cualquiera que sea el término que corresponde en la ecuación (4) a un término al cuadrado.
La fig. 3 ilustra otro modo de realización de un procedimiento de ejecución según un modo de realización del presente invento en el que, sólo es empleada una exponenciación.
Aquí, ventajosamente, se puede reducir aún el número de exponenciaciones empleadas, no utilizando la misma prueba de término al cuadrado 12 de la fig. 1.
En un modo de realización del presente invento, cuando se busca determinar si un término A es un término al cuadrado en Fq, se pueden efectuar las etapas siguientes:
q+1
1(q-1)
4 (i)
W== A
1 q+1
A 4
W2 =W12 (ii)
W3 =W2.A (iii) En fino, si el término A es un término al cuadrado entonces:
-
W1 corresponde a la inversa de la raíz cuadrada de A, o sea 1/-A, pues una exponenciación a (q-1) corresponde a una inversión y una exponenciación a (q+1)/4 corresponde a una raíz cuadrada en el cuerpo finito Fq;
-
W2 corresponde a la inversa de A; y
-
W3 corresponde al valor 1.
Así, cuando W3 es igual al valor 1, se concluye de ello que el término A es un término al cuadrado en el cuerpo finito Fq. Si A no es un término al cuadrado entonces W3 no es igual a 1.
Las secciones siguientes describen un modo de realización basado en este tipo de ensayo. En un modo de realización del presente invento, en una etapa 311, se efectúa la multiplicación siguiente:
q+1
q-1-
R1'= f (X1) 4
Luego, se controla si este término R0 es un término al cuadrado como se ha enunciado antes. Así, en una etapa 312, se calcula:
R2' = R1'2
Luego en una etapa 313, se calcula:
R3' = R2'.f(X1)
A continuación, se decide si el término R3' es igual a1 en una etapa 314. Si tal es el caso, entonces el término siguiente corresponde a la raíz cuadrada del término f(X1).
R4' = R3'.f(X1)
Si la prueba 314 no es verificada, entonces es el término f(X2) el que es un término al cuadrado en Fq. Se obtiene por tanto, en una etapa 316, la raíz cuadrada de este término según la ecuación siguiente:
R4'' = R0.R1'
donde R0 verifica la ecuación siguiente:
q+1
q-1-
R0 = U (t).(-1) 4
Conviene observar que la ecuación anterior permite obtener ventajosamente la raíz cuadrada de f(X2) sin efectuar sin embargo una operación de exponenciación como la efectuada en la etapa 23 o aún en la etapa 311. En efecto, aquí se trata de efectuar astutamente una multiplicación en lugar de una exponenciación.
Se tiene entonces R4'' que corresponde al término f(X2). Se ha determinado así un punto P de la curva elíptica que tiene por abscisa X2 y por ordenada R4''.
En el modo de realización descrito anteriormente con referencia a la fig. 3, como el descrito con referencia a la fig. 2, cualquiera que sea la determinación del punto P, es decir ya esté esta determinación basada sobre el valor X1 o X2, son empleados cálculos similares garantizando así una determinación de punto de la curva elíptica en tiempo constante.
En un modo de realización del presente invento, es posible elegir polinomios que verifican la ecuación (4) según un modo de realización del presente invento, fundándose sobre polinomios de Ulas, tales como los definidos en el documento ' Puntos racionales en ciertas curvas hiperelípticas sobre campos finitos' de Macir Ulas, fechado el 11 junio 2007.
En este documento, están descritos los polinomios que verifican la ecuación de Skalba (2) :
b � 1 �
X1(t,u) =- 1+
a � t4 f (u) + t2 f (u)�
X 2(t,u) = t2 f (u)X1(t,u)
X3(t,u) = u
U (t,u) =t3 f (u)4 f (X1(t,u)) donde f (u) = u3 + au + b donde a y b son elementos de Fq tales que su producto no sea nulo. Así, las ecuaciones pueden volverse a escribir fijando: f(u) = -1 sin que sea necesario calcular un valor del parámetro u para el que esta última ecuación es verificada. Se obtiene entonces:
b 1
X (t,u) =-1+
1 42
at -t X 2(t,u) =-t2 X1(t), y
U (t) = t3 f (X1(t))
Ventajosamente, estos polinomios verifican la ecuación siguiente: -f(X1(t)).f(X2(t))=U(t)2 (4) en un modo de realización del presente invento, se prevé utilizar ventajosamente las coordenadas jacobianas. Tal
transformación en coordenadas jacobianas permite transformar las operaciones de inversión en operaciones de multiplicación que son más rápidas y más fáciles de poner en práctica. La ecuación de una curva elíptica:
X3 + aX + b = Y2 puede escribirse en coordenadas jacobianas: X'3 + aX'Z4 + bZ6 = Y'2
Se observa que las coordenadas de un punto (X,Y) pueden escribirse en coordenadas jacobianas (X',Y',Z') tales que: X' = X.Z2 y Y' = Y.Z3
Conviene por tanto determinar un polinomio Z(t,u) de tal manera que las coordenadas jacobianas X', Y' y Z puedan
escribirse sin inversión. En las secciones siguientes, se aplica esta transformación en coordenadas jacobianas a un caso particular de polinomios tales como los enunciados anteriormente.
En este contexto, se elimina cualquier operación de inversión tomando:
Z(t) = a(t4 -t2)
En efecto, se pueden entonces escribir los polinomios en la forma siguiente en coordenadas jacobianas:
X '1(t) =-b.Z(t)(t4 -t2 + 1)
X '2 (t) =-t2 X '2 (t)
Conviene por tanto observar que ya no hay inversión en coordenadas jacobianas. Al poder esta operación ser tan costosa como una exponenciación, estas coordenadas permiten una mejora significativa del tiempo de cálculo.
Luego, para obtener la coordenada jacobiana Y', conviene calcular U'(t,u), el equivalente de U(t,u) en coordenadas jacobianas.
Se puede escribir en coordenadas jacobianas:
U '(t) = t3 fZ (X 2'(t))
con:
fZ(t)(X') = X'3 + a.X'.Z(t)4 + b.Z(t)6
5 A título de ejemplo solamente, las ecuaciones siguientes permiten no tener ya que efectuar operaciones de inversión en estas condiciones, se obtiene entonces un procedimiento de ejecución aún más eficaz y rápido, garantizando al mismo tiempo una ejecución siempre en tiempo constante.
El presente invento puede ventajosamente ser puesto en práctica en todo tipo de cálculo criptográfico utilizando curvas elípticas. Puede en particular ser ventajoso en el seno de protocolos de autentificación por contraseña, como
10 PACE (para 'Establecimiento de Conexión Autentificada por Contraseña' ('Password Authenticated Connection Establishment' en inglés)). En este caso, permite una mejora de las prestaciones de cálculos, no permitiendo al mismo tiempo ningún ataque unido al tiempo de ejecución del cálculo criptográfico.
El presente invento puede igualmente ser aplicado ventajosamente en el contexto de los protocolos que respetan la vida privada, tales como los que son utilizados para el control de documentos de identidad electrónicos, como los
15 pasaportes electrónicos.

Claims (5)

  1. REIVINDICACIONES
    1.- Un procedimiento de ejecución de un cálculo criptográfico en un componente electrónico que comprende una etapa de obtención de un punto P(X,Y) a partir de al menos un parámetro t, sobre una curva elíptica que verifica la ecuación:
    Y2 = f(X); y a partir de polinomios X1(t), X2(t) y U(t) que verifican la igualdad siguiente:
    -
    f(X1 (t)).f(X2(t))=U(t)2 en el cuerpo finito Fq, cualquiera que sea el parámetro t, q verificando la ecuación q = 3 mod 4; comprendiendo dicho procedimiento las etapas siguientes:
    /1/ obtener un valor del parámetro t;
    /2/ determinar el punto P efectuando las subetapas siguientes:
    /i/ calcular (11) X1 = X1(t), X2 = (X2(t) y U=U(t)
    /ii/ probar (12) si el término f(X1) es un término al cuadrado en el cuerpo finito Fq y
    en este caso, calcular (13) la raíz cuadrada del término f(X1), teniendo el punto P por abscisa X1 y por ordenada Y1 la raíz cuadrada del término f(X1); /iii/ si no calcular (14) la raíz cuadrada del término f(X2), teniendo el punto P por abscisa X2 y por ordenada Y2 la raíz cuadrada del término f(X2); /3/ utilizar dicho punto P en una aplicación criptografía sea de cifrado o de aplicación de
    funciones hash o de firma de autentificación o de identificación. 2.- Un procedimiento de ejecución de un cálculo criptográfico según la reivindicación 1, en el que en la etapa /2/-/ii/, se efectúan las etapas siguientes:
    -
    calcular (21) R1 tal que:
    q-1 R1 = f (X1) 2
    -
    si R1 es igual a 1 (22),
    -
    decidir que el término f(X1) es un término al cuadrado en el cuerpo Fq; y
    q+1
    -
    calcular (24) Y1 = f (X1) 4
    q+1
    -
    si no (23), calcular Y2 = f (X 2) 4
  2. 3.- Un procedimiento de ejecución de un cálculo criptográfico según la reivindicación 1, en el que en la etapa /2/-/ii/, se efectúan las etapas siguientes:
    -
    calcular (311) R1' tal que:
    q+1
    q-1-
    R1'= f (X1) 4
    -
    calcular (312) R2' tal que:
    R2'= R1'2
    -
    calcular (313) R3' tal que:
    R '= R '.f (X )
    32 1
    en el que si R3' no es igual a 1, en la etapa /2/-/iii/, se obtiene (316) la raíz cuadrada de f(X2) según la ecuación siguiente:
    f (X ) =R .R '
    2 01
    donde R0 verifica la ecuación siguiente:
    q+1
    q-1-
    R0 = U (t).(-1) 4
  3. 4.- Un procedimiento de ejecución de un cálculo criptográfico según la reivindicación 3, en el que, si R3' es igual a 1, entonces en la etapa /2/-/iii/, se obtiene (315) la raíz cuadrada de f(X1) según la ecuación siguiente:
    f (X ) = R '.f (X )
    13 1
  4. 5.- Un procedimiento de ejecución de un cálculo criptográfico según la reivindicación 1, en el que los polinomios son expresados en coordenadas jacobianas según las cuales el punto P(X,Y) se escribe P(X',Y',Z) tales que X' = X.Z2, Y' = Y.Z3 donde la función f se escribe fZ(X') y verifica:
    fZ (X') = X'3+a.x'.Z4 + b.Z6
    verificando la curva elíptica la ecuación:
    Y'2 = fZ (X')
    en la que los polinomios expresados en coordenadas jacobianas son X'1(t), X'2(t), Z(t) y U'(t) y verifican la igualdad siguiente en coordenadas jacobianas:
    U'(t)2 = -fZ(t)(X'1(t)).fZ(t)(X'2(t)))
    y en la que Z(t) es determinada de manera que las operaciones de inversión sean transformadas en operación de
    multiplicación. 6.- Un procedimiento de ejecución de un cálculo criptográfico según cualquiera de las reivindicaciones precedentes, en el que en la etapa /1/, el valor del parámetro t puede ser obtenido en función de una contraseña o un identificador.
  5. 7.- Un procedimiento de ejecución de un cálculo criptográfico según cualquiera de las reivindicaciones 1 a 6, en el que la aplicación criptográfica es una aplicación de autentificación o de identificación por una entidad de control, y en el cual, en la etapa /1/, se realizan las etapas siguientes: /a/ generar un valor aleatorio;
    /b/ obtener un valor cifrado cifrando dicho valor aleatorio sobre la base de una función de cifrado utilizando una clave de cifrado determinada a partir de una contraseña o identificador correspondiente al parámetro; y
    /c/ transmitir el valor cifrado a la entidad de control. 8.- Un dispositivo electrónico que comprende medios adaptados para la puesta en práctica de un procedimiento de ejecución de un cálculo criptográfico según una cualquiera de las reivindicaciones 1 a 7.
ES10738014T 2009-06-16 2010-06-15 Criptografía sobre una curva elíptica simplificada Active ES2427740T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0954043 2009-06-16
FR0954043A FR2946818B1 (fr) 2009-06-16 2009-06-16 Cryptographie sur une courbe elliptique simplifiee.
PCT/FR2010/051191 WO2010146303A2 (fr) 2009-06-16 2010-06-15 Cryptographie sur une courbe elliptique simplifiee

Publications (1)

Publication Number Publication Date
ES2427740T3 true ES2427740T3 (es) 2013-10-31

Family

ID=41480154

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10738014T Active ES2427740T3 (es) 2009-06-16 2010-06-15 Criptografía sobre una curva elíptica simplificada

Country Status (9)

Country Link
US (1) US8712038B2 (es)
EP (1) EP2443789B1 (es)
CN (1) CN102484588B (es)
BR (1) BRPI1016042B1 (es)
CA (1) CA2765652C (es)
ES (1) ES2427740T3 (es)
FR (1) FR2946818B1 (es)
PL (1) PL2443789T3 (es)
WO (1) WO2010146303A2 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014011045A1 (de) 2014-07-23 2016-01-28 Giesecke & Devrient Gmbh Verfahren zum Berechnen eines Punktes auf einer elliptischen Kurve
CN108712256B (zh) * 2018-07-02 2021-10-26 复旦大学 一种基于椭圆曲线子域子码的加密解密算法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2557399A (en) 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
CA2243761C (en) * 1998-07-21 2009-10-06 Certicom Corp. Timing attack resistant cryptographic system
US7308096B2 (en) * 2000-05-30 2007-12-11 Hitachi, Ltd. Elliptic scalar multiplication system
JP4155929B2 (ja) * 2003-01-22 2008-09-24 株式会社リコー 画像符号化装置、符号復号化装置、画像符号化方法、符号復号化方法、プログラム及び記憶媒体
MX2008015210A (es) * 2006-06-09 2009-05-28 Verisign Inc Metodo y aparato para proporcionar autentificacion y privacidad con dispositivos de baja complejidad.
US20100293379A1 (en) * 2007-05-31 2010-11-18 Beijing Transpacific Ip Technology Development Ltd method for secure data transmission in wireless sensor network
CN101222327A (zh) * 2007-09-13 2008-07-16 上海大学 列车运行控制系统的安全椭圆曲线密码保护方法
US8225109B1 (en) * 2008-04-30 2012-07-17 Netapp, Inc. Method and apparatus for generating a compressed and encrypted baseline backup

Also Published As

Publication number Publication date
PL2443789T3 (pl) 2014-01-31
RU2012101254A (ru) 2013-07-27
BRPI1016042B1 (pt) 2021-06-29
CA2765652C (fr) 2017-11-21
CN102484588A (zh) 2012-05-30
EP2443789A2 (fr) 2012-04-25
EP2443789B1 (fr) 2013-08-07
FR2946818B1 (fr) 2011-07-01
WO2010146303A2 (fr) 2010-12-23
CA2765652A1 (fr) 2010-12-23
FR2946818A1 (fr) 2010-12-17
BRPI1016042A2 (pt) 2016-05-10
US8712038B2 (en) 2014-04-29
WO2010146303A3 (fr) 2011-03-03
CN102484588B (zh) 2015-05-06
US20120093309A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
ES2308725T3 (es) Firmas de pregunta-respuesta y protocolos de seguridad de diffie-hellman.
JP4787519B2 (ja) マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法
RU2010136920A (ru) Управление цифровыми правами с использованием методик доверительной обработки
JPWO2007125877A1 (ja) 通信装置、及び通信システム
ITMI20082364A1 (it) Metodo per proteggere un dispositivo crittografico contro attacchi spa, dpa e temporali
ES2247326T3 (es) Procedimiento de contramedida en un componente electrico que utiliza un algoritmo criptografico de tipo llave publica en curva eliptica.
ES2427740T3 (es) Criptografía sobre una curva elíptica simplificada
EP2378707B1 (en) Implementation of the ECDSA, DSA, El Gamal cryptosystems, and variations thereof, with improved security against side-channel attacks.
ES2400895A2 (es) Método para realizar una firma digital de grupo
ES2435626T3 (es) Criptografía de una curva elíptica
BRPI1012658B1 (pt) criptografia por parametrização sobre uma curva elíptica
CA2752750A1 (en) System and method for performing exponentiation in a cryptographic system
TWI555370B (zh) Digital signature method
US9866371B2 (en) Cryptography on a simplified elliptical curve
US10027483B2 (en) Cryptography on an elliptical curve
Schmidt et al. How Little is Enough? Implementation and Evaluation of a Lightweight Secure Firmware Update Process for the Internet of Things.
ES2902512T3 (es) Procedimiento de generación de parámetros que caracterizan un protocolo criptográfico
Chatterjee et al. Secure access of smart cards using elliptic curve cryptosystems
US20140314230A1 (en) Cryptography on an elliptical curve
ES2217959B1 (es) Procedimiento y dispositivo de encriptacion mediante un criptosistema tipo rsa.
RU2574826C2 (ru) Криптография на упрощенной эллиптической кривой
Wang et al. A Holistic Secure Communication Mechanism Using a Multilayered Cryptographic Protocol to Enhanced Security.
Sweeney Equivalencies in security
Klimm et al. A security scheme for dependable key insertion in mobile embedded devices
Kumar et al. Effective Signcryption Approach for Secure Convention for Multilayer Consensus using ECC