ES2286910T3 - Procedimiento criptografico de claves publica y privada. - Google Patents

Procedimiento criptografico de claves publica y privada. Download PDF

Info

Publication number
ES2286910T3
ES2286910T3 ES99973617T ES99973617T ES2286910T3 ES 2286910 T3 ES2286910 T3 ES 2286910T3 ES 99973617 T ES99973617 T ES 99973617T ES 99973617 T ES99973617 T ES 99973617T ES 2286910 T3 ES2286910 T3 ES 2286910T3
Authority
ES
Spain
Prior art keywords
cryptogram
decoding
procedure
parameters
procedure according
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
ES99973617T
Other languages
English (en)
Inventor
Pascal Paillier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Application granted granted Critical
Publication of ES2286910T3 publication Critical patent/ES2286910T3/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
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Procedimiento de codificación par codificar un número m representativo de un mensaje con 0<_m<n, caracterizado en que se calcula un criptograma c=gmmod n2, n y g son parámetros de una clave pública.

Description

Procedimiento criptográfico de claves pública y privada.
La presente invención se refiere a un procedimiento criptográfico de claves pública y privada. Se utiliza en todas las aplicaciones en las que es necesario garantizar la confidencialidad de los mensajes transmitidos a cualquier canal y/o identificar con certeza un dispositivo con el que se intercambian mensajes.
La confidencialidad de los mensajes transmitidos entre dos dispositivos A y B en un canal de comunicación cualquiera se obtiene decodificando la información transmitida para resultar ininteligible a las personas a quienes no está destinada. La identificación segura de un dispositivo en que se basa el cálculo de la firma digital de un mensaje.
En la práctica, pueden utilizarse dos tipos de procedimiento criptográfico, el conocido como simétrico, de claves secretas, del que un ejemplo muy conocido es el DES... y el conocido como asimétrico, que utiliza un par de claves pública y privada y que se describe en "Public_Key cryptosystem" en "New directions in Cryptographie " IEEE Transactions on Information Theory, nov. 1976, por MM Diffie y Hellman. Un ejemplo muy conocido de procedimiento asimétrico es el RSA, que lleva el nombre de sus inventores Ronald Rivest, Adi Shamir y Léonard Adleman. Podemos encontrar una descripción de ese procedimiento RSA en la patente US 4,405,829.
En la invención, nos interesamos particularmente en un procedimiento criptográfico asimétrico.
Un procedimiento de codificación según un procedimiento criptográfico asimétrico consiste principalmente, para un emisor A que desea enviar confidencialmente un mensaje a un destinatario B en informarse, p. ej. en un anuario, de la clave pública K_{B} del destinatario B, que deberá aplicarse en el procedimiento de codificación E en el mensaje a que debe transmitirse, y en enviar al destinatario B, el criptograma c resultante:
c = E_{K \ B}(m).
Este procedimiento consiste principalmente para el destinatario B, en recibir el criptograma c, y en decodificarlo para obtener el mensaje de origen m, aplicando la clave privada K'b que es el único en conocer en el procedimiento de decodificación D en el criptograma c:m=D_{K'B}(c).
Según este procedimiento cualquier persona puede enviar un mensaje codificado al destinatario B, pero solamente éste último es capaz de decodificarlo.
Habitualmente se utiliza un procedimiento criptográfico asimétrico para la generación/verificación de la firma. En este contexto, un usuario que desea probar su identidad utilizar una clave privada, que sólo él mismo conoce, para producir una firma digital s de un mensaje m, firma que transmite al dispositivo destinatario. Éste último lleva a cabo la verificación de la firma utilizando la clave pública del usuario. Así, todos los dispositivos son capaces de verificar la firma de los usuarios, informándose de la clave pública de dicho usuario y aplicándola en el algoritmo de verificación. Pero sólo el usuario concernido es capaz de generar la buena firma utilizando su clave privada. Este procedimiento se utiliza mucho por ejemplo en los sistemas de control de acceso o de transacciones bancarias. Generalmente, está acoplado al uso de un procedimiento de codificado para codificar la firma antes de transmitirla.
Para esta generación/verificación de firmas digitales, se puedes utilizar en la práctica procedimientos criptográficos asimétricos destinados a esta aplicación, tal como el DSA (Digital Signatura Algorithm), que corresponde a un estándar americano propuesto por el US Nacional Institute of Standards and Technology. Además, se puede utilizar el RSA que tiene la propiedad de poder utilizarse tanto en codificación como en generación de firma.
En la invención, nos interesamos a un procedimiento criptográfico que puede utilizarse para la codificación de los mensajes y para la generación de firma digital. En el estado actual de la técnica, sólo el RSA, del que existen numerosas variantes de aplicación, ofrece esta doble funcionalidad.
El RSA comprende una etapa de generación de claves pública K y privada K' para un dispositivo dado en el que se procede del siguiente modo:
se eligen dos grandes números primos p y q, distintos,
-
se calcula su producto n=p.q.
-
se elige un número c primo con el más pequeño común múltiple de (p-1)(q-1). En la práctica, se toma a menudo e como igual a 3.
La clave pública K está formada entonces por el par de parámetros (n,e) y la clave secreta K' está formada por el par de parámetros (p,q).
\newpage
Si se elige p y q de gran tamaño, su producto n será igualmente de gran tamaño. Por tanto, n es muy difícil de factorizar. Podemos estar seguros que no se podrá descubrir la clave secreta K'=(p,q) cuando se conoce n.
El procedimiento de codificación de un número m que representa un mensaje M, 0\leqm<n consiste entonces en efectuar el cálculo siguiente:
c = EB(m) = m^{c}mod n
mediante la clave pública K=(n,e).
(Ver p. ej. el documento D1: Yasuko Gotoh y al. "A method for rapad rsa key generation", Systems & Computers in Japan, vol. 21, n° 8, 1 de enero de 1990, páginas 11-20, XP000177817, ISSN 0882-1666).
El procedimiento de decodificación consiste en el siguiente cálculo inverso:
m=c^{d}mod(n)
mediante la clave privada K'=(p,q), guardada secreta, donde
1
Hemos visto que el RSA tiene la particularidad de poder utilizarse para la verificación de la firma. El procedimiento correspondiente de generación de firma por un usuario A consiste en utilizar el procedimiento de decodificación con la clave secreta para producir la firma s d un número m representativo de un mensaje. De este modo, tenemos:
s=m^{d}mod n.
Esta firma s se transmite a un destinatario B. Este último, que conoce m (p. ej. A transmite s y m), verifica la firma efectuando la operación inversa, es decir usando el procedimiento de codificación con la clave pública del emisor A. Es decir que calcula v=s^{e}mod n, y verifica v=m.
Por lo general, para mejorar la seguridad de este tipo de procedimiento de verificación de firma, se aplica previamente una función de troceado en el número m antes de calcular la firma, que puede consistir en permutaciones de bits y/o una compresión.
Cuando hablamos de mensaje M por codificar o por firmar, se trata evidentemente de mensajes digitales, que pueden resultar de una codificación numérica previa. En la práctica, son cadenas de bits, cuyo tamaño binario (número de bits) puede ser variable.
Ahora bien, un procedimiento de criptografía como el RSA es tal que permite codificar con la clave pública (n,e) cualquier número entre 0 y n-1. Para aplicarlo al mensaje M de tamaño cualquiera, es necesario en la práctica cortar este mensaje en una serie de números m que verificarán cada uno de ellos la condición 0\leqm<n. Entonces se aplica el procedimiento de codificación en cada uno de esos números. En el resto del documento, nos interesamos a la aplicación del procedimiento criptográfico en un número m representativo del mensaje M. m puede ser igual a M, o sólo una parte de él. En el resto del documento designaremos indiferentemente por m el mensaje o un número representativo del mensaje.
Uno de los objetos de la invención, es un procedimiento de criptografía asimétrico diferente de aquellos que se basan en el RSA.
Uno de los objetos de la invención, es un procedimiento que se basa en otras propiedades, que pueda aplicarse tanto en codificación de mensajes como en generación de firmas.
Uno de los objetos de la invención, es un procedimiento de criptografía, que permita, en ciertas configuraciones, un tiempo de tratamiento más rápido.
Tal como se ha caracterizado, la invención se refiere a un procedimiento criptográfico según la reivindicación 1.
La invención se comprenderá mejor cuando se lea la siguiente descripción, que se hace a título indicativo y en absoluto limitativo de la invención y en referencia a los dibujos anexados en los que:
- la figura 1 es un esquema funcional de un sistema de comunicación criptográfico de tipo asimétrico;
\newpage
- la figura 2 es un esquema funcional de un dispositivo comunicante utilizado en un sistema de comunicación criptográfica según la invención;
- la figura 3 es un organigrama de una sesión de codificación/decodificaron de mensajes que utiliza el procedimiento criptográfico según la invención; y
- la figura 4 es un organigrama de una sesión de generación/verificación de firma que utiliza el procedimiento criptográfico según la invención.
Para comprender debidamente la invención, es preciso describir algunos preliminares matemáticos.
En la descripción, se utilizan las siguientes notaciones matemáticas:
(1) Si a es un entero relativo y b u entero estrictamente positivo, a mod b (a módulo b) es el residuo modular de a relativamente a b y designa el único entero estrictamente inferior a b, tal como b divide (a - a mod b).
(2) (Z/bZ) designa el conjunto de los residuos módulo b y forma un grupo para la adición modular.
(3) (Z/bZ)* designa el conjunto de los enteros invertibles módulo b y forma un grupo para la multiplicación modular.
(4) La orden de un elemento a de (Z/bZ)* es el más pequeño entero natural ord(a,b) tal que a^{ord(a,b)} = 1 mod b.
(5) PPCM(a,b) designa el más pequeño común múltiple de a y b.
(6) PGCD(a,b) designa el mayor común divisor de a y b.
(7) \lambda(a) designa el indicador de Euler de a. Si a=p.q, \lambda(a)=PPCM(p-1,q-1).
(8) Anotamos X=TRC (a_{1}, ...a_{k}, b_{1}, ...b_{k}) la única solución obtenida por la aflicción del Teorema del Resto chino muy conocido, del siguiente sistema de ecuaciones modulares:
x=a_{1} mod b_{1}
x=a_{2} mod b_{2}
x=a_{k} mod b_{k}
en el que se dan los enteros a_{1} y b_{1} y donde, \foralli,j con i\neqj, PGCD(bi, b_{j}) =1 .
(9) Recordamos que el tamaño binario de un número a es el número de bits en los que se escribe a.
Ya sea ahora un número n, entero, de tamaño arbitrario. El conjunto Un={x<n^{2}/x=1 mod n} es un subgrupo multiplicativo de (Z/n^{2}Z)*.
Ya sea Log_{n} la función definida en el conjunto Un por:
2
Esta función tiene la siguiente propiedad:
\forall x \in Un, \forall y\in Un, log_{n} (xy mod n^{2}) =log_{n} (x) +log_{n} (y) mod n.
Por consiguiente: si g es un número entero arbitrario perteneciente a Un, tenemos para todo número m, 0\leqm<n:
3
Esta propiedad matemática está en la base del procedimiento de criptografía que se aplica en la invención y que pasamos a describir ahora.
La figura 1 representa un sistema de comunicación criptográfico, que utiliza un procedimiento criptográfico asimétrico. Comprende dispositivos comunicantes, en el ejemplo A y B, en un canal de comunicación. En el ejemplo, hemos representado un canal bidireccional. Cada dispositivo contiene un par de claves pública K y privada K'.
Las claves públicas se publican por ejemplo en un fichero público, tal como un anuario, que puede consultar cada dispositivo. En este fichero público, también encontraremos la clave pública K_{A} del dispositivo A y la de K_{B} del dispositivo B. Éste conserva la clave privada K' de cada dispositivo de manera secreta, típicamente en una zona asegurada de memoria no volátil. El dispositivo A contiene asimismo en memoria secreta su clave privada K'_{A} y el dispositivo B contiene igualmente en memoria secreta su clave privada K'_{B}. De este modo conservan su clave pública, pero en una zona memoria sin protección de acceso particular.
En este tipo de sistema, el dispositivo A puede codificar un mensaje m en un criptograma C_{A} utilizando la clave pública K_{B} del dispositivo B; éste último puede decodificar C_{A} utilizando su clave privada K'_{B}, la cual conserva secretamente. Al contrario, el dispositivo B puede codificar un mensaje m en un criptograma C_{B} usando la clave pública K_{A}, del dispositivo A; éste último puede decodificar C_{B} usando su clave privada K'_{A}, la cual conserva secretamente.
Típicamente, cada dispositivo comprende por lo menos, al igual que se ha representado en la figura 2, medios de tratamiento 10, es decir una unidad central de tratamiento (CPU), que comprende principalmente distintos registros R para el cálculo, una interfaz de comunicación, y medios de memorización. Estos medios de memorización comprenden generalmente una memoria programa 12 (ROM, EPROM, EEPROM) y una memoria de trabajo (RAM) 13. En la práctica, cada dispositivo conserva sus datos secretos en una zona de acceso asegurada 120 prevista en memoria programa y sus datos públicos en una zona de acceso normal de esta memoria. La memoria de trabajo permite conservar momentáneamente, el tiempo necesario para los cálculos, mensajes por codificar, criptogramas por decodificar, e incluso resultados de cálculos intermedios.
Los medios de tratamiento y de memorización también permiten ejecutar programas relacionados con la aplicación, y principalmente efectuar los cálculos que corresponden a la aplicación del procedimiento de criptografía para el codificado/decodificado de mensajes y/o la generación/verificación de firmas según la invención. Estos cálculos comprenden principalmente, como ya lo veremos de manera detallada en el resto del documento, elevaciones a la potencia, residuos e inversiones modulares.
Los dispositivos puede incluso comprender un generador 14 de número aleatorio o pseudos-aleatorio r, que puede intervenir en los cálculos citados anteriormente, en ciertas variantes de realización. Este generador se ha encuadrado en punteado en la figura 2, para indicar que no es necesario para la realización de todas las variantes de realización según la invención.
Todos estos medios del dispositivo están conectados a un bus de direcciones y de datos 15.
Estos dispositivos utilizados en la invención son muy conocidos, y corresponden por ejemplo a aquellos que se utilizan en los sistemas de comunicación criptográfica del estado de la técnica, que aplica el RSA. Por tanto, no los detallaremos más adelante. Un ejemplo práctico de sistema de comunicación criptográfico, es el sistema formado por servidores bancarios y tarjetas con chip, para la gestión de transacciones financieras. Peo existen numerosas otras aflicciones, tal como las aplicaciones relacionadas con el comercio electrónico.
Ahora, vamos a pasar a detallar un primer modo de realización de la invención, con respecto al organigrama representado en la figura 3.
Este organigrama representa una secuencia de comunicación entre un dispositivo A y un dispositivo B en un canal de comunicación 20. Estos dispositivos comprenden como mínimo los medios de tratamiento, memorización y comunicación en relación con la figura 2.
El procedimiento de criptografía según la invención comprende un procedimiento de generación de claves pública K y privada K'.
Según la invención, este procedimiento de generación de claves pública y privada de un dispositivo comprende las siguientes etapas que ya se conocen en el documento de YASUKO GOTOH et al. publicado en Enero de 1990 en JAPÓN, con las referencias XP000177817, ISSN: 0882-1666, vol. 21 nº 8, páginas 11-20 de "a method for rapid RSA Key generation" de la obra "Systems & Computers":
- selección de dos grandes números primos p y q distintos y de tamaño vecino;
- cálculo del número n igual al producto p.q;
- cálculo del número \lambda (n)= PPCM (p-1, q-1), es decir de la función de Carmichael del número n;
- determinación de un número g, 0\leqg<n^{2} que cumple con las dos condiciones siguientes:
a)
g es invertible módulo n^{2} y
b)
ord(g,n^{2})=1 mod n.
\newpage
\global\parskip0.970000\baselineskip
Esta condición b) indica que el orden del número g en el conjunto (Z/n^{2}Z)* de los números enteros de 0 a n^{2} es un múltiple no nulo del número n, según las notaciones definidas anteriormente.
La clave pública K está formada entonces por el número n y el número g. La clave privada está formada por los números p,q y \lambda, (n) o solo por los números p y q, \lambda(n) pudiéndose recalcular en cada uso de la clave secreta.
Según este procedimiento se generan las claves pública y privada de cada dispositivo. Esta generación puede efectuarse, según los dispositivos considerados y las aplicaciones, por los mismos dispositivos o por órgano externo.
Cada dispositivo, por ejemplo el dispositivo A, contiene en memoria su clave pública K_{A}= (n_{A}, g_{A}) y, de manera secreta, su clave privada K'_{A}= (p_{A},q_{A}).
Además, las claves públicas se ponen en un fichero accesible al público.
Según la invención, podremos ver a continuación que consiste en atribuir un valor particular a g. En efecto, resulta ventajoso elegir g=2, cuando es posible, es decir, cuando g=2 cumple las condiciones a) y b) del procedimiento de generación de firma según la invención.
Un procedimiento de codificación según un primer modo de realización del procedimiento criptográfico de la invención aplicado en el dispositivo A consiste entonces, para el envío de un mensaje al dispositivo B, en la realización de las siguientes etapas, con 0\leqm<n:
- información de los parámetros n y g del procedimiento de codificación aplicado por el dispositivo A por la clave pública K_{B} del segundo dispositivo B:n=n_{B},g=g_{B}
- cálculo del criptograma c=g^{m}mod n^{2}, y
- transmisión del criptograma c al canal de comunicación.
El procedimiento de codificación según un primer modo de realización de la invención consiste en tomar el parámetro g de la clave pública, elevarlo a la potencia m, y calcular el residuo modular relativamente a n^{2}. Notaremos que en el RSA, es el mensaje m el que se eleva a la potencia cuando en la invención, el mensaje m se usa como exponente.
El dispositivo B que recibe el mensaje codificado, es decir el criptograma c, aplica entonces un procedimiento de decodificación según la invención con los parámetros de su clave privada. Este procedimiento de decodificación comprende el siguiente cálculo:
- cálculo del número m tal que
4
en donde
5
Si g=2, vemos que el cálculo de elevación de g a la potencia resulta facilitado. Así pues, tomaremos preferiblemente g=2, cada vez que esto sea posible. En otros términos, el procedimiento de generación de la clave comenzará por intentar si g=2 cumple las condiciones a) y b).
Pueden aplicarse diferentes variantes de cálculo del procedimiento de decodificación, las cuales permiten, cuando el dispositivo debe decodificar un gran número de criptogramas, precalcular ciertas cantidades y conservarlas de manera secreta en el dispositivo. Una contrapartida es que la zona memoria secreta (zona 120 en la figura 2) del dispositivo debe ser más amplia, puesto que debe contener entonces parámetros suplementarios además de los parámetros p y q. Esto tiene una influencia en la elección de la aplicación de una u otra variante. En efecto, la realización de una zona memoria asegurada resulta costosa, y por tanto su capacidad (memoria) está generalmente limitada, principalmente en los dispositivos dichos a bajo coste (por ejemplo, ciertos tipos de tarjetas con chip).
En una primera variante de aplicación del procedimiento de decodificación, se prevé que el dispositivo, B en este caso, precalcule de una vez por todas la cantidad
6
y la conserve secreta en memoria.
\global\parskip1.000000\baselineskip
Así, se reduce otro tanto el tiempo necesario para la decodificación de cada uno de los mensajes recibidos por el dispositivo. En efecto, cuando el dispositivo B ejecuta una instancia de esta variante del procedimiento de decodificación, sólo le queda por calcular:
7
En una segunda variante de aplicación del procedimiento de decodificación según la invención, se prevé utilizar el Teorema de Reste Chino, para una mejor eficacia (rapidez del cálculo).
En una instancia de esta segunda variante del procedimiento de decodificación, el dispositivo efectúa los siguientes cálculos (de decodificación):
8
donde
9
En este caso, se puede prever además, en el supuesto de que el dispositivo estuviese obligado a decodificar un gran número de mensajes, que el dispositivo precalcule de una vez por todas las siguientes cantidades:
10
y
11
El dispositivo debe conservar entonces estas cantidades como datos secretos.
El cálculo efectuado durante una instancia del procedimiento de decodificación pasa a ser:
12
Como ya lo especificamos, todas sus variantes de cálculo de decodificación son interesantes cuando el dispositivo se ve obligado a decodificar un gran número de mensajes, y cuando el ahorro en tiempo de tratamiento compensa la mayor capacidad memoria de la zona asegurada para conservar todos los datos secretos. La elección de una u otra variante depende en la práctica de la aplicación considerada y de las obligaciones de coste y tiempo de tratamiento que deben conciliarse.
Un segundo modo de realización de la invención comprende la utilización de un número aleatorio, suministrado por un generador de número aleatorio (o pseudoaleatorio), en el procedimiento de codificación, de modo que para un mismo mensaje m a transmitir, el criptograma calculado c será distinto cada vez. La seguridad del sistema de comunicación es por tanto mayor. El procedimiento de decodificación permanece invariable.
Este segundo modo de realización de la invención comprende dos variantes.
En una primera variante, el criptograma c se obtiene mediante el siguiente cálculo: c=g^{m+nr} mod n^{2}.
En una segunda variante, el criptograma c se obtiene mediante el siguiente cálculo: c=g^{m} r^{n} mod n^{2}.
Esta segunda variante necesita en la práctica un tiempo de tratamiento más largo que la primera, pero ofrece una mayor seguridad.
En un tercer modo de realización de la invención, se impone que el orden de g en (Z/n^{2}Z)* sea un entero de pequeño tamaño, esto se obtiene mediante la aplicación del procedimiento distinto de generación de las claves.
Con esta condición en el orden del parámetro g, se reduce la complejidad del cálculo del procedimiento de decodificación que pasa a ser en la práctica cuadrático (función de n^{2}) con relación al tamaño del número n.
En este tercer modo de realización de la invención, el procedimiento de generación de las claves pública y privada es el siguiente:
- selección en secreto, de un entero u y de dos grandes números primos p y q distintos y de tamaño vecino, tal que u divide (p-1) y divide (q-1).
- cálculo del número n igual al producto p.q;
- cálculo del número \lambda(n)=PPCM(p-1, q-1), es decir del indicador de Carmichael del número n;
- determinación de un número h, 0\leqh<n^{2}, que cumple las siguientes condiciones:
a)
h es invertible módulo n^{2} y
b)
ord(h n^{2})=0 mod n.
- cálculo del número g= h^{\lambda (n)/u} mod n^{2}.
La clave pública K está entonces formada por el número n y el número g. la calve privada está constituida por los enteros (p,q,u) conservados secretamente en el dispositivo.
Preferiblemente, elegimos h=2, cuando esto es posible (es decir si h=2 cumple las condiciones a) y b), para facilitar el cálculo de g).
Podemos observar que si u=PGCD(p-1,q-1), ya no es necesario conservar este número que puede encontrarse por el dispositivo a partir de p y q.
Preferiblemente, elegiremos u primo, para mejorar la seguridad del procedimiento, y de pequeño tamaño, típicamente 160 bits. Al elegir una pequeña dimensión para u, veremos que se facilita el cálculo de decodificación.
En este tercer modo de realización, la aplicación del procedimiento de codificación para codificar un mensaje m es idéntica a aquella descrita anteriormente en el primer modo de realización de la invención, el criptograma es igual a c=g^{m} mod n^{2}.
También podemos calcular el criptograma c utilizando una variable aleatoria r según la primera variante del segundo modo de realización de la invención anteriormente descrita. R es entonces un entero aleatorio, del mismo tamaño que u y el criptograma se obtiene mediante el siguiente cálculo: c=g^{m+nr} mod n^{2}.
El criptograma c calculado según una u otra de las aplicaciones anteriores del procedimiento de codificación se envía al dispositivo B que debe decodificarlo. La aplicación del procedimiento de decodificación por el dispositivo B que recibe el mensaje es un poco diferente.
En efecto, el cálculo efectuado en el dispositivo en una instancia de decodificación, para encontrar el número m a partir del criptograma c es el siguiente:
13
Podemos aplicar al igual que anteriormente variantes de cálculo que permiten acelerar el tiempo de tratamiento necesario.
En una primera variante, precalcularemos de una vez la cantidad:
14
y conservarla secretamente en memoria.
Durante una instancia de decodificación de un criptograma c recibido, sólo le queda al dispositivo efectuar el siguiente cálculo:
15
En una segunda variante, aplicamos el Teorema del Resto chino, utilizando las funciones lo_{p} y log_{q} que ya hemos visto para efectuar el cálculo de la decodificación.
Durante una instancia de esta variante del procedimiento de decodificación del criptograma c recibido, el dispositivo efectúa entonces los siguientes cálculos:
16
En una tercera variante, aceleramos más el tiempo de tratamiento necesario para la decodificación del criptograma c según la segunda variante, precalculando las siguientes cantidades:
17
y conservándolas de manera secreta en el dispositivo.
Durante una instancia d cálculo de esta tercera variante del procedimiento de decodificación del criptograma c recibido, el dispositivo sólo tiene que efectuar los siguientes cálculos:
18
En un cuarto modo de realización de la invención, el procedimiento de codificación y el procedimiento de decodificación son tales que presentan la particularidad de ser permutaciones en el grupo de los enteros módulo n^{2}. En otros términos, si el mensaje m se expresa en K bits, el criptograma c obtenido al aplicar el procedimiento de codificación en m y la firma s obtenida al aplicar el procedimiento de decodificación en m también están en K bits.
Esta particularidad confiere al procedimiento criptográfico la propiedad suplementaria de poder ser utilizado tanto en codificación/decodificación que en generación/verificación de firma. En este caso, el procedimiento de decodificación se emplea como procedimiento de generación de firma y el procedimiento de codificación como procedimiento de verificación de firma.
En este cuarto modo de realización, el procedimiento de generación de las claves pública y privada es el mismo que aquel del primer modo de realización de la invención: K=(n,g) y K'=(p,q,\lambda(n)) o K'=(p,q).
Si el dispositivo A desea enviar un mensaje m codificado al dispositivo B, se proporciona la clave pública (n, g) de éste último, luego en una instancia del procedimiento de codificación efectúa entonces los siguientes cálculos, aplicado al número m, 0\leqm<n^{2}:
19
Este es el criptograma c que se envía al dispositivo B.
Éste último debe aplicarle el procedimiento de decodificación correspondiente, para encontrar m_{1}, m_{2} y finalmente m. Este procedimiento de decodificación según el cuarto modo de realización de la invención consiste en efectuar los siguientes cálculos:
20
Al igual que anteriormente, se aplican variantes del procedimiento de decodificación según este cuarto modo de realización de la invención, que permiten reducir el tiempo de tratamiento necesario para decodificar un mensaje dado. Éstas son interesantes cuando el dispositivo tiene un gran número de criptogramas por decodificar.
Una primera variante consiste en precalcular las siguientes cantidades:
21
y
22
que el dispositivo B calcula de una vez y conserva secretas en memoria.
A cada nueva instancia de decodificación de un criptograma c recibido según esta primera variante, el dispositivo B sólo ha de efectuar los siguientes cálculos:
23
En una segunda variante de la aplicación del procedimiento de decodificación según el cuarto modo de realización, se utiliza el Teorema del resto chino.
El dispositivo que desea decodificar un criptograma c según esta segunda variante efectúa entonces los siguientes cálculos sucesivos:
24
En una tercera variante, para mejorar aún más el tiempo de tratamiento de decodificación de esta segunda variante, el dispositivo B puede precalcular de una vez las siguientes cantidades:
25
y conservarlas secretas en memoria.
El dispositivo que desea decodificar un criptograma c según esta tercera variante sólo tiene que efectuar los siguientes cálculos:
26
El cuarto modo de realización de la invención que acaba de describirse permite efectuar la generación/verificación de firma. Como se ha representado en el organigrama de la figura 4, si el dispositivo B debe generar una firma s de un número m representativo de un mensaje hacia el dispositivo A, aplica como procedimiento de generación de la firma, el procedimiento de decodificación con su clave privada: s=D_{K.B}(m).
El dispositivo A que recibe la firma s y que conoce el mensaje m, verifica que la firma sea buena calculando la cantidad v obtenida al aplicar el procedimiento de codificación en la firma s con la clave pública: V=E_{KB}(S). Si la firma es buena, tenemos a v=m.
Todas las variantes de aplicación del procedimiento de decodificación de este cuarto modo de realización que permiten acelerar el tiempo de tratamiento se aplican asimismo en generación/verificación de firma.
La invención que acaba de describirse es aplicable en todos los sistemas en los que se desea poder codificar y/o firmar mensajes. Permite ampliar las posibilidades de adaptación a las distintas aplicaciones, según si se busca mayor seguridad, o una velocidad de tratamiento incrementada. A este respecto, observaremos que el tercer modo de realización de la invención, cuya complejidad de cálculo es solamente cuadrática (función de n^{2}) ofrece una verdadera ventaja en términos de velocidad, en la medida en que todos los procedimientos del estado de la técnica tienen u orden de complejidad superior (función de n^{3}). Esta ventaja interesa más particularmente todas las aplicaciones que utilizan dispositivos portátiles, como por ejemplo las tarjetas con chip y especialmente los dispositivos de bajo coste.
Por último, cualquier persona experimentada en la técnica concernida por la invención comprenderá que pueden efectuarse modificaciones en la forma y/o en los detalles. En particular, se puede codificar la firma, e incluso aplicar una función de troceado en el mensaje m antes de calcular su firma. Esto permite principalmente tener una firma distinta cada vez, aunque el mensaje m sea el mismo.

Claims (26)

1. Procedimiento de codificación par codificar un número m representativo de un mensaje con 0\leqm<n, caracterizado en que se calcula un criptograma c=g^{m}mod n^{2}, n y g son parámetros de una clave pública.
2. Procedimiento de codificación según la reivindicación 1, en el transcurso de la cual se calcula el criptograma c=g^{m+nr}mod (n^{2}) , r es un número entero aleatorio elegido ante del cálculo del criptograma c.
3. Procedimiento de codificación según la reivindicación 1, en el transcurso de la cual se calcula el criptograma c=g^{m}r^{n}mod (n^{2}), r es un número enero aleatorio elegido antes del cálculo del criptograma c.
4. Procedimiento de codificación según la reivindicación 1, en el transcurso de la cual, para codificar el número m, con 0\leqm<n^{2}, e calcula el criptograma c según las siguientes etapas:
1.
m_{1}=m mod n
2.
m_{2}= (m-m1)/n
3.
c=g^{m \ 1} m_{2}^{n} mod n^{2}.
5. Procedimiento de decodificación para decodificar un criptograma c obtenido por un procedimiento de codificación según una de las reivindicaciones 1 a 3 y a producir un número m asociado, caracterizado en que se calcula el número m:
\vskip1.000000\baselineskip
28
\vskip1.000000\baselineskip
con log_{n}(x)-(x-1)/n para x un entero cualesquiera y \lambda(n) uno más pequeño común múltiple de los número p-1 y q-1, n y g son parámetros de una clave pública K, y p y q son parámetros de una clave privada K' asociada.
6. Procedimiento de decodificación según la reivindicación 5, en el transcurso de la cual se precalcula y memoriza la cantidad:
\vskip1.000000\baselineskip
29
7. Procedimiento de decodificación según la reivindicación 5, en el transcurso de la cual el cálculo de m se divide según las siguientes etapas, utilizando el Teorema del Resto Chino TRC:
\vskip1.000000\baselineskip
30
\vskip1.000000\baselineskip
y con log_{q}(x)=(x-1)/q para x un entero cualesquiera.
8. Procedimiento de decodificación según la reivindicación 7, en le transcurso de la cual se precalculan y memorizan las siguientes cantidades:
\vskip1.000000\baselineskip
31
y
32
9. Procedimiento de decodificación para decodificar un criptograma c obtenido mediante un procedimiento de codificación según la reivindicación 4 y producir un número m asociado, caracterizado en que se calcula el número m según las siguientes etapas:
33
con log_{q}(x)-(x-1)/n para x un entero cualesquiera y \lambda(n) el más pequeño común múltiple de los números p-1 y q-1, n y g son parámetros de una clave pública K, y p y q son parámetros de una clave privada K' asociada.
10. Procedimiento de decodificación según la reivindicación 9, en el transcurso de la cual se precalculan y memorizan las siguientes cantidades:
34
y
35
11. Procedimiento de decodificación según la reivindicación 9, en el transcurso de la cual el cálculo de m se divide según las siguientes etapas, utilizando el Teorema del resto chino:
36
y con log_{q}(x)=(x-1)/q para x un entero cualesquiera.
12. Procedimiento de decodificación según la reivindicación 11, en el transcurso de la cual se precalculan y se memorizan las siguientes cantidades:
37
13. Procedimiento de decodificación para decodificar un criptograma recibido c obtenido mediante un procedimiento de codificación según una de las reivindicaciones 1 a 3 y producir u número m asociado caracterizado en que se calcula el número m:
38
con log_{q}(x)=(x-1)/q para x un entero cualesquiera, n y g so parámetros de una clave pública K, y p, q, u son parámetros de una clave privada K' asociada.
14. Procedimiento de decodificación según la reivindicación 13, en el transcurso de la cual se precalcula y memoriza la cantidad:
39
15. Procedimiento de decodificación según la reivindicación 13, en el transcurso de la cual el cálculo de m se divide según las siguientes etapas, utilizando el Teorema del resto chino:
40
y con log_{q}(x)=(x-l)/q para x un entero cualesquiera.
16. Procedimiento de decodificación según la reivindicación 15 en el transcurso de la cual se precalculan se memorizan las siguientes cantidades:
41
17. Procedimiento de generación de claves pública K y privada K', susceptible de utilizarse para la aplicación de un procedimiento de codificación según una de las reivindicaciones 1 a 4 o de un procedimiento de decodificación según una de las reivindicaciones 5 a 16, la clave privada debe conservarse de manera secreta y la pública debe difundirse públicamente, el procedimiento de generación de clave se caracteriza en que comprende las siguientes etapas:
- seleccionar dos números primos p y q distintos de tamaño vecino;
- calcular un número n igual al producto p.q;
- verificar que un número g = 2, 0\leqg<n^{2} verifica las dos condiciones siguientes:
a)
g es invertible módulo n^{2} y
b)
ord(g,n^{2}) = 1 mod n,
la clave pública K está formada por los parámetros n y g y
la clave privada K' está formada por los parámetros p y q.
18. Procedimiento de generación de clave según la reivindicación 17, que comprende igualmente la siguiente etapa:
- calcular un más pequeño común múltiple de los números (p-1) y (q-1): \lambda(n)=PPCM(p-1, q-1)
la clave privada K' está formada entonces por los parámetros p, q y \lambda(n).
19. Procedimiento de generación de clave según la reivindicación 18, que comprende igualmente las siguientes etapas:
- seleccionar un número entero u tal como u divide p y u divide q,
- calcular un número g'= g^{\lambda (n)/u} mod n^{2},
la clave pública K está formada entonces por los parámetros n y g', y la clave privada K' está formada por los parámetros p, q y u.
20. Procedimiento de firma para calcular una firma s de un mensaje m, caracterizado en que comprende una etapa que consiste en ejecutar el procedimiento de decodificación según una de las reivindicaciones 9 a 12 al reemplazar el criptograma c por el mensaje m en el procedimiento de decodificación, el número asociado producido es la firma s.
21. Procedimiento de verificación de firma, para verificar una firma s de un número m representativo de un mensaje caracterizado en que comprende las siguientes etapas:
producir una cantidad v ejecutando el procedimiento de codificación según la reivindicación 4 al reemplazar el número m por la firma s en el procedimiento de codificación,
verificar que la cantidad v es igual al número m.
22. Sistema de comunicación criptográfico con claves pública y privada obtenidas mediante un procedimiento de generación de claves según una de las reivindicaciones 17 a 19, que comprende un canal de comunicación (20) y dispositivos de comunicación (A, B), cada dispositivo de comunicación comprende como mínimo una interfaz de comunicación (11), medios de tratamiento de datos (10) y medios de memorización (12,13), caracterizado en que:
- un primer dispositivo (A) comprende medios para calcular un criptograma c=g^{m}mod n^{2} de un número m representativo de un mensaje, n y g son parámetros de una clave pública de un segundo dispositivo (B), y medios para transmitir el criptograma c al canal de comunicación hacia el segundo dispositivo,
- el segundo dispositivo (B) comprende medios para decodificar el criptograma c mediante una clave privada asociada a la clave pública y producir el número m a partir del criptograma c.
23. Sistema según la reivindicación 22, en el cual el primer dispositivo comprende igualmente una memoria programa que incluye una zona asegurada para memorizar y conservar secretamente resultados de precálculo.
24. Sistema según una de las reivindicaciones 22 a 23 que comprende igualmente un generador (15) para producir un número aleatorio r antes del cálculo de un criptograma c.
ES99973617T 1999-01-14 1999-11-25 Procedimiento criptografico de claves publica y privada. Expired - Lifetime ES2286910T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9900341 1999-01-14
FR9900341A FR2788650B1 (fr) 1999-01-14 1999-01-14 Procede cryptographique a cles publique et privee

Publications (1)

Publication Number Publication Date
ES2286910T3 true ES2286910T3 (es) 2007-12-01

Family

ID=9540854

Family Applications (1)

Application Number Title Priority Date Filing Date
ES99973617T Expired - Lifetime ES2286910T3 (es) 1999-01-14 1999-11-25 Procedimiento criptografico de claves publica y privada.

Country Status (9)

Country Link
US (1) US7054444B1 (es)
EP (1) EP1151576B1 (es)
JP (1) JP4137385B2 (es)
CN (1) CN1338166A (es)
AU (1) AU1390200A (es)
DE (1) DE69935455T2 (es)
ES (1) ES2286910T3 (es)
FR (1) FR2788650B1 (es)
WO (1) WO2000042734A1 (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10061697A1 (de) * 2000-12-12 2002-06-27 Infineon Technologies Ag Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Schlüsseln
US7141822B2 (en) * 2001-02-09 2006-11-28 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method for manufacturing the same
ITTO20010694A1 (it) * 2001-07-13 2003-01-13 Univ Roma Metodo di crittografia.
GB2391772B (en) * 2002-08-10 2005-05-11 Clive Neil Galley Public-key cryptosystem
US20050157872A1 (en) * 2003-11-12 2005-07-21 Takatoshi Ono RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus
CN101099329B (zh) * 2004-11-11 2012-12-26 塞尔蒂卡姆公司 基于椭圆曲线的新陷门单向函数及其用于较短签名和非对称加密的应用
FR2879866B1 (fr) * 2004-12-22 2007-07-20 Sagem Procede et dispositif d'execution d'un calcul cryptographique
JP4758110B2 (ja) * 2005-02-18 2011-08-24 株式会社エヌ・ティ・ティ・ドコモ 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法
US7774607B2 (en) * 2006-12-18 2010-08-10 Microsoft Corporation Fast RSA signature verification
US8903090B2 (en) * 2008-04-29 2014-12-02 International Business Machines Corporation Securely classifying data
US8170216B2 (en) * 2008-06-18 2012-05-01 Apple Inc. Techniques for validating and sharing secrets
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8861716B2 (en) 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
US8565435B2 (en) 2010-08-16 2013-10-22 International Business Machines Corporation Efficient implementation of fully homomorphic encryption
WO2012149395A1 (en) 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption
US9281941B2 (en) 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
JP5965873B2 (ja) * 2013-08-29 2016-08-10 日本電信電話株式会社 暗号文生成装置、暗号文生成方法およびプログラム
CN103701586A (zh) * 2013-11-07 2014-04-02 金硕澳门离岸商业服务有限公司 获取密钥的方法和装置
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US10690904B2 (en) 2016-04-12 2020-06-23 Stryker Corporation Multiple imaging modality light source
US20190318118A1 (en) * 2018-04-16 2019-10-17 International Business Machines Corporation Secure encrypted document retrieval
US10289816B1 (en) 2018-06-08 2019-05-14 Gsfm Llc Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment
JP7276423B2 (ja) 2019-02-25 2023-05-18 日本電気株式会社 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
CN111683071B (zh) 2020-05-29 2023-02-28 百度在线网络技术(北京)有限公司 区块链的隐私数据处理方法、装置、设备以及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5199070A (en) * 1990-12-18 1993-03-30 Matsushita Electric Industrial Co., Ltd. Method for generating a public key
JPH10301491A (ja) * 1997-04-28 1998-11-13 Ibm Japan Ltd 暗号通信方法とシステム
EP0924895B1 (en) * 1997-12-17 2009-07-08 Nippon Telegraph and Telephone Corporation Encryption and decryption devices for public-key cryptosystems and recording medium with their processing programs recorded thereon
US6345098B1 (en) * 1998-07-02 2002-02-05 International Business Machines Corporation Method, system and apparatus for improved reliability in generating secret cryptographic variables

Also Published As

Publication number Publication date
WO2000042734A1 (fr) 2000-07-20
DE69935455D1 (de) 2007-04-19
FR2788650B1 (fr) 2001-02-16
US7054444B1 (en) 2006-05-30
EP1151576B1 (fr) 2007-03-07
FR2788650A1 (fr) 2000-07-21
JP2002535878A (ja) 2002-10-22
CN1338166A (zh) 2002-02-27
DE69935455T2 (de) 2007-11-29
JP4137385B2 (ja) 2008-08-20
AU1390200A (en) 2000-08-01
EP1151576A1 (fr) 2001-11-07

Similar Documents

Publication Publication Date Title
ES2286910T3 (es) Procedimiento criptografico de claves publica y privada.
Fouque et al. Fault attack on elliptic curve Montgomery ladder implementation
CN1326351C (zh) 有限域离散对数密码系统的割圆多项式结构
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
KR100720726B1 (ko) Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법
ES2331456T3 (es) Procedimiento de contramedida en un componente electronico que emplea un algoritmo de codificacion con clave publica de tipo curva eliptica.
US20080240443A1 (en) Method and apparatus for securely processing secret data
JP7123959B2 (ja) 楕円曲線点乗算デバイス及び方法
ES2287745T3 (es) Procedimiento para la aplicacion asegurada de un algoritmo de criptografia de tipo rsa y componente correspondiente.
ES2729874T3 (es) Sistema y método de exponenciación del teorema chino del resto de uso único para algoritmos criptográficos
US20110274269A1 (en) Encoding points of an elliptic curve
US20120020476A1 (en) Method for Performing a Cryptographic Task in an Electronic Hardware Component
ES2279525T3 (es) Procedimiento de criptografia de clave publica basado en el logaritmo discreto.
ES2255568T3 (es) Metodo y aparato de almacenamiento y recuperacion de clave privada de criptografia.
CN104333453A (zh) 一种基于身份的部分盲签名方法
ES2250203T3 (es) Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de cifrado con clave publica de tipo rsa.
EP3188000A1 (en) System and method for hiding a cryptographic secret using expansion
Amounas Elliptic curve digital signature algorithm using Boolean permutation based ECC
Swami et al. Dual modulus RSA based on Jordan-totient function
WO2016034912A1 (en) Method and apparatus for scalar multiplication secure against differential power attacks
ES2216276T3 (es) Sistema criptografico que comprende un sistema de cifrado y descifrado y un sistema de secuestro de claves.
Abdurahmonov et al. Improving Smart Card Security Using Elliptic Curve Cryptography over Prime Field (F p)
KR20020003059A (ko) 정수 또는 다항식 행열을 이용한 공개키 암호시스템
CA2263056C (en) Method and apparatus for finite field basis conversion
Dhamodharan et al. An Optimized And Secure Elliptic Curve Cryptography For The Internet Of Things