LA CRIPTOGRAFÍA CLÁSICA
Como ya sabemos, la criptografía no surge con la era informática, sino que ya viene desde los principios de la historia. Algunos de los algoritmos que han sido utilizados son los siguientes:
- Rellenos de una sola vez
Cifrado: Se escoge una cadena de bits al azar como clave, y se va aplicando sobre el texto normal con una XOR bit a bit
Descifrado: Se vuelve a aplicar XOR con la misma cadena de cifrado.
Inconvenientes: Manejo de la clave entre emisor y receptor y su sincronización.
- Sustitución
Consiste en la sustitución de parte del texto original, mediante el desplazamiento (rígido o progresivo) o bien utilizando coordenadas de tablas.
Ejemplos de este tipo son (Cifrado de Julio Cesar, Polybus y Trithemius). La forma de descifrar es invirtiendo el cifrado, y mantiene los mismos problemas que el de relleno.
- Transposición
Se basa en la reordenación aplicada al texto original mediante una clave establecida. Al igual que en el primer método el descifrado se realiza mediante la clave y de nuevo la reordenación, presenta los mismos inconvenientes que el primer método.
Como hemos podido observar en los algoritmos explicados anteriormente la dificultad en el cifrado y el descifrado no es muy complejo, si tenemos en cuenta las posibilidades que nos ofrecen hoy en día los ordenadores, la capacidad de cómputo es muy elevada. Por otra parte hay que tenerlos en cuenta pues sientan las bases de la criptografía y nos indican lo importante que ha sido la información.
LA CRIPTOGRAFÍA MODERNA
La criptografía moderna se basa en las mismas ideas básicas que la criptografía tradicional, la transposición y la sustitución, pero con distinta orientación. En la criptografía moderna el objetivo es hacer algoritmos de cifrado complicados y rebuscados.
En la figura 1 vemos un criptosistema, los criptosistemas no son otra cosa que una representación del sistema de criptografía que utilizamos en un determinado sistema de seguridad.
Según el tratamiento del mensaje se dividen en:
• Cifrado en bloque
-DES
-El texto original se codifica en bloques de 64 bits, clave de 56 bits y 19 etapas diferentes.
-El descifrado se realiza con la misma clave y los pasos inversos.
-El inconveniente es que puede ser descifrado probando todas las combinaciones posibles, cosa que queda solucionada con Doble DES (ejecuta el DES 2 veces con 3 claves distintas) y el Triple Des (2 claves y 3 etapas).
-IDEA
-Tenemos una clave e 128 bits con 8 iteraciones.
-El descifrado se realiza aplicando el mismo algoritmo pero con subclaves diferentes
-RSA
-Se basa en la dificultad de factorizar número grandes por parte de los ordenadores.
-Los pasos son:
-Seleccionar 2 números primos grandes.
-Calcular n=p*q y z= (p-1)*(q-1).
-Seleccionar un número primo d con respecto a z
-Encontrar e tal que e*d = 1 ( mod z )àe*d mod z = 1.
-El algoritmo es el siguiente:
-Dividimos el texto normal en bloques P, que cumplen que 0
-Para descifrar C calculamos P = C^d (mod n).
-El principal inconveniente como es de suponer es la lentitud.
-Hay que destacar que el RSA pertenece a los algoritmos con clave pública mientras que el DES y el IDEA son algoritmos de clave secreta.
• Cifrado en flujo (A5, RC4, SEAL) cifrado bit a bit
A5 Es el algoritmo de cifrado de voz. Gracias a él, la conversación va encriptada. Se trata de un algoritmo de flujo [stream cipher] con una clave de 64 bits. Hay dos versiones, denominadas A5/1 y A5/2; esta última es la versión autorizada para la exportación, y en consecuencia resulta más fácil de atacar.
Según el tipo de claves se dividen en:
• Cifrado con clave secreta o Criptosistemas simétricos
Existirá una única clave (secreta) que deben compartir emisor y receptor. Con la misma clave se cifra y se descifra por lo que la seguridad reside sólo en mantener dicha clave en secreto.
Medio de
k
Transmisión
k
M
C
Texto
Texto
Base
Criptograma
Base
EK
MT
DK
M
C
Con Ek ciframos el mensaje original aplicándole la clave k y con Dk lo desciframos, aplicándole de la misma forma la clave k.
La confidencialidad y la integridad se lograrán si se protegen las claves en el cifrado y en el descifrado. Es decir, se obtienen simultáneamente si se protege la clave secreta.
• Cifrado con clave pública o Criptosistemas asimétricos
Cada usuario crea un par de claves, una privada para descifrar y otra pública para cifrar, inversas dentro de un cuerpo finito. Lo que se cifra en emisión con una clave, se descifra en recepción con la clave inversa. La seguridad del sistema reside en la dificultad computacional de descubrir la clave privada a partir de la pública. Para ello, usan funciones matemáticas de un solo sentido con trampa
El nacimiento de la criptografía asimétrica se dio al estar buscando un modo más práctico de intercambiar las claves 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.
Medio de
Clave pública
del usuario B
Transmisión
M
C
Usuario A
Criptograma
EB
MT
DB
M
C
Clave privada
del usuario B
Usuario B
Hay que tener en cuenta que Eb y Db son inversas dentro de un cuerpo, además se debe de tener en cuenta que se cifra con la clave pública del destinatario, de forma que conseguimos que solo él, al tener su clave privada pueda acceder al mensaje original.
Criptograma
C
Medio de
Clave privada
del usuario A
Transmisión
M
Usuario A
DA
MT
EA
M
C
Clave pública
del usuario A
Usuario B
En este segundo caso podemos observar como esta basado en el cifrado con la clave privada del emisor y al igual que antes hay que tener en cuenta que Ea y Da son inversas dentro de un cuerpo.
Llegados a este punto la pregunta que nos deberíamos de hacer es, que utilizar, clave pública o privada, pues bien, como siempre depende:
- Los sistemas de clave pública son más lentos, aunque como hemos visto es posible que no sean tan seguros. Hay algunos tipos de ataques que les pueden afectar.
- Los sistemas de clave privada son más lentos, aunque son más seguros, los algoritmos son más complejos y es más difícil su traducción por otros sujetos.
• Sistemas CEE (de curvas elípticas).-
CCE es 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.
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.
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.
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.
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.
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.
En la actualidad existen varios estándares que permiten el uso adecuado y óptimo de los CCE, entre los cuales se encuentran: IEEE P1363 (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)
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.
EL CONTROL DE INTEGRIDAD
Además en la criptografía de clave pública se ejerce también un control de la integridad (asegurarnos de que el mensaje recibido fue el enviado por la otra parte y no uno manipulado), para cumplir con este objetivo se utilizan funciones de dispersión unidireccional (o hash).
La función de dispersión llamada compendio de mensaje, tiene 3 propiedades importantes:
1.-Dado un mensaje P, es fácil calcular el compendio del mensaje MD (P).
2,-Dado un compendio MD (P), es computacionalmente imposible encontrar P, es decir no tiene inversa.
3.-No se pueden generar dos mensajes que tengan el mismo compendio, a menos que sean el mismo mensaje.
Los algoritmos más importantes(o más utilizados son el MD5 y el SHA), los cuales pasamos a explicar:
• MD5
- Opera con los bits, de forma que cada bit de salida es afectado por cada bit de entrada.
- Se coge el mensaje original y se rellena hasta conseguir una longitud de 448 módulo 512 bits
- Se añade al mensaje la longitud original del mismo como un entero de 46 bits.
- Se inicializa un buffer de 128 bits de tamaño a un valor fijo.
- En cada iteración cogemos un boque de 512 bits de entrada y lo mezcla por completo con el buffer y los valores de una tabla construida a partir de los valores de una tabla de la función seno.
- Una vez terminado el cálculo, el buffer contiene el valor del compendio del mensaje.
• SHA
-Genera un compendio de mensaje de 160 bits, funciona igual que el MD5, pero con un buffer de 160 bits.
- Es más seguro que el MD5, debido sobretodo a que utiliza un mayor número de bits que el MD5, pero como es normal también será más lento.
Tanto el SHA como el MD5 se han demostrado inviolables hasta el momento, eso es lo que dicen los apuntesJ.
Un pequeño ejemplo: h (M) es el resultado de un algoritmo que con una entrada M de cualquier tamaño, produce salida de tamaño fijo.
El emisor A envía el mensaje M y la función hash h (M) a B, quien aplica la misma función al mensaje M’ recibido. Si los mensajes son iguales entonces se asegura que los hash también son iguales. No obstante, el hecho de que los hash coincidan no significa que los mensajes M y M’ sean iguales.
Integridad: el receptor B puede confiar en que nadie ha modificado el mensaje durante la transmisión pues el valor h (M) en destino coincide con el enviado por A.
- EL NO REPUDIO
El no repudio, consiste en que el receptor puede saber a ciencia cierta de quien es el mensaje y esto lo podemos conseguir mediante la firma digital, al ser esta única, como si fuera una firma normal en un papel, tenemos como un acuse o un recibo, que demuestra quién ha enviado el mensaje.
Esto es un añadido a todo lo visto anteriormente que incluye más seguridad a la transmisión de mensajes entre los usuarios. Además la firma digital puede ser utilizada al igual que el hash tanto el los sistemas de clave pública como en los de clave privada. Por este motivo es muy utilizada en documentos legales y financieros.
Esta información viene de Internet: http://www.google.es/search?hl=es&q=criptograf%C3%ADa&start=10&sa=N
0 comentarios:
Publicar un comentario