Tema 2. Criptosistemas de clave simétrica.pdf
-
Upload
leonel-barrera-rivas -
Category
Documents
-
view
236 -
download
0
Transcript of Tema 2. Criptosistemas de clave simétrica.pdf
-
Tema 2.
Criptosistemas de Clave Simtrica
Seguridad en Redes
-
Un bloque cifrador opera sobre n bits para producir n
bits a la salida. El bloque realiza una transformacin.
Efecto avalancha: el cambio de un bit de entrada
produce un cambio de aproximadamente la mitad de
los bits a la salida.
Efecto de integridad: cada bit de salida es una
funcin compleja de todos los bits de entrada.
Tipo de transformaciones:
Reversibles
Irreversibles
Elemento bsico de cifrado: bloque cifrador
n b
its
n b
its
01
01 10
10 11
11 00
00 01
01 11
10 11
11 00
00
Transformacin
reversible
Transformacin
irreversible
Si realizamos transformaciones reversibles, para n bits de entrada hay 2n! posibles
transformaciones diferentes
2
-
3Operaciones tpicas
Sustitucin.
Una palabra binaria es reemplazada por otra.
Puede considerarse como una tabla, a cada entrada corresponde un valor de salida.
La funcin de sustitucin forma la clave.
El campo de claves posibles es 2n!.
Tambin se le denomina cajas-S (S-boxes).
Puede ser de:
Expansin: ms bits a la salida.
Compresin: menos bits a la salida.
.
.
...
.
n bits
-
Operaciones tpicas
Permutacin.
Se cambia el orden de los bits de una palabra binaria.
La reordenacin de bits forma la clave.
El campo de claves posibles es n!, crece ms lentamente.
Tambin se le denomina cajas-P (P-boxes).
n b
its
En la prctica se utilizan redes de bloques de sustitucin y permutacin.
4
-
Utiliza como base un cifrador sencillo.
Se crea un cifrador producto aplicando varias veces secuencialmente el bloque de cifrado
sencillo.
Feistel propuso el usar bloques alternos de sustitucin y permutacin alternando de esta
forma confusin y difusin (basado en la teora de Shannon)
Confusin: (M/C)
Trata de hacer la relacin estadstica entre el texto en claro y cifrado lo ms compleja posible
para evitar averiguar la clave o parte de ella.
Se consigue con bloques de sustitucin que utilizan algoritmos complejos.
Difusin: (M)
El texto en claro tiene unos caracteres ms frecuentes que otros (redundancia).
Si aplicamos varias veces permutaciones a un bloque de bits seguidas de una sustitucin se
consigue difusin.
As la estructura estadstica del texto en claro es disipada en el texto cifrado (se igualan las
frecuencias).
Cifrador de Feistel5
-
Esquema general (figura):
: OR EXCLUSIVA
F funcin de sustitucin dependiente de una clave Ki
Se realiza una permutacin intercambiando las dos mitades de la salida Li y Ri.
El proceso se repite n veces: producto.
Parmetros que aumentan la seguridad:
Tamao del bloque: 64 bits
Tamao de la clave: 128 bits
Nmero de iteraciones: 16
Complejidad del algoritmo de generacin de claves.
Complejidad de funciones F.
Aumento de la seguridad produce reduccin de velocidad.
Descifrado: invirtiendo Ki.
Texto en claro (2w bits)
FK1
w bits w bits
FK2
FKn
Texto cifrado (2w bits)
1
2
n
L0
L1
Ln-1
Ln
Ln+1
R0
R1
Rn-1
Rn
Rn+1
6
-
IBM trabaj desde 1960 en un proyecto criptogrfico Horst Feistel.
El proyecto concluyo en 1971 con el algoritmo Lucifer (esquema Feistel, clave de 128 bits
bloques de 64 bits).
Walter Tuchman y Carl Meyer realizaron un esfuerzo por sacar un producto ms comercial
de acuerdo a las recomendaciones de NSA (National Security Agency), el resultado fue una
versin refinada de Lucifer (clave de 56 bits, ms fuerte frente a criptoanlisis).
En 1973 NBS (National Bureau of Standars) lanza una propuesta de algoritmo para utilizar
como estndar.
Gana la propuesta de Tuchman-Meyer y se adopta como Data Encryption Standard DES.
Sufri fuertes crticas en dos sentidos:
La longitud de la clave se ha reducido de 128 a 56 bits (ataque fuerza bruta).
Los criterios de diseo de la estructura interna de las cajas S.
Se hizo cambios en las cajas S a propuesta de NSA.
DES: orgenes7
-
DES: orgenes8
-
Ventajas:
Tiene un fuerte efecto avalancha.
Ataques:
Ataque de la fuerza bruta: la longitud de la clave (56 bits) hoy da se considera
insuficiente para protegerse frente a este tipo de ataque.
Criptoanlisis:
Se sospecha de defectos en el diseo de las cajas S, aunque no se ha
conseguido encontrar tales defectos.
Tcnicas de criptoanlisis aplicadas a DES:
Criptoanlisis diferencial.
Criptoanlisis lineal.
9
Caractersticas
-
Clave DES muy corta, vulnerable con la tecnologa actual.
Variante DES que aumenta la seguridad frente ataque por fuerza bruta.
Compatible con DES, una sola clave (K1=K2=K3).
Puede usar 2 (K1=K3) o 3 claves.
No hay ataques conocidos. La fuerza bruta es imposible.
Con dos claves: c=EK1[DK2[EK1[m]]]
Clave de 112 bits (56*2).
Triple DES
DES
Cifrado
DES
Descifrado
DES
Cifradom
K1 K2 K3
c
10
-
En 1997 el Instituto Nacional (USA) de estndares y tecnologa (NIST) convoca un concurso para definir un nuevo estndar avanzado que sustituya a DES.
Tras un largo proceso, en octubre de 2000 se selecciono Rijndael, creado por los belgas Vincent Rijmen y Joan Daemen.
AES (Advanced Encryption Standard) es un algoritmo pblico y no necesita ser licenciado.
Rijndael puede opera con bloques y claves de longitud variable: 128, 192, 256 bits.
AES se defini finalmente con bloques de un nico tamao: 128 bits.
AES
AES
128 bits
Key: 128, 192, 256
11
-
No sigue el esquema de Feistel
Cifrador y descifrador diferentes
Varias rondas (multiplicacin) y 4 operaciones
invertibles por ronda:
Operacin no linear (confusin).
Desplazamiento (difusin).
Mezcla linear (difusin).
Adicin de la clave.
AES Estructura I
AES
128 bits
Key: 128, 192, 256
12
-
El proceso de cifrado consiste en n+1 rondas de cifrado
n = 10, 12 14 para claves y/o bloques (Rijndael) de 128, 192 y 256
bits respectivamente.
Nota: En el estndar AES los bloques son de 128 bits y las claves pueden ser de 128,
192 256 bits.
AES-Estructura II
128 bits
Key: 128, 192, 256
Ronda 1
Ronda 3
Ronda n+1
Ronda 2
Ronda n
n=10, 12 14
Ronda estndar:
Suma inicial de subclaves
Ronda final (sin fase de mezcla)
1. Sustitucin2. Desplazamiento3. Mezcla4. Suma subclave
13
-
Estado: registro que guarda el resultado de cada ronda.
Se almacena en array de 4 filas por 4, 6 u 8 columnas (bytes), para bloques de 128, 192 256 bits respectivamente.
La norma AES slo especifica un tamao de 128 bits (4 columnas).
Las subclaves se almacenan tambin en un array con la misma estructura (4 filas por 4, 6 u 8 columnas).
AES Estado
Subclave Ki
k3 k7 k11 k15
k2 k6 k10 k14
k1 k5 k9 k13
k0 k4 k8 k12
Ronda i
Estado i+1
Estado i
b3 b7 b11 b15
b2 b6 b10 b14
b1 b5 b9 b13
b0 b4 b8 b12
b3 b7 b11 b15
b2 b6 b10 b14
b1 b5 b9 b13
b0 b4 b8 b12
14
-
ByteSub: sustitucin no lineal de los bits de Estado (Confusin).
Resistente frente a ataque de criptoanlisis diferencial y lineal.
Aplica una tabla de sustitucin, en la que cada byte del estado se sustituye por otro.
Nota:la tabla se precalcula al aplicar una ecuacin en GF (28) mdulo m(x) = x8 + x4 + x3 + x +1.
AES - Sustitucin
S-Box
b3 b7 b11 b15
b2 b6 b10 b14
b1 b5 b9 b13
b0 b4 b8 b12
b3 b7 b11 b15
b2 b6 b10 b14
b1 b5 b9 b13
b0 b4 b8 b12
ByteSub(x) = A M x-1 + 63hex
15
-
La tabla de sustitucin se implementa como una tabla con 16 filas y 16 columnas, en
cada casilla tiene un valor diferente entre 0 y 255.
Si consideramos un byte X de entrada en la tabla de S-box:
X7, X6, X5, X4: codifica la fila tabla.
X3, X2, X1, X0: codifica la columna de la tabla.
La fila y columna identifican una casilla de la tabla cuyo valor es el byte de salida.
AES Sustitucin: Sbox16
-
ShiftRow: desplazamiento circular de las filas de la tabla de estado,
con offsets de 0, 1, 2, 3 bytes.
Crea difusin y previene contra: truncated differential attack y
Square attack.
AES - Desplazamiento
b0 b4 b8 b12
b1 b5 b9 b13
b2 b6 b10 b14
b3 b7 b11 b15
Offset = 0
Offset = 1
Offset = 2
Offset = 3
b0 b4 b8 b12
b5 b9 b13 b1
b10 b14 b2 b6
b15 b3 b7 b11
17
-
MixColumn: mezcla de columnas para crear difusin entre bytes de cada columna (un
cambio en un byte de entrada produce cambios en los 4 bytes de salida):
Cada columna del estado se consideran un polinomio en GF(28) ; mod X8+ X4+ X3+ X+1
Multiplica las columnas del Estado por un polinomio fijo c(x) mdulo x4+1.
La operacin de descifrado se hace con el polinomio d(x), que es la inversa del polinomio c(x).
AES - Mezcla
03
01
01
02
b3 b7 b11 b15
b2 b6 b10 b14
b1 b5 b9 b13
b0 b4 b8 b12
01
01
02
03
01
02
03
01
02
03
01
01
X
C(x)
C11
C11 = 02*b0+03*b1+01*b2+01*b3 mod X8+ X4+ X3+ X+1
Simplificacion de operaciones: 03*b1 = b1 + 02*b1
18
-
Key Addition: Suma de subclave haciendo un XOR con el Estado.
AES Suma de clave
XOR
Subclave Ki
k3 k7 k11 k15
k2 k6 k10 k14
k1 k5 k9 k13
k0 k4 k8 k12 b3 b7 b11 b15
b2 b6 b10 b14
b1 b5 b9 b13
b0 b4 b8 b12
b3 b7 b11 b15
b2 b6 b10 b14
b1 b5 b9 b13
b0 b4 b8 b12
19
-
Las subclaves se derivan de la clave de cifrado mediante:
Expansin de clave.
Primeros bits de la clave expandida son los mismos que los de la clave de cifrado.
El resto de bits se obtienen como una funcin no lineal de los bits anteriores.
La clave expandida se estructura en columnas W(0), W(1), W(2), W(3), .W(43).
Seleccin de la clave aplicada a cada ronda de cifrado.
Para la ronda i se selecciona como subclave las columnas: w(4i), w(4i+1), w(4i+2), w(4i+3)
AES Subclaves
k3 k7 k11 k15
k2 k6 k10 k14
k1 k5 k9 k13
k0 k4 k8 k12
W3
W2
W1
W0
W(0) W(1) W(2) W(3)
W3
W2
W1
W0
W3
W2
W1
W0
W3
W2
W1
W0
W3
W2
W1
W0
W(4) W(5) W(6) W(7) W(j)
j = 4(Nr+1) -1 donde Nr es el n de rondas
20
-
Si i no mltiplo de 4 W(i) = W(i-4) XOR W(i-1)Si i mltiplo de 4 W(i) = W(i-4) XOR T(W(i-1))Donde transformacin T:
Elementos de la columna: W0, W1, W2 , W3
Desplazamiento circular W1, W2, W3 , W0Aplica SubBox al vector resultante Y0, Y1, Y2 , Y3Calcula r(i) = 00000010 (i-4)/4 ; i=4, 8, 12, 16
T(W(i-1)) = (Y0 XOR r(i), Y1, Y2 , Y3)
AES Subclaves-Expansin
k3 k7 k11 k15
k2 k6 k10 k14
k1 k5 k9 k13
k0 k4 k8 k12
W3
W2
W1
W0
W3
W2
W1
W0
W3
W2
W1
W0
W3
W2
W1
W0
W3
W2
W1
W0
21
-
Usa subclaves en orden inverso
Sustitucin: utiliza otra tabla invByteSub
Desplazamiento: rota en sentido inverso
invShiftRow
Mezcla: se usa la inversa de c(x) en el producto de
invMixColumn
22
AES- Descifrado
-
Se pretende que sea seguro al menos hasta el ao
2060.
Hoy se considera 128 bits seguro con los
computadores tradicionales digitales.
Por qu 256 bits de clave?
Si se consigue desarrollar tecnologa basada en
computacin cuntica, los problemas actuales podrn
ser resueltos en un tiempo menor (raz cuadrada).
Una clave de 128 bits con tecnologa digital equivale a
una clave de 256 bits con tecnologa cuntica.
23
Seguridad de AES
-
Modos ms utilizados:
Electronic CodeBook (ECB)
Cipher Block Chaining (CBC)
Cipher Feedback (CFB)
Output Feedback (OFB)
Modos de uso24
-
Cifrado de bloque
m bloques de n bits (64 en caso de DES).
Un mensaje largo se divide en varios bloques.
Bloques de 64 bits independientes unos de otros.
Repeticiones en bloques pueden ser reflejados en
el texto cifrado: imgenes, mensajes que cambian
poco.
Solucin: hacer que los mensajes dependan de
los anteriores con realimentacin.
Es vlido para mensajes cortos (un bloque).
Electronic CodeBook (ECB)
m
c
K Cifrado
m
K Descifrado
c
c=EK[m]
m=DK[c]=DK[EK[m]]
25
-
Cifrado de bloque
Realimentacin del bloque cifrado de la iteracin
anterior.
Cada cifrado depende del cifrado del bloque anterior.
Un error en un bloque se propaga al siguiente
bloque.
Necesita un vector de inicializacin IV (valor inicial
de mem) conocido slo por emisor y receptor.
El ltimo bloque puede tener un tamao menor de 64
bits.
Apropiado para mensajes con longitud mayor de 64
bits.
Cipher Block Chaining (CBC)
m
c
K Cifrado
m
K Descifrado
c
+
mem64
+
mem64
mi ci-1
ci=EK[mici-1]
ci
ci-1
DK[ci]ci-1=mici-1ci-1=mi
26
-
Se cifran bloques de j bits.
Cifrado de flujo si j es 1 u 8.
Necesita vector de inicializacin.
Propaga errores mientras los j bits que
contienen errores permanezcan en el
registro de desplazamiento.
Vlido para trfico de flujo.
Cipher Feedback (CFB)
K Cifrado
+
Reg desp j bits
64
j
j64
Selec. j bits izq
m
K Cifrado
m+
Reg desp j bits
64
j
j64
Selec. j bits izq
j
j
c
IV[i]
Sj
IV[i]
Sj
ci=miSj(Ek[IV[i]]])
mi=ciSj(Ek[IV[i]]])
27
-
Cifrado de flujo.
Genera secuencia seudoaleatoria funcin
slo de la clave.
Requiere vector de inicializacin.
Requiere sincronizacin entre emisor y
receptor, y mtodo de recuperacin de
prdida de sincronismo.
No propaga errores.
En la prctica se utiliza j = 64 bits. Mayor
eficiencia.
Output Feedback (OFB)
K
+
Reg desp j bits
64
j
j64
Selec. j bits izq
m
K
+
64
j
j64
Selec. j bits izq
j
j
c
K Cifrado
+
64
j
j64
Selec. j bits izq
m
K Cifrado
m+
Reg desp j bits
64
j
j64
Selec. j bits izq
j
j
c
IV[i]
IV[i]
ci=miSj(Ek[IV[i]]])
mi=ciSj(Ek[IV[i]]])
28
-
Problema de la distribucin de claves entre A y B (situaciones):
Fsicamente: A selecciona una clave y se la entrega fsicamente a B.
Fsicamente con entidad de confianza: Una tercera parte de confianza selecciona
una clave y se la entrega fsicamente a A y B.
Canal seguro: Si A y B comparten un canal seguro (clave antigua) uno de ellos puede
generar una clave y envirsela al otro por este canal.
Canal Seguro con entidad de confianza: Si A y B tienen abierto un canal seguro con
una tercera parte C. C puede generar una clave y envirsela a A y B.
Algoritmo de intercambio de secreto compartido. Diffie-Hellman.
Problema de gestin de claves:
Si en un dominio hay N usuarios se necesitan N(N-1)/2 claves para comunicar entre
ellos.
Distribucin de claves29
-
Gestiona las claves dentro de un dominio.
Sistema de claves jerrquico de dos niveles como mnimo
Claves maestras: cada usuario con el KDC.
Claves de sesin: comunicacin entre usuarios.
Cada usuario slo necesita tener una clave con el KDC.
El KDC genera claves de sesin temporales para cada peticin de sesin.
Si hay N usuarios el KDC tiene N claves maestras.
En redes grandes puede haber varios KDCs organizados de forma jerrquica.
La clave de sesin debe cambiar cada cierto tiempo: cantidad de transacciones,
nueva conexin (CO), periodo de tiempo
Centro de distribucin de claves30
-
Esquema de KDC
Iniciador
A
Receptor
B
KDC
request|N1
CKa[Ks|Request|N1|CKb[Ks, IDA]]
CKb[Ks, IDA]
CKs[N2]
CKs[f(N2)]
Mensajes 1, 2, y 3 peticin y distribucin de clave
Mensajes 3, 4 y 5 autenticacin
f es una funcin que realiza algn tipo de transformacin sobre N2, por ejemplo sumar 1
N1 y N2 son dos retos
KaKb
Ka, Kb
31
-
Distribucin de clave mediante medios cunticos.
Utiliza un canal ptico.
Si un tercero observa el contenido del canal, el receptor
lo detecta.
Criptografa Cuntica32
-
Cifradores de flujo:Cifrador Vernam: problema de la longitud de la clave
Cifradores prcticos: generadores de secuencias cifrante Registros de desplazamiento realimentados linealmente (con
operaciones XOR): LFSR
Combinacin de varios LFSR: Generador de Geffe, Algoritmo A5
En general son ms eficientes que los cifradores de bloque pero ms vulnerables.
Existen cifradores de bloque hardware eficientes.
Otros: Cifradores de flujo33
-
Estenografa:
Ocultacin de informacin sobre una informacin tapadera (grficos, texto,
audio).
Marcas de agua:
Ocultar informacin de identificacin con el objetivo de verificar el origen de los
datos (audio, video, imgenes).
Deben ser invisibles y robustas (requisitos ms fuertes):
Slo vistas por la entidad autorizada.
Soportar operaciones sobre los datos.
Visible sobre fotocopias o escaneado.
Algunas Tcnicas:
Introduccin de informacin en bits menos significativos de pixels.
Transformacin en coeficientes (fase) de coeficientes de DCT (transformada
discreta de coseno).
Otros: otras tcnicas relacionadas34
-
Criptografa simtrica ofrece servicio de
confidencialidad sobre la informacin
Los sistemas de cifrado deben ser
computacionalmente seguros
La seguridad se basa en un valor secreto
compartido (clave)
Problemas con la distribucin de clave
Conclusiones35