Tema 2. Criptosistemas de clave simétrica.pdf

35
Tema 2. Criptosistemas de Clave Simétrica Seguridad en Redes

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