ES2289147T3 - Procedimiento para efectuar una tarea criptografica por medio de una clave publica. - Google Patents
Procedimiento para efectuar una tarea criptografica por medio de una clave publica. Download PDFInfo
- Publication number
- ES2289147T3 ES2289147T3 ES02767544T ES02767544T ES2289147T3 ES 2289147 T3 ES2289147 T3 ES 2289147T3 ES 02767544 T ES02767544 T ES 02767544T ES 02767544 T ES02767544 T ES 02767544T ES 2289147 T3 ES2289147 T3 ES 2289147T3
- Authority
- ES
- Spain
- Prior art keywords
- entity
- integer
- public key
- numerical
- module
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Procedimiento para efectuar una tarea criptográfica por medio de una clave pública en al menos un dato numérico intercambiado entre una primera entidad (A) dotada de una clave privada (s) y una segunda entidad (B), caracterizado porque el mismo consiste en descomponer dicha tarea criptográfica en al menos dos etapas ejecutadas por entidades distintas: - una primera etapa (6, 15) ejecutada por una entidad intermedia (C) que consiste en someter dicho dato numérico a un tratamiento numérico abierto por medio de toda o parte de dicha clave pública para obtener una imagen parcial de dicho dato numérico; - una segunda etapa (8, 17) ejecutada por la segunda entidad (B) que consiste en someter dicha imagen parcial a un tratamiento numérico público por medio de toda o parte de dicha clave pública, de forma de completar dicha tarea criptográfica en dicho dato numérico.
Description
Procedimiento para efectuar una tarea
criptográfica por medio de una clave pública.
El campo de la invención es aquel de la
criptografía. La criptografía encuentra aplicación para asegurar
transacciones entre dos o varias entidades. Entre esas
aplicaciones, se encuentran los procedimientos de cifrado de
mensajes, de identificación, de firma electrónica o también de
autenticación de mensaje. Un procedimiento de cifrado consiste
esencialmente en cifrar un mensaje de forma que solo el destinatario
pueda descifrarlo para leerlo. Un procedimiento de identificación
consiste esencialmente en verificar la identidad de una entidad
emisora. Un procedimiento de firma electrónica consiste
esencialmente en verificar que un mensaje es aquel que ha sido
firmado por una entidad que lo ha generado. Un procedimiento de
autenticación de mensajes consiste esencialmente en verificar que
un mensaje recibido ha sido efectivamente emitido por una entidad
emisora de identidad conocida.
Más precisamente, el campo de la invención es
aquel de la criptografía llamada de clave pública. Se conocen por
ejemplo procedimientos criptográficos en los cuales una primera
entidad, a menudo nombrada proveedora, efectúa secretamente
primeras operaciones numéricas por medio de una clave privada a la
cual está asociada una clave pública. Uno o varios resultados de
esas operaciones, son transmitidos a una segunda entidad, a menudo
nombrada verificador. El verificador efectúa entonces por medio de
la clave pública, segundas operaciones que verifican que las
primeras operaciones han sido efectivamente ejecutadas por medio de
la clave privada. Esos procedimientos son útiles para firmar o
autenticar mensajes o también para autenticar la primera entidad,
se habla en este último caso de identificación. De manera recíproca,
se conocen también procedimientos criptográficos en los cuales la
segunda entidad comienza por cifrar un mensaje por medio de la clave
pública. Solo la primera entidad que guarda la clave privada
asociada, puede entonces descifrar el mensaje.
En los procedimientos criptográficos llamados de
conocimiento nulo o sin aporte de conocimiento (zero knowledge), se
desarrolla una verificación según un protocolo que, de forma probada
y bajo hipótesis reconocidas perfectamente razonables por la
comunidad científica, no revela nada sobre la clave privada.
Entre los procedimientos conocidos sobre los
cuales la invención encuentra aplicación, se pueden citar aquellos
basados en el algoritmo RSA (Rivest, Shamir, Adleman) o sobre el
problema llamado del logaritmo discreto.
La criptografía de clave pública es
particularmente útil, por ejemplo para el pago electrónico, por
tarjeta bancaria o por porta-moneda electrónico. En
el caso del pago de proximidad, la terminal de pago debe a la vez
encontrarse en un lugar público, lo que incita a utilizar
procedimientos de criptografía de clave pública, y ser barato, lo
que incita a utilizar chips con las capacidades de cálculo
limitadas. El el caso del pago en línea, el servidor del
comerciante o el servidor de pago (o también el servidor de
intermediación) es susceptible en algunos momentos de ser llevado a
efectuar un gran número de verificaciones de manera simultánea. En
los dos casos, es deseable encontrar una solución que permita
aligerar la tarea de verificación, es decir la tarea criptográfica
que utiliza la clave pública.
De forma conocida, la criptografía de clave
pública reposa sobre la dificultad según la teoría de los números
enteros de encontrar una función inversa en una manipulación de
números enteros muy grandes. El inconveniente es que, para
garantizar un grado de seguridad suficiente, la utilización de la
clave pública necesita generalmente una cantidad considerable de
multiplicaciones y de divisiones euclidianas por grandes números,
estas operaciones consumen recursos de cálculo en una cantidad
correspondiente.
Se puede considerar modular el nivel de
verificación en función de diferentes criterios de apreciación tales
como una evaluación de la carga de trabajo más o menos elevada del
verificador. El problema de esta solución es que la convicción
susceptible de estar acorde a esta verificación, es modulada en las
mismas proporciones. Sin embargo, algunas aplicaciones requieren
poder acordar una convicción fuerte a la verificación.
Más recientemente, el documento KAWAMURA S.I. y
otros: "Fast served-aided secret computation
protocols for modular exponentiaton" IEEE Journal on selected
areas in communications, IEEE INC. New York, U.S., vol. 11, nº5, 1
junio 1993 (1993-06-01) páginas
778-784, divulgó un procedimiento para efectuar una
tarea criptográfica por medio de una clave privada guardada por un
cliente y una clave pública guardada por un servidor. El servidor
disponiendo de medios de cálculo más desarrollados que aquellos del
cliente, asiste a estos últimos en su tarea de exponenciación,
permitiendo al cliente guardar el secreto de su clave privada.
Ese modo de operación no permite la realización
de una verdadera delegación de tarea, sino que es una puesta a
disposición de un recurso de cálculo en beneficio del equipo menos
desarrollado.
La presente invención tiene por objeto remediar
los inconvenientes antes citados de la técnica anterior.
Un primer objeto de la invención es aliviar la
tarea del verificador en los protocolos de verificación reduciendo
la cantidad de cálculos a ejecutar, sin por otro lado disminuir el
nivel de convicción de este último en cuanto a la autenticidad de
la entidad emisora y o de los datos emitidos por esta entidad.
Un segundo objeto de la invención es permitir
efectuar transacciones en tiempo reducido con
micro-circuitos con capacidades de cálculo
limitadas.
Para esto, la invención concierne en un
procedimiento para efectuar una tarea criptográfica por medio de una
clave pública sobre al menos un dato numérico intercambiado entre
una primera entidad dotada de una clave privada y una segunda
entidad. El procedimiento está caracterizado porque dicha tarea
criptográfica es descompuesta en al menos dos etapas:
- -
- una primera etapa ejecutada por una entidad intermedia que somete dicho dato a un tratamiento numérico abierto por medio de toda o parte de dicha clave pública para obtener una imagen parcial de dicho dato;
- -
- una segunda etapa ejecutada por la segunda entidad que somete dicha imagen parcial a un tratamiento numérico público por medio de todo o parte de dicha clave pública de forma de completar dicha tarea criptográfica sobre dicho dato.
Ese procedimiento permite al verificador
constituido por la segunda entidad, reducir su propia carga de
trabajo delegando una parte a la entidad intermediaria que, está
dotada de medios de cálculo más importantes que aquellos de los que
dispone el verificador, o participa de menos transacciones que el
verificador.
El tratamiento numérico es abierto ya que es
libremente accesible. La entidad intermedia no tiene necesidad de
ser una entidad de confianza desde el punto de vista del verificador
ya que la misma interviene solo parcialmente sobre la tarea
criptográfica por medio de la clave pública y conduciría a un
fracaso de la tarea criptográfica si la entidad intermedia viniera
a corromper la imagen parcial, la segunda entidad siendo aquella que
termina la tarea criptográfica. Cuando la tarea criptográfica es
una verificación, la misma se termina por sí o por no según si la
verificación es confirmada o anulada. En ese caso, la entidad
intermedia no puede transformar un no en un sí. Los intercambios
con la entidad intermedia pueden ser hechos en un mundo abierto ya
que la primera etapa es ejecutada por medio de toda o parte de la
clave pública y el dato sometido al tratamiento numérico abierto es
también sometido al tratamiento numérico secreto por la primera
entidad.
Ventajosamente, el procedimiento está
caracterizado porque la entidad intermedia reside en un equipo
físico distinto a un equipo físico en el cual reside la segunda
entidad.
La segunda entidad puede entonces retransmitir
el dato recibido de la primera entidad, hacia un equipo informático
potente cualquiera que alberga la entidad intermedia. El equipo
informático reenviando la imagen parcial la segunda entidad. En una
red abierta, la entidad intermedia es alojada en un servidor
delegado (proxy server) que recibe directamente el dato de la
primera entidad.
Ventajosamente aún cuando la segunda entidad
puede ser llevada a efectuar varias tareas criptográficas para
varias primeras entidades, el procedimiento está caracterizado
porque la entidad intermedia reside en un equipo físico en el cual
reside la primera entidad.
El hecho de transferir una parte de la carga de
trabajo del verificador hacia el proveedor sin alteración de las
propiedades de seguridad, viene a especificar una variante
particular del protocolo inicial.
Más particularmente, el procedimiento está
caracterizado porque dicha tarea criptográfica consiste en una
identificación de la primera entidad por la segunda entidad, dicho
dato numérico siendo un primer número entero que, sometido a un
tratamiento numérico secreto en la primera entidad da un segundo
número entero que es emitido y por medio de la clave privada y de
un tercer número entero recibido de la segunda entidad que ha
recibido el segundo número entero, da un cuarto número entero y
porque:
- -
- el tratamiento numérico abierto consiste esencialmente en transformar dicho cuarto número entero en un quinto número entero por medio de la primera parte de clave pública;
- -
- el tratamiento numérico público consiste esencialmente en transformar dicho quinto número entero por medio de la segunda parte de dicha clave pública para obtener un valor que termina en una identificación de la primera entidad cuando dicho valor es igual a dicho segundo número entero.
De manera diferente, el procedimiento está más
particularmente caracterizado porque dicha tarea criptográfica
consiste en una verificación de la firma electrónica, dicho dato
numérico siendo un número que, sometido a un tratamiento numérico
secreto en la primera entidad por medio de la clave privada, da una
firma y porque:
- -
- el tratamiento numérico abierto consiste esencialmente en transformar dicha firma en una imagen parcial de firma por medio de una primera parte de dicha clave pública;
- -
- el tratamiento numérico público consiste esencialmente en transformar dicha imagen parcial de firma por medio de una segunda parte de dicha clave pública para obtener un valor que termina en una firma válida cuando dicho valor es igual a dicho número.
De manera diferente aún, el procedimiento está
más particularmente caracterizado porque dicha tarea criptográfica
consiste en una autenticación de mensaje por una segunda entidad, de
un mensaje emitido por la primera entidad, dicho dato numérico
siendo un primer número entero que, sometido al tratamiento numérico
secreto en la primera entidad da un segundo número entero que es
sometido a una función de cortado en combinación con el mensaje
para obtener un tercer número entero, el mensaje y el tercer número
entero siendo emitidos, el primer número entero sometido al
tratamiento numérico secreto en la primera entidad por medio de la
clave privada y de un cuarto número entero recibido de la segunda
entidad que ha recibido el tercer número entero, da un quinto
número entero y
porque:
porque:
- -
- el tratamiento numérico abierto consiste esencialmente en transformar dicho quinto número entero en un sexto número entero por medio de toda o parte de la clave pública;
- -
- el tratamiento numérico público consiste esencialmente en transformar dicho sexto número entero por medio de toda o parte de dicha clave pública para obtener un primer valor que, sometido a la función de cortado en combinación con el mensaje, da un segundo valor que termina en una autenticación de mensaje válido cuando dicho valor es igual a dicho tercer número entero.
Otros detalles y ventajas de la invención serán
mejor comprendidas a partir de ejemplos de realización cuya
descripción sigue con referencia a los dibujos anexos en los
cuales:
- la figura 1 muestra un ejemplo de realización
de la invención en un procedimiento de firma electrónica;
- las figuras 2 a 4 muestran ejemplos de
realización de la invención en un procedimiento de
identificación;
- la figura 5 muestra un ejemplo de realización
de la invención en un procedimiento de autenticación.
La figura 1 presenta un primer ejemplo de
realización la invención en un procedimiento de firma electrónica.
El procedimiento de firma electrónica utiliza por ejemplo el
algoritmo de firma RSA descrito por Rivest, Shamir y Adleman ("A
method for obtaining digital signatures and
public-key cryptosystems", CACM, Vol.21, nº2,
Feb. 1978, pp. 120-126). De forma conocida, el
algoritmo RSA reposa sobre la utilización de una clave privada s y
de una clave pública formada por un par (n, v) donde n es
generalmente el producto de dos números primas p y q tenidos en
secreto y v es un número prima con relación al producto
(p-1)(q-1).
Bajo la forma numérica, un mensaje m constituido
por una continuación binaria es considerado de este modo como un
número entero. En una etapa 1 para firmar electrónicamente un
mensaje m, una primera entidad A aplica generalmente una función de
cortado H al mensaje m y luego un formateo del resultado de la
función de cortado, de forma de obtener un número entero m*
inferior a n. El formateo consiste generalmente en adicionar bits
no todos nulos a la palabra binaria que resulta de la función de
cortado, de forma que el número entero sea codificado con una
cantidad de bits, igual a aquella que codifica el número n.
La entidad A genera a continuación una firma
electrónica z igual a una potencia s módulo n del número entero m*.
La firma electrónica z es por lo tanto un número entero igual al
resto de la división euclidiana del número entero m* elevado a la
potencia s por el número n. El número n siendo muy grande y solo la
entidad A conociendo el valor s, es prácticamente imposible a otra
entidad que A generar un número entero z que verifique la
fórmula:
fórmula:
z = (m*)^{s}
(módulo
n)
La etapa 1 se termina por una emisión del
mensaje m y de su firma electrónica z.
Una recepción del mensaje m y de su firma z por
una segunda entidad B, valida una transición 2 que activa una etapa
3. En la etapa 3, la entidad B aplica la función de cortado H del
mensaje m para reobtener localmente el número m*.
Según la invención, una etapa 4 descompone el
valor y de clave pública bajo una forma:
a \cdot b + c
=
v
donde los números enteros a y b son
estrictamente superiores a 1. El número entero c es por ejemplo el
resto, si el mismo existe, de una división euclidiana de v por
b.
Una recepción de la firma z por una entidad
intermedia C, valida una transición 5 que activa una etapa 6. En la
etapa 6, la entidad C genera un valor parcial de firma z' igual a
una potencia a de la firma z módulo n. La etapa 6 se termina por la
emisión del valor parcial de firma z' y si es necesario por la
emisión de los valores de números enteros b y c.
Una recepción del valor parcial de firma z' y de
los valores b y c por la entidad B, valida una transición 7 que
activa una etapa 8. En la etapa 8, la entidad B genera un número
entero z'' igual al producto módulo n del valor parcial de firma z'
elevado a la potencia b por el valor de firma z elevado a la
potencia c. Se utiliza aquí la convención habitual que consiste en
definir como siendo igual a la unidad, una potencia de exponente
nulo.
Seguidamente, la entidad B prueba en la etapa 8
si el número entero z'' es igual al número entero m*. Si es el
caso, el mensaje m recibido es aquel firmado por la entidad A.
En efecto, sabiendo que el resto de una división
por n de un producto de dos restos de división por n de dos números
enteros, es igual al resto de la división por n del producto de esos
dos números enteros, se tiene:
[(z')^{b} \cdot (z)^{c}] (módulo n)
= [(z')^{b}(módulo n) \cdot
(z)^{c}(módulo n)] (módulo n)
- \quad
- = [(z)^{a . b}(módulo n) \cdot (z)^{c}(módulo n)] (módulo n)
- \quad
- = [(z)^{a . b} \cdot (z)^{c}] (módulo n)
- \quad
- = [(z)^{a . b+c}] (módulo n)
y por lo
tanto:
- \quad
- z''= (z)^{v} (módulo n)
La entidad intermedia C no tiene necesidad de
ser una entidad de confianza ya que la seguridad tiene poca o no
tiene oportunidad de ser alterada por la etapa 6. En efecto, es
prácticamente imposible encontrar para un valor de m*, un número z'
tal que su elevación a la potencia b permita calcular un valor de
z'' igual a m* de otra forma que elevando el valor de firma z a la
potencia del módulo n.
En el ejemplo de realización descrito con
referencia a la figura 1, la tarea criptográfica a cargo de la
entidad B es una verificación del hecho de que el mensaje m
recibido efectivamente ha sido firmado por la entidad A. La
verificación es positiva si la elevación a la potencia y de la firma
z módulo n, es igual al número m*. El tiempo de cálculo de una
elevación a la potencia v, es sensiblemente proporcional al tamaño
de v en bits. La tarea criptográfica y más particularmente el
cálculo de elevación a la potencia v es aquí repartido en las
etapas 6 y 8.
La entidad intermedia C ejecuta en la etapa 6,
una parte del cálculo de elevación a la potencia v de la firma z.
La entidad B ejecuta en la etapa 8, la parte complementaria del
cálculo de elevación a la potencia v de la firma z. El tiempo de
cálculo ejecutado por la entidad B es sensiblemente proporcional a
b+c. Así, la potencia de cálculo necesaria a la entidad B, es
sensiblemente reducida por división de un factor a. La potencia de
cálculo necesaria a la entidad B es también reducida si el número c
es nulo. Este es el caso si es posible de descomponer el número v
en un producto de dos números enteros a y b.
La entidad C representada en la figura 1 ejecuta
la etapa 4 y luego la etapa 6 después de la validación de la
transición 5. La etapa 4 no tiene necesidad de ser ejecutada en cada
emisión de un mensaje m con su firma z. Para un valor de v dado,
los números a, b y c si c no es nulo, pueden ser calculados una vez
para todos, eventualmente de manera independiente de las entidades
A, B y C. La entidad C tiene entonces simplemente necesidad de
tener conocimiento del número a. La entidad B tiene entonces
simplemente necesidad de tener conocimiento del número b y del
número c si este no es nulo. En ese caso, los números b y c no son
emitidos en la etapa 6 y la transición 7 es validada por la simple
recepción del valor parcial de firma z'.
Ventajosamente, la entidad C reside en un equipo
físico distinto de aquel en el cual reside la entidad B. De esta
forma, el equipo físico en el cual reside la entidad B puede
disponer de medios de cálculo reducidos en comparación con aquellos
que debería disponer si la entidad B ejecutara la integralidad de la
tarea criptográfica.
La entidad C puede residir en un equipo físico
distinto de aquel en el cual reside la entidad A o en el mismo
equipo físico que la entidad A.
En el caso donde las entidades A y C residen en
un mismo equipo físico, los valores de los números a, b y
eventualmente c, son memorizados en este equipo físico. Si c no es
nulo, el equipo físico en el que residen las entidades A y C, emite
el mensaje m, la firma z, la firma parcial z' y los números b y c.
Si c es nulo, el equipo físico en el cual residen las entidades A y
C, emite el mensaje m, la firma parcial z' y el número b.
El ejemplo de realización que acaba de ser
descrito con referencia a la figura 1 se aplica a la verificación
de cualquier mensaje firmado por una entidad cualquiera.
Es también ventajoso acelerar la verificación de
un certificado de clave pública (n, v) de un proveedor. Un
certificado es una firma electrónica calculada por una autoridad de
certificación, que sustenta la identidad y la clave pública del
proveedor, vinculando así la una y la otra de una manera que pueda
ser verificada por cualquier otra entidad, desde el momento que
esta última guarda una clave pública de verificación de la autoridad
de certificación.
\newpage
Si ese certificado es también calculado con el
algoritmo RSA, la descomposición explicada precedentemente de una
tarea criptográfica para verificar el certificado, permite una
aceleración de los cálculos de verificación en la entidad B que
recibe el certificado. Más generalmente, si el certificado es
calculado con un esquema de firma al cual la invención se aplica,
es interesante aplicar la invención a la verificación del
certificado por un verificador que utiliza ese certificado para
verificar una firma electrónica.
La figura 2 presenta un segundo ejemplo de
realización de la invención en un procedimiento de identificación.
El procedimiento de identificación utiliza por ejemplo un protocolo
de conocimiento nulo basado en el logaritmo discreto, tal como
aquellos descritos en las solicitudes de patentes FR2716058 y
FR2752122 publicadas respectivamente el 11 de agosto de 1995 y el 6
de febrero de 1998. El protocolo de logaritmo discreto reposa en la
utilización de una clave privada constituida por un número entero s
y de una clave pública constituida por un triplete (n, v, g) de
números enteros. La clave privada s es guardada secretamente por una
entidad A que debe probar su identidad. La clave pública (n, v, g)
es transmitida a toda entidad B que debe verificar la identidad de
la entidad A. La transmisión de la clave pública es efectuada por
ejemplo por medio de un certificado que puede ser ventajosamente
previamente verificado por medio de un procedimiento conforme a la
invención. En la clave pública, el número entero n, llamado módulo,
es un producto de números primas suficientemente grande para
producir allí una factorización prácticamente imposible, teniendo en
cuenta los algoritmos de factorización existentes. El número entero
g, llamado base, es tal que el conjunto constituido por los números
g^{x} módulo n, cuando x recorre el intervalo [0,
n-l], es un sub-conjunto de tamaño
consecuente de este intervalo. El número entero v es un parámetro
de seguridad que verifica la
relación:
relación:
v = g^{-s}\
(módulo\
n)
tal que el conocimiento de v, g y n
no permite prácticamente reencontrar el valor de
s.
Para identificarse, la entidad A activa una
etapa 9. En la etapa 9, la entidad A genera un número aleatorio o
pseudo-aleatorio r muy superior al número s. El
número entero r es guardado secreto por la entidad A. A
continuación, la entidad A genera un número entero x igual a una
potencia r de g módulo n. La etapa 9 se termina por una emisión del
número entero x.
Una recepción del número x por la entidad B,
valida una transición 10 que activa una etapa 11.
En la etapa 11, la entidad B genera un número
entero e a partir de un intervalo [0, u-1] y luego
emite el número e.
Una recepción del número e por la entidad A,
valida una transición 12 que activa una etapa 13.
En la etapa 13, la entidad A genera un número y
igual a una suma del número r y de un producto del número s por el
número e. A continuación, la entidad A descompone el número y bajo
forma de una combinación lineal de números enteros diferentes de
los números r, s y e. Por ejemplo, la entidad A efectúa una división
del número y por un número entero b estrictamente superior a 1. El
cociente a y el resto c permiten obtener la combinación
lineal:
lineal:
y = a \cdot
b+c
La entidad A emite entonces los números enteros
a, b, c.
La división es por ejemplo una división
euclidiana. El número b es siempre seleccionado de forma que el
cociente que constituye el número a, sea estrictamente superior a
1. La división del número y, no es necesariamente hecho en la
entidad A, la misma puede ser hecha también además por ejemplo en la
entidad C o en la entidad B.
Una recepción del número a por una entidad
intermedia C, valida una transición 14 que activa una etapa 15.
En la etapa 15, la entidad C genera un número
entero y', imagen parcial del número y elevando la base g a una
potencia módulo el módulo n y donde el exponente es el número entero
a. La entidad C emite entonces el número entero y'.
Una recepción del número entero y' y de los
números enteros b y c por la entidad B, valida una transición 16
que activa una etapa 17.
En la etapa 17, la entidad B eleva el número y'
a una potencia de exponente b, la base g a una potencia de
exponente c, el parámetro de seguridad v a una potencia de exponente
e y realiza el producto módulo n de las tres potencias así
obtenidas para generar un número entero y''. Se puede utilizar el
hecho de que un producto módulo n de términos, es igual al producto
módulo n de esos términos considerados cada uno módulo n.
La entidad B verifica a continuación si el
número y'' es igual al número x precedentemente recibido. Si la
igualdad es verdadera, la entidad B identifica con certitud la
entidad A como siendo aquella que ha emitido el número x.
En efecto, si la entidad A es aquella que ha
emitido el número x:
- \quad
- y'' = y'^{b} \cdot g^{C} \cdot v^{e} (módulo n)
- \quad
- y'' = g^{a . b} \cdot g^{c} \cdot v^{e} (módulo n)
- \quad
- y'' = g^{a . b+c} \cdot v^{e} (módulo n)
- \quad
- y'' = g^{r+s . e} v^{e} (módulo n)
- \quad
- y'' = g^{r} \cdot g^{s . e} \cdot v^{e} (módulo n)
- \quad
- y'' = g^{r} \cdot (g^{s} \cdot v)^{e} (modulo n)
Ahora bien = (g^{s} \cdot v) (módulo n) = 1
entonces:
- \quad
- y''= g^{r}(módulo n)= x
La seguridad no es alterada por el hecho de que
la etapa 15 haya sido efectuada por una entidad exterior C que no
es necesariamente una entidad de confianza ya que es imposible en la
práctica encontrar a partir de n, v, g y eventualmente c, un número
y' tal que y'b \cdot g^{c}.v^{e} (módulo n) sea igual a x, sin
conocimiento de la factorización de n a la cual corresponde la
clave privada s que es guardada secretamente por la entidad A.
Considerando una cantidad canónica k de bits
para codificar un número entero, es decir la cantidad mínima de
bits necesarios para descomponer el número entero en una base
binaria, los métodos usuales conocidos de elevación a una potencia
módulo n, cuyo exponente es ese número entero, efectúan una cantidad
de multiplicaciones módulo n, proporcional a la cantidad k de
bits.
Sin la entidad intermedia C, la entidad B habría
recibido el número y igual a r+s \cdot e para calcular y'' por la
fórmula:
- \quad
- y'' = g^{y} \cdot v^{e}(módulo n)
La cantidad de multiplicaciones módulo n,
efectuada por la entidad B para elevar g a la potencia y, habría
sido proporcional a la cantidad de bits necesarios para codificar
bajo forma canónica el número r+s \cdot e, es decir a \cdot
b+c.
Efectuando una cantidad de multiplicaciones
módulo n en la entidad C, proporcional a la cantidad de bits
necesaria para codificar bajo forma canónica el número a, la
entidad B hace solamente una cantidad de multiplicaciones módulo n,
proporcional a la cantidad de bits necesaria para codificar bajo
forma canónica el número b, a la cual se adiciona eventualmente una
cantidad de multiplicaciones módulo n, proporcional a la cantidad de
bits necesaria para codificar bajo forma canónica el número c. La
economía de multiplicaciones módulo n así realizada en la entidad B
permite acelerar la verificación de la identidad en la entidad
B.
La figura 3 muestra una variante del
procedimiento descrito con referencia a la figura 2 para acelerar
también la ejecución de la tarea criptográfica en la entidad B.
Una recepción de los números b y c por la
entidad B, valida una transición 18 que activa una etapa 19.
En la etapa 19, la entidad B genera un número z
igual al producto módulo n, de la potencia de la base g con por
exponente el número c y de la potencia del parámetro de seguridad y
con por exponente el número e.
La transición 16 es entonces validada por la
recepción del número y'. En la etapa 17, la entidad B genera el
número y'' igual al producto módulo n, del número z por la potencia
del número y' con por exponente el número b.
La ejecución de la etapa 19 antes de recibir el
número y', permite una paralelización de ejecución de las etapas 15
y 19.
La figura 4 muestra otra variante del
procedimiento descrito con referencia a la figura 2 particularmente
útil cuando la entidad B debe identificar una gran cantidad de
entidades A. La entidad C reside entonces en un mismo equipo físico
que la entidad A. Esto vuelve a hacer ejecutar por la entidad A, la
etapa 15 directamente a continuación de la etapa 13. En la etapa
13, la entidad A emite hacia el exterior únicamente los números b y
c. En la etapa 15, la entidad A emite directamente el número y'.
La figura 5 presenta un tercer ejemplo de
realización de la invención en un procedimiento de autenticación
del mensaje. El procedimiento de autenticación del mensaje utiliza
por ejemplo un protocolo parecido a aquel utilizado para el
procedimiento descrito con referencia a las figuras 2 a 4.
Para emitir un mensaje M hacia la entidad B de
manera que la entidad B pueda verificar que el mensaje M es un
mensaje auténtico emitido por la entidad A, la entidad A activa una
etapa 20.
En la etapa 20, la entidad A genera un número
aleatorio o pseudoaleatorio r muy superior al número s. El número
entero r es guardado secreto por la entidad A. La entidad A genera
un número entero x igual a una potencia r de g módulo n. La entidad
A genera un número m igual a una función H de corte del número
entero x y del mensaje M, de forma de obtener un número entero
m.
La entidad A emite a continuación el número
entero m y el mensaje M.
Una recepción por la entidad B del número m y
del mensaje M, valida una transición 21 que activa la etapa 11. El
procedimiento comprende la continuación de las etapas y transiciones
11 a 16 que se desarrollan y se ejecutan de forma idéntica a una de
aquellas descritas con referencia a las figuras 2 a 4.
Una validación de la transición 16 activa
entonces una etapa 22. En la etapa 22, la entidad B genera el número
entero y'' de forma idéntica a la etapa 17 descrita con referencia
a una de las figuras 2 a 4. La entidad B genera a continuación un
número x' igual a la función H de cortado del número y'' y del
mensaje M y luego compara el número x' al número m. La igualdad del
número x' y del número m asegura la entidad B que es la entidad A
que ha emitido el mensaje M ya que solo la entidad A ha podido
generar un número x igual a y'' de manera que H(x, M) sea
igual a H(y'', M).
En resumen, el procedimiento permite diminuir la
carga de cálculo del verificador constituido por la entidad B, en
una transacción electrónica segura que incluye un mecanismo de
autenticación de mensaje, de identificación o de firma
electrónica.
Este consiste en delegar una parte de esos
cálculos a una entidad exterior c, no necesariamente de confianza,
sin disminuir la convicción que el verificador retira de la etapa de
verificación. Más precisamente, este consiste en descomponer la
tarea de verificación en al menos dos etapas (6, 15) y (8, 17), de
forma tal que al menos la etapa (6, 15) pueda ser ejecutada por la
entidad exterior C. El procedimiento se aplica en particular al
esquema de firma electrónica RSA (Rivest, Shamir, Adleman) y a
algunos protocolos de autenticación de mensajes basados en el
logaritmo discreto.
Claims (9)
1. Procedimiento para efectuar una tarea
criptográfica por medio de una clave pública en al menos un dato
numérico intercambiado entre una primera entidad (A) dotada de una
clave privada (s) y una segunda entidad (B), caracterizado
porque el mismo consiste en descomponer dicha tarea criptográfica en
al menos dos etapas ejecutadas por entidades distintas:
- -
- una primera etapa (6, 15) ejecutada por una entidad intermedia (C) que consiste en someter dicho dato numérico a un tratamiento numérico abierto por medio de toda o parte de dicha clave pública para obtener una imagen parcial de dicho dato numérico;
- -
- una segunda etapa (8, 17) ejecutada por la segunda entidad (B) que consiste en someter dicha imagen parcial a un tratamiento numérico público por medio de toda o parte de dicha clave pública, de forma de completar dicha tarea criptográfica en dicho dato numérico.
2. Procedimiento para efectuar una tarea
criptográfica según la reivindicación 1, caracterizado porque
la entidad intermedia (C) reside en un equipo físico distinto a un
equipo físico en el cual reside la segunda entidad (B).
3. Procedimiento para efectuar una tarea
criptográfica según la reivindicación 1 o 2, caracterizado
porque la entidad intermedia (C) reside en un equipo físico en el
cual reside la primera entidad (A).
4. Procedimiento para efectuar una tarea
criptográfica según una de las reivindicaciones precedentes,
caracterizado porque dicha tarea criptográfica consiste en
una identificación de la primera entidad (A) por la segunda entidad
(B), por medio de un primer número entero (x) enviado a la segunda
entidad (B) por la primera entidad (A), dicho primer número entero
(x) resultando de un tratamiento numérico secreto aplicado a un
segundo entero (r) en la primera entidad (A), dicho dato numérico
siendo un tercer número entero (y), obtenido a partir de dicho
segundo número entero (r), de dicha clave privada (s) y de un cuarto
número entero (e) enviado a la primera entidad (A) por la segunda
entidad (B), y porque:
- -
- el tratamiento numérico abierto consiste esencialmente en transformar dicho tercer número entero (y) en un quinto número entero (y') por medio de toda o parte de la clave pública;
- -
- el tratamiento numérico público consiste esencialmente en transformer dicho quinto número entero (y') por medio de toda o parte de dicha clave pública para obtener un valor (y'') que permita concluir en una identificación de la primera entidad (A) cuando dicho valor (y'') es igual a dicho primer número entero (x).
5. Procedimiento para efectuar una tarea
criptográfica según la reivindicación 4 cuando la clave pública es
un triplete de tres números enteros, constituido por un módulo (n),
por una base (g) y por un parámetro de seguridad (v), el
tratamiento numérico secreto consistiendo en elevar la base (g) a
una primera potencia (r) módulo el módulo (n) de la clave pública y
luego en adicionar el segundo número entero (r) con un producto de
la clave privada (s) por el cuarto número entero (e) para obtener el
tercer número entero (y), caracterizado porque:
- -
- un cociente entero (a) del tercer número entero (y) dividido por un sexto número entero (b) estrictamente superior a la unidad, es utilizado en el tratamiento numérico abierto para elevar la base (g) a una segunda potencia (a) módulo el módulo (n);
- -
- el sexto número entero (b), es utilizado en el tratamiento numérico público para elevar dicho quinto número entero (y') a una tercera potencia (b)
6. Procedimiento para efectuar una tarea
criptográfica según una de las reivindicaciones 1 a 3,
caracterizado porque dicha tarea criptográfica consiste en
una verificación de firma electrónica, dicho dato numérico siendo
una firma (z) resultando de un tratamiento numérico secreto aplicado
a un número (m*) en la primera entidad (A) por medio de dicha clave
privada (s), y porque:
- -
- el tratamiento numérico abierto consiste esencialmente en transformar dicha firma (z) en una imagen parcial de firma (z') por medio de una primera parte de dicha clave pública;
- -
- el tratamiento numérico público consiste esencialmente en transformar dicha imagen parcial de firma (z') por medio de una segunda parte de dicha clave pública para obtener un valor (z'') que permite concluir en una firma válida cuando dicho valor (z'') es igual a dicho número (m*).
7. Procedimiento para efectuar una tarea
criptográfica según la reivindicación 6 cuando la clave pública es
un par (n, v) de un primer (n) y un segundo (v) números enteros, el
tratamiento numérico secreto consistiendo en elevar el número (m*)
a una primera potencia (s) módulo dicho primer número entero (n) de
la clave pública, caracterizado porque:
- -
- un tercer número entero (a) estrictamente superior a la unidad y estrictamente inferior al segundo número entero (v) de la clave pública, es utilizado en el tratamiento numérico abierto para elevar dicha firma (z) a una segunda potencia (a) módulo el primer número entero (n);
- -
- un cuarto número entero (b) igual al cociente de una división euclidiana del segundo número entero (v) por el tercer número entero (a), es utilizado en el tratamiento numérico público para elevar dicha imagen parcial de firma (z') a una tercera potencia (b) módulo el primer número entero (n).
8. Procedimiento para efectuar una tarea
criptográfica según una de las reivindicaciones 1 a 3,
caracterizado porque dicha tarea criptográfica consiste en
una autenticación por la segunda entidad (B), de un mensaje (M)
emitido por la primera entidad (A), por medio de un primer número
entero (m) enviado a la segunda entidad (B) por la primera entidad
(A), dicho primer número entero (m) siendo obtenido sometiendo a una
función de cortado (H) un segundo número entero (x) en combinación
con el mensaje (M), ledit segundo número entero (x) resultando de
un tratamiento numérico secreto aplicado a un tercer número entero
(r) en la primera entidad (A), dicho dato numérico siendo un cuarto
número entero (y) obtenido a partir de dicho tercer número entero
(r), de dicha clave privada (s) y de un quinto número entero (e)
enviado a la primera entidad (A) por la segunda entidad (B), y
porque:
- -
- el tratamiento numérico ouvert consiste esencialmente en transformar dicho cuarto número entero (y) en un sexto número entero (y') por medio de toda o parte de la clave pública;
- -
- el tratamiento numérico público consiste esencialmente en transformar dicho sexto número entero (y') por medio de toda o parte de dicha clave pública para obtener un primer valor (y'') que, sometido a la función (H) de cortado en combinación con el mensaje (M), da un segundo valor (x') que permite concluir en una autenticación de mensaje válido cuando dicho segundo valor (x') es igual a dicho primer número entero (m).
9. Procedimiento para efectuar una tarea
criptográfica según la reivindicación 8 cuando la clave pública es
un triplete de tres números enteros, constituido por un módulo (n),
por una base (g) y por un parámetro de seguridad (v), el
tratamiento numérico secreto consistiendo en elevar la base (g) a
una primera potencia (r) módulo el módulo (n) de la clave pública y
luego en adicionar el primer número entero (r) con un producto de
dicha clave privada (s) por el quinto número entero (e) para obtener
el cuarto número entero (y), caracterizado porque:
- -
- un cociente entero (a) del cuarto número entero (y) dividido por un séptimo número entero (b) estrictamente superior a la unidad, es utilizado en el tratamiento numérico abierto para elevar la base (g) a una segunda potencia (a) módulo el módulo (n);
- -
- el séptimo número entero (b), es utilizado en el tratamiento numérico público para elevar dicho sexto número entero (y') a una tercera potencia (b).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0109611A FR2827723B1 (fr) | 2001-07-18 | 2001-07-18 | Procede pour effectuer une tache cryptographique au moyen d'une cle publique |
FR0109611 | 2001-07-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2289147T3 true ES2289147T3 (es) | 2008-02-01 |
Family
ID=8865668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02767544T Expired - Lifetime ES2289147T3 (es) | 2001-07-18 | 2002-07-02 | Procedimiento para efectuar una tarea criptografica por medio de una clave publica. |
Country Status (9)
Country | Link |
---|---|
EP (1) | EP1407575B1 (es) |
JP (1) | JP4354808B2 (es) |
KR (1) | KR100899020B1 (es) |
AT (1) | ATE366008T1 (es) |
DE (1) | DE60220918T2 (es) |
ES (1) | ES2289147T3 (es) |
FR (1) | FR2827723B1 (es) |
HK (1) | HK1064826A1 (es) |
WO (1) | WO2003009522A1 (es) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1670172A1 (fr) * | 2004-12-10 | 2006-06-14 | Nagra France Sarl | Procédé et système d'encryption par un proxy. |
WO2007006798A1 (fr) * | 2005-07-13 | 2007-01-18 | Gemplus | Procede et systeme d'authentification de puces electroniques |
GB2444286B (en) | 2006-12-01 | 2011-06-08 | Advanced Risc Mach Ltd | Improving processing efficiency on secure systems having a host processor and smart card |
US8594329B2 (en) | 2010-12-17 | 2013-11-26 | Microsoft Corporation | Non-interactive verifiable, delegated computation |
FR3013477B1 (fr) * | 2013-11-21 | 2017-06-09 | Oberthur Technologies | Procede et systeme pour la verification de la validite d'une signature numerique de message |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100340102B1 (ko) * | 2000-11-30 | 2002-06-10 | 조휘갑 | 알에스에이 공개키 암호 고속화 장치 및 방법 |
-
2001
- 2001-07-18 FR FR0109611A patent/FR2827723B1/fr not_active Expired - Fee Related
-
2002
- 2002-07-02 KR KR1020047000800A patent/KR100899020B1/ko active IP Right Grant
- 2002-07-02 JP JP2003514741A patent/JP4354808B2/ja not_active Expired - Lifetime
- 2002-07-02 DE DE60220918T patent/DE60220918T2/de not_active Expired - Lifetime
- 2002-07-02 ES ES02767544T patent/ES2289147T3/es not_active Expired - Lifetime
- 2002-07-02 AT AT02767544T patent/ATE366008T1/de not_active IP Right Cessation
- 2002-07-02 EP EP02767544A patent/EP1407575B1/fr not_active Expired - Lifetime
- 2002-07-02 WO PCT/FR2002/002302 patent/WO2003009522A1/fr active IP Right Grant
-
2004
- 2004-09-24 HK HK04107378A patent/HK1064826A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE60220918D1 (de) | 2007-08-09 |
EP1407575B1 (fr) | 2007-06-27 |
EP1407575A1 (fr) | 2004-04-14 |
DE60220918T2 (de) | 2008-02-28 |
KR20040013152A (ko) | 2004-02-11 |
KR100899020B1 (ko) | 2009-05-27 |
ATE366008T1 (de) | 2007-07-15 |
WO2003009522A1 (fr) | 2003-01-30 |
FR2827723A1 (fr) | 2003-01-24 |
JP4354808B2 (ja) | 2009-10-28 |
JP2005508514A (ja) | 2005-03-31 |
FR2827723B1 (fr) | 2003-10-10 |
HK1064826A1 (en) | 2005-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109672537B (zh) | 基于公钥池的抗量子证书获取系统及获取方法 | |
US7822987B2 (en) | Data card verification system | |
US8589693B2 (en) | Method for two step digital signature | |
US7664259B2 (en) | Encryption and verification using partial public key | |
US9800418B2 (en) | Signature protocol | |
WO1998034202A9 (en) | Data card verification system | |
US20060215837A1 (en) | Method and apparatus for generating an identifier-based public/private key pair | |
GB2321834A (en) | Cryptographic signature verification using two private keys. | |
JP2012521109A (ja) | 身元認証及び共有鍵生成の方法 | |
CN111211910A (zh) | 基于秘密共享公钥池的抗量子计算ca及证书颁发系统及其颁发和验证方法 | |
US20150006900A1 (en) | Signature protocol | |
CN107332665A (zh) | 一种格上基于身份的部分盲签名方法 | |
US7424114B2 (en) | Method for enhancing security of public key encryption schemas | |
ES2289147T3 (es) | Procedimiento para efectuar una tarea criptografica por medio de una clave publica. | |
WO2016187689A1 (en) | Signature protocol | |
US20050220298A1 (en) | Cryptographic method for distributing load among several entities and devices therefor | |
Paar et al. | Digital Signatures | |
ES2320752T3 (es) | Procedimiento y dispositivos criptograficos que permiten aligerar los calculos durante las transacciones. | |
CA2892318C (en) | Signature protocol | |
Tripathi et al. | An Extension to Modified Harn Digital Signature Scheme with the Feature of Message Recovery | |
Aydos | Efficient wireless security protocols based on elliptic curve cryptography | |
CN117837123A (zh) | 生成数字签名 | |
US20060147039A1 (en) | Data encryption method cryptographic system and associated component | |
Janbandhu | Novel biometric digital signature system for electronic commerce applications | |
Chen et al. | An authenticated encryption scheme for securely signing a signature with message linkages |