Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Simetrica PDF
Simetrica PDF
SIMTRICA
DESARROLLO
Mdulo II: criptografa simtrica y asimtrica
cripto I-scolnik-hecht 2
ENCRIPCIN SIMTRICA
ESTAMOS HABLANDO DE CRIPTOGRAFA
#@Y6&(*-+jW3!G&%;{I8=U
cripto I-scolnik-hecht 3
BLOCK & STREAM CIPHERS
BLOCK
00100111 10011010 10100111
(bloque)
0 0
0 1
STREAM
1 0
(flujo) 0 1
.. ..
XOR
(key Bit)
cripto I-scolnik-hecht 4
DES 56-bits
Es el algoritmo simtrico ms famoso y usado del
mundo
Es el algoritmo simtrico ms estudiado del mundo y
hoy da sirve una importante funcin didctica residual
Es el algoritmo simtrico ms atacado del mundo
Basado en las Cajas de Feistel (Difusin+Confusin)
Nace como estndar NIST en 1975
Muere en 1998: CRACKING DES EFF Foundation
OReilly (1998) (Quiebre en 72Hs en 1 Workstation)
Oficialmente reemplazado en 2001 por el AES (NIST)
(Rijndael) 128/192/256 bits
cripto I-scolnik-hecht 5
Desarrollado por IBM, publicado el 17/3/75 en el Federal Register del
National Bureau of Standards de los Estados Unidos (por error, pues la
National Security Agency crea que se poda implementar nicamente
porhardware, y la publicacin permiti desarrollar software).
cripto I-scolnik-hecht 6
Descripto en el Federal Information Processing Standards
Publication 46 del 15/1/77.
Descripcin general
El algoritmo consta de tres etapas:
cripto I-scolnik-hecht 7
64 bits 64 bits 64 bits
PLANO
+ 56 bits
CLAVE
64 bits
CIFRADO
8 bytes x (7 bits tiles
+ 1 bit paridad impar)
cripto I-scolnik-hecht 8
f ser descripta luego y K1 ,..., K16 son strings de longitud 48
calculados como una funcin de K
(De hecho cada Ki es una seleccin permutada de bits de K)
1
3) Se aplica la permutacin inversa IP al bitstring L16 R16 obteniendo el texto cifrado y
o sea que y = IP 1 ( L16 R16 )
cripto I-scolnik-hecht 9
X0 IP L0R0
bloque 64 32 + 32
texto plano
y0 IP-1 L16R16
bloque 64 32 + 32
texto cifrado cripto I-scolnik-hecht 10
Un ciclo (round) de encripcin de DES FEISTEL BOX
L i-1 R i-1
f Ki
XOR
Li Ri
cripto I-scolnik-hecht 11
La funcin f tiene dos argumentos:
A un bitstring de longitud 32
J un bitstring de longitud 48 y el resultado es un bitstring de longitud 32
B = B1B2 B3 B4 B5 B6 B7 B8
cripto I-scolnik-hecht 12
FUNCION f
Ri-1 E Ki
48
32 32 48
B B B B B B B B
1 2 3 4 5 6 7 8 8x6
cripto I-scolnik-hecht 13
3) El prximo paso utiliza ocho S-boxes, donde cada Si es una matriz de 4x16
cuyos elementos son enteros de 0 a 15. Dado un string de longitud 6, por
ejemplo B =bb b b b b
j 1 2 3 4 5 6
Se calcula SjBj del modo siguiente: los bits b1b6 determinan la representacin
binaria
de una fila r de S j (0 r 3) y b2 b3b4 b5 determinan la representacin binaria
de la columna c de S j (0 c 15).
Entonces S j B j se define como el elemento S j ( r , c) escrito
en binario como un string de 4 bits
Por lo tanto cada S j puede pensarse como una funcin que tiene como argumentos
a dos bitstrings uno de longitud dos y otro de longitud cuatro y da como
resultado un string de longitud cuatro
As, escribimos C j = S j B j , 1 j 8
cripto I-scolnik-hecht 14
FUNCION f (Ri-1 , Ki)
Ri-1 E Ki
48
32 32 48
B B B B B B B B 8x6
C C C C C C C C 32 = 8 x 4
1 2 3 4 5 6 7 8
cripto I-scolnik-hecht 15
4) El bitstring C = C1C2 C3C4 C5C6C7 C8 de longitud 32 se lo permuta de acuerdo
a una permutacin fija P y se define : P (C ) = f ( A, J )
La permutacin IP
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
cripto I-scolnik-hecht 16
La permutacin inversa IP-1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
cripto I-scolnik-hecht 17
La funcin de expansin E se define mediante la siguiente tabla
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
cripto I-scolnik-hecht 18
La S box nmero 1
1 4 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 3 13 6 2 11 15 12 9 7 3 10 5 0
1 5 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
cripto I-scolnik-hecht 19
Finalmente hay que describir el clculo de los Ki a partir de la llave K. Esta llave
es un bit string de 64 bits, de los cuales 56 constituyen la clave misma y los otros
8 son bits de paridad para la deteccin de posibles errores (los bits en las posiciones
8, 16, 24, 32, 40, 48, 56, 64 se definen de modo tal que cada byte contenga un
nmero impar de unos. Por lo tanto, si hay un error se puede detectar en cual de los
bytes ocurri. Estos bits de paridad NO SE TOMAN EN CUENTA en el clculo de
los Ki (se llama el key schedule)
1) Dada una llave K de 64 bits, descartar los bits de paridad y permutar los
restantes bits de K segn una permutacin fija PC-1
Escribiremos PC -1 (K) = C0 D0 donde C0 se compone de los primeros 28 bits
de PC 1 ( K ) y D0 de los ltimos 28 bits.
2) Calcular Ci = LSi (Ci 1 ) ( LSi es un corrimiento cclico a la izquierda
Di = LSi ( Di 1 ) de una o dos posiciones segn el valor de i ,
K i = PC 2 (C i Di ) una posicin si i = 1,2,9 o 16 y dos posiciones en
para i = 1,...,16 los otros casos. PC -2 es otra perm utacin fija)
cripto I-scolnik-hecht 20
Reduce a 56 bits
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
cripto I-scolnik-hecht 22
La permutacin PC-2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
cripto I-scolnik-hecht 23
Veamos ahora como resulta el key schedule. Cada roundusa una llave de 48 bits
compuesta de 48 bits de la llave K. Los elementos en las siguientes matrices
muestran cuales son los bits de K usados en cada round.
Rounds 1 y 2
10 51 34 60 49 17 33 57 2 9 19 42
3 35 26 25 44 58 59 1 36 27 18 41
22 28 39 54 37 4 47 30 5 53 23 29
61 21 38 63 15 20 45 14 13 62 55 31
2 43 26 52 41 9 25 49 59 1 11 34
60 27 18 17 36 50 51 58 57 19 10 33
14 20 31 46 29 63 39 22 28 45 15 21
53 13 30 55 7 12 37 6 5 54 47 23
cripto I-scolnik-hecht 24
La desencripcin se realiza usando el mismo algoritmo, tomando
y = IP 1 ( L16 R16 )
cripto I-scolnik-hecht 25
Reprint from Secure Network Communication Andreas Steffen Zrcher Hochschule WinterThur - 2002
cripto I-scolnik-hecht 26
Algunos estndars importantes basados en
DES:
ANSIs Financial Institution Retail Security Working Group desarroll
un estndar para la administracin y seguridad de PINs (ANSI X9.8)
(American National Standard for Personal Information Number (PIN)
Management and Security, American Bankers Association, 1982.
Recordemos que la llave inicial se divide en dos partes, y cada una de ellas se
procesa por separado. Lo ms trivial: si cada mitad consiste solo de ceros o
unos, entonces la llave usada para cada ciclo del algoritmo es siempre IGUAL.
Adems, hay llaves semidbiles que en vez de generar 16 subllaves distintas
slo generan DOS, y otras slo generan CUATRO. Hay gente que opina que la
probabilidad de encontrarlas es baja pues hay 72.057.594.037.927.936 claves
distintas, pero al mismo tiempo eso se puede controlar matemticamente para
evitar quiebres de la seguridad.
cripto I-scolnik-hecht 28
3 DES (y otros)
W.Tuchmann propuso en 1979 (revista IEEE Spectrum) la idea de encriptar tres veces
con dos claves.
Obviamente si la clave usual tiene n bits, este esquema usa 2n bits (por ello el 3DES
usa 112 = 56x2 bits de clave doble o 168 bits si las tres son diferentes)
Existen muchsimas variantes, como 3DES con tres claves distintas recin mencionado,
usar diferentes vectores de inicializacin IV en cada paso, etc.
cripto I-scolnik-hecht 29
La estructura algebraica
Si DES fuese algebraicamente cerrado, entonces para cualquier par de claves
cripto I-scolnik-hecht 30
La longitud de clave
El diseo original de IBM tena una clave de 112 bits, pero el estndar se public
usando solo 56 bits.
Hellman propuso lo siguiente: tomar un texto plano fijo y encriptarlo con las
256 claves posibles. Para quebrar una clave desconocida el espa solo tiene que
hacer que encripten ese texto plano y comparar el resultado con esas encripciones.
Se calcul que dicha computadora costara U$S 5.000.000
Ya en 1993 se haban diseado computadoras para quebrar claves de 56 bits en
unos 210 minutos por menos de U$S 1.000.000. Hoy da se quiebra en horas por
Hardware que cuesta slo algunos miles de dlares.
El criptoanlisis diferencial
En 1990, dos matemticos israeles, Eli Biham y Adi Shamir introdujeron el
criptoanlisis diferencial. La idea es usar pares de textos planos con ciertas
diferencias y se analiza la evolucin de las mismas a medida que se ejecutan
las rondas de DES. Este tema ser explicado en una clase posterior.
cripto I-scolnik-hecht 31
El nmero de rounds
Porqu se usan 16 rounds ? Luego de 5 rounds todos los bits del texto cifrado
son una funcin de todos los bits tanto del texto plano como de la llave K (se
llama el efecto avalancha). Porqu entonces no parar luego de un nmero de
rounds mayor o igual a 5 ?
A travs de los aos los DES con un nmero reducido de rounds fueron
sucesivamente quebrados. El DES con 3 o 4 rounds se quebr en 1982, con 6
rounds en 1985, y el criptoanlisis diferencial muestra que si el nmero de
rondas es menor que 16 entonces un ataque con texto plano conocido es ms
eficiente que el ataque por fuerza bruta.
cripto I-scolnik-hecht 32
La controversia acerca del algoritmo DES
La NSA asegur en 1976 que se usaron las siguientes propiedades como criterios de
diseo:
P0) cada fila de cada S-box es una permutacin de los enteros 0,...,15
P1) Ninguna S-box es una funcin lineal de los inputs
P2) Si se cambia un bit de entrada a una S-box cambian al menos 2 bits a la salida.
P3) Para cualquier S - box y cualquier input x (bitstring de longitud 6) , S ( x ) y S ( x 001100)
difieren en por lo menos 2 bits
cripto I-scolnik-hecht 33
Hay dos propiedades adicionales debidas a la NSA:
P4) Para cualquier S - box , input x, y para todo e, f {0,1} S ( x ) S ( x 11ef 00)
P5) Para cualquier S - box, si se fija un bit de input, y miramos el valor de un
bit fijo de output, el nmero de inputs para el cual ese bit de output es 0
ser " cercano" al nmero de inputs para el cual ese bit de output es 1.
Hay ms criterios ?
cripto I-scolnik-hecht 34
Modos de operacin de los mtodos por bloques
ECB : Electronic Code Book Mode
Encripcin: cj = EK(xj)
cripto I-scolnik-hecht 35
64 bits 64 bits 64 bits
PLANO
CIFRADO
cripto I-scolnik-hecht 36
Propiedades del modo ECB
cripto I-scolnik-hecht 37
CBC
1.Encripcin : c0 IV .Para 1 j t , c j Ek (c j 1 x j )
cripto I-scolnik-hecht 38
64 bits
I.V.
PLANO
CLAVE CLAVE
CLAVE
CIFRADO
cripto I-scolnik-hecht 39
Propiedades del modo CBC
cripto I-scolnik-hecht 40
CFB
Input : Clave K de k bits, bloques de texto plano x1 ,..., xu
de r bits cada uno con 1 r n y un vector IV de inicializacin de n bits
Encripcin : I1 IV
Para 1 j u
(a ) O j E K ( I j ) (cifrado)
(b) t j los r bits comenzando de la izquierda de O j
(c) c j x j t j (transmitir el bloque cifrado c j de r bits)
(d) I j +1 2 r .I j + c j mod(2 n ) (corre c j al lado derecho del registro)
cripto I-scolnik-hecht 41
N bits
I.V.
I.V.
PLANO
PLANO
PLANO
r bits
cripto I-scolnik-hecht 43
OFB
cripto I-scolnik-hecht 44
N bits
I.V. 1 1
I.V.
1 1 1
PLANO
PLANO
PLANO
r bits
cripto I-scolnik-hecht 46
OFB con feedback de r bits
cripto I-scolnik-hecht 47
Estos cuatro modos tienen ventajas y desventajas.
En los modos ECB y OFB un cambio en un bloque de texto plano solo produce
cambios en el correspondiente bloque cifrado, sin afectar a los otros. Y esto a
veces es deseable, por ejemplo OFB se usa en transmisiones satelitales.
Por otra parte si hay un cambio en un bloque del texto plano, los modos CBC y CFB
no solo se altera el bloque correspondiente, sino tambin los subsiguientes. Por lo
tanto son muy tiles para problemas de autenticacin (MAC). Por ejemplo:
Veamos como usar CBC como MAC. Comenzamos con IV como vector nulo,
calculamos los bloques cifrados
y1 ,..., y n con la llave K usando el modo CBC y definimos el MAC como y n .
El emisor transmite la sucesin de bloques de texto plano x1 ,..., xn junto con el
MAC. El receptor reconstruye la sucesin y1 ,..., y n usando la clave secreta K
y verifica que MAC = y n .
cripto I-scolnik-hecht 48
Cmo combinar autenticidad y confidencialidad ?
cripto I-scolnik-hecht 49
TEORIA DE LA INFORMACION
SECRETO PERFECTO
cripto I-scolnik-hecht 50
0
1 ONE-TIME PAD
0
1
1
0
0
XOR 0
1
0 1
0
1 0
0
1 0
1
1 1
0
0 0
1
1 .
.
0
1
1
0
cripto I-scolnik-hecht 51
SEGURIDAD INCONDICIONAL
CRIPTOSISTEMA (P,C,K,E,D)
quiebre imposible
El nico sistema conocido que posee seguridad incondicional es el
one-time pad y esto es aprovechado hoy da por la criptografa
cuntica
es inquebrable an con recursos computacionales ilimitados (por
ejemplo con computadoras cunticas)
Los fundamentos: uso de claves de uso nico (redundancia cero)
cripto I-scolnik-hecht 52