Desde que el hombre ha necesitado comunicarse con los demás ha tenido la necesidad de que algunos de sus mensajes solo fueran conocidos por las personas a quien estaban destinados. La necesidad de poder enviar mensajes de forma que solo fueran entendidos por los destinatarios hizo que se crearan sistemas de cifrado, de forma que un mensaje después de un proceso de transformación, lo que llamamos cifrado, solo pudiera ser leído siguiendo un proceso de descifrado. CRIPTOLOGIA Sistema que ofrecen medios seguros para la comunicación en los que el emisor oculta o cifra un mensaje antes de transmitirlo para que un receptor autorizado o nadie pueda verlo. En el ámbito criptográfico, entendemos por Texto en claro cualquier información que resulta legible y comprensible, Un texto en claro sería cualquier información antes de ser cifrada o después de ser descifrada. Se considera que cualquier información es vulnerable si se encuentra en este estado. Así mismo, denominamos criptograma a cualquier información que se encuentre convenientemente cifrada y no resulte legible ni comprensible más que para el destinatario legítimo de la misma. El mecanismo de transformar un texto en claro en un criptograma lo denominamos encriptación o cifrado, y al proceso de recuperación de la información a partir de un criptograma lo denominamos des encriptación o descifrado. La criptologia se divide en dos áreas la criptografía y el criptoanálisis (que usa criptosistema). HISTORIA DE LA CRIPTOLOGIA: Los métodos clásicos Los espartanos utilizaron, en el 400 a.C., la Sáciala, que puede considerarse el primer sistema de criptografía por transposición, es decir, que se caracteriza por enmascarar el significado real de un texto alterando el orden de los signos que lo conforman. Los militares de la ciudad griega escribían sus mensajes sobre una tela que envolvía una vara. El mensaje sólo podía leerse cuando se enrollaba sobre un bastón del mismo grosor, que poseía el destinatario lícito. El método de la sáciala era extremadamente sencillo, como también lo era el que instituyó Julio César, basado en la sustitución de cada letra por la que ocupa tres puestos más allá en el alfabeto. En los escritos medievales sorprenden términos como Xilef o Thfpfklbctxx. Para esconder sus nombres, los copistas empleaban el alfabeto zodiacal, formaban anagramas alterando el orden de las letras (es el caso de Xilef, anagrama de Félix) o recurrían a un método denominado fuga de vocales, en el que éstas se sustituían por puntos o por consonantes arbitrarias (Thfpfklbctxx por Theoflactus). La criptografía resurgió en la Europa de la Edad Media, impulsada por las intrigas del papado y las ciudades-estado italianas. Fue un servidor del Papa Clemente VII, Grabiele de Lavinde, quien escribió el primer manual sobre la materia en el viejo continente. En 1466, León Battista Alberti, músico, pintor, escritor y arquitecto, concibió el sistema polialfabético que emplea varios abecedarios, saltando de uno a otro cada tres o cuatro palabras. El emisor y el destinatario han de ponerse de acuerdo para fijar la posición relativa de dos círculos concéntricos, que determinará la correspondencia de los signos. Un siglo después, Giovan Battista Belaso de Brescia instituyó una nueva técnica. La clave, formada por una palabra o una frase, debe transcribirse letra a letra sobre el texto original. Cada letra del texto se cambia por la correspondiente en el alfabeto que comienza en la letra clave.
Pero los métodos clásicos distan mucho de ser infalibles. En algunos casos, basta hacer un simple cálculo para desentrañar los mensajes ocultos. Si se confronta la frecuencia habitual de las letras en el lenguaje común con la de los signos del criptograma, puede resultar relativamente sencillo descifrarlo. Factores como la longitud del texto, el uso de más de una clave o la extensión de esta juegan un papel muy importante, así como la intuición, un arma esencial para todo criptoanalista.
CRIPTOGRAFÍA: Ciencia de cifrar y descifrar información también llamado “ocultar información” utilizando técnicas (criptosistema) que nos proporciona intercambiar información segura sobre canales inseguros para que resulten ilegibles de modo que solo las personas que tengan una determinada clave para poderlo leer.
CRIPTOANÁLISIS: Técnica para descifrar un criptograma; es la reconstrucción de mensajes cifrados en texto simple utilizando métodos matemáticos por lo tanto todos los criptosistema deben de ser residentes a los métodos del criptoanálisis. Cuando un método de criptoanálisis permite descifrar un mensaje cifrado mediante el uso de un criptosistema, decimos que el algoritmo de cifrado ha sido decodificado. Existen cuatro métodos de criptoanálisis: -
Ataque de solo texto cifrado: encontrar la clave de descifrado usando uno o más textos cifrados. Ataque de texto simple conocido: encontrar la clave de descifrado usando uno o más textos cifrados conociendo el texto correspondiente. Ataque de texto simple elegido: encontrar clave de descifrado usando uno o más textos cifrados donde el atacante tiene la opción de generarlos a partir de textos simples. Ataque de texto cifrado elegido: encontrar clave de descifrado usando uno o más textos cifrados donde le atacante tiene la opción de generarlos a partir de textos elegidos.
CRIPTOSISTEMAS Antes de nada, es conveniente definir qué entendemos -matemáticamente- por criptosistema. Un Criptosistema es una cuaterna de elementos formada por: Un conjunto finito llamado alfabeto, que según unas normas sintácticas y semánticas, permite emitir un mensaje en claro así como su correspondiente criptograma. Un conjunto finito denominado espacio de claves formado por todas las posibles claves, tanto de encriptación como de des encriptación, del criptosistema. Una familia de aplicaciones del alfabeto en sí mismo que denominamos transformaciones de cifrado.
-
Una familia de aplicaciones del alfabeto en sí mismo que denominamos transformaciones de descifrado.
Ya sabemos qué es un criptosistema, pero ¿qué es un criptosistema informático? Un criptosistema informático se definiría por los siguientes cuatro elementos: Un conjunto finito denominado alfabeto, que permite representar tanto el texto en claro como el criptograma. A bajo nivel hablaríamos de bits, y a más alto nivel podríamos hablar de caracteres ASCII o MIME. Un conjunto finito denominado espacio de claves. Estaría constituido por la totalidad de las claves posibles del criptosistema. Una familia de transformaciones aritmetico-logicas que denominamos transformaciones de cifrado. Una familia de transformaciones aritmetico-logicas que denominamos transformaciones de descifrado. Se trata simplemente de un criptosistema adaptado a las posibilidades y limitaciones de una computadora. El alfabeto o espacio de caracteres suele ser un estándar de representación de información (típicamente MIME o UNICODE por motivos de compatibilidad) y a más bajo nivel, por bits. Las transformaciones de cifrado y descifrado se ciñen a las normas de computación de los ordenadores actuales. En realidad, a efectos prácticos no existe mucha diferencia entre criptosistema matemático e informático, pues los matemáticos suelen diseñarse pensando en representaciones computacionales (pues solamente los ordenadores tienen la potencia necesaria para soportar los complejos algoritmos), y los informáticos se desarrollan siempre con una base matemática. Métodos que han sido creados durante la historia de este y son los siguientes: -
Sistema De Julio Cesar: es el más antiguo y el más conocido; donde se reemplaza cada letra por la situada tres posiciones delante en el alfabeto. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z X Y Z A B C D E F G H I J K L M N O P Q R S T U V W B=Y P=M La formula matemática es: C = (m + 3) modL C: mensaje cifrado. M: mensaje en claro. 3: clave. L: letra del alfabeto en cuestión.
-
Sistema mono alfabético: sustituye cada una de las letras que ocupa igual posición en un alfabeto desordenado, así se consiguen tantas claves como posibilidades de alfabeto hay. El procedimiento es el siguiente: 1. Se busca una palabra (clave) fácil de recordar y se le quitan las letras repetidas. FERCHA 2. Se añaden al final de la palabra las restantes letras del alfabeto. FERCHABCDE ….XYZ 3. Se ordenan en una matriz cuya primera fila es la palabra clave F
E
R
C
H
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
4.
a b c d e f g h i j k l m n o p q r s t u
T
U
V
W
X
Y
Z
A
B
C
D
E
El algoritmo se colocarían por columnas hacia arriba y quedaría ZTNHBFAUOICEBVPJDRCWQKECDXRLFHEYSMGA
-
Playfair o monoalfabetico diagramas: utiliza una palabra clave y una matriz de 5 por 5. El procedimiento es el siguiente: 1. Las palabras se separan en diagramas. Un diagrama nunca puede tener dos letras repetidas, en ese caso se pone una de relleno (X). Ejemplo: LLAVE = LX LA VE. 2. Si las dos letras están en la misma fila se reemplazan por la siguiente de la derecha, las filas tienen continuidad mediante un sistema circular. 3. Si las dos letras están en la misma columna se sustituyen por la inmediata inferior, siguiendo un sistema circular. 4. En los casos restantes se sustituye cada letra por la correspondiente de misma fila y la columna de la otra letra del diagrama.
-
Sistema poli alfabético o tabla de vi generé: Se utilizan para cambiar las estadísticas del criptograma. A cada letra le corresponde un alfabeto, por lo tanto se utiliza una palabra clave y una tabla de alfabetos.
a A B C D E F G H I J K L M N O P Q R S T U
b B C D E F G H I J K L M N O P Q R S T U V
c C D E F G H I J K L M N O P Q R S T U V W
d D E F G H I J K L M N O P Q R S T U V W X
e E F G H I J K L M N O P Q R S T U V W X Y
f F G H I J K L M N O P Q R S T U V W X Y Z
g G H I J K L M N O P Q R S T U V W X Y Z A
h H I J K L M N O P Q R S T U V W X Y Z A B
i I J K L M N O P Q R S T U V W X Y Z A B C
j J K L M N O P Q R S T U V W X Y Z A B C D
k K L M N O P Q R S T U V W X Y Z A B C D E
l L M N O P Q R S T U V W X Y Z A B C D E F
m M N O P Q R S T U V W X Y Z A B C D E F G
n N O P Q R S T U V W X Y Z A B C D E F G H
o O P Q R S T U V W X Y Z A B C D E F G H I
p P Q R S T U V W X Y Z A B C D E F G H I J
q Q R S T U V W X Y Z A B C D E F G H I J K
r R S T U V W X Y Z A B C D E F G H I J K L
s S T U V W X Y Z A B C D E F G H I J K L M
t T U V W X Y Z A B C D E F G H I J K L M N
u U V W X Y Z A B C D E F G H I J K L M N O
v V W X Y Z A B C D E F G H I J K L M N O P
w W X Y Z A B C D E F G H I J K L M N O P Q
x X Y Z A B C D E F G H I J K L M N O P Q R
y Y Z A B C D E F G H I J K L M N O P Q R S
z Z A B C D E F G H I J K L M N O P Q R S T
v w x y z
V W X Y Z
W X Y Z A
X Y Z A B
Y Z A B C D E F G H I Z A B C D E F G H I J A B C D E F G H I J K B C D E F G H I J K L C D E F G H I J K L M
J K L M N
K L M N O
L M N O P
M N O P Q
N O P Q R
O P Q R S T U P Q R S T U V Q R S T U V W R S T U V W X S T U V W X Y
El procedimiento es el siguiente: 1. 2. 3.
4.
-
Se busca una palabra fácil de recordar. Se escribe la palabra del texto en claro, repitiendo tantas veces como sea necesario. Cada letra del texto en claro se codifica con el alfabeto de la tabla marcado por la letra inferior, o sea la letra de la clave que le corresponde.
texto en claro
e
s
t
o
e
s
c
r
i
p
t
o
l
o
g
i
a
clave
a
d
i
o
s
a
d
i
o
s
a
d
i
o
s
a
d
criptograma
e
v
b d w s
f
z w h
t
r
t
c
y
i
d
Se busca en el criptograma repeticiones de letras ( ya que se lo podrían romper más fácil) se deben de cambiar con el múltiplo de la longitud de la clave. Expresión matemática: (modn) Ek (mi) = mi + k (imod) Mi: enésimo símbolo del texto cifrado. N: numero de letras del alfabeto.
Sistema de permutación: desordena los caracteres y bits. Procedimiento es el siguiente: 1. Escoja una palabra clave fácil de recordar y formar con ella una matriz donde la palabra clave forma la primera fila. 2. Después empieza a copiar el texto corriendo las filas de izquierda a derecha. 3. Luego cambia las columnas de posición, recordemos que la clave se impregna en la primera fila en orden alfabético. 4. El nuevo texto cifrado se escribe con las letras de las columnas de abajo hacia arriba.
2 f e c r
e s r a
r t i f
3 c o t i
4.
h e o a
a s g
a s g
c o t i
e s r a
gsaitocarsercefaoehfitr
f e c r
h e o a
r t i f
CLASIFICACION POR TIPO DE LLAVE Las técnicas de criptografía moderna se pueden clasificar en dos según el tipo de clave como:
-
Criptografía simétrica (claves secreta/secretas o únicas): es el sistema más usado antiguamente donde el emisor y el receptor poseen la misma llave para cifrar el mensaje y descifrarlo, en este lo que más se refuerza es la confiabilidad que se tiene ya que este es un secreto entre dos usuarios. La privacidad de la clave secreta es la seguridad de todo; el emisor del mensaje genera una clave y después transmite por un canal seguro a los usuarios autorizados al recibir el mensaje. Las condiciones del algoritmo son indispensable por ejemplo que conocido el criptograma no descifrar el texto, ni adivinar la clave y conocido el texto y el criptograma es más caro que descifrar la clave que el valor real de la información. Las ventajas de estas claves es la existencia de algoritmos rápidos y eficaces donde las claves pueden ser de 56 a 128 bits es imposible reventarla a la fuerza bruta.
Los algoritmos que más usados por este tipo de clasificación son: Data Encryption Standard (DES) es un algoritmo de cifrado, es decir, un metodo para cifrar información, escogido como FIPS en los Estados Unidos en 1976, y cuyo uso se ha propagado ampliamente por todo el mundo. El algoritmo fue controvertido al principio, con algunos elementos de diseño clasificados, una longitud de clave relativamente corta, y las continuas sospechas sobre la existencia de alguna puerta trasera para la National Security Agency (NSA). Posteriormente DES fue sometido a un intenso análisis académico y motivo el concepto moderno del cifrado por bloques y su criptoanálisis. Hoy en día, DES se considera inseguro para muchas aplicaciones. Esto se debe principalmente a que el tamaño de clave de 56 bits es corto; las claves de DES se han roto en menos de 24 horas. Existen también resultados analíticos que demuestran debilidades teóricas en su cifrado, aunque son inviables en la práctica. Se cree que el algoritmo es seguro en la práctica en su variante de Triple DES, aunque existan ataques teóricos. Desde hace algunos años, el algoritmo ha sido sustituido por el nuevo AES (Advanced Encryption Standard); En algunas ocasiones, DES es denominado también DEA (Data Encryption Algorithm). International Data Encryption Algorithm o IDEA (del ingles, Algoritmo Internacional de Cifrado de Datos) es un cifrado por bloques diseñado por Xuejia Lai (?) y James L. Massey de la Escuela Politécnica Federal de Zarich y descrito por primera vez en 1991. Fue un algoritmo propuesto como reemplazo del DES (Data Encryption Standard) . IDEA fue una revisión menor de PES (Proposed Encryption Standard, del ingles Estandar de Cifrado Propuesto), un algoritmo de cifrado anterior. Originalmente IDEA habla sido llamado IPES (Improved PES, del ingles PES Mejorado). IDEA fue diseñado en contrato con la Fundación Hazle, la cual se hizo parte de Ascom-Tech AG. IDEA es libre para uso no comercial, aunque fue patentado y sus patentes se vencerán en 2010 y 2011. El nombre "IDEA" es una marca registrada y esta licenciado mundialmente por MediaCrypt. IDEA opera con bloques de 64 bits usando una clave de 128 bits y consiste de ocho transformaciones idénticas (cada una llamada un ronda) y una transformación de salida
(llamada media ronda). El proceso para cifrar y descifrar es similar. Gran parte de la seguridad de IDEA deriva del intercalado de operaciones de distintos grupos, adición y multiplicación modular y O-exclusivo (XOR) bit a bit? que son algebraicamente "incompatibles" en cierta forma. Triple - Data Encryption Standard Dada la capacidad de cómputo actual y la relativa facilidad que supone romper el algoritmo DES, se desarrolló un sistema de triple aplicación al algoritmo DES, con tres claves diferentes para aplicar sucesivamente (en realidad se usa una clave externa dividida para aplicación intermedia dado que DES matemáticamente no es grupo, y su aplicación repetida ocasionaría un aumento efectivo de tamaño). Mediante este sistema se obtiene un cifrado de 192 bits (168 efectivos y 24 de paridad) con tres claves que resulta mucho más complejo de vulnerar. RC6 Rivest Cypher 6 fue uno de los finalistas del concurso AES del NIST. Fue ideado por el matemático Ron Rivest (autor de muchos y famosos algoritmos criptográficos) en 1998. El algoritmo es propiedad de la empresa RSA Security. RC6 supone la evolución de los algoritmos RC, RC2, RC4 y RC5. Concretamente, se trata de una adaptación del sistema RC5 para cumplir los requisitos del concurso AES. Se trata de un algoritmo simétrico de cifrado de flujo con claves de longitud variable entre 40 y 2040 bits, siendo por defecto 128. Su algoritmo se basa en una mezcla de sumas, restas, multiplicaciones, XOR y rotaciones, y se puede encontrar una amplia descripción. -
Criptografía asimétrica (clave pública y privada): Se basa en el uso de dos claves diferentes, claves que poseen una propiedad fundamental: una clave puede descifrar lo que la otra ha encriptado. Generalmente una de las claves de la pareja, denominada clave privada (Ks): es usada por el propietario para cifrar los mensajes, mientras que la otra, llamada clave pública (kp): es usada para descifrar el mensaje cifrado. Las claves pública y privada tienen características matemáticas especiales (factorización modular) , de tal forma que se crean siempre a la vez y el usuario no las elige sino que las calcula el algoritmo que se está usando, por parejas, estando cada una de ellas ligada intrínsecamente a la otra, de tal forma que si dos llaves públicas son diferentes, entonces sus llaves privadas asociadas también lo son, y viceversa. Los algoritmos asimétricos están basados en funciones matemáticas fáciles de resolver en un sentido, pero muy complicadas de realizar en sentido inverso, salvo que se conozca la clave privada, como la potencia y el logaritmo. Ambas claves, pública y privada, están relacionadas matemáticamente, pero esta relación debe ser lo suficientemente compleja como para que resulte muy difícil obtener una a partir de la otra. Este es el motivo por el que normalmente estas claves no las elige el usuario, si no que lo hace un algoritmo específico para ello, y suelen ser de gran longitud. Mientras que la clave privada debe mantenerla en secreto su propietario, ya que es la base de la seguridad del sistema, la clave pública es difundida ampliamente por Internet, para que esté al alcance del mayor número posible de personas, existiendo servidores que guardan, administran y difunden dichas claves.
Los algoritmos que este tipo de cifrado usa entre los más comunes están:
RSA (Sistema Criptográfico De Llave Publica) El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrado de bloques, que utiliza una clave pública, la cual se distribuye (en forma autenticada preferentemente e), y otra privada, la cual es guardada en secreto por su propietario. Una clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje digital, como un archivo binario o como una cadena de bits o bytes. Cuando se envía un mensaje, el emisor busca la clave pública de cifrado del receptor y una vez que dicho mensaje llega al receptor, ?este se ocupa de descifrarlo usando su clave oculta. Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para conformar la clave de descifrado. Emplea expresiones exponenciales en aritmética modular. La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales. La computación cuántica podrá proveer una solución a este problema de factorización. DSA Es un estándar del Gobierno Federal de los Estados Unidos de América o FIPS para firmas digitales. Fue un Algoritmo propuesto por el Instituto Nacional de Normas y Tecnóloga de los Estados Unidos para su uso en su Estándar de Firma Digital (DSS), especificado en el FIPS 186. DSA se hizo público el 30 de agosto de 1991, este algoritmo como su nombre lo indica, sirve para firmar y para cifrar información. Una desventaja de este algoritmo es que requiere mucho ms tiempo de cómputo que RSA. DH/DSS Diffie - Hellman / Digital Standard Signature La historia del nacimiento del algoritmo DH/DSS es bastante compleja. En 1976, Dres. W. Diffie y M.E. Hellman publicaron el documento [DIH76] en el que nació el sistema Diffie-Hellman como algoritmo de intercambio de claves. En aquella época, Diffie y Hellman creían que su algoritmo no podía constituir un criptosistema asimétrico completo para cifrado de clave pública. Tuvieron que pasar muchos años hasta que en 1985 ElGamal publicara [ELG85] y demostrara que se podía desarrollar un criptosistema asimétrico completo a partir del sistema Diffie-Hellman, lo que supuso el nacimiento del algoritmo DH. Pero aún había un problema, pues el sistema de firma ideado por ElGamal ocasionaba que la firma de un mensaje ocupara el doble que el mensaje original, lo cual representaba un problema grave de eficiencia. Este problema fue corregido en 1991, cuando el NIST propuso un sistema de firma nuevo para el sistema Diffie-Hellman, que denominaron DSS (Digital Standard Signature). Así, en 1991 nació el algoritmo completo que hoy conocemos como DH/DSS. DH/DSS es un algoritmo de cifrado asimétrico basado en el problema del logaritmo discreto del grupo multiplicativo de un campo finito. Aunque matemáticamente es mucho más complejo con diferencia que el problema de la factorización entera, se ha demostrado que ambos son computacionalmente de una complejidad muy similar. Hay que decir, eso sí, que DH/DSS y los demás algoritmos basados en el problema del logaritmo discreto no tiene sobre su cabeza la espada de Damocles que supone el algoritmo de Shor para los criptosistemas basados en el problema de la factorización entera. -
Sistemas de cifrado híbridos: Es el sistema de cifrado que usa tanto los sistemas de clave simétrica como el de clave asimétrica. Funciona mediante el cifrado de clave pública para compartir una clave para el cifrado simétrico. En cada mensaje, la clave simétrica utilizada es diferente por lo que si un atacante pudiera descubrir la clave simétrica, solo le valdría para ese mensaje y no para los restantes. Tanto PGP como GnuPG usan sistemas de cifrado híbridos. La clave simétrica es cifrada con la clave pública, y el mensaje saliente es cifrado con la clave simétrica, todo combinado automáticamente en un sólo paquete. El destinatario usa su clave privada para descifrar la clave simétrica y acto seguido usa la clave simétrica para descifrar el mensaje.
Por: Yuli Fernanda Orozco Pineda; http://Networkmax.blogspot.com;
[email protected]