Escolar Documentos
Profissional Documentos
Cultura Documentos
2.
3.
1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (I)
Es difcil evaluar cuando una secuencia binaria es suficientemente segura para su utilizacin en Criptografa. Pero al menos se consideran los siguientes criterios:
1- Periodo:
Es el nmero de elementos a partir del cual se repite la secuencia. El periodo ha de ser al menos tan largo como la longitud del texto a cifrar. En la prctica, periodo del orden de 1038.
1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (II)
2- Distribucin de ceros y unos: Distribuci
En una secuencia, diferentes muestras de determinada longitud han de estas uniformemente distribuidas a lo largo de toda ella.
01001101001110110010001101010001
Secuencia de 3 unos
0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0
No coincidencias
Coincidencias
1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (III)
Postulados de pseudoaleatoriedad de Golomb:
G1: En cada periodo de la secuencia, el n de unos tiene que ser aproximadamente igual al nmero de ceros; la diferencia entre uno y otro no debe exceder de la unidad. G2: En cada periodo de la secuencia considerada, la mitad de las rachas tienen longitud 1, una cuarta parte tiene longitud 2, una octava parte tienen longitud 3, etc. Adems, para cada longitud de las rachas, habr el mismo nmero de rachas de ceros que de unos. G3: La autocorrelacin AC(k) fuera de fase es constante para todo valor de k.
Una secuencia finita que verifique estos postulados tiene las propiedades de una secuencia binaria de distribucin uniforme.
G1: Unos y ceros aparecen con la misma probabilidad. G2: Los diversos n-gramas ocurren con la probabilidad correcta. G3: El cmputo de coincidencias entre un secuencia y su versin desplazada no aporta ninguna informacin sobre el periodo de la secuencia, a menos que sta se desplace sobre s misma un mltiplo de dicho periodo.
1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (IV)
3- Imprevisibilidad:
La secuencia cifrante ha de ser imprevisible. Dada una porcin de secuencia de cualquier longitud, un criptoanalista no podra predecir el siguiente dgito con una probabilidad de acierto superior a 1/2. 4- Facilidad de implementacin: implementaci La secuencia tiene que ser fcil de generar con medios electrnicos para poder ser aplicada en el cifrado/descifrado. Aspectos tcnicos: Velocidad de generacin, coste, tamao, consumo, etc.
3.
10
Bloque en claro
Transformacin Inicial
Expansin de Clave Ki
Funcin Criptogrfica
Transformacin Final
Bloque cifrado
11
2. Dificulta ataques por anlisis lineal o diferencial (con significado criptogrfico [RC5, IDEA]).
12
13
2. Criptosistemas con Clave Secreta 2.2. Cifrados tipo Producto: LUCIFER (I)
Un cifrado tipo producto, segn Shannon (1949), es el que utiliza la composicin de diferentes funciones de cifrado. El resultado de cifrar un mensaje M con t funciones Fi (1it) ser:
E(M)=Ft(...F3(F2(F1(M)))...)
Fi puede ser sustitucin o transposicin. Se trata de que el resultado final sea lo ms aleatorio posible. Esta idea de Feistel fue implantada por Notz y Smith en el dispositivo Lucifer, precursor
del DES.
Se trata simplemente de aplicar varias funciones de manera secuencial sobre los datos a cifrar. Para descifrar, se aplicaran las inversas en el orden contrario, y se conseguira obtener el mensaje original.
14
2. Criptosistemas con Clave Secreta 2.2. Cifrados tipo Producto: LUCIFER (II)
1. El bloque de datos a cifrar de 128 bits se divide a su entrada en dos partes, la alta y la baja 2. A cada uno de los 8 octetos de la parte alta se los somete a una transformacin bajo el control de un bit determinado de la clave 3. El resultado de dicha transformacin se suma Xor con los 8 restantes de la clave 4. Se realiza una transformacin a nivel de bit sobre los 64 bits
6. La parte baja y alta se intercambian, y se realizan hasta 16 vueltas de este tipo, dando lugar al bloque cifrado
5. Se suma el resultado con los octetos de la parte baja del bloque de entrada
15
2. Criptosistemas con Clave Secreta 2.3. DES Data Encryption Standard (I)
1973: el NBS (National Bureau of Standards, USA) organiz un concurso solicitando un algoritmo de cifrado para la proteccin de datos de ordenador en su transmisin y almacenaje. 1974: IBM presenta una propuesta inspirada en LUCIFER. Esta propuesta, modificada, dio lugar al DES. La aprobacin y modificacin de la propuesta se hizo con la supervisin de la NSA (National Security Agency). La NSA impuso la actual longitud de la clave (modesta y desaconsejable). El DES es un algoritmo de cifrado en bloque (64 bits, 8 car. ASCII). La longitud de la clave es de 56 bits (7.2*1016 claves diferentes). La norma exige que el DES se implemente mediante un circuito electrnico integrado. El chip DES es un producto estratgico USA (no se permite exportar sin permiso). 1981: el ANSI (American National Standards Institute, USA) adopt el DES como Data Encryption Algorithm (DEA). La norma no exige implementacin con chip y puede hacerse por software.
16
4. Se intercambian las partes derecha e izquierda. En la vuelta 16 se omite el intercambio. 5. Se remata el algoritmo con una permutacin final que es la inversa de la inicial.
17
18
19
20
10
2. Criptosistemas con Clave Secreta 2.3. DES (V): Transformaciones inicial y final
PI: Permutacin inicial fija: 58 50 42 34 26 18 10 62 54 46 38 30 22 14 57 49 41 33 25 17 PI-1: Permutacin final fija 40 38 36 34 8 48 16 56 24 64 32 39 6 46 14 54 22 62 30 37 4 44 12 52 20 60 28 35 2 42 10 50 18 58 26 33 7 47 15 55 23 63 31 5 45 13 53 21 61 29 3 43 11 51 19 59 27 1 41 9 49 17 57 25 9 61 53 45 37 29 21 13 2 60 52 44 36 28 20 12 6 64 56 48 40 32 24 16 1 59 51 43 35 27 19 11 5 63 55 47 39 31 23 15 4 8 3 7
PI-1(PI(j)) = j
Ej. El bit segundo del bloque, a travs de la permutacin PI es colocado en la posicin octava, y al final del algoritmo, el bit octavo cifrado es colocado, por PI-1 en la posicin segunda
21
Segunda manipulacin Se suma la expansin con la clave Los 48 bits se agrupan en 8 bloques de 6 bits, y cada una pasa a una caja que genera 4 bits diferentes ltima manipulacin Se realiza una permutacin de los 32 bits resultantes
22
11
2. Se combina la clave local de 48 bits con el vector anterior por suma mdulo 2 bit a bit. Se obtienen 48 bits que se agrupan en 8 m grupos de 6 bits.
23
24
12
Ej. La entrada 101010 en al S-Box nmero 8 seleccionara el 1100 (12), que es el elemento de cruce entre la fila 10 (2) y la columna 0101 (5).
25
f en una iteracin
26
13
2. Criptosistemas con Clave Secreta 2.3. DES (XI): Expansin de claves en el DES
La clave inicial se reduce de 64 a 56 bits (eliminando el primer bit de cada 8). Se reordenan los bits restantes (sin significado criptogrfico).
Se generan las 16 subclaves necesarias en las 16 vueltas. Cada subclave est compuesta por 48 bits. Durante el descifrado se toman en orden inverso al de cifrado.
27
2. Criptosistemas con Clave Secreta 2.3. DES (XII): Expansin de claves en el DES
Para obtener las claves, se dividen los 56 bits de la clave inicial en dos mitades de 28 bits. Las mitades se rotan (permutan circularmente) a la izquierda 1 o 2 bits dependiendo de la vuelta. Las vueltas 1, 2, 9 y 16 rotan 1 posicin, y las restantes rotan 2 posiciones. Despus de las rotaciones se vuelven a unir las mitades, teniendo de nuevo 16 grupos de 56 bits. Se seleccionan 48 bits de cada grupo para formar las 16 subclaves, en lo que se denomina permutacin con compresin.
28
14
29
2. Criptosistemas con Clave Secreta 2.3. DES (XIV): Seguridad del DES
No existe una prueba que garantice que un algoritmo de cifrado sea prcticamente indescifrable. Existen demostraciones de que hay algoritmos vulnerables. El DES es un excelente sistema de cifrado. Aunque el espacio de claves es reducido. Ataque al DES:
En 1998 se construy una mquina masivamente paralela (210000$). Prueba todas las claves del DES en 9 das; en 4.5 das encuentra una clave. El DES Cracker tiene 36864 unidades de prueba de claves, ensayando cada una 2.5*106 claves por segundo. En total ensaya 92.16*109 claves por segundo.
30
15
2. Criptosistemas con Clave Secreta 2.3. DES (XV): Implementacin de Cifrados en Bloque
Los sistemas de cifrado en bloque operan sobre conjuntos de informacin reducidos (bloques). Son adecuados para cifrar pequeos mensajes. Son inadecuados para cifrar grandes cantidades de datos.
2. Criptosistemas con Clave Secreta 2.3. DES (XVI): Implementacin de Cifrados en Bloque
Se han especificado cuatro modos de operar con DES: Libro Electrnico de Cdigos (Electronic Code Book - ECB). Encadenamiento de Bloques Cifrados (Cipher Block Chaining CBC). Realimentacin del Texto Cifrado (Cipher Feedback - CFB). Realimentacin de la salida (Output Feedback - OFB). ECB es la forma ms obvia de usar el cifrador de bloques: un bloque de texto plano se cifra y se obtiene un bloque de texto cifrado. Como el mismo bloque de texto plano siempre se cifra obteniendo el mismo bloque de texto cifrado, es tericamente posible crear un libro de cdigos de texto plano y su correspondiente texto cifrado. Sin embargo, si el bloque es de 64 bits, el nmero de posibles bloques de texto distinto es muy largo. En cualquier caso, se puede complicar todava ms la forma de utilizar el cifrado en bloque
32
16
2. Criptosistemas con Clave Secreta 2.3. DES (XVII): Implementacin de Cifrados en Bloque
Encadenamiento de bloques cifrados CBC:
Proporciona un mecanismo de realimentacin al cifrador de bloques El resultado del cifrado del bloque anterior alimenta al cifrado del siguiente bloque (cada bloque cifrado es usado para cifrar el siguiente)
Carga inicialmente en el registro de 64 bits un Vector Inicial que no importa que sea secreto pero si debe ser aleatorio. Convierte al DES en un cifrado en flujo. Puede cifrar mensajes iguales de manera diferente con slo cambiar VI (semilla: tiempo). No cambia el tamao del espacio de claves.
Ci = EK ( Pi Ci 1 )
Pi = Ci 1 Dk (Ci )
33
2. Criptosistemas con Clave Secreta 2.3. DES (XVIII): Implementacin de Cifrados en Bloque
Realimentacin del texto cifrado CFB (1): Realimentaci
Con CBC, el cifrado no puede comenzar hasta que se reciba un bloque de datos completo. Esto puede ser un problema en ciertas redes en la que cuando llega un carcter, ste ha de ser inmediatamente transmitido. Con CFB, el cifrado de datos se puede hacer con unidades ms pequeas que el bloque del DES. CFB puede usar 64 bits o cualquier cantidad menor.
Igual que en CBC, se carga inicialmente en el registro de 64 bits un Vector Inicial que no importa que sea secreto pero si debe ser aleatorio. Se divide el mensaje en claro en bloques de n bits. La operacin de suma mdulo 2 se hace bit a bit sobre bloques de n bits, que pueden variar entre 1 y 64. El registro de desplazamiento se desplaza a la izquierda n bits despus de cada operacin de cifrado (circularmente). Propiedades:
Convierte al DES en un cifrado en flujo. Puede cifrar mensajes iguales de manera diferente con slo cambiar VI (semilla: tiempo). No cambia el tamao del espacio de claves. 34
17
2. Criptosistemas con Clave Secreta 2.3. DES (XIX): Implementacin de Cifrados en Bloque
Realimentacin del texto cifrado CFB (2): Realimentaci
35
2. Criptosistemas con Clave Secreta 2.3. DES (XX): Implementacin de Cifrados en Bloque
Realimentacin de salida OFB (1): Realimentaci
Es exactamente igual que el anterior, pero en lugar de alimentar al algoritmo de cifrado DES con parte del texto resultado de sumar el bloque de texto en claro con el texto cifrado, se hace solamente con parte del texto cifrado (antes de ser sumado con el texto en claro) Tiene las mismas propiedades que el modo CFB, pero tiene algunos problemas adicionales de seguridad.
36
18
37
38
19
Estas operaciones son invertibles en s mismas, pero incompatibles entre s no gozan de la ley distributiva ni asociativa, no forman grupo y la sucesin de ellas no puede dar lugar a cancelacin de operaciones. Los 64 bits del bloque de datos se divide en 4 sub-bloques de 16.
En cada vuelta el bloque de datos de entrada X es dividido en 4 subbloques de 16 bits (X1, X2, X3, X4).
40
20
7. Multiplica el resultado de 5 con la quinta subclave 8. Suma el resultado de 6 y 7 9. Multiplica el resultado de 8 con la sexta subclave 10. Suma el resultado de 7 y 9 11. Xor del resultado de 1 y 9 12. Xor del resultado de 3 y 9 13. Xor del resultado de 2 y 10 14. Xor del resultado de 4 y 10
41
21
Antes del cifrado la clave secreta se expande para llenar un array S de 2r+2 palabras.
43
44
22
2.
3. Criptosistemas con Clave Pblica 3.1. Criptografa con Clave Secreta (I)
M: Mensajes; C: Textos cifrados; K: Posibles claves. Un Criptosistema de Clave Secreta es una familia de pares de funciones (Ek,Dk) para cada kK, definidas como Ek:M C, Dk:C M de manera que para mM se verifica Dk(Ek(m))=m. Para utilizar el criptosistema, A y B se ponen de acuerdo y eligen secretamente una clave kK. Si A enva un mensaje m a B, lo cifra, Ek(m)=c, y enva c a B. Para recuperar el mensaje, B descifra c, Dk(c)=m. Los pares de funciones (Ek,Dk) deben ser fciles de computar para los usuarios y deberan ser difciles de computar para un escucha que conociera c, pero no conociera ni m ni k.
46
23
2. Manejo de claves:
En una red de n usuarios, cada pareja tiene que tener su clave secreta, lo que hace que se tengan n(n-1)/2 claves.
47
DAV.
La que realiza el cifrado es una funcin unidireccional con trampa. m=DAV(EAB(m)) Un usuario cifra un mensaje con su clave pblica y otro lo descifra con su clave privada. m=EAB(DAV(m)) Cualquier usuario puede cifrar un mensaje con su clave privada de descifrado y recuperarlo otro usuario con la clave pblica del primero Firma electrnica.
48
24
49
La informacin puede cifrarse mediante las operaciones que plantea un problema NP-completo, de forma que criptoanalizar el mensaje cifrado requiera resolver el problema NP-completo empleado en su forma usual, mientras que disponiendo de la clave de descifrado se puede encontrar la solucin de una forma eficiente y fcil.
50
25
A y B poseen un elemento comn y secreto del grupo G: ab. Un escucha podra conocer G, n, , a y b y podra intentar calcular el elemento ab, lo que hasta ahora es un problema intratable. Este problema se conoce como el Problema de Diffie-Hellman Diffie-
51
La clave privada o informacin secreta que comparten A y B es 21. Un escucha S conoce Z53, 2, 45 y 12, pero no puede conocer que la informacin secreta compartida por A y B es 21. 45
A
a=29
12 Comparten 21
B
b=19
52
26
53
54
27
1. Cada usuario U elige dos primos p y q y calcula n=pq. U utiliza Zn como grupo, cuyo orden es (n)=(pq)=(p-1)(q-1). Para U es fcil calcular este orden porque conoce p y q. 2. U selecciona un entero positivo e, 1e<(n), que sea primo con el orden del grupo. 3. Mediante el algoritmo de Euclides extendido calcula d como el inverso de e en Zn; entonces ed1 (mod (n)), con 1d<(n). 4. La clave pblica de U es la pareja (n,e) y su clave privada es d. Deben permanecer secretos los nmeros p, q y (n).
Si A desea enviar un mensaje m de Zn a B, utiliza la clave pblica de B (nb,eb) para calcular el valor de meb (mod nb)=c. Para recuperar el mensaje, B calcula cdb=(meb)db=mebdbm (mod nb).
56
28
58
29
59
3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (VIII): Firma Digital
Sean A y B usuarios con claves (EAB,DAV) y (EBB,DBV); E: clave de cifrado pblica, D: clave de descifrado secreta
1. A utiliza DAV para firmar el mensaje: s= DAV(m) 2. Cifra la firma s con el algoritmo de cifrado pblico de B: 3. Enva por el medio EBB(s). 4. B descifra el mensaje recibido con su algoritmo secreto: 5. Suponiendo que proceda de A aplica el algoritmo pblico de A:
DBV(EBB(s))=s= DAV(m) EAB(DAV(m))=m EBB(s)= EBB(DAV(m))
B no puede modificar m m porque tendra que crear s=DAV(m) y no conoce DAV. Al aplicar la clave pblica de A, EAB, y obtener m se prueba que el mensaje es autntico y fue firmado por A.
60
30
61
62
31
3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (XI): Utilizacin del DES
Dado que el RSA es bastante lento en su ejecucin, generalmente se utiliza en conjuncin con el DES del siguiente modo: A cifra m con el DES mediante una clave aleatoria, y a continuacin esta clave DES utilizada se cifra con el criptosistema RSA. Posteriormente, A enva por el canal inseguro la pareja formada por el mensaje cifrado mediante DES y la clave de DES cifrada con RSA. Este protocolo se conoce como envoltura digital RSA. Para recuperar el mensaje recibido, B descifra la clave de DES mediante su clave privada del RSA y luego utiliza la clave obtenida para descifrar el mensaje m. El criptosistema RSA fue patentado en 1983 por Public Key Partners (PKP) en Estados Unidos, y la patente no expira hasta el ao 2000.
63
32
65
Para simplificar el protocolo anterior, puede suponerse que el grupo sobre el que se llevan a cabo las operaciones mencionadas en el protocolo anterior es el grupo multiplicativo del cuerpo Zp Las potencias y productos se efectan mdulo un n primo p.
66
33
4. Ejercicios
1. Utilizando el cifrado en flujo cifrar el mensaje LADRILLO usando el cdigo ASCII y utilizando la clave K indicada.
K = 0110001100000001011110000010100001111110011110011110011001011010
67
4. Ejercicios
3. Alicia y Bernardo utilizan como grupo Z13* y eligen como generador del mismo =4. Determinar que nmero secreto se intercambiarn por el cambio de clave de Diffie-Hellman si Alicia elige como nmero a1eatorio a=5 y Bernardo elige b=2. 4. Si se utiliza el criptosistema RSA, determinar el criptograma para el mensaje m=152167492, teniendo en cuenta que los parmetros del destinatario, Bernardo, son: nB=143, eB=7 y dB=103, y los del remitente, Alicia, son: nA=161, eA=31 y dA=115. 5. Bernardo utiliza el criptosistema RSA con la siguiente clave pblica: (nB,eB)=(2947,179). Determinar el criptograma que debe enviar Alicia si e1 mensaje es m=MANDA DINERO. Las letras A-Z del alfabeto se codifican con 0-25, el punto es el 26 y el espacio en blanco es el 27.
68
34
4. Ejercicios
6. Si Alicia tiene como clave pblica (nA,eA)=(2773,17), determinar el criptograma que corresponde a la respuesta a1 mensaje del problema anterior: NO TENGO. 7. Enviar el mensaje m=16 a un amigo que trabaja con el criptosistema de ElGamal. Este amigo utiliza los siguientes parmetros: el primo es p=23, el generador del grupo Z23* es =5 y su clave pblica es 19. 8. En el criptosistema de ElGamal se considera el nmero primo p=65537 y el grupo Zp* con generador =5. Enviar a Bernardo, cuya clave pblica es 23467, un mensaje en el que se indique el tipo de moneda a utilizar en determinada transaccin, es decir, m=PTA.
69
35