02 PPT - Tema2
02 PPT - Tema2
02 PPT - Tema2
Tema 2.
Criptografía. Criptografía de Clave Secreta.
Profesor: Fco. Javier Bel B.
Javier.bel@uneatlantico.es
Tema 2. ÍNDICE
• Introducción
1
• Criptografía
2
La información es poder
NECESIDAD: Compartir esa información sólo con quien yo
quiero.
Cripto: Ocultar .
Graphos: Escribir.
Elementos indispensables:
- Algoritmo
- Clave. ¿Punto débil?
Tipos:
Un ejemplo:
DES y TDES.
DES y TDES(3).
Estructura básica
- 16 fases idénticas (rondas).
- Una permutación inicial (PI)
y otra al finalizar el proceso (PF).
(son funciones inversas)
- División del bloque en 2 mitades
y procesadas alternativamente
(Esquema Feisel).
- La función F mezcla la mitad del
bloque con parte de la clave.
DES y TDES(4).
Función F.
1. Expansión. (De 32 a 48 nits)
2. Mezcla. XOR con subclave.
3. Sustitución. 8 Cajas Si. 6 bits de
entrada y 4 de salida.
4. Permutación. Los 32 bits de
salida se reordenan.
Tabla PI
Tabla PF
Tabla E
Tabla P
Tabla PC1
Tabla PC2
KASUMI.
Características:
- Emplea el algoritmo MISTY1, pero con actualizaciones
hardware.
- Tamaño de bloque de 64 bits.
- Tamaño de clave de 128 bits.
- Algoritmo de tipo Cifrado Feistel con ocho vueltas y con una
estructura recursiva, con subcomponentes de tipo similar a
Feistel.
DEFINICION DE LA FUNCION fi
DEFINICION DE LA FUNCION FL
DEFINICION DE LA FUNCION FI
- La entrada de 16 bits I se divide en dos
partes, de 9 bits L0 (los 9 primeros
empezando por la izquierda) y 7 bits R0,
de forma que I = L0 || R0
- La clave de 16 igualmente se divide en
dos partes:
- De 7 bits KIi,j,1
- De 9 KIi,j,2,
de forma que KIi,j = KIi,j,1 || KIi,j,2.
- La función emplea dos cajas, S7 (que
opera con los tramos de 7 bits) y S9 (que
opera con los tramos de 9 bits).
- Emplea dos operaciones lógicas
adicionales, ZE(x), y TR(x).
Seguridad Informática y Criptografía: Tema 2: Criptografía. Criptografía de Clave Secreta
26
4. Algoritmos criptografía simétrica de bloque (16).
KASUMI (7).
DEFINICION DE LA FUNCION FI
S9
BLOWFISH.
DEFINICION FUNCION F
1. Inicializamos la matriz Ki (de 32 bits cada una) y las Si con una cadena
formada por los dígitos hexadecimales del número PI:P1 =0x243f6a88;
P2 =0x85a308d3; P3 = 0x13198a2e; ….
2. A continuación, se realizan las siguientes operaciones:
a. Se realiza un XOR entre P1 y los 32 bits primeros de la clave K
b. Se realiza un XOR entre P2 y los 32 bits siguientes de la clave K
c. Se repite este paso hasta que tenemos todo el K-Array cubierto.
Para claves cortas (como de 64 bits), lo que se hace es repetir la
clave hasta tener todo el array completo (KKKKKK).
d. Una vez tenemos estas claves Ki iniciales, se realiza el proceso
de encriptación con una cadena vacía (64 bits a 0).
e. El resultado de la encriptación del paso d sustituye a K1 y K2.
f. Se vuelve a encriptar el resultado del paso d con los valores K’s
modificados.
g. El resultado encriptado del punto f sustituye a K3 y K4.
3. Esto se repite hasta cumplimentar todo el array K, y las s-boxes.
AES.
Características:
- matriz de sustitución y permutación.
- tamaño de bloque fijo de 128 bits.
- las longitudes de clave pueden ser de 128,
192 o 256 bits.
AES (2).
Estructura básica.
AES (3).
Estructura básica(2).
Funciones que se realizan en cada ronda:
- ronda inicial:
- La entrada se divide en bloques de 128 bits, y se aplica la
función AddRoundKey entre un bloque de 128 bits y la clave
inicial K.
- n-2 rondas estándar.
- Función Subbytes
- Función ShiftRow
- Función MixColumns
- Función AddRoundKey (clave Ki, con 1<=i<=n-1).
- Ronda final
- Función Subbytes
- Función ShiftRow
- Función AddRoundKey (clave Kn)
AES (4).
Función AddRoundKey.
Función SubBytes.
Función SiftRows.
Función MixColumns.
Generación subclaves.
Si la nueva
columna de la SubBytes
matriz es múltiplo RotWord
de Nk
Si no lo es
CAMELLIA.
Desarrollado en Japón por la
Corporación Telefónica y Telegráfica y
la Corporación Eléctrica Mitsubishi,
con prestaciones y seguridad
equivalente al AES.
CAMELLIA (2).
Estructura básica.
- Cifra bloques de datos de 128 bits, con claves de 128, 192 o
256 bits.
CAMELLIA (3).
1.Dividimos el bloque de entrada en bloques de 128 bits.
2.El bloque de entrada I de 128 bits a procesar, se divide
en 2 bloques de 64 bits, de forma que Ii = Li || Ri.
3.A cada bloque se le aplica un XOR con la parte
correspondiente de la subclave kw.
4.Para cada ronda:
a.El bloque Li = Ri-1 XOR F(Li-1, ki).
b.El bloque Ri = Li-1.
c.Se intercambian los bloques.
5.Cada 6 rondas (excepto la última), se aplica lo siguiente:
a.Li = FL(Li)
b.Ri = FL-1(Ri)
6.Al final, cada bloque resultante realiza un XOR con la
clave Kw respectiva.
7.La salida final es la concatenación de ambos bloques de
64 bits.
CAMELLIA (4).
Definición Función F.
CAMELLIA (5).
50