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 PDF

Info

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
Application number
ES02767544T
Other languages
English (en)
Inventor
Marc Girault
Jean-Claude Pailles
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.)
Orange SA
Original Assignee
France Telecom 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 France Telecom SA filed Critical France Telecom SA
Application granted granted Critical
Publication of ES2289147T3 publication Critical patent/ES2289147T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/32Cryptographic 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/3247Cryptographic 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/3249Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2103Challenge-response
    • 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/76Proxy, 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:
-
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:
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:
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:
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).
ES02767544T 2001-07-18 2002-07-02 Procedimiento para efectuar una tarea criptografica por medio de una clave publica. Expired - Lifetime ES2289147T3 (es)

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)

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100340102B1 (ko) * 2000-11-30 2002-06-10 조휘갑 알에스에이 공개키 암호 고속화 장치 및 방법

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