Search for in Google by Dino

Google Custom Search

jueves, 21 de diciembre de 2006

Criptografía Asimétrica

La criptografía asimétrica es por definición aquella que utiliza dos claves diferentes para cada usuario, una para cifrar que se le llama clave pública y otra para descifrar que es la clave privada. El nacimiento de la criptografía asimétrica se dio al estar buscando un modo más práctico de intercambiar las llaves simétricas Diffie y Hellman [20], proponen una forma para hacer esto, sin embargo no fue hasta que el popular método de Rivest Shamir y Adleman RSA publicado en 1978 [36], cuándo toma forma la criptografía asimétrica, su funcionamiento esta basado en la imposibilidad computacional de factorizar números enteros grandes.


Actualmente la Criptografía asimétrica [32] es muy usada, sus dos principales aplicaciones son precisamente el intercambio de claves privadas [50] y la firma digital, una firma digital se puede definir como una cadena de caracteres que se agrega a un archivo digital que hace el mismo papel que la firma convencional que se escribe en un documento de papel ordinario. Los fundamentos de la criptografía asimétrica pertenecen a la teoría de números, algo de esto lo podemos ver en [23][24][34].

En la actualidad la criptografía asimétrica o de clave pública se divide en tres familias, según el problema matemático del cual basan su seguridad. La primera familias la que basa su seguridad en el Problema de Factorización Entera PFE [15], los sistemas que pertenecen a esta familia son, el sistema RSA, y el de Rabin Williams RW [46]. La segunda familia es la que basa su seguridad en el Problema del Logaritmo Discreto PLD, a esta familia pertenece el sistema de Diffie Hellman DH de intercambio de claves y el sistema DSA [55] de firma digital. La tercera familia es la que basa su seguridad en el Problema del Logaritmo Discreto Elíptico PLDE, en este caso hay varios esquemas tanto de intercambio de claves como de firma digital que existen como el DHE (Diffie Hellman Elíptico), DSAE, (Nyberg-Rueppel) NRE, (Menezes, Qu, Vanstone) MQV [30], etcétera.

Aunque a las familias anteriores pertenecen los sistemas asimétricos más conocidos, existen otro tipo de sistemas que basan su seguridad en otro tipo de problema como por ejemplo en el Problema del Logaritmo Discreto Hiperelíptico, sobre problemas de retículas y sobre subconjuntos de clases de campos numéricos reales y complejos.




RSA, en el caso de RSA [17] el problema matemático es el de la factorización de un número entero n grande (1024 bits), este número entero se sabe es producto de dos números primos p,q de la misma longitud, entonces la clave pública es el número n y la privada es p,q. El razonamiento del funcionamiento de RSA es el siguiente:


a) a cada usuario se le asigna un número entero n, que funciona como su clave pública
b) solo el usuario respectivo conoce la factorización de n (o sea p,q), que mantiene en secreto y es la clave privada



c) existe un directorio de claves públicas



d) si alguien quiere mandar un mensaje m a algún usuario entonces elige su clave pública n y con información adicional también pública puede mandar el mensaje cifrado c, que solo podrá descifrar el usuario correspondiente, el mensaje m convertido a número (codificación) se somete a la siguiente operación.


e) Entonces el mensaje c puede viajar sin problema por cualquier canal inseguro











f) cuando la información cifrada llega a su destino el receptor procede a descifrar el mensaje con la siguiente fórmula



g) Se puede mostrar que estas formulas son inversas y por lo tanto dan el resultado deseado, (m,e) son públicos y se pueden considerar como la clave pública, la clave privada es la pareja (p,q) o equivalentemente el número d. La relación que existe entre d y e es que uno es el inverso multiplicativo del otro módulo (n) donde (n) es el mínimo común múltiplo de p-1 y q-1, esto significa que la clave privada o el la pareja p,q o es el número d.


En términos muy generales es así como funciona el sistema RSA. Sin embargo en la realidad existen dos formas que son las más comunes, estas formas depende de la aplicación y se llaman el esquema de firma y el esquema de cifrado, cada una de estas dos diferentes aplicaciones consiste en una serie de pasos que a continuación se describen



Esquema de cifrado




Uso: este esquema se usa principalmente en cifrar claves de sistemas simétricos (claves de 128 bits aprox.)

1) Se toma el mensaje M (por ejemplo una clave simétrica de 128 bits), como en la practica actual es recomendable usar arreglos de longitud de 1024 bits, los complementa esos 128 bits con una serie de técnicas para obtener un arreglo de 1024 bits, que la computadora entiende como un número entero m, este proceso se llama codificación.


2) Se le aplica la formula de cifrado de RSA al entero m
3) Se envía el número entero c
4) Al recibir este número se aplica la formula de descifrado al entero c para obtener el entero m
5) Se decodifica m para obtener el mensaje M




Esquema de Firma Digital




Existen dos tipos de esquemas sobre firma digital, el que se denomina esquema de firma digital con apéndice [46][61] y el esquema de firma digital con mensaje recuperable. También cualquier esquema de firma cuenta con dos partes la primera parte se denomina proceso de firma (similar al cifrado) y la segunda parte proceso de verificación de la firma (similar al descifrado). Otros esquemas de firma digital se encuentran en [42].
El esquema más usado y conocido es el esquema de firma con apéndice y consiste en los siguientes puntos:


Proceso de Firma


1) El mensaje a firmar es M, se le aplica una función hash que reduce su longitud de forma única a un mensaje H(M) de longitud de 128 o 160 bits, lo que permite ver cualquier mensaje de cualquier longitud como una cadena de caracteres de longitud constante.

2) H(m) se somete también a un proceso de codificación, por lo tanto se obtiene un número h(m), al que se le aplica la formula con la potencia d, equivalentemente con la clave privada del firmante para obtener
3) Se envía entonces el mensaje firmado s

Proceso de Verificación


1) El que recibe s, se supone conoce el mensaje m, aplica la función para obtener
con la clave pública del que dice ser


2) Aplica la función hash al mensaje m y si h(m)=h’(m) entonces acepta la firma


En un esquema con mensaje recuperable no es necesario saber el mensaje, después de que la firma es aceptada el mensaje puede recuperarse a partir de la firma.




Aspectos Importantes

1) La longitud de las claves

Existe una gran discusión [26], sobre este aspecto pero sin duda en la actualidad se acepta que es recomendable usar claves de longitud 768 para actividades personales,1024 bits para corporaciones y 2048 para actividades de alto riesgo. La longitud de las claves tiene que ver con la seguridad del sistema si el número n pudiese ser factorizado entonces sin mucha dificultad puede calcular a d a partir de e, p, y q por lo tanto descifrar cualquier mensaje. El último récord conocido sobre factorización de números enteros producto de dos primos es de 155 (512 bits) dígitos alcanzado en Jul de 1999.

2) La aleatoriedad de las claves

La generación de las claves RSA es muy importante, muchos ataques son evitados si las claves son elegidas de forma aleatoria [63], esto incrementara la seguridad del sistema.

3) método de codificación

El método que actualmente es usado para aplicaciones en el esquema de cifrado es el OAEP [], este resiste a los ataques que actualmente se conocen y el estándar más conocido sobre RSA es el PKCS#1 v.2 de la RSA Data Security.
En el caso de Esquemas de firma digital el método de codificación recomendable es PSS [], que esta descrito en PKCS#1 v 2.1


4) Elección de parámetros

La elección adecuada de los parámetros que se usan aumenta la seguridad del sistema asi como su fácil y rápida implementación. Como elegir a e=65537, que es el número 4 de Fermat. Esto implica que d, la clave privada sea de una longitud considerable, evitando el ataque de Wiener [45]. Por otro lado usar el método de descifrado por el teorema chino del residuo aumenta la rapidez de descifrado.
CCE otro tipo de criptografía de clave pública es el que usa curvas elípticas definidas en un campo finito. La diferencia que existe entre este sistema y RSA es el problema del cual basan su seguridad, mientras RSA razona de la siguiente manera: te doy el número 15 y te reta a encontrar los factores primos. El problema del cual están basados los sistemas que usan curvas elípticas que denotaremos como CCE es el problema del logaritmo discreto elíptico, en este caso su razonamiento con números sería algo como: te doy el número 15 y el 3 y te reta a encontrar cuantas veces tienes que sumar el mismo 3 para obtener 15.

En lo que sigue nos dedicaremos a explicar un poco mas lo más importante de los CCE

1) entenderemos como una curva elíptica a un conjunto finito de puntos P,Q,…,S donde cada punto en una pareja P = (x,y) y las coordenadas x,y satisfacen una ecuación de la siguiente forma:

Donde las constantes a,b,c,d y e pertenecen a cierto conjunto llamado campo F, que para propósitos de la criptografía o es un campo primo (Z_p) o un campo de característica 2, o sea donde los elementos son n-adas de ceros y unos (F_2^n)




2) El conjunto de puntos que satisfacen a una ecuación similar a la de 1) lo podemos representar como


Este conjunto de puntos puede sumarse y tiene las mismas propiedades que la suma de los números enteros, es decir lo que se conoce como un grupo abeliano, hay que hacer notar que en este caso el que hace el papel de cero (identidad aditiva) es un punto especial que no tiene coordenadas y se representa como O llamado punto al infinito

3) La suma de estos puntos tiene una explicación geométrica muy simple, en este caso la gráfica representa a todos los puntos que satisfacen la ecuación de 1), si suponemos que queremos sumar a P y Q, trazamos una línea recta que pase por P y Q, la ecuación de 1) es de grado 3 y la línea de grado 1, entonces existe siempre tres soluciones, en este caso la tercera solución esta dibujada como el punto -P-Q, enseguida se procede a dibujar una línea recta paralela al eje Y que pase por -P-Q, esta línea vertical también intercepta tres veces a la recta, todas las líneas verticales interceptan al punto especial llamado infinito y que geométricamente esta en el horizonte del plano, el tercer punto es por definición P+Q, como se muestra en la figura



4) La anterior forma de sumar puntos de una curva elíptica es un poco extraña sin embargo, es esta extrañeza lo que permita que sea un poco mas difícil romper los CCE. En el área de las matemáticas conocida como teoría de grupos se sabe que estos grupos son muy simples llamados grupo finitos abelianos lo que permite también que los CCE sean fácil de implementar, llamaremos al número de puntos racionales de la curva como el orden de la curva

5) Los CCE basan su seguridad en el Problema del Logaritmo Discreto Elíptico (PLDE), esto quiere decir que dados P,Q puntos de la curva hay que encontrar un número entero x tal que xP = Q (xP = P+P+…+P, x veces). Obsérvese que a diferencia del PFE (Problema de Factorización Entera) el PLDE no maneja completamente números, lo que hace más complicado su solución.

6) La creación de un protocolo con criptografía de curvas elípticas requiere fundamentalmente una alta seguridad y una buena implementación, para el primer punto se requiere que la elección de la curva sea adecuada, principalmente que sea no-supersingular y que el orden del grupo de puntos racionales tenga un factor primo de al menos 160 bits, además de que este orden no divida al orden de un número adecuado de extensiones del campo finito [13][27], para que no pueda ser sumergido en él, si el campo es Z_p, se pide que la curva no sea anómala. Todo esto con el fin de evitar los ataques conocidos.
Para el caso de la implementación hay que contar con buenos programas que realicen la aritmética del campo finito, además de buenos algoritmos que sumen puntos racionales, si el campo es Z_p existen varios y si el campo el F_2^n entonces se toma una base polinomial que tenga el mínimo de términos por ejemplo un trinomio para generar los elementos del campo finito esto si la implementación es en software y se toma una base normal si es en hardware. Además de contemplar que las operaciones de puntos racionales pueden hacerse en el espacio proyectivo esto elimina el hacer divisiones ahorrando tiempo.


7) Lo anterior se ve reflejado en las ventajas que ofrecen los CCE en comparación con RSA, la principal es la longitud de la clave secreta. Se puede mostrar que mientras en RSA se tiene que usar una clave de 1024 para ofrecer una considerable seguridad, los CCE solo usan 163 bits para ofrecer la misma seguridad, así también las claves RSA de 2048 son equivalentes en seguridad a 210 de CCE. Esto se debe a que para resolver el PLDE el único algoritmo conocido toma tiempo de ejecución totalmente exponencial, mientras que el algoritmo que resuelve PFE incluso también el PLD en Z_p toman tiempo subexponencial.

8) Otra buena noticia sobre los CCE es que los elementos de los puntos racionales pueden ser elementos de un campo finito de característica 2, es decir pueden ser arreglos de ceros y unos de longitud finita (01001101110010010111), en este caso es posible construir una aritmética que optimice la rapidez y construir un circuito especial para esa aritmética, a esto se le conoce como Base Normal Optima.

9) Lo anterior permite con mucho que los CCE sean idóneos para ser implementados en donde el poder de computo y el espacio del circuito sea reducido, donde sea requerida una alta velocidad de procesamiento o grandes volúmenes de transacciones, donde el espacio de almacenamiento, la memoria o el ancho de banda sea limitado. Lo que permite su uso en Smart Cards, Teléfonos celulares, Fax, Organizadores de Palma, PCs, etcétera.

10) En la actualidad existen varios estándares que permiten el uso adecuado y óptimo de los CCE, entre los cuales se encuentran: IEEE P1363 [75] (Institute of Electrical and Electronics Engineers), el ANSI X9.62, ANSI X9.63, ANSI TG-17, ANSI X12 (American National Standards Institute), UN/EDIFACT, ISO/IEC 14888, ISO/IEC 9796-4, ISO/IEC 14946 (International Standards Organization), ATM Forum (Asynchronous Transport Mode), WAP (Wireless Application Protocol). En comercio electrónico: FSTC (Financial Services Technology Consortion), OTP 0.9 (Open Trading Protocol), SET (Secure Electronic Transactions). En internet IETF (The Internet Engineering Task Force), IPSec (Internet Protocol Security Protocol)

11) Los CCE están reemplazando a las aplicaciones que tienen implementado RSA, estas definen también esquemas de firma digital, Intercambio de claves simétricas y otros. Los CCE se pueden estudiar en [14][31][35][69][71].

No hay comentarios.: