Estamos migrando de sistemas de foros, por favor repórtanos cualquier problema a [email protected], si te llega a tu bandeja de entrada o a spam un correo que te dice que se solicitó el cambio de contraseña, no te alarmes, es un procedimiento normal de la migración, cambia tu contraseña porque no hay compatibilidad en el sistema de cifrado del viejo sistema con el sistema nuevo, por eso debes resetear tu clave con ese enlace.

Criptografía Simétrica y Criptografía Asimétrica

editado julio 2013 en Criptografía
Criptografía Simétrica

La criptografía simétrica se refiere al conjunto de métodos que permiten tener comunicación segura entre las partes siempre y cuando anteriormente se hayan intercambiado la clave correspondiente que llamaremos clave simétrica. La simetría se refiere a que las partes tienen la misma llave tanto para cifrar como para descifrar.
rporfaBsc_m_25.jpg

Este tipo de criptografía se conoce también como criptografía de clave privada o criptografía de llave privada.


Existe una clasificación de este tipo de criptografía en tres familias, la criptografía simétrica de bloques (block cipher), la criptografía simétrica de lluvia (stream cipher) y la criptografía simétrica de resumen (hash functions). Aunque con ligeras modificaciones un sistema de criptografía simétrica de bloques puede modificarse para convertirse en alguna de las otras dos formas, sin embargo es importante verlas por separado dado que se usan en diferentes aplicaciones.


La criptografía simétrica ha sido la más usada en toda la historia, ésta ha podido ser implementada en diferente dispositivos, manuales, mecánicos, eléctricos, hasta los algoritmos actuales que son programables en cualquier computadora. La idea general es aplicar diferentes funciones al mensaje que se quiere cifrar de tal modo que solo conociendo una clave pueda aplicarse de forma inversa para poder así descifrar.


Aunque no existe un tipo de diseño estándar, quizá el más popular es el de Fiestel, que consiste esencialmente en aplicar un número finito de interacciones de cierta forma, que finalmente da como resultado el mensaje cifrado. Este es el caso del sistema criptográfico simétrico más conocido, DES.


DES es un sistema criptográfico que toma como entrada un bloque de 64 bits del mensaje y este se somete a 16 interacciones, una clave de 56 bits, en la práctica el bloque de la clave tiene 64 bits, ya que a cada conjunto de 7 bits se le agrega un bit que puede ser usada como de paridad.


Dependiendo de la naturaleza de la aplicación DES tiene 4 modos de operación para poder implementarse: ECB (Electronic Codebook Mode) para mensajes cortos, de menos de 64 bits, CBC (Cipher Block Chaining Mode) para mensajes largos, CFB (Cipher Block Feedback) para cifrar bit por bit ó byte por byte y el OFB (Output Feedback Mode) el mismo uso pero evitando propagación de error.


En la actualidad no se ha podido romper el sistema DES desde la perspectiva de poder deducir la clave simétrica a partir de la información interceptada, sin embargo con un método a fuerza bruta, es decir probando alrededor de 256 posibles claves, se pudo romper DES en Enero de 1999. Lo anterior quiere decir que, es posible obtener la clave del sistema DES en un tiempo relativamente corto, por lo que lo hace inseguro para propósitos de alta seguridad. La opción que se ha tomado para poder suplantar a DES ha sido usar lo que se conoce como cifrado múltiple, es decir aplicar varias veces el mismo algoritmo para fortalecer la longitud de la clave, esto a tomado la forma de un nuevo sistema de cifrado que se conoce actualmente como triple-DES o TDES.

TDES

TDES El funcionamiento de TDES consiste en aplicar 3 veces DES de la siguiente manera: la primera vez se usa una clave K1(azul) junto con el bloque B0, de forma ordinaria E (de Encription), obteniendo el bloque B1. La segunda ves se toma a B1 con la clave K2 (roja), diferente a K1 de forma inversa, llamada D (de Descencription) y la tercera vez a B2 con una clave K3 (verde) diferente a K1 y K2, de forma ordinaria E (de Encription), es decir, aplica de la interacción 1 a la 16 a B0 con la clave K1, después aplica de la 16 a la 1, a B1 con la clave K2, finalmente aplica una vez mas de la 1 a la 16 a B2 usando la clave K3, obteniendo finalmente a B3. En cada una de estas tres veces aplica el modo de operación más adecuado.
rporfaBsc_m_30.jpg

Este sistema TDES usa entonces una clave de 168 bits, aunque se ha podido mostrar que los ataques actualmente pueden romper a TDES con una complejidad de 2112, es decir efectuar al menos 2112 operaciones para obtener la clave a fuerza bruta, además de la memoria requerida .


Se optó por TDES ya que es muy fácil Inter-operar con DES y proporciona seguridad a mediano plazo.


En los últimos 20 años se han diseñado una gran cantidad de sistemas criptográficos simétricos, entre algunos de ellos están: RC-5 , IDEA , FEAL , LOKI’91 , DESX , Blowfish, CAST , GOST, etcétera. Sin embargo no han tenido el alcance de DES, a pesar de que algunos de ellos tienen mejores propiedades.


Podemos afirmar que el estado actual de la criptografía simétrica es la búsqueda de un nuevo sistema que pueda reemplazar a DES en la mayor parte de aplicaciones. Es así como se ha optado por convocar a un concurso de sistemas criptográficos simétricos y que este decida quien será el nuevo estándar al menos para los próximos 20 años.

El NIST (National Institute of Standards Technology) convocó a un concurso para poder tener un sistema simétrico que sea seguro y pueda usarse al menos en los próximos 20 años como estándar. En la mitad del año de 1998 se aceptaron

candidatos, estos se han sometido a pruebas públicas y por parte del NIST. Actualmente se cuentan con 5 finalistas que son: MARS, RC6, Rijndael, Serpent, y Twofish, se espera que el candidato elegido se tenga a mediados del año 2000.

Las principales características que se pide a AES son que al menos sea tan seguro y rápido como TDES, es decir, que al menos evite los ataques conocidos. Además de que pueda ser implementado en una gran parte de aplicaciones. Una vez designado AES este podrá ser usado tanto como cifrador de bloques (block cipher), como cifrador de lluvia (stream cipher), como función resumen (hash function), y como generador de números seudoaleatorios.

Funciones de Flujo

Los cifradores de flujo o stream ciphers, son usados donde se cuente con un ancho de banda restringido (el número de bits que se transmiten a la vez), además de que se requiere independencia en los bloques transmitidos, entonces la mejor opción es cifrar bit por bit o byte por byte, este tipo de cifradores tiene la característica además de ser muy rápido. Los algoritmos más conocidos de este tipo están RC-4, SEAL y WAKE.


Entre los ataques más potentes a la criptografía simétrica están el criptoanálisis diferencial y lineal , sin embargo no han podido ser muy eficientes en la práctica por lo tanto, por el momento después de que un sistema criptográfico es publicado y se muestra inmune a estos dos tipos de ataques (y algunos otros más) la mayor preocupación es la longitud de las claves .

Funciones Hash

Una herramienta fundamental en la criptografía, son las funciones hash. Son usadas principalmente para resolver el problema de la integridad de los mensajes, así como la autenticidad de mensajes y de su origen.


Una función hash es también ampliamente usada para la firma digital, ya que los documentos a firmar son en general demasiado grandes, la función hash les asocia una cadena de longitud 160 bits que los hace más manejables para el propósito de firma digital.
rporfaBsc_m_35.jpg

Esto es, un mensaje de longitud arbitraria lo transforma de forma “única” a un mensaje de longitud constante.


¿Cómo hace esto?

La idea general es la siguiente:

La función hash toma como entrada una cadena de longitud arbitraria, digamos 5259 bits, luego divide éste mensaje en partes iguales, digamos de 160bits; como en este caso y en general el mensaje original no será un múltiplo de 160, entonces para completar un número entero de partes de 160 bits al último se le agrega un relleno, digamos de puros ceros. En nuestro caso en 5259 caben 32 partes de 160 bits y sobran 139, entonces se agregarán 21 ceros más.
rporfaBsc_m_38.jpg

Posteriormente se asocia un valor constante a un vector inicial IV y H0=IV Ahora se obtiene H1 que es el resultado de combinar H0 con X1 usando una función de compresión f H1 = f(H0,X1) Posteriormente se obtiene H2, combinando H1 y X2 con f H2 = f(H1,X2) Se hace lo mismo para obtener H3 H3 = f(H2,X3) Hasta llegar a Ht Ht = f(Ht-1, Xt) Entonces el valor hash será h(M) = Ht


De alguna forma lo que se hace es tomar el mensaje partirlo en pedazos de longitud constante y combinar de alguna forma pedazo por pedazo hasta obtener un solo mensaje de longitud fija como muestra la figura siguiente:
rporfaBsc_m_41.jpg

Las funciones hash (o primitivas hash) pueden operar como: MDC (Modification Detection Codes) ó MAC (Massage Authentication Codes).


Los MDC sirven para resolver el problema de la integridad de la información, al mensaje se le aplica un MDC (una función hash) y se manda junto con el propio mensaje, al recibirlo el receptor aplica la función hash al mensaje y comprueba que sea igual al hash que se envió antes.


Es decir, se aplica un hash al mensaje M y se envía con el mensaje (M, h(M)), cuando se recibe se le aplica una vez más el hash (ya que M fue enviado) obteniendo h’(M), si h(M)=h’(M), entonces se acepta que el mensaje se a transmitido sin alteración.
rporfaBsc_m_42.jpg


Los MAC sirven para autenticar el origen de los mensaje así como también su integridad, para hacer esto se combina el mensaje M con una clave privada K y se les aplica un hash h(M,K). Se envía esto y al llegar a su destino si se comprueba la integridad de la clave privada K, entonces se demuestra que el único origen del mensaje es el que tiene la parte propietaria de la otra clave K.


De forma simple se muestra en la siguiente figura el funcionamiento de un MAC.
rporfaBsc_m_45.jpg

Las propiedades que deben de tener las primitivas hash son:


1) Resistencia a la preimagen: significa que dada cualquier imagen, es computacionalmente imposible encontrar un mensaje x tal que h(x)=y. Otra forma como se conoce esta propiedad es que h sea de un solo sentido.


2) Resistencia a una 2° preimagen: significa que dado x, es computacionalmente imposible encontrar una x’ tal que h(x)=h(x’). Otra forma de conocer esta propiedad es que h sea resistente a una colisión suave.


3) Resistencia a colisión: significa que es computacionalmente imposible encontrar dos diferentes mensajes x, x’ tal que h(x)=h(x’). Esta propiedad también se conoce como resistencia a colisión fuerte.


Para ilustrar la necesidad de estas propiedades veamos los siguientes ejemplos:


Consideremos un esquema de firma digital con apéndice, entonces la firma se aplica a h(x), en este caso h debe ser un MDC con resistencia a una 2° preimagen, ya que de lo contrario un atacante C que conozca la firma sobre h(x), puede encontrar otro mensaje x’ tal que h(x) = h(x’) y reclamar que la firma es del documento x’.


Si el atacante C puede hacer que el usuario firme un mensaje, entonces el atacante puede encontrar una colisión (x, x’) (en lugar de lo más difícil que es encontrar una segunda preimagen de x) y hacer firmar al usuario a x diciendo que firmo x’. En este caso es necesaria la propiedad de resistencia a colisión.


Por último si (e,n) es la clave pública RSA de A, C puede elegir aleatoriamente un y y calcular z = ye mod n, y reclamar que y es la firma de z, si C puede encontrar una preimagen x tal que z = h(x), donde x es importante para A. Esto es evitable si h es resistente a preimagen.


Las funciones hash más conocidas son las que se crean a partir de un block cipher como: DES , MD5 , SHA-1, y RIPEMD 160 .

El ataque más conocido (de fuerza bruta) a una función hash es conocido como “birthday attack” y se basa en la siguiente paradoja, si hay 23 personas en un local existe una probabilidad de al menos 1/2, de que existan dos personas con el mismo cumpleaños. Aunque parezca muy difícil esa posibilidad se puede mostrar que en general al recorrer la raíz cuadrada del número de un conjunto de datos, se tiene la probabilidad de al menos ½ de encontrar dos iguales.


Al aplicar esto a una función hash, es necesario recorrer entonces la raíz cuadrada de 2160 mensajes para poder encontrar dos con el mismo hash, o sea encontrar una colisión. Por lo tanto una función hash son salida 2160 tiene una complejidad de 280, y una función de 128 bits (38 dígitos) de salida tiene una complejidad de 264, por lo que es recomendable usar actualmente salida de 160 bits (48 dígitos).


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, 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 , cuando 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 es muy usada; sus dos principales aplicaciones son el intercambio de claves privadas 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 los textos A course in Number Theory and Cryptography y Algebraic Aspects of Cryptography de N. Koblitz, así como en Elementary Number Theory and Its Applications de K.H. Rosen.

En la actualidad la criptografía asimétrica o de clave pública se divide en tres familias según el problema matemático en el cual basan su seguridad. La primera familia es la que basa su seguridad en el Problema de Factorización Entera PFE , los sistemas que pertenecen a esta familia son, el sistema RSA, y el de Rabin Williams RW . 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 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 , 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 problemas diferentes 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


RSA, en el caso de RSA el problema matemático es el de la factorización de un número entero n grande (1024 bits, que equivale a un número de 308 dígitos), 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
rporfaBsc_m_52.jpg


c) existe un directorio de claves públicas
rporfaBsc_m_53.jpg

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 (donde e es constante y público)
rporfaBsc_m_56.jpg

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

d=mc mod n

f) Se puede mostrar que estas formulas son inversas y por lo tanto dan el resultado deseado, (n,e) son 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, o también puede usarse ϕ(n)=(p-1)(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 para 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 (38 dígitos), como en la practica actual es recomendable usar arreglos de longitud de 1024 bits (308 dígitos), los complementa esos 128 bits con una serie de técnicas para obtener un arreglo de 1024 bits, después se aplica un proceso de codificación para que la computadora entienda al mensaje como un número entero m.


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

Ejemplo simple:

Generación de parámetros

1) p = 3, q = 5 (se eligen don números primos como clave privada) 2) n = 15 ( se calcula el producto, es la clave pública) 3) ϕ(n)=(3-1)(5-1)=8 4) Sea e=3, entonces d=3, ya que e*d = 3*3 =9 mod 8 =1 (como este caso


solo es para mostrar el funcionamiento no importa que d sea igual a e, sin embargo en la práctica e es pequeño y d es muy grande) 5) Si el mensaje es m=2



Proceso de cifrado

6) El mensaje cifrado es c= me mod n, es decir, c=23 mod 15, o sea c=8



Proceso de descifrado

7) Para descifrar el mensaje m=83 mod 15, es decir, m=512 mod 15, asi m=2 (ya que 512/15=2 mod 15 = m)


Por lo tanto es correcto el funcionamiento.

Esquema de Firma Digital

Existen dos tipos de esquemas sobre firma digital, el que se denomina esquema de firma digital con apéndice 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 firna digital se encuentran en . 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 (s =M h )d mod n


3) Se envía entonces el mensaje firmado s

Ejemplo simple:

Tomemos los mismos parámetros del ejemplo en el esquema de cifrado, p=3, q=5, m=2, ϕ=8, e=3, d=3

Proceso de Firma

1) La firma del documento m es: s= md mod n = 23 mod 15 =8 2) El mensaje firmado es entonces (m,s) = (2,8)

Proceso de verificación


3) Aplicando la función de verificación se mod n = 83 mod 15 = 2 4) Como 2 (el obtenido de la anterior fórmula) = 2 (el mensaje enviado) 5) Entonces la firma es válida


1) La longitud de las claves

Existe una gran discusión , sobre este aspecto pero sin duda en la actualidad se acepta que es recomendable usar claves de longitud 768 (231 dígitos) para actividades personales,1024 bits (308 dígitos) para corporaciones y 2048 (616 dígitos) 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 de la misma longitud es de 512 bits (155 dígitos) 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 , 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 así como su fácil y rápida implementación. Como elegir a e=65537 = (01 00 01)16, para poder efectuar la operación exponente eficientemente. Además de elegir d la clave privada de longitud grande para evitar el ataque de Wiener. Los números primos p,q además de ser generados aleatoriamente deben de tener la misma longitud y no estar cerca.

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 matemático en el cual basan su seguridad. RSA razona de la siguiente manera: te doy el número 15 y te reta a encontrar los factores primos. El problema en el cual están basados los sistemas que usan curvas elípticas que denotaremos como CCE es el 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 lo más importante de los CCE


1) Entenderemos como una curva elíptica a una ecuación de la forma siguiente:

y +axy +by =x 3 +cx +dx +e


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 (Zp) o un campo de característica 2, o sea donde los elementos son n-adas de ceros y unos (F2n)


2) A un punto que satisface la ecuación anterior se le llama punto racional. Si el campo es finito, entonces el conjunto de puntos (x,y) que satisfacen la ecuación es finito y es llamado conjunto de puntos racionales de la curva E sobre el campo F. Al conjunto de puntos racionales lo podemos representar como

EO P , P2, P ,..., P:, 1 3 n
E representa la ecuación y O es un punto que no tiene coordenadas y hace el papel de cero (llamado punto al infinito) ya que en este conjunto los 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.


Ejemplo: veamos una curva elíptica simple, si la ecuación es y=x3+4x+3 y el campo Z5, es decir el conjunto {0,1,2,3,4}, entonces las parejas que satisfacen la ecuación son {(2,2), (2,3}, por lo tanto la curva elíptica es E: {O, (2,2), (2.3)}. En este caso E tiene 3 puntos racionales.


3) La suma de estos puntos tiene una explicación geométrica muy simple, si la gráfica representa a todos los puntos que satisfacen la ecuación de la curva elíptica, y queremos sumar a P y Q, trazamos una línea recta que pase por P y Q, la ecuación de la curva es de grado 3 y la línea de grado 1, entonces existen 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
rporfaBsc_m_67.jpg

4) No es difícil obtener fórmulas para calcular las coordenadas del punto P+Q a partir de las coordenadas del punto P y del punto Q. Por ejemplo si el campo de definición de la curva es un campo primo Zp, entonces las fórmulas de suma son las siguientes
2 (
	
	
	λλ
	
	
	x
	
	
	−
	
	
	−
	
	
	=
	
	
	x
	
	
	x1 x
	
	
	3
	
	
	2
	
	
	)
	
	
	−−
	
	
	=
	
	
	y x
	
	
	y
	
	
	1
	
	
	3
	
	
	1
	
	
	3
	
	
	−
	
	
	⎧
	
	
	y
	
	
	y
	
	
	2
	
	
	1
	
	
	, P
	
	
	≠
	
	
	Q
	
	
	⎪⎪
	
	
	−
	
	
	x
	
	
	x1
	
	
	=
	
	
	λ
	
	
	2
	
	
	3x12
	
	
	+
	
	
	a
	
	
	⎪⎪
	
	
	P
	
	
	Q
	
	
	=
	
	
	,
	
	
	2 y
	
	
	1

5) 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 más 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 abelianos finitos 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. En nuestro ejemplo P0=O, P1=(2,2), P2=(2,3), donde 2P1=P2.


6) 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.


7) 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 163 bits, además de que este orden no divida al orden de un número adecuado de extensiones del campo finito, para que no pueda ser sumergido en él, si el campo es ZP, se pide que la curva no sea anómala o sea que no tenga p puntos racionales. 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, tanto en el caso de Zp como F2n, en este último 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.

8) 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 Zp toman un tiempo subexponencial.


9) Otra buena noticia sobre 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.


10)Lo anterior permite con mucho que los CCE sean idóneos para ser implementados en donde el poder de cómputo 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.


11)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 TG17, 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)

12) Los CCE son el mejor candidato para reemplazar a las aplicaciones que tienen implementado RSA, estas definen también esquemas de firma digital, Intercambio de claves simétricas y otros.
Accede o Regístrate para comentar.