Wuolah Free T3 Criptografia Simetrica
Wuolah Free T3 Criptografia Simetrica
Wuolah Free T3 Criptografia Simetrica
Ineesdv
Criptografía
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Primitivas
Función Hash
No es un cifrado porque no se puede revertir. Se enviaba el mensaje y posteriormente un
resumen o ‘’check sum’’, se utiliza como un código de control para detectar errores en la
transmisión.
m ‘’ resumen m’’
La función H con dominio en {0,1}* y rango en {0,1}m para m un número natural (entero
positivo) prefijado.
Usos:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
Propiedades: Una propiedad es más fuerte cuanto
• Resistencia a Colisiones (CR): más fácil sea para el adversario violar
Es una propiedad difícil de demostrar, se enuncia una propiedad.
en términos probabilísticos. Informalmente: no
debe existir un algoritmo eficiente que resuelva el siguiente problema:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
➢ Entrada: descripción de H, parámetro de seguridad n.
➢ Salida: dos valores x y x’, distintos, de ℓ(n) bits --- ℓ polinomial ---
cumpliendo que H(x) = H(x’)
H, 1𝑛
A
x, x’
H, 1𝑛 , x
A
x’
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
H, 1𝑛 , y
A
x
𝑆𝑖 𝐻 𝑒𝑠 𝐶𝑅 → 𝐻 𝑒𝑠 𝑇𝐶𝑅 𝐻 → 𝑒𝑠 𝑃𝑅
¬𝑃𝑅 → ¬𝑇𝐶𝑅 → ¬𝐶𝑅
Ejemplo:
Fijado un parámetro de seguridad n consideremos (la descripción de) un
grupo cíclico 𝒢 de orden q (con n bits ) y un generador g del mismo.
Supongamos que q es primo con probabilidad abrumadora.
Seleccionemos h al azar en 𝒢.
Para cada par de enteros (x1, x2) en Zq se define su hash como:
H(x1,x2)= g x1 h x2
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
o SHA-1: salida de 160 bits, sospechosa
o SHA-2: salidas de 256 o 512 bits.
Se construyen obteniendo una función de compresión a partir de un
cifrador en bloque con un método conocido como la construcción de
Davies-Meyer. Después se aumentan para recibir entradas de longitud
arbitraria usando la transformada de Merkle-Damgaard.
o SHA-3: También llamada Keccac, estándar del NIST desde 2012. Muy
diferente a sus predecesoras de la familia SHA: no usa la
construcción de Davies-Meyer y utiliza una construcción llamada de
esponja sustituyendo a la transformada de Merkle-Damgaard.
En conclusión:
̵ La existencia de ataques de cumpleaños obliga a, si queremos seguridad de N
bits, usar funciones hash de rango en {0,1}2N
̵ Los BA “directos” obligan a ocupar mucha memoria, pero existen mejoras
(ataques de cumpleaños de espacio-pequeño).
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Son herramientas para conseguir INTEGRIDAD, i.e., sirven para detectar si un mensaje ha sido
alterado (en la transmisión o mientras estaba almacenado).
Un MAC, message authentication code, es una terna de algoritmos (Gen, Mac, Vrfy):
1. Gen: generación de claves, pptm, entrada 1n salida una clave k (con menos de n bits)
2. Mac: generación de etiquetas, pptm, entrada k, m ∈ {0,1}* da como salida una
etiqueta t.
3. Vrfy: verificación, determinístico, entrada k, m, t, salida un bit b=1 (válido) o b=0
(inválido).
Corrección: Para todo n, k, m, t consistentes, se tiene Vrfy(k,m,t)=1
Idea: un adversario no debería ser capaz de crear una etiqueta t válida en un mensaje que no
ha sido construido por un usuario legítimo (i.e., que tenga la clave secreta)
CUIDADO: Los ataques por reenvío (replay attacks) quedan excluídos de esta definición. Para
evitarlos es necesario incluir técnicas como contadores o sellos de tiempo. Obviamos otros
problemas que tienen que ver con ataques colaterales (side-channels), como los ataques de
medición de tiempo o timing attacks.
¿Por qué es seguro? Intuición: si H es resistente a colisiones, autenticar H(m) es tan bueno
como autenticar m
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
Algunas pinceladas de seguridad
Tablas del Informe europeo ECRYPT 2018, resumen la seguridad de las primitivas relacionadas
con el tema del informe.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
secreta k.
→ Enc: algoritmo de cifrado, pptm, recibe como entrada una clave k y un texto claro
y da como salida un cifrado c . (obs: usaremos Enc(k,m) o Enck(m)
alternativamente para denotar su salida)
→ Dec: algoritmo de descifrado, recibe como entrada la clave k y un cifrado c, su
salida es m o ⊥.
Corrección: m= Dec(k, Enc(k, m))
Smart
El capítulo 3 del Smart, habla de todos estos tipos de cifrados:
Los cifradores históricos utilizan principalmente dos técnicas: la transposición, que tiene que
ver con manejar un cierto alfabeto e intercambiar unos signos de ese alfabeto por otros (por
ejemplo, el cifrado del César o los ROT); y
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Su distribución de salida ha de ser difícil de distinguir de una distribución aleatoria.
Para cada input s ∈ {0,1}n se devuelve una secuencia de bits Г(s) de longitud l(n).
1. Expansión: l(n)>n
Decimos que una función f : N → R es despreciable si para cada polinomio p(.) existe
n0 tal que si n>n0 entonces
f(n)<1/p(n)
Cifrado en flujo: La construcción anterior recibe el nombre de cifrado en flujo (stream cipher).
Múltiples cifrados: El cifrado en flujo no se mantiene seguro cuando se usa varias veces con la
misma clave. Problema: es determinista. Se detecta, por ejemplo, cuando un mensaje se envía
dos veces. Solución: la clave nunca se reutiliza; el esquema mantiene una secuencia de clave
que se va generando y actualizando para poder cifrar secuencialmente.
Funciones pseudoaleatorias
En realidad, consiste en una familia de funciones indexadas por una clave secreta.
(k,x) → Fk(x)
Se pide que al elegir una clave al azar la función correspondiente sea difícil de distinguir de una
función elegida completamente al azar. También se pide que cada función se pueda computar
eficientemente.
Cifrador en bloque
Es el nombre que reciben las permutaciones pseudoaleatorias cuando se usan en la práctica.
Parámetros que los definen:
→ l : longitud de clave.
→ n : longitud de bloque.
Modos de operación
Determina la forma de utilizar un cifrador en bloque. Las partes que se comunican comparten
una clave secreta k y usan la permutación Fk. Se supone que se tiene un mensaje cuya longitud
es múltiplo de la longitud de bloque n (si no es así, se completa con información supeflua). Se
divide el mensaje en bloques de longitud n: m=m0 || m1 || … || ms para cifrarlos.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
Seguridad de los modos
Teorema: los modos CBC, OFB y CTR son seguros si se emplea una permutación
pseudoaleatoria (seguridad IND-CPA)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
que se conoce la relación que hay entre los textos claros que hay detrás.
Implementación
Red de sustitución permutación: Las permutaciones {fj} son fijas y no dependen de la clave.
Reciben el nombre de S-cajas (cajas de sustitución). La dependencia de la clave se introduce al
principio de cada ronda mediante una agenda de clave (key schedule). Por ejemplo, haciendo
XOR del input con una subclave obtenida a partir de la clave.
→ Lj:=Rj-1
→ Rj:=Lj-1 ⨁fj(Rj-1)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Es fácil ver que cada una de estas rondas se puede invertir; compruébalo.
El output suele darse en orden invertido (Rn, Ln), para facilitar el proceso de descifrado.
• Diseño:
Por tanto, en la forma en que hemos descrito, DES no se considera seguro actualmente.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
• Aumentando la longitud de la clave: No es aconsejable modificar la estructura
interna porque se puede perder la seguridad. DES iterado: se aplica varias veces el
cifrador utilizando distintas claves.
• Variantes de DES:
→ 2DES(k1k2, m):=DES(k2,DES(k1,m))
→ 3DES3(k1k2k3, m):=DES(k3,DES-1(k2,DES(k1,m)))
→ 3DES2(k1k2, m):=3DES3(k1k2k1, m)
→ DESX(k k1k2, m):=k2 ⨁DES(k, k1 ⨁m)
Inconvenientes: Los iterados son poco eficientes. La longitud de clave efectiva baja por
ataques meet-in-the-middle. La longitud de bloque se mantiene baja y esto también es
Cada una de las propuestas fue detenidamente analizada por el NIST y, sobre todo, por el resto
de los equipos. En 1998 y 1999 se celebraron congresos en los que se expusieron los
criptoanálisis de las propuestas. Tras ellos se eligieron 5 finalistas.
En octubre de 2000 se eligió el algoritmo ganador: Rijndael. Diseñado por los belgas Daemen y
Rijmen, pasaría a ser el AES. Se reconoció que los 5 candidatos finalistas eran excelentes
cifradores en bloque y no se encontraron vulnerabilidades para ninguno de ellos.
• Diseño:
- Longitud de bloque: 128 bits.
- Longitud de clave: variable (128, 192 ó 256 bits).
- Número de rondas: 10 para clave de 128 bits; 12 para clave de 192 bits y 14 para
clave de 256 bits
Es, esencialmente, una red de sustitución-permutación. Un array 4x4 de bytes,
llamado estado (state) se va modificando a lo largo de las rondas. El estado inicial es
el input del cifrador.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
1. AddRoundKey: se genera una subclave de 128 bits a partir de la clave, se
interpreta como un array 4x4 de bytes y se hace XOR con el estado.
2. SubBytes: cada byte del estado se sustituye por otro mediante una S-caja fija para
todo el algoritmo.
3. ShiftRows: los bytes de cada fila del estado se desplazan hacia la izquierda. 0
posiciones en la primera fila; 1 posición en la segunda fila; 2 posiciones en la
tercera fila; 3 posiciones en la cuarta fila.
4. MixColumns: se multiplica el estado por una matriz 4x4 invertible fija.
Observación: para cada clave AES es una permutación; esto se sigue de que cada uno
de los pasos se puede invertir.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489