Criptografia Clasica Vs Moderna PDF
November 13, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Criptografia Clasica Vs Moderna PDF...
Description
CAPITULO 1 INTRODUCCIÓN A LA CRIPTOGRAFÍA Cuando se realiza cualquier tipo de transacción comercial en Internet, como por ejemplo, comprar una entrada para un espectáculo, revisar el estado de cuenta en el banco, ingresar la clave clave de correo electrónico en hotmail o yahoo, etc etc.,., debemos esta estarr seguros de que éstas acciones se realizan sobre una página segura del tipo http s ( s secure), con el fin de evitar que curiosos puedan leer o peor aún, modificar información de nuestro interés. Al final de éste capitulo conoceremos que es la criptografía, así como las diferentes técnicas de protección (cifrado) de la información, y las aplicaciones de la criptografía.
1.1 DEFINICIÓN DE CRIPTOGRAFÍA La palabra Criptografía proviene del griego "kryptos" que significa oculto, y " graphia", que significa escritura, y su definición según el diccionario es "el arte de escribir con clave secreta o de un modo enigmático". Esta definición puede ser muy interesante y llamativa, pero resulta muy poco ajustada para los tiempos actuales. Una definición más técnica de Criptografía sería la siguiente: Rama inicial de las Matemáticas y en la actualidad también de la Informática y la Telemática, que hace uso de métodos y técnicas con el objeto principal de cifrar, y por tanto proteger, un mensaje o archivo por medio de un algoritmo, usando una o más claves. c laves. Esto dará lugarque a diferentes tipos de sistemas de cifra, denominados criptosistemas, nos permiten asegurar al menos tres de los cuatro aspectos básicos de la seguridad informática: la confidencialidad o secreto del mensaje, la integridad i ntegridad del mensaje y autenticidad del emisor, así como el no repudio mutuo entre emisor (cliente) y receptor (servidor).1
1.2 CRIPTOSISTEMAS Un criptosistema es una agrupación de:
-
Un conjunto de mensajes sin cifrar (M).
-
Un conjunto de mensajes cifrados (C).
1
© RAMIO, Jorge. Libro Electrónico de Seguridad Informática y Criptografía Versión 4.1 , 6ta. Edición,
Madrid-España 2006, p.39.
1
-
Un conjunto de claves (k).
-
Un conjunto de transformaciones de cifrado (E k ).
-
Un conjunto de transformaciones de descifrado (Dk ).
Cualquier criptosistema debe cumplir la condición: Dk (E kk (m)) = m. Es decir, si aplicamos la transformación de descifrado al mensaje cifrado, usando la clave adecuada (k), obtenemos de nuevo el mensaje en claro m.
1.3 SISTEMAS DE CIFRA CLÁSICOS Los sistemas de cifra clásica están asociados a las fascinantes máquinas de cifrar, que adquirieron gran fama tras su uso en la Gran Guerra y en la Segunda Guerra Mundial, y más aún, remontándonos a siglos pasados, con los métodos, técnicas y artilugios utilizados por emperadores, gobernantes, militares y en general diversas civilizaciones para mantener sus secretos a buen recaudo.
1.3.1 Herramientas de la Criptografía Clásica La criptografía clásica hace uso de dos técnicas básicas orientadas a caracteres, y que siglos más tarde Shannon usaría como herramientas para fortalecer la cifra, estas técnicas son: Técnicas de sustitución: Cada letra o grupo de letra se reemplaza por otra letra o
grupo de letras para disfrazarla. Esta técnica conserva el orden de los símbolos del texto original. Técnicas de transposición o permutación: En contraparte a la técnica de
sustitución, en ésta se reordenan las letras mediante un algoritmo específico, pero no se disfrazan.
1.3.2 Clasificación de los Criptosistemas Clásicos La figura 1.1, muestra una clasificación de los sistemas de cifra clásicos, en donde se incluyen algunos cifradores típicos a modo de ejemplo. Estos sistemas de cifra se clasificarán, básicamente, en aquellos que utilizan técnicas de sustitución y aquellos que utilizan técnicas de transposición sobre los caracteres de un texto en claro, ambas técnicas propuestas por Shannon para lograr la confusión y difusión, respectivamente. 2
MÉTODOS DE CIFRA CLÁSICOS
TRANSPOSICIÓN
SUSTITUCIÓN
GRUPOS Escítala
MONOALFABÉTICA
POLIALFABÉTICA
SERIES MONOGRÁMICA
POLIGRÁMACA
COLUMNAS/FILA
ALFABETO ESTÁNDAR Cifrador de César
DIGRÁMICA Cifrado de Playfair
N-GRÁMICA Cifrado de Hill
ALFABETO MIXTO NO PERIÓDICA Cifrador de Vernam
PERIÓDICA TRANSFORMACIÓN Cifrador sustitución Afín
ALFABETOS PROGRESIVOS Máquina Enigma
ALFABETOS LINEALES
ALFABETO ESTÁNDAR Cifrados de Vigenère
ALFABETO MIXTO
Figura 1.1. Clasificación de los métodos clásicos de cifra y algunos ejemplos
1.3.3 Hitos históricos en la Criptografía La criptografía clásica abarca desde tiempos inmemoriales hasta la mitad del siglo XX. El punto de inflexión en ésta clasificación la marcan tres hechos relevantes: En el año 1948 se publica el estudio de Claude Shannon sobre la Teoría
C I F R A D O
D I G I T A L
de la Información. En 1974 aparece el estándar de cifra DES. Y en el año 1976 se publica el estudio realizado por Whitfield Diffie y Martin Hellman sobre
la aplicación de funciones matemáticas de un
solo sentido a un modelo de cifra, denominado cifrado con clave pública.
1.3.4 Algunos Métodos de Cifrado Clásicos A continuación describiremos algunos métodos de cifrado de la clasificación de los criptosistemas clásicos.
3
1.3.4.1 La escítala Fue utilizada por los espartanos en el siglo V a.C., puede considerarse como el primer sistema de criptografía por transposición, que se caracteriza por ocultar el significado de un texto alterando el orden de los signos que lo conforman. El método de la escítala era extremadamente sencillo, el mensaje se escribía en una cinta y se enrollaba en un bastón que servía como clave; el mensaje solo podía leerse cuando se enrollaba la cinta en un bastón del mismo diámetro que poseía el destinatario lícito del mensaje. En la figura fi gura 1.2, se representa este método de cifr cifrado. ado.
Figura 1.2. Representación del método de la escítala
En la figura 1.2, la cinta llevará el mensaje M = ASI CIFRABAN CON LA ESCITALA; si bien en ella sólo podrá leerse el criptograma C = AACSNIICTCOAINLFLARAAEBS AACSNIICTCOAINLFL ARAAEBS .
1.3.4.2 El cifrador de Polybios En el siglo II a.C., encontramos el cifrador por sustitución de caracteres más antiguo que se conoce. Atribuido al historiador griego Polybios, el cifrador consistía en hacer corresponder a cada letra del alfabeto un par de letras que indicaban la fila y la columna en la cual aquella se encontraba, en un recuadro de 5x5 = 25 caracteres. En la figura 1.3, se muestra una tabla para cifrar de Polybios adaptada al inglés, con un alfabeto de cifrado A, B, C, D y E; aunque también se suele representar el alfabeto con los números 1, 2, 3, 4 y 5.
Figura 1.3. Tablas de cifrar de Polybios
Entonces en éste método, la letra A se cifrará como AA, y la H como BC, etc. Por ejemplo si tenemos el mensaje: M = QUE BUENA IDEA LA DEL GRIEGO. 4
El criptograma sería: C = DADEAE ABDEAECCAA BDADAEAA CAAA ADAECA BBDBBDAEBBCD.
Y usando el alfabeto numérico tenemos: C = 414515
1245153311 24141511 3111 141531 224224152234.
1.3.4.3 El cifrador del César En el siglo I a.C., aparece un cifrador básico llamado el cifrador del César en honor al emperador Julio César y en el cual ya se aplicaba una transformación del texto en claro del tipo monoalfabética. El cifrador estaba basado en la sustitución de una letra por la situada tres puestos después después en el alfa alfabeto beto latino. En la figura 1.4, se muestra el alfabeto y por tanto la transformación que utiliza este cifrador por sustitución de caracteres para el alfabeto castellano de 27 letras. Mi 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
Ci
E
F
H
I
J
K
L
M N
Ñ
O
P
R
S
T
U
V
W X
Y
Z
B
C
D
G
Q
A
Figura 1.4. Alfabeto del cifrador del César para el lenguaje castellano
Entonces tenemos: Cifrado: C i = M i + 3 mod 27
Descifrado: M i = C i - 3 mod 27 .
Por ejemplo si tenemos el mensaje: M1 = AL CÉSAR LO QUE ES DEL CÉSAR. El criptograma sería: C1 = DÑ FHVDU ÑR TXH HV GHÑ FHVDU.
1.3.4.4 Cifradores por sustitución afín En los cifradores genéricos, si se cumple que la constante de decimación a es mayor que 1 y la constante de desplazamiento b distinto de cero, hablamos de cifra por transformación afín. Las ecuaciones serán en este caso: C i a M i b mod n
M i a 1 C i b mod n
La ecuación de descifrado también puede ser escrita como: 1
M i a
C i n b mod n
Por ejemplo encontremos el alfabeto de cifrado monoalfabético para la siguiente relación de transformación
C i 4 M i 5 mod 27 .
Solución: 0
1 2
3
4
5 6
7 8
Mi A B C D E F G H I
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 J
K
L
M
N
Ñ
O
P
Q
R
S
T
U
V
W X
Y
Z
Ci F H N Q U Y C G K Ñ R
V
Z
D
H
L
O
S
W
A
E
I
M
P
X
B
5
T
C 0 4 A 5 mod 27 4 0 5 mod 27 5 F
C 1 4 B 5 mod 27 4 1 5 mod 27 9 J C 2 4 C 5 mod 27 4 2 5 mod 27 13 N , etc.
1.3.4.5 El cifrador de Vigenère El cifrador polialfabético más conocido es el sistema de Vigenère, así denominado en honor al criptólogo francés Blaise de Vigenère (1523-1596). El sistema utiliza el mismo método que el cifrador del César, esto es una sustitución monográmica por desplazamiento de k caracteres en el texto, con la diferencia de que dicho desplazamiento viene indicado por el valor numérico asociado a uno de los caracteres de una clave que se escribe cíclicamente bajo el mensaje como de indica a continuación: TEXTO: E N U N L U G A R D E L A M A N C H A D E C U Y O N O M B ... CLAVE: C E R V A N T E S C E R V A N T E S C E R V A N T E S C E ...
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
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
Entonces, en éste caso la clave CERVANTES tendrá tendrá una periodicidad de 9, pues son los caracteres que forman ésta palabra. Los caracteres cifrados serán entonces de la siguiente manera: E + C = (4 + 2) mod 27 = 6 = G
U + N = (21 + 13) = H
N + E = (13 + 4) mod mod 27 = 17 = Q
G + T = (6 + 20) = 26 = Z
U + R = (21 + 18) mod 27 = 12 = M
A + E = (0 + 4) = 4 = E
N + V = (13 + 22) mod 27 = 8 = I
R + S = (18 + 19) = 10 = K
L + A = (11 + 0) mod 27 = 11 = L
D + C = (3 + 2) = 5 = F, etc.
Entonces el resultado final será el criptograma: C = GQMIL HZEKF ICVMN GGZCH VXULI .
1.3.4.6 Cifrador de Playfair El cifrador de Playfair en realidad fue inventado por Charles Wheatstone. No obstante, se le atribuye a su amigo el científico Lyon Playfair quien lo presenta a las autoridades inglesas de la época. Este sistema consiste en separar el texto en claro en digramas y proceder a su cifra de acuerdo a una matriz alfabética de dimensiones 5x5 en la cual se encuentran representada representadass 25 de llas as 26 letras del alfabeto inglés.
6
Para que éste método de cifra presente un mayor nivel de seguridad, se incluirá al comienzo de dicha matriz una clave que se escribe a partir de la primera fila omitiendo las letras repetidas. A continuación de dicha clave, se distribuyen las restantes letras del alfabeto hasta completar toda la matriz. Este método de cifrado debe cumplir las siguientes condiciones: Si M1M2 están en la misma fila, C 1C2 son los dos caracteres de la derecha. Si M1M2 están en la misma columna, C1C2 son los dos caracteres de abajo. Si M1M2 están en filas y columnas distintas, C1 será la letra de la intersección
horizontal del M1 respecto al M2 y C2 será la letra de la intersección vertical del M1 respecto al M2. El conteo de los caracteres en la matriz es circular.
Por ejemplo si la clave es K = BEATLES, cifremos el mensaje M = WITH A LITTLE HELP FROM MY FRIENDS. La matriz será: B S
E C
A D
T F
L G
H
I/J
K
M
N
O
P
Q
R
U
V
W
X
Y
Z
Figura 1.5. Matriz alfabética de Playfair M = WI
TH AL IT TL EH EL PF RO MX MY FR IE ND SX
En M se rompe la doble M adicionando una X y se rellena la final con una X; entonces: C =
EP BM TB ME LB BI AB RC UP KY RT MY PC KG DV
1.3.4.7 Cifrador de Verman En 1917 Gilbert Vernam propone un cifrador por sustitución binaria con clave de un solo uso (one-time pad) basado en el código Baudot de 5 bits:
-
La operación de cifra es la función XOR.
-
Usa una secuencia cifrante binaria y aleatoria S que se obtiene a partir de una clave secreta K compartida por emisor y receptor.
-
El algoritmo de descifrado es igual al de cifrado por la involución de la función XOR.
-
La clave será tan larga o más que el mensaje y se usará una sola vez. 7
En la figura 1.6, se muestra un cifrador de Verman binario.
Figura 1.6. Esquema de un cifrador de Verman binario
Por ejemplo, usando el código de Baudot que se encuentra en la tabla 1.1, cifre el mensaje M = BYTES con con la clave K = VERNAM . Tabla 1.1. Código Baudot (cifrador de Vernam) Código Binario 00000 00001 00010 00011 00100 00101
Carácter Blanco E = A Espacio S
00110 00111 01000 01001 01010 01011 01100 01101 01110 01111
I U < D R J N F C K
Código Binario 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111
Carácter T Z L W H Y P Q O B G M X V
Fuente: © Jorge Ramió Aguirre. Libro Electrónico de Seguridad Informática y Criptografía Versión 4.1. Sexta edición de 1 de Marzo de 2006. Madrid (España). Capitulo 21.
Haciendo la suma OR exclusivo tenemos: B V = 11001 11110 = 00111 = U
E N = 00001 01100 = 01101 = F
Y E = 10101 00001 = 10100 = H T R = 10000 01010 = 11010 = G
S A = 00101 00011 = 00110 = I
Entonces, C = UHGFI
1.4 SISTEMAS DE CIFRA MODERNA La criptografía moderna utiliza las mismas ideas básicas de la criptografía clásica, la transposición y sustitución, pero su orientación es distinta. Tradicionalmente los criptógrafos han usado algoritmos sencillos y se han apoyado en claves muy largas para la seguridad. Hoy día es lo inverso: el objetivo es hacer el algoritmo de cifrado tan complicado y rebuscado que inclusive el criptoanalista obteniendo cantidades enormes de texto cifrado a su gusto, no será capaz de entender nada. 8
1.4.1 Clasificación de los Criptosistemas Modernos En la figura 1.7, se muestra la clasificación de los Criptosistemas Modernos. MÉTODOS DE CIFRA MODERNA
CIFRADO EN FLUJO
CIFRADO EN BLOQUE
A5; RC4 Telefonía móvil, Internet y WLAN. WLAN.
EXPONENCIACIÓN RSA; ElGamal Uso en intercambio de clave y en firma digital.
CLAVE PÚBLICA
CLAVE SECRETA
SUMA/PRODUCTO
Curvas Elípticas/Mochilas CE: intercambio clave y firma digital. Mochilas: protección de SW mediante dispositivo HW. HW.
DES; T-DES; CAST; IDEA; AES; RC5... RC5... Cifrado propio de la información en una sesión en Internet o en una red. También se usa en cifrado local.. local
Figura 1.7. Clasificación de los Criptosistemas Modernos. Fuente: © Jorge Ramió Aguirre. Libro Electrónico de Seguridad Informática y Criptografía Versión 4.1. Sexta edición de 1 de Marzo de 2006. Madrid (España). Capitulo 10.
1.4.2 Cifrado en flujo Los cifradores de flujo son algoritmos de cifrado que pueden realizar la encriptación incrementalmente,, convirtiendo el texto en claro en texto cifrado bit a bit. incrementalmente Esto se logra construyendo un generador de flujo de clave. Un flujo de clave es una secuencia de bits de tamaño arbitrario que puede emplearse para oscurecer los contenidos de un flujo de datos combinando el flujo de clave con el flujo de datos mediante la función XOR . Si el flujo de clave es seguro, el flujo de datos cifrados también lo será.
1.4.2.1 Algoritmos de cifrado en flujo fl ujo 1.4.2.1.1 RC4 Se caracteriza por utilizar la misma información de entrada que ha de cifrar para la generación de un número pseudoaleatorio que utilizará como clave, realizando un XOR entre la entrada y la clave. Esto significa que tanto el cifrado como el descifrado son operaciones idénticas. No se debe utilizar la misma clave más de una vez, ya que al utilizar un XOR como operación básica un atacante podría fácilmente descubrirla (XOR(XOR(X)) = X). La clave varía de 8 a 2048 bits. 9
1.4.2.1.2 RC4 con MAC Es una extensión del RC4 que busca asegurar la integridad en los datos mediante el uso de una función MAC (es una función que asegura la integridad de los datos, a partir del mensaje genera una secuencia de bit bitss de tal t al forma que si es modificado, el receptor puede saberlo).
1.4.3 Cifrado en bloque Un cifrador en bloque procesa una entrada de texto nativo en bloques de tamaño fijo, por lo general de 8 ó 16 bytes (64 ó 128 bits), y produce un bloque de texto cifrado de igual tamaño para cada bloque de texto nativo.
1.4.3.1 Cifrado Simétrico o de clave secreta También llamado cifrado convencional, este tipo de cifrado era el único que se usaba, antes de la aparición del cifrado de clave pública en los 70. El cifrado simétrico ha sido usado para las comunicaciones secretas por incontables individuos y grupos como, diplomáticos, militares y comerciantes. Es el cifrado que más se usa actualmente en el mundo. Un sistema de cifrado simétrico tiene cinco componentes, como se muestra en la figura 1.8.
Figura 1.8. Modelo simplificado de cifrado simétrico
1. Texto nativo («plaintext»): Es el mensaje original o datos que actúan como entrada al algoritmo.
2. Algoritmo de cifrado: Lleva a cabo varias sustituciones y transformaciones en el texto nativo.
10
3. Clave secreta: Es también una entrada al algoritmo de cifrado. Las sustituciones y transformaciones exactas realizadas por el algoritmo dependen de la clave.
4. Texto cifrado: Es el mensaje aleatorio que se produce en la salida. Depende del texto nativo y de la clave secreta.
5. Algoritmo de descifrado: Es esencialmente el algoritmo de cifrado ejecutado al revés. Toma como entrada el texto cifrado y la clave secreta y produce el texto nativo original. Existen dos requisitos para la utilización util ización segura del cifrado simétrico: Se necesita un algoritmo de cifrado robusto. Este algoritmo debería permitir que
el oponente sea incapaz de descifrar el texto o descubrir la clave incluso si él posee un determinado número de textos cifrados junto a los textos nativos que producen los textos textos cifrados. El emisor y el receptor deben haber obtenido copias de la clave de una forma
segura y deben mantenerla en secreto.
1.4.3.1.1 Tipos de ataques al esquema de cifrado simétrico Criptoanálisis: Este tipo de ataque explota las características del algoritmo para
intentar deducir deducir el texto nativo esp específico ecífico o deducir la clave
que se está
utilizando. Si el ataque tiene éxito en deducir la clave, el efecto es catastrófico: todos los mensajes antiguos y futuros cifrados con esa clave están comprendidos. Fuerza bruta : Es intentar cada clave posible en un trozo de texto cifrado hasta
que se obtenga una traducción inteligible del texto nativo.
1.4.3.1.2 Algoritmos de cifrado simétrico Los dos algoritmos convencionales más importantes, de los cifradores simétricos son DES y el IDEA.
1.4.3.1.2.1 El estándar de cifrado de datos (DES, ( DES, Data Encryption Standard) Es el esquema de cifrado más utilizado util izado mundialmente, adoptado en 1977 por el Buró Nacional de Estándares, ahora el Instituto nacional de Estándares y Tecnología (NIST, Nacional Institute of Standars and Technology).
11
El esquema global de cifrado DES se muestra en la figura 1.9. El texto nativo debe tener una longitud de 64 bits y la clave 56 bits; los textos más grandes se procesan en bloques de 64 64 bits. Clave de 56 bits Texto nativo de 64 bits .……………
.……………… Preferencia de permutación 1
Permutación inicial
Iteración 1
Iteración 2
Iteración 16
K 1
Preferencia de permutación 2
Desplazamiento circular a la izquierda
K 2
Preferencia de permutación 2
Desplazamiento circular a la izquierda
K 1166
Preferencia de permutación 2
Desplazamiento circular a la izquierda
Intercambio de 32 bits
Permutación inicial inversa .…………… Texto cifrado de 64
Figura 1.9. Esquema general de algoritmo de cifrado DES
El lado izquierdo de la figura 1.9, muestra que el procesamiento del texto nativo se realiza en tres fases. Primero, los 64 bits del texto nativo se transforman por medio de una permutación inicial (IP). A esto le sigue una fase que consta de 16 iteraciones de la misma función. La salida de la última iteración (la 16) consta de 64 bits que son función del texto nativo y la clave. La mitad izquierda y la derecha se intercambian para producir la salida previa. Finalmente la salida previa se permuta con IP-1, que es la inversa de la función de permutación inicial, para producir los 64 bits de texto cifrado.
12
La parte derecha de la figura 1.9, muestra la forma en la que se utilizan los 56 bits de clave. Inicialmente la clave se transforma por una función de permutación. Después para cada una de las 16 iteraciones, se produce una subclave (K i) por medio de un desplazamiento circular y una permutación. La función de permutación es la misma para cada iteración, pero se produce una subclave subclave diferente debido al desplazamien desplazamiento to repetido de los bits de la clave.
1.4.3.1.2.2 Triple DES (DES3) Con el aumento en el poder de calculo en las computadoras, DES dejó de ser un algoritmo seguro. Entonces se creó el algoritmo Triple DES, el cual hace triple cifrado del DES, fue creado por IBM en 1978. El triple cifrado usa dos claves de 56 bits, K 1 y K 2. Primero se realiza un cifrado con K 1, luego un descifrado con K 2 y finalmente un nuevo cifrado con K 1. Para cualquier texto en claro M , el criptograma C , se detalla a continuación:
C = = E K1( D D K2( E E K1( M M ))) )))
Donde: E K1 → Es la transformación de cifrado, y D K2 → Es la
transformación transformación de descifrado.
1.4.3.1.2.3 Algoritmo internacional de cifrado de datos IDEA (International Data Encryption Algorithm) Fue diseñado por dos investigadores en Suiza. Usa una clave de 128 bits, lo que lo hará inmune durante décadas a los ataques de fuerza bruta y al criptoanálisis diferencial. La estructura básica del algoritmo se semeja al DES como se muestra en la figura 1.10 (a). Dada la extensa alteración de bits, basta con ocho iteraciones. it eraciones. Los detalles de una iteración se muestran en la figura 1.10 (b). Se usan tres operaciones, todas sobre números sin signo de 16 bits. Estas son OR EXCLUSIVO, suma módulo 216 y multiplicación 216 + 1. Las operaciones tienen la propiedad de
13
que ningunos dos pares obedecen al ley asociativa ni la ley distributiva, dificultando el criptoanálisis. La clave de 128 bits se utiliza para generar 56 subclaves de 16 bits cada una, 6 por cada una de 8 interaciones y 4 para la transformación final. El descifrado usa el mismo algoritmo de cifrado, solo que con subclaves diferentes. 64 bits de texto normal
Iteración 1
Cuatro bloques de entrada de 16 bits
K 1
X
+
K 2
Iteración 2
. . .
K 5
Iteración 7
#
Iteración 8
Transformación
+
K 3 #
#
X
+
+
X
#
K 4
X
K 6 #
#
Cuatro bloques de salida de 16 bits +
Suma módulo 216 de 16 bits
X
Multiplicación módulo 216 + 1 de 16 bits
#
OR EXCLUSIVO de 16 bits
64 bits de texto cifrado
(a)
(b) Figura 1.10. (a) IDEA. (b) Detalle de una iteración
1.4.3.2 Cifrado Asimétrico o de clave pública El cifrado de clave pública, que fue puesto a consideración por primera vez por Diffie y Hellman en 1976, es el primer avance revolucionario en el cifrado en literalmente miles de años. El algoritmo de clave pública se basa en funciones matemáticas en lugar de sustituciones y permutaciones. Lo más importante es que la criptografía de clave pública es asimétrica y supone el uso de dos claves independientes. Utilizar dos claves tiene consecuencias profundas en las áreas de la privacidad, la distribución distribución de claves y la autentificación. El esquema de cifrado de clave pública tiene cinco componentes, como se muestra en la figura 1.11.
14
Figura 1.11. Cifrado de clave pública
1. Texto nativo: Es el mensaje legible o datos que se pasan al algoritmo como entrada.
2. Algoritmo de cifrado: Lleva a cabo varias operaciones sobre el texto nativo. 3. Clave pública y privada: Es el par de claves que se ha seleccionado para que una se utilice para el cifrado y la otra para el descifrado. Las operaciones exactas que realiza el algoritmo dependen de la clave pública o privada que se suministre como entrada.
4. Texto cifrado: Es el mensaje mezclado producido como salida. Depende del texto nativo y la clave.
15
5. Algoritmo de descifrado: Acepta el texto cifrado y la otra clave y produce el texto nativo original. Como el nombre sugiere, la clave pública del par se hace pública para que la utilice el resto de la gente, mientras que la clave privada solo la conoce el dueño. Los algoritmos de cifrado de clave pública tienen las siguientes características importantes: computacionalmente ente determinar la clave de descifrado dado No es posible computacionalm solamente el algoritmo y la llave de cifrado (clave pública). Para la mayoría de los esquemas de clave pública, las dos claves utilizadas
pueden intercambiarse, intercambiarse, es decir si una se usa para el cifrado, la otra se usa para el descifrado y viceversa. Los pasos esenciales son los siguientes:
1. Cada usuario genera dos claves que se van a utilizar para el cifrado y el descifrado de los mensajes. 2. Cada usuario publica una de las l as dos claves situándola en un fichero público. Ésta es la clave pública. La clave compañera se mantiene privada.
3. Si Juan desea enviar un mensaje privado a Alicia, él cifra el mensaje usando la clave pública de Alicia.
4. Cuando Alicia recibe el mensaje, lo descifra utilizando la clave privada. Ningún otro destino puede descifrar el mensaje debido a que solo Alicia conoce la clave privada de Alicia.
1.4.3.2.1 Firmas Digitales La validación de identificación de muchos documentos legales, financieros y de otros tipos, se determina por la presencia o ausencia de una firma manuscrita autorizada. Por tanto es necesario que los sistemas computarizados reemplacen el transporte físico de papel y tinta. El problema para inventar un reemplazo para las firmas manuscritas es difícil. Básicamente lo que se desea es que:
1. El receptor pueda verificar la identidad del transmisor. 2. El transmisor no pueda repudiar después el contenido del mensaje. 3. El receptor no haya podido generar el mensaje por si mismo. 16
1.4.3.2.2 Algoritmos de cifrado asimétrico 1.4.3.2.2.1 El algoritmo de cifrado asimétrico RSA Fue desarrollado en 1977 por Ron Rivest, Adi Shamir y Len Adleman en el MIT y publicado por primera vez en 1978. Desde entonces el RSA ha sido considerado como la única técnica mundialmente aceptada. RSA es un cifrador de bloque en el que el texto nativo y el texto cifrado son enteros entre 0 y n-1 para algún n. Para un texto nativo M y y un bloque cifrado C , el cifrado y el descifrado son de la siguiente forma: C = M e mod n
d
e d
M = C mod n = ( M M )
mod n = M ed mod n
El emisor y el receptor deben conocer el valor de n. El emisor conoce el valor de e y el receptor el valor de d . La clave pública esta dada por KU = [ e, n] y la clave privada por KR = [d, n]. El algoritmo debe cumplir los siguientes requisitos, para que sea satisfactorio:
1. Es posible encontrar valores de e, d, n tal que M ed = M mod n para todo M < n. para todos los valores de M < n. 2. Es relativamente fácil calcular M e y C d para
3. Es imposible determinar d dado e y n. Los primeros requisitos son fáciles de satisfacer. El tercer requisito se puede satisfacer para un valor grande de e y n. La figura 1.12, resume el algoritmo RSA. Se empieza por seleccionar los números primos, p y q y calculando su producto n, que es el módulo para el cifrado y el descifrado. Luego necesitamos la cantidad
(n) que se conoce como totalizador
Φ
(totient ) de Euler de n, y que es el número de enteros positivos menores que n y relativamente primo a n. Entonces, se selecciona el entero e, de modo que el máximo común divisor de e y Φ(n) debe ser 1. Finalmente, se calcula d como como la inversa del multiplicador de e, módulo Φ(n).
17
Generación de clave Seleccionar p, q
p y q ambos primos
Calcular n = p x q Calcular Φ(n) = ( pp - 1) (q - 1) Seleccionar entero e
gcd(Φ(n), e) = 1; 1 < e < Φ(n)
Calcular d
d = e-1 mod Φ(n)
Clave pública
KU = {e, n}
Clave rivada
KR = d , n
Cifrado Texto nativo:
M < < n
Texto cifrado
C =
e
mod n
Descifrado Texto nativo:
C
= C d mod n
Texto cifrado
Figura 1.12. Algoritmo RSA
Suponga que un usuario A ha publicado su clave pública y que el usuario B quiere enviar un mensaje M a A. Para ello, B calcula C = M e mod n y transmite C . Cuando se recibe el mensaje cifrado, A lo descifra calculando M = C d mod n. En la figura 1.13, se muestra un ejemplo, las claves se generan como sigue:
1. Seleccionar dos números primos, p = 7 y q = 17. 2. Calcular n = pq = 7 x 17 = 119. p – 1) (q - 1) = 96. 3. Calcular Φ(n) = ( p
4. Seleccionar e tal que e es relativamente primo a Φ(n) = 96 y es menor a Φ(n); en este caso e = 5. 5. Determinar d tal tal que de = 1 mod 96 y d < 96. El valor correcto es d = 77, ya que 77 x 5 = 385 = 4 x 96 + 1. Las claves resultantes son la clave pública KU = {5,119} y la clave privada KR = {77,119}. El texto nativo de entrada es M = 19. En el cifrado 19 se eleva a la quinta potencia, produciendo 2.476.009. Dividiendo por 119 se obtiene el resto de 66. Por lo tanto 195 ≡ 66 mod 119, y el texto cifrado es 66. En el descifrado se determina que 6677 ≡ 19 mod 119.
18
Descifrado
Cifrado Texto nativo 19
5 19
=
2.476.099 _____ 119
= 20.807
con un resto de 66
Texto cifrado 66
KU = 5, 199
77 66
=
1,27x10 140 _____ 119
= 1,06x10138
con un resto de 66
KU = 77, 119
Texto nativo 19
Figura 1.13. Ejemplo del algoritmo RSA
1.4.3.2.2.2 Otros algoritmos de clave pública o de cifrado asimétrico Aunque RSA se usa ampliamente, de ninguna manera es el único algoritmo de clave pública conocido. El primero fue el de la mochila (Merkle y Hellman, 1978). La idea aquí es que alguien es dueño de una gran cantidad de objetos, todos con pesos diferentes. El dueño cifra el mensaje seleccionando secretamente un subgrupo de objetos y colocándolos en la mochila. El peso total de los objetos se hace público, así como una lista de todos los objetos posibles. La lista de los objetos que se metieron en al mochila se mantiene en secreto. Pero el algoritmo mochila no se considera seguro y pocas veces se usa. Otros esquemas de clave pública se basan en la dificultad de calcular logaritmos discretos (Rabin, 1979). El Gamal (1985) y Schnorr (1991) han inventado algoritmos basados en estos principios. Existen algunos otros esquemas, como los basados en curvas elípticas (Menezes y Vanstone, 1993), pero las tres categorías principales son las basadas en la dificultad para factorizar números grandes, calcular logaritmos discretos y determinar el contenido de una mochila a partir de su peso.
1.4.4 Funciones de Resumen o Hash Es una función que proporciona un pequeño conjunto de bits a partir del mensaje, mucho menor que éste, y que es casi exclusivo (es muy difícil encontrar otro mensaje para el que la función función resumen dé el mismo resultado resultado). ).
19
1.4.4.1 Algoritmos Generadores de Resúmenes 1.4.4.1.1 Algoritmo MD5 MD5 es uno de los algoritmos de resumen criptográficos diseñados por el profesor Massachusetts Institute of Technology, Instituto Tecnológico Ronald Rivest del MIT ( Massachusetts
de Masachusets). Cuando un análisis indicó que el algoritmo MD4 era inseguro, se decidió a programar el MD5 para sustituirlo en 1991. Las debilidades en MD4 fueron descubiertas por Hans Dobbertin. Algoritmo básico de Message Digest Digest 5 a)
Un mensaje M se convierte en un bloque múltiplo de 512 bits, añadiendo bits si es necesario al final del mismo.
b) Con los 128 bits de cuatro vectores iniciales ABCD de 32 bits cada uno y el primer bloque del mensaje de 512 bits, se realizan diversas operaciones lógicas entre ambos bloques. c) La salida de esta operación (128 bits) se convierte en el nuevo conjunto de 4 vectores A’B’C’D’ y se realiza la misma función con el segundo bloque de 512 bits del mensaje, y así hasta el último bloque del mensaje. Al terminar, el algoritmo entrega un resumen que corresponde a los últimos 128 bits de estas operaciones. 2
1.4.4.1.2 El algoritmo SHA-1 El algoritmo SHA-1 fue desarrollado por la NSA (Agencia Nacional de Seguridad de USA). Produce firmas de 160 bits, a partir de bloques de 512 bits del mensaje original. El algoritmo es similar a MD5, y se inicializa igual que éste, añadiendo al final del mensaje un uno seguido de tantos ceros como sea necesario hasta completar 448 bits en el último bloque, para luego yuxtaponer la longitud en bytes del propio mensaje. A diferencia de MD5, SHA-1 emplea cinco registros de 32 bits en lugar de cuatro.
2
© RAMIO, Jorge. Libro Electrónico de Seguridad Informática y Criptografía Versión 4.1 , 6ta. Edición, Madrid-España 2006, p.718.
20
View more...
Comments