Wuolah Free T3 Criptografia Simetrica

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

T3-Criptografia-simetrica.

pdf

Ineesdv

Criptografía

1º Grado en Ingeniería de la Ciberseguridad

Escuela Técnica Superior de Ingeniería Informática. Campus de


Móstoles
Universidad Rey Juan Carlos

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.
Tema 3. Criptografía Simétrica

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.

Reservados todos los derechos.


----------| | ------------

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.

Características: Función no biyectiva:


➢ H fuertemente no inyectiva: pues las entradas pueden ser muy entrada distinta, salida
diversas, pero hay pocas opciones de salida. M >>> m distinta
➢ H “resume” o “condensa” cadenas de bits
➢ Propiedades computacionales deseables: eficiencia, simplicidad y resistencia a
colisiones.

Usos:

➢ Con frecuencia, se utilizan para almacenar datos y hacer comparaciones rápidas


(passwords, credenciales...)
➢ Son piezas fundamentales para distintos escenarios de clave secreta o clave
pública: firma, cifrado, intercambio de clave, etc. Sirven para construir pruebas de
integridad o pruebas de conocimiento:
o Integridad: las alteraciones a un mensaje transmitido x pueden detectarse
si se envía una etiqueta H(x) a contrastar con el hash del mensaje recibido
(como veremos, los MACs son diseños específicos para este fin).
m, H(m) ---→ | (x,y) H(x) =? y

o Prueba de conocimiento: la publicación de un valor H(x) en un


determinado momento t0 sirve para demostrar conocimiento de x en t0.

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’)

( (𝑅), 𝑆𝑒𝑎 𝐻: {0,1}𝑛 → {0,1}𝑀 , 𝑀 ∈ 𝑁


𝑃𝑟𝑜𝑏[𝐴(𝐻, 1𝑛 ) = (𝑥, 𝑥 ′ ) ∈ 𝑡. 𝑞. 𝐻(𝑥) = 𝐻(𝑥 ′ )]
𝑒𝑠 𝑑𝑒𝑠𝑝𝑟𝑒𝑐𝑖𝑎𝑏𝑙𝑒 𝑒𝑛 𝑛 𝑝𝑎𝑟𝑎 𝑎𝑙𝑔ú𝑛 𝑝𝑜𝑙𝑖𝑛𝑜𝑚𝑖𝑜 "𝑙"

𝑈𝑛𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝜀: 𝑁 → 𝑅 𝑡 𝑠𝑒 𝑑𝑖𝑐𝑒 𝑑𝑒𝑠𝑝𝑟𝑒𝑐𝑖𝑎𝑏𝑙𝑒 𝑠𝑖 ∀𝑝 𝑝𝑜𝑙𝑖𝑛𝑜𝑚𝑖𝑜 𝑛0 ∈ 𝑁

Reservados todos los derechos.


1 1
𝜀(𝑛) < ∀𝑛 ≥ 𝑛0 . Idea: 𝜀(𝑛) ≈
| 𝑝(𝑛)| 𝑒𝑛

Al ser despreciables tienden a 0 más deprisa. Equivalen a la inversa de


un polinomio.

H, 1𝑛
A
x, x’

Resistencia a colisiones debilitada (es decir, más difícil para el atacante):

• Target-collision resistance (TCR):


➢ Entrada: descripción de H, parámetro de seguridad n, x elegido
uniformemente al azar en {0,1}n
➢ Salida: un valor x’ (distintos de x), cumpliendo H(x) = H(x’)

H, 1𝑛 , x
A
x’

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
• Preimage resistance (PR):
➢ Entrada: descripción de H, parámetro de seguridad n, elegido
uniformemente al azar en el rango de H.
➢ Salida: un valor x cumpliendo H(x) = y.

( H(x) = y ) y es el hash. Es aún más difícil que TCR.

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

𝑆𝑖 𝐻 𝑒𝑠 𝐶𝑅 → 𝐻 𝑒𝑠 𝑇𝐶𝑅 𝐻 → 𝑒𝑠 𝑃𝑅
¬𝑃𝑅 → ¬𝑇𝐶𝑅 → ¬𝐶𝑅

Reservados todos los derechos.


¿Cómo se construyen?
1. Construcción de una función de compresión (que sería una función hash pero
con tamaño de entrada prefijado), HC con dominio en {0,1}n y rango en {0,1}m.
2. Diseño de un mecanismo de extensión para que la función pueda tener
entradas de tamaño arbitrario.

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

Como x1 y x2 son elementos de Zq y q es un número que se escribe con


n bits, la definición anterior puede reescribirse para definir el dominio
de H como {0,1}2(n-1)

De modo similar, podemos explicitar la salida de H como una cadena de


bits. La función sólo será una función de compresión válida si los
elementos del grupo 𝒢 pueden representarse con menos de 2n-2 bits
(existen numerosos ejemplos).

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
Resumen histórico
➢ MD5: 1991, función hash con 128 bits de salida. Demostrada
completamente Insegura desde 2005, puesto que incluso es posible generar
colisiones controladas.
➢ FUNCIONES SHA: 1995, estándares del NIST.
o SHA-0: insegura

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.

Reservados todos los derechos.


Ataques de cumpleaños (Birthday Attacks)
1. Por el llamado Principio del Palomar, dada una función hash H con rango en
{0,2}n si evaluamos H en 2n + 1 entradas distintas encontraremos una colisión .
Ataque trivial de complejidad 𝒪(2n)
Objetivo: minimizar t, de modo que si evaluamos H en t entradas elegidas
uniformemente al azar, la probabilidad de encontrar una colisión sea lo mayor
posible.
2. Obviamente, si t = 𝜭(2n/2) , la probabilidad de encontrar una colisión es
aproximadamente ½. Así, si queremos que encontrar colisiones sea tan difícil
como buscar en un conjunto de tamaño 2128 tenemos que buscar una función
hash con rango de al menos 256 bits
NOTA: el mismo razonamiento vale si las t entradas son sobre textos
DISTINTOS, aunque no se elijan uniformemente al azar.

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).

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
MACs

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)

Reservados todos los derechos.


…incluso aunque se le dé acceso a un oráculo que genera etiquetas, (para la clave correcta)

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.

Paradigma Hash and MAC


Es el paradigma de autenticación de mensajes más utilizado en la actualidad (por ejemplo, en
el estándar llamado HMAC). La combinación de las dos herramientas proporciona tanto
integridad como autenticidad.

IDEA: dado un mensaje m de longitud arbitraria, se construye un hash de longitud prefijada


usando una función hash H resistente a colisiones. Después, se aplica un MAC sobre el
resultado.

¿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.

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
Cifradores históricos

Esquema de cifrado de clave privada


Consta de 3 algoritmos (Gen, Enc, Dec).

→ Gen: generación de claves, pptm, recibe como entrada 1n y genera la clave

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:

Reservados todos los derechos.


→ Cifrado por transposición (shift) – César (26 claves): saltos en el cifrado
transpuesto.
→ Cifrado por sustitución (substitution) – (26! claves ): cambiar la ordenación de un
alfabeto por otra ordenación.
→ Cifrado Vigenere (evitando el análisis de frecuencias): realizar tablas de
transposición/salto, consta de una palabra clave, que dada una secuencia de
letras hay que romperlas en bloques de N letras, y esta palabra clave te indica
qué alfabeto se debe utilizar para cada letra de cada bloque.
→ Cifrados por permutación (inicios del cifrado en bloque…): permutar las letras del
propio mensaje. Agrupar el mensaje en bloques de 5 letras.

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

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
Cifrado en flujo

Pieza base: Generadores pseudoaleatorios:


Informalmente, son funciones que tienen como entrada una semilla de longitud corta y
devuelven una secuencia mucho más larga.

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.

Г es un algoritmo determinista que corre en tiempo polinomial.

Para cada input s ∈ {0,1}n se devuelve una secuencia de bits Г(s) de longitud l(n).

La función l recibe el nombre de factor de expansión.

Tiene que cumplir:

1. Expansión: l(n)>n

2. Pseudoaleatorio: para cualquier pptm D (distinguidor) se cumple:

| Pr[D(r)=1] - Pr[D( Г(s) ) = 1] |= negl(n)

Reservados todos los derechos.


con |s|=n , |r|=l(n), siendo r un valor elegido con una distribución uniforme (real).

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)

Tomamos Г generador pseudoaletorio con factor de expansión l y construimos un


esquema de cifrado como sigue:

→ Gen(1n) elige k ∈ {0,1}n


→ Dado m ∈ {0,1}l(n) Enck(m):=Г(k) ⨁ m
→ Dado c ∈ {0,1}l(n) Deck(c):=Г(k) ⨁ c

Cifrado en flujo: La construcción anterior recibe el nombre de cifrado en flujo (stream cipher).

Teorema: si Г es un generador pseudoaleatorio, entonces el cifrado en flujo es seguro en un


cierto sentido (IND-EAV seguro).

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.

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Cifrado en bloque

Funciones pseudoaleatorias
En realidad, consiste en una familia de funciones indexadas por una clave secreta.

F : {0,1}l x {0,1}n → {0,1}n

(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.

Reservados todos los derechos.


Permutaciones pseudoaleatorias
Funciones pseudoaleatorias a las que se les pide que cada Fk(.) sea una permutación de {0,1}n
Se pide que, para cada clave, tanto la permutación como la inversa sean eficientemente
computables. Deben ser inyectivas: biyectivas y sobreyectivas, de esta manera aseguro que

𝐹𝑘−1 (𝑦) = 𝑥 , es decir, que sea reversible.

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.

Se usan como primitivas para la construcción de esquemas de cifrado de clave secreta.

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.

1. Electronic Code Book (ECB): Se cifra el mensaje de entrada bloque a bloque.


cj:=Fk(mj) Obs: es inseguro
2. Cipher Block Chaining (CBC): Se elige al azar una semilla aleatoria ( IV ) de n bits. Cada
bloque cifrado está relacionado con el anterior. c0:=IV cj:=Fk(mj ⨁ cj-1)
3. Output feedback (OFB): Se elige al azar un IV de longitud n. Construyo una máscara (rj)
aleatorios, cada bloque cifrado está relacionado con el anterior.
r0:=IV rj:=Fk(rj-1) c0:=IV cj:=mj ⨁ rj
4. Counter (CTR) Contador y secuencia de máscaras. Se elige al azar un IV de longitud n
ctr:=IV , c0:=IV Para j=1 hasta n hacemos: rj:=Fk(ctr+j) cj:= mj ⨁ rj

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)

Obs: OFB y CTR sólo necesitan, en realidad, una función pseudoaleatoria.

➢ IND: Seguridad Semántica, indistinguibilidad, que el adversario no se capaz de extraer


ninguna información sobre los textos cifrados.
➢ NM: maleabilidad, coger textos cifrados en el canal, y sacar cifrados válidos de manera

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.

Modos avanzados (AE)


Existen modos de operación especiales que añaden a la funcionalidad de confidencialidad la de
autenticación, se llaman modos de cifrado autenticado (Authenticated Encryption)

Algunos ejemplos: GCM, OCB, EAX, ChaCha20 + Poly1305

Construcciones. Ejemplos: DES y AES

Reservados todos los derechos.


Técnicas generales de diseño para cifradores en bloque
Paradigma confusión-difusión.

Confusión: Supongamos que la longitud de bloque es 128.

→ La clave determina 16 permutaciones f1, f2, …, f16 cuya longitud de bloque es 8.


→ Se divide x=x1||x2||…||x16 en bloques de 8 bits.
→ Se define Fk(x):=f1(x1)||…||f16(x16)

Técnicas generales de diseño


Difusión: los bits del output anterior se mezclan de acuerdo con una cierta permutación
(permutaciones de mezcla).

Los pasos confusión-difusión se repiten un cierto número de rondas.

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.

Otro principio de diseño


Efecto avalancha: cambiar un único bit del input debería afectar a todos los bits del output.
Para conseguirlo es suficiente con: 1. Para cada S-caja, si se cambia un único bit del input,
cambian al menos dos bits del output. 2. Para cada S-caja, la permutación mezcladora reparte
cada bit del output a una caja distinta para la siguiente ronda.

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
Redes de Feistel
Es un enfoque alternativo para construir cifradores de bloque. No se requiere que las S-cajas
sean permutaciones, pero se consigue que cada ronda se pueda invertir. Inicialmente se divide
el input en dos bloques L0 y R0 (parte izquierda y parte derecha).

En la ronda j se calcula el output mediante una S-caja fj (que dependerá 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.

Reservados todos los derechos.


DES (Data Encryption Standard)
Cifrador de bloque. Desarrollado en los 70 por IBM con la ayuda de la NSA (National Security
Agency) estadounidense. Adoptado como estándar por EEUU en 1977. Actualmente se
considera inseguro por su baja longitud de clave (56 bits).

• Diseño:

Consiste en una red de Feistel de 16 rondas.

̵ Longitud de bloque: 64 bits.


̵ Longitud de clave: 56 bits.
̵ Agenda de clave: en cada ronda se genera una subclave de 48 bits eligiendo 24 de
la parte izquierda y 24 de la parte derecha de la clave original. ¡La agenda de clave
es fija y pública!

Cada función de ronda fj se comporta del siguiente modo:

- El input de 32 bits se expande a 48 bits (duplicando la mitad). Al resultado se le


aplica XOR con la subclave kj
- A continuación, se procede con una ronda de sustitución-permutación:
1. La parte de sustitución consta de 8 S-cajas fijas que tienen entrada de 6 bits
y salida de 4 bits. Por tanto, se reduce la entrada de 48 bits a 32 bits de
nuevo.
2. Se aplica una permutación mezcladora a los 32 bits.

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
• Seguridad

El mejor ataque conocido en la práctica es búsqueda exhaustiva en el espacio de claves.


¡Pero el tamaño del espacio, 256, es demasiado pequeño hoy en día!

Un par de retos propuestos en 1997, en forma de pares input/output, con objetivo


recuperar la clave, fueron resueltos (96 días, 41 días). En 1998 Deep Crack (una máquina
de 250.000 $, diseñada ad hoc) resuelve otro en 56 horas.

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

Reservados todos los derechos.


una debilidad. ¡¡Se hace necesario buscar un nuevo estándar, con mayores longitudes
de clave y bloque (y más eficiente)!!

AES (Advanced Encryption Standard)


En 1997 el National Institute of Standards and Technology (NIST) estadounidense convocó una
competición para seleccionar un nuevo cifrador en bloque que sustituya a DES. La competición
fue de carácter abierto y 15 equipos de expertos de todo el mundo presentaron sus
propuestas.

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.

Descarga la app de Wuolah desde tu store favorita


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489
En cada ronda se aplican 4 operaciones al estado:

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.

En la última ronda se sustituye el último paso de MixColumns por un AddRoundKey


adicional. Esto evita que se puedan invertir los 3 últimos pasos.

Observación: para cada clave AES es una permutación; esto se sigue de que cada uno
de los pasos se puede invertir.

Reservados todos los derechos.


• Seguridad:
AES ha sufrido un intenso escrutinio tanto durante la
fase de selección como posteriormente y no se ha
encontrado ninguna vulnerabilidad.
Los únicos ataques no triviales son a variantes con
menos rondas de AES y, aun así, no son eficientes.
Actualmente AES se considera un cifrador en bloque
muy seguro y eficiente. Además, es libre y está
estandarizado. Buena elección para cualquier protocolo
en el que se necesite una permutación pseudoaleatoria.

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-2649489

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy