Вы находитесь на странице: 1из 62

Unidad 3: Criptografa

SEGURIDAD

DE

LA

INFORMACION

Definiciones
Criptografa (escritura oculta) Rama de las matemticas y de la informtica que se ocupa de cifrar/descifrar informacin utilizando mtodos y tcnicas que permitan el intercambio de mensajes de manera que slo puedan ser ledos por las personas a quienes van dirigidos. Criptoanlisis Estudio de los mtodos que se utilizan para quebrar textos cifrados con objeto de recuperar la informacin original en ausencia de la clave.
2

SEGURIDAD

DE

LA

INFORMACION

Definiciones
Criptologa Ciencia que estudia las tcnicas criptogrficas y de criptoanlisis. Cifra Mtodo o tcnica que protege a un mensaje al aplicar un algoritmo criptogrfico. Sin conocer una clave especfica, no ser posible descifrarlo o recuperarlo. Esteganografa Es la comunicacin secreta lograda mediante la ocultacin de la existencia de un mensaje.

SEGURIDAD

DE

LA

INFORMACION

Criptosistema
Tupla (E, D, M, K, C) M conjunto de textos en claro K conjunto de claves C conjunto de textos cifrados E conjunto de funciones de cifrado e: M K C D conjunto de funciones de descifrado d: C K M

SEGURIDAD

DE

LA

INFORMACION

Objetivo
El objetivo de la criptografa es mantener la informacin cifrada secreta. Atacante Alguien cuya meta es quebrar un criptosistema. Se asume que conoce el algoritmo pero no la clave.

SEGURIDAD

DE

LA

INFORMACION

Tipos de ataques
Fuerza bruta Slo texto cifrado El atacante conoce solo el texto cifrado, su meta es encontrar el texto en claro y posiblemente la clave. Texto en claro conocido El atacante conoce solo el texto cifrado y el texto en claro, su meta es encontrar la clave. Texto en claro elegido El atacante usa varios textos en claro y obtiene los textos cifrados, su meta es encontrar la clave.
SEGURIDAD DE LA INFORMACION 6

Tipos de ataques
Ataques matemticos Basados en el anlisis matemtico de los algoritmos. Ataques estadsticos Hacer suposiciones sobre la distribucin de las letras (monogramas), los pares de letras (digramas), las ternas de letras (trigramas), etc. Examinar el texto cifrado y relacionar las propiedades con las suposiciones realizadas.

SEGURIDAD

DE

LA

INFORMACION

Criptografa clsica

SEGURIDAD

DE

LA

INFORMACION

Criptografa clsica
El emisor y el receptor comparten una clave Las claves pueden ser la misma o fcilmente derivables una de la otra. Denominado criptografa simtrica. Tipos Cifra por transposicin. Cifra por sustitucin. Cifra por combinacin de los anteriores (Producto).

SEGURIDAD

DE

LA

INFORMACION

Criptografa clsica
Criptografa clsica

Transposicin Ej.: Esctala

Sustitucin

Monoalfabtica

Polialfabtica

Monograma Ej.: Csar

Poligrama Ej.: Playfair

Peridica

No peridica Ej.: One-time pad

Lineal Ej.: Vigenre

Progresiva Ej.: Enigma

SEGURIDAD

DE

LA

INFORMACION

10

Transposicin
Consiste en reorganizar los caracteres del texto en claro para producir el texto cifrado. En muchos casos se sigue una pauta geomtrica: se escribe el mensaje en un rectngulo por filas y se lee por columnas, etc. Por ejemplo: Texto en plano: HELLO WORLD Reorganizarlo de la siguiente manera HLOOL ELWRD Texto cifrado: HLOOL ELWRD
SEGURIDAD DE LA INFORMACION 11

Cifra de la esctala
Utilizada en Grecia en el Siglo V a.c. La esctala es una vara de madera sobre la que se enrosca una tira de cuero. El emisor escribe el mensaje a lo largo de la vara y luego desenrosca la tira. La tira sola ocultarse como cinturn. Para recuperar el mensaje el receptor necesita una vara igual a la usada para crearlo.

sendmoretroopstosouthernflankand

STSFEROLNOUADOTNMPHKOSEARTRNEOND

SEGURIDAD

DE

LA

INFORMACION

12

Sustitucin
Consiste en cambiar caracteres del texto en claro para producir el texto cifrado. Es decir, cada letra del mensaje se sustituye por otra segn una determinada permutacin del alfabeto. Por ejemplo: Texto en plano: HELLO WORLD Cambiar cada letra por la tercer letra que le sigue (A por D, B por E, C por F) Texto cifrado: KHOOR ZRUOG

SEGURIDAD

DE

LA

INFORMACION

13

Tipos de sustitucin
Sustitucin monoalfabtica Cuando a una misma letra del mensaje le corresponde siempre la misma letra del texto cifrado. Sustitucin polialfabtica Cuando a una misma letra del mensaje le corresponden distintas letras del mensaje cifrado.

SEGURIDAD

DE

LA

INFORMACION

14

Cifra del Csar


Es una sustitucin monoalfabtica monograma. Se dice que era utilizada por Julio Csar para la comunicacin de mensajes a sus tropas. Consiste en reemplazar cada letra del mensaje original por la letra que se encuentra 3 lugares adelante en el alfabeto, por ejemplo aD, bE, zC.
sendmoretroopstosouthernflankand

Alfabeto original

abcdefghijklmnopqrstuvwxyz
Alfabeto cifrado

DEFGHIJKLMNOPQRSTUVWXYZABC
VHQGPRUHWURRSVWRVRXWKHUQIODQNDQG
SEGURIDAD DE LA INFORMACION 15

Cifra del Csar


M = { secuencia de letras del alfabeto } K = { i | i es un nmero entero y 0 i 26 } E = { Ek | k K y para todas las letras m, Ek(m) = (m + k) mod 27 } D = { Dk | k K para todas las letras c, Dk(c) = (27 + c k) mod 27 } C=M

SEGURIDAD

DE

LA

INFORMACION

16

Criptoanlisis
Anlisis de frecuencia Se basa en el anlisis de la frecuencia de aparicin de los smbolos del texto cifrado y su intento de correlacin con los smbolos del lenguaje en el cual est escrito el mensaje. Se buscan los caracteres ms frecuentes en el criptograma y se los asocia a las letras de mayor aparicin en el idioma original. Se prueban distintas alternativas hasta alcanzar un texto coherente. Es una herramienta criptoanaltica de base.
17

SEGURIDAD

DE

LA

INFORMACION

Anlisis de frecuencias

SEGURIDAD

DE

LA

INFORMACION

18

Cifra de Vigenre
En lugar de una letra ahora utilizo una frase. Por ejemplo: Texto en plano: THE BOY HAS THE BALL Clave: VIG Cifrar utilizando la cifra de Csar para cada letra: key VIGVIGVIGVIGVIGV plain THEBOYHASTHEBALL cipher OPKWWECIYOPKWIRG

SEGURIDAD

DE

LA

INFORMACION

19

El tableau
Tabla que tiene las letras de la clave en la parte superior (columnas), y las letras de texto en claro a la izquierda (filas). A B E H L O S T Y
SEGURIDAD

G G H L N R U Y Z E
DE LA

I I J M P T W A B H

V V W Z C G J N O T

Ejemplo:
Clave V, letra T: seguir por la columna V hasta la fila T, se obtiene O Clave I, letra H: seguir por la columna I hasta la fila H, se obtiene P

INFORMACION

20

Cifra de Vigenre
Sustitucin polialfabtica peridica lineal, con perodo igual a la longitud de la clave. Fue denominada durante muchos aos como la cifra indescifrable.

sendmoretroopstosouthernflankand

UPNYQQCEOVQZPNXQDOPXJPRIJNLNFEPO

SEGURIDAD

DE

LA

INFORMACION

21

Criptoanlisis
Ataque de Kasiski (1863) La cifra de Vigenre puede ser atacada con xito mediante un anlisis de frecuencia La tcnica consiste en:
Buscar cadenas repetidas. Buscar el perodo de la clave obteniendo el MCD (mximo comn divisor) entre las posiciones de todas las cadenas repetidas. Descomponer el problema en N sistemas. monoalfabticos (donde N es el tamao de la clave) Abordar cada sistema monoalfabtico por medio del anlisis de frecuencias.

SEGURIDAD

DE

LA

INFORMACION

22

Ataque de Kasiski
En el texto cifrado ocurren repeticiones cuando los caracteres de la clave aparecen sobre los mismos caracteres del texto en claro. Por ejemplo: key VIGVIGVIGVIGVIGV plain THEBOYHASTHEBALL cipher OPKWWECIYOPKWIRG La clave y el texto en claro se alinean sobre las repeticiones. La distancia entre las repeticiones es 9 y por lo tanto el periodo es factor de 9 (1, 3 o 9).

SEGURIDAD

DE

LA

INFORMACION

23

Ejemplo
Queremos quebrar este texto cifrado: ADQYS EQOOG MOCIO HSNEW HCEUT HIUIX MIUSB IFBAG EQOOG VECNE QOIOF OXKKT KAUMF BMBFV DLAAV MEGJS MIBHK VVTAA ZGGWP RWKXS WTPCH IZOOO CIDTW CIEKQ VNSVP AJMOC

SEGURIDAD

DE

LA

INFORMACION

24

Tabla de repeticiones
Letras MI OO OEQOOG FV AA MOC QO PC NE SV CH Inicio 5 22 24 39 43 50 56 69 77 94 118 Fin 15 27 54 63 87 122 105 117 83 97 124 Distancia 10 5 30 24 44 72 49 48 6 3 6 Factores 2, 5 5 2, 3, 5 2, 2, 2, 3 2, 2, 11 2, 2, 2, 3, 3 7, 7 2, 2, 2, 2, 3 2, 3 3 2, 3

SEGURIDAD

DE

LA

INFORMACION

25

Estimar el perodo
OEQOOG Es una repeticin muy larga El perodo puede ser 1, 2, 3, 5, 6, 10, 15, o 30 7 de 10 repeticiones tiene a 2 en sus factores 6 de 10 repeticiones tiene a 3 en sus factores Comenzamos entonces con un perodo 2 3 = 6

SEGURIDAD

DE

LA

INFORMACION

26

ndice de coincidencia
Es la probabilidad de que dos letras de un texto cifrado elegidas al azar sean la misma. IC = [n (n 1)]1 0i25 [Fi (Fi 1)] donde n es la longitud del texto cifrado y Fi la cantidad de veces que aparece la letra i en dicho texto. Se encuentra tabulado para diferentes perodos: 1 0.066 3 0.047 5 0.044 2 0.052 4 0.045 10 0.041 ms de 10 0.038
27

SEGURIDAD

DE

LA

INFORMACION

Obtener los alfabetos


alfabeto 1: AIKHOIATTOBGEEERNEOSAI alfabeto 2: DUKKEFUAWEMGKWDWSUFWJU alfabeto 3: QSTIQBMAMQBWQVLKVTMTMI alfabeto 4: YBMZOAFCOOFPHEAXPQEPOX alfabeto 5: SOIOOGVICOVCSVASHOGCC alfabeto 6: MXBOGKVDIGZINNVVCIJHH ICs (#1, 0.069; #2, 0.078; #3, 0.078; #4, 0.056; #5, 0.124; #6, 0.043) indican que los alfabetos tienen perodo 1, excepto #4 y #6.

SEGURIDAD

DE

LA

INFORMACION

28

Anlisis de frecuencias
ABCDEFGHIJKLMNOPQRSTUVWXYZ 31004011301001300112000000 10022210013010000010404000 12000000201140004013021000 21102201000010431000000211 10500021200000500030020000 01110022311012100000030101

1 2 3 4 5 6

Las frecuencias del idioma son (H high, M medium, L low): HMMMHMMHHMMMMHHMLHHHMLLLLL


SEGURIDAD DE LA INFORMACION 29

Descifrado
Se analiza cada alfabeto para ver cual es su desplazamiento. El primero queda igual El tercero tiene la I cambiada por A El sexto tiene la V cambiada por A Se realizan las sustituciones (negrita es lo cifrado) ADIYS IFTAG BMTFV RWCXS AJEOC
SEGURIDAD

RIUKB PAUEF EGGOP ANSNP MIUAX


LA

OCKKL VATAS CNEKI HHEUL

MIGHK CIITW HSSEW QONOF

AZOTO EOCNO NECSE EEGOS

EIOOL EIOOL DDAAA WLPCM

DE

INFORMACION

30

Descifrado
El anlisis continua buscando en el texto pistas que sugieran palabras conocidas para de esta manera determinar los desplazamientos de los alfabetos restantes. Luego de terminar el proceso tendremos: Clave: ASIMOV Texto en claro: ALIME PACET ONESI EANON
SEGURIDAD

RICKP HATIS VESEE ESSOS


LA

ACKSL QUITE NSOSE ELDOM

AUGHS ECONO LDOMA ARECO

ANATO MICAL INTOS MICAL BUTTH EGOOD RECLE ANAND THECL MICAL
31

DE

INFORMACION

One-time pad (cuaderno de uso nico)


Es una variante de Vigenre con una clave aleatoria tan larga como el mensaje en claro. Es un sistema criptogrfico perfectamente seguro. El texto cifrado DXQR, puede corresponder al texto en claro DOIT (cifrado con la clave AJIY) y al texto en claro DONT (cifrado con la clave AJDY) y a cualquier otra combinacin de 4 letras. Las claves deben ser aleatorias, de no serlo se puede atacar tratando de regenerar la clave. Las claves se deben usar una sola vez.
SEGURIDAD DE LA INFORMACION 32

Criptografa moderna

SEGURIDAD

DE

LA

INFORMACION

33

Definiciones
Principios de Kerckhoffs (1883) El sistema debe ser en la prctica imposible de criptoanalizar. La seguridad de un sistema criptogrfico debe depender slo de que la clave sea secreta y no de que el algoritmo de cifrado sea secreto Mtodo de eleccin de claves fcil de recordar. Transmisin del texto cifrado por telgrafo. La mquina de cifrar debe ser portable. No debe existir una larga lista de reglas de uso.

SEGURIDAD

DE

LA

INFORMACION

34

Definiciones
En 1948 Claude Shannon publica el artculo A Mathematical Theory of Communication, sentando las bases de la Teora de la Informacin. Informacin Es el conjunto de datos o mensajes inteligibles creados con un lenguaje de representacin. Ante varios mensajes posibles, aquel que tenga una menor probabilidad de aparicin ser el que contenga una mayor cantidad de informacin.

SEGURIDAD

DE

LA

INFORMACION

35

Definiciones
Seguridad perfecta Un sistema criptogrfico es perfectamente seguro si el texto cifrado no da ninguna informacin adicional del texto plano. Es decir que dado un texto cifrado C, cualquier posible texto plano es igualmente probable con respecto a C. Teoremas En todo sistema perfectamente seguro, la longitud de las claves es mayor o igual que la de los mensajes. Existen sistemas perfectamente seguros. (por ejemplo: one-time pad)
36

SEGURIDAD

DE

LA

INFORMACION

Definiciones
Sistema incondicionalmente seguro Cuando es seguro frente a ataques con capacidad de clculo ilimitada. Sistema computacionalmente seguro Cuando es seguro frente a ataques con capacidad de clculo limitada.

SEGURIDAD

DE

LA

INFORMACION

37

Definiciones
Para mejorar las operaciones de cifra Shannon propone dos tcnicas: Difusin Es la transformacin del texto claro con el objeto de dispersar las propiedades estadsticas del lenguaje sobre el criptograma. Se logra con Transposiciones. Confusin Es la transformacin del texto claro con el objeto de mezclar los elementos de ste, aumentando la complejidad de la dependencia funcional entre la clave y el criptograma. Se obtiene mediante Sustituciones.

SEGURIDAD

DE

LA

INFORMACION

38

Criptografa moderna

Criptografa Moderna

Cript. Simtrica (clave secreta)

Cript.Asimtrica (clave pblica)

Funciones de Hashing

Cifrado de Flujo

Cifrado en Bloque

MDC (sin clave)

MAC (con clave)

SEGURIDAD

DE

LA

INFORMACION

39

Criptografa simtrica
Tambin conocidos como criptografa de clave secreta o clave privada. La clave utilizada en la operacin de cifrado es la misma que se utilizada para el descifrado. Existen dos mecanismos de operacin bsicos: Cifrado de flujo. Cifrado en bloques.

SEGURIDAD

DE

LA

INFORMACION

40

Cifrado de flujo y cifrado en bloque


Sea E una funcin de cifrado Ek(b) cifrado del mensaje b con la clave k m = b1b2 , donde cada bi es de longitud fija Cifrado en bloque Ek(m) = Ek(b1)Ek(b2) Cifrado de flujo k = k1k2 Ek(m) = Ek1(b1)Ek2(b2) Si k1k2 se repite, el cifrador es peridico y la longitud de su periodo es un ciclo de k1k2
SEGURIDAD DE LA INFORMACION 41

Cifradores de flujo
Usan los siguientes conceptos: El espacio de las claves es igual o mayor que el espacio de los mensajes. Las claves son aleatorias. La secuencia de clave se usa slo una vez. La solucin ideal no es prctica.

SEGURIDAD

DE

LA

INFORMACION

42

Cifradores de flujo
Se utilizan generadores pseudoaleatorios con un algoritmo determinstico a partir de una semilla de n bits, pudiendo generar secuencias con periodos de 2n bits. Lo que se transmite es solo la semilla.

SEGURIDAD

DE

LA

INFORMACION

43

Modo de operacin
El mensaje en claro se lee y transmite bit a bit Se realiza una operacin de cifra, normalmente la funcin XOR, entre los bits del mensaje en claro y los de la secuencia cifrante. La secuencia cifrante debe cumplir: Tener un perodo muy alto. Tener propiedades pseudoaleatorias.
mi ci ci ci

Mensaje M

XOR

XOR

Mensaje M

si
Secuencia cifrante
SEGURIDAD DE LA INFORMACION

si
Secuencia cifrante
44

Modo de operacin
Existen 2 mecanismos de operacin de las secuencias cifrantes: Sincrnicos El emisor y el receptor deben sincronizarse previamente a la transmisin. La perdida de 1 bit en el flujo de datos puede inutilizar el resto de la transmisin. Auto-sincrnicos Se utiliza parte de la informacin del texto cifrado para renovar la clave de la secuencia cifrante.

SEGURIDAD

DE

LA

INFORMACION

45

Cifradores en bloque
El mensaje se divide en bloques de longitud fija (8, 16, bytes) y luego se aplica el algoritmo de cifrado a cada bloque en forma independiente con la misma clave Existen distintos modos de operacin dependiendo de cmo se mezcla la clave con el texto en claro: EBC: Electronic CodeBook CBC: Cipher Block Chaining CFB: Cipher Feedback OFB: Output FeedBack
SEGURIDAD DE LA INFORMACION 46

ECB: Electronic CodeBook


El texto se divide en bloques y cada bloque es cifrado en forma independiente utilizando la clave.

SEGURIDAD

DE

LA

INFORMACION

47

Ejemplo problemas ECB


Tengo una imagen en formato raw:

Y la cifro utilizando AES-128, con ECB:

SEGURIDAD

DE

LA

INFORMACION

48

Cont. Problemas ECB


Obtengo una nueva imagen raw, y puedo entender su contenido, pese a estar encriptada!

SEGURIDAD

DE

LA

INFORMACION

49

CBC: Cipher-Block Chaining


El texto se divide en bloques y cada bloque es mezclado con la cifra del bloque previo, luego es cifrado utilizando la clave.

SEGURIDAD

DE

LA

INFORMACION

50

CFB: Cipher FeedBack


Opera como un cifrador de flujo auto-sincrnico, generando la clave de cifrado sobre la base de la clave y el bloque cifrado previo, y luego cifrando el mensaje con una operacin XOR.

SEGURIDAD

DE

LA

INFORMACION

51

OFB: Output FeedBack


Opera en forma similar al CFB, pero sin incluir el texto claro en el siguiente paso de realimentacin. Es similar a un cifrador de flujo sincrnico.

SEGURIDAD

DE

LA

INFORMACION

52

Ejemplo problemas OFB


Qu pasa si reutilizo el mismo IV? Supongamos que el atacante conoce un texto plano (P1) y su correspondiente texto cifrado (C1) Si el atacante desea mandar el texto plano P, calcula: P2 / P = P1 P2 E(P) = E(P1 P2) = C1 P2

SEGURIDAD

DE

LA

INFORMACION

53

Padding
Al dividir el texto original en bloques de longitud fija, algunos modos de cifrado requieren que se rellene el ltimo bloque (padding) antes de realizar la operacin. Este texto de relleno debe ser quitado durante la operacin de descifrado. Por ejemplo: Se agrega 1 bit en 1 seguido de ceros hasta completar el bloque. Si el texto terminaba exacto se agrega un bloque completo.
SEGURIDAD DE LA INFORMACION 54

Estndar PKCS#5

Estndar PKCS#5: El ltimo bloque se completa con N bytes con valor N, si es mltiplo se completa con un bloque completo de padding.

Grficamente:

SEGURIDAD

DE

LA

INFORMACION

55

Padding Oracle Attacks


Escenario: Una aplicacin que utiliza un cifrador de bloques en modo CBC y padding PKCS#5. La aplicacin responde de la siguiente manera: Texto valido correctamente cifrado: respuesta normal. Texto invlido correctamente cifrado: error indicando que el valor recibido no es vlido. Texto con cifrado incorrecto (padding incorrecto): error indicando falla de padding. En este escenario el ataque nos permite descifrar el mensaje y cifrar un mensaje arbitrario (sin conocer la clave simtrica).

SEGURIDAD

DE

LA

INFORMACION

56

POA: Cifrado

from Crypto.Cipher import DES obj = DES.new('dcubaar.', DES.MODE_CBC,'12345678') enc_ori = obj.encrypt('EL TEXTO PLANO'+'\x02\x02') 57

SEGURIDAD

DE

LA

INFORMACION

POA: Descifrado

from Crypto.Cipher import DES obj = DES.new('dcubaar.', DES.MODE_CBC,'12345678') enc_ori = '[\x8ez`\xeb\x0c.cY-\t\x06\xd14\xef\x1a' dec_ori = obj.decrypt(enc_ori) SEGURIDAD DE LA INFORMACION 58

POA: Tcnica
Elegimos un bloque aleatorio (RB) Concatenamos RB con el bloque que deseamos descifrar (EB) Si Orculo(RB||EB) = Error de Padding debemos seguir probando Sino ganamos!

from Crypto.Cipher import DES r = os.urandom(8) r = '\x8f\xf3)\xb0\xc7\xea!\x00' obj = DES.new('dcubaar.', DES.MODE_CBC,'12345678') obj.decrypt(r+enc_ori[8:])

SEGURIDAD

DE

LA

INFORMACION

59

POA: Tcnica (2)


Probamos con otro valor para el ltimo byte de RB. Hay a lo sumo 256 valores que puede tomar el byte

for b in range(256): rb = chr(ord(r[-1])^b) r1 = r[:-1] + rb + enc_ori[8:] obj = DES.new('dcubaar.', DES.MODE_CBC,'12345678') dec = obj.decrypt(r1) if dec[-1] == '\x01': print rb

SEGURIDAD

DE

LA

INFORMACION

60

POA: Tcnica (3)


Ahora que sabemos que el padding es correcto (muy probablemente es un 0x01), podemos calcular el valor sin cifrar del ltimo byte del bloque cifrado. Cmo seguimos? Como sabemos el valor del ltimo byte de RB que el padding genere 0x01, calculamos el valor para que genere 0x02. Repetimos el proceso anterior con el penltimo byte RB, cuando no genere error, es que el padding termina en 0x02 0x02 Luego seguimos con el ante-penltimo byte y as sucesivamente.

SEGURIDAD

DE

LA

INFORMACION

61

POA: CBC-R
Cifrado con CBC Ci = ek(Pi Ci-1) Pi = dk(Ci ) Ci-1 Cifrando con el orculo:
1. 2. 3. 4. 5. Elegir un mensaje a cifrar: P0P1... PN-1 Elegir un bloque al azar: CN-1 Usar el orculo para obtener el keystream correspondiente a CN-1 (KCN-1) Luego, elegir Ci-1 = Pi KCi-1 y repetir para i = N-21 El IV = Po KC0

C0 = IV

Bsicamente, Ci es tal que nos permite ir obteniendo Pi+1. Es decir, vamos construyendo los Ci de tal forma que al descifrarlos obtenemos P. De esta forma obtenemos una manera de cifrar un mensaje arbitrario sin conocer la clave.
DE LA INFORMACION 62

SEGURIDAD

Вам также может понравиться