Publicado el 9 de Junio del 2018
678 visualizaciones desde el 9 de Junio del 2018
1,3 MB
119 paginas
Creado hace 18a (08/03/2006)
Capítulo 12
Cifrado Simétrico en Bloque
Seguridad Informática y Criptografía
Ultima actualización del archivo: 01/03/06
Este archivo tiene: 119 diapositivas
v 4.1
Material Docente de
Libre Distribución
Dr. Jorge Ramió Aguirre
Universidad Politécnica de Madrid
Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso,
reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los
créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de
Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.
Curso de Seguridad Informática y Criptografía © JRA
Capítulo 12: Cifrado Simétrico en Bloque
Página 473
Cifrado y descifrado genérico en bloque
MENSAJE (N bits)
BLOQUE A
BLOQUE B
N/2
⊕
FUNCIÓN f
Xi
⊕
A ⊕ Xi
N/2
ki
⊕
B ⊕ Xi
© Jorge Ramió Aguirre Madrid (España) 2006
A ⊕ Xi
B ⊕ Xi
⊕
FUNCIÓN f
Xi
ki
⊕
⊕
B
A
Puesto que Y ⊕ Xi ⊕ Xi = Y
Capítulo 12: Cifrado Simétrico en Bloque
Página 474
Cifrado tipo Feistel
Horst Feistel: inventor (IBM) del algoritmo LUCIFER a comienzos de
los años 70. El algoritmo fue utilizado por el Reino Unido. En 1974 se
propone a la NSA como estándar y en ese año dará origen al DES.
• Dado un bloque de N bits (típico 64) éste
se dividirá en dos mitades.
• Existirá una función unidireccional F
(muy difícil de invertir).
• Se realizan operaciones con la clave ki
sólo con una mitad del bloque, y se
permutan en cada vuelta las dos mitades,
operación que se repite durante n vueltas.
http://en.wikipedia.org/wiki/Feistel_network
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 475
Un ejemplo básico de cifrado tipo Feistel
El algoritmo usará bloques de tamaño 8 caracteres. Tendrá dos
vueltas y en cada vuelta realizará una operación de sustitución
S y una permutación P sobre la 1ª mitad.
Sustitución: Ci = (Mi +1 ) mod 27
Permutación: Ci = ∏3241 (el carácter 1º pasa a la 4ª posición
en el criptograma, el 4º a la 3ª, el 2º a la 2ª y el 3º a la 1ª)
Mensaje: M = STAR WARS, LA MISIÓN CONTINÚA
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 476
Cifrado tipo Feistel en cuerpo n = 27
M = STAR WARS, LA MISIÓN CONTINÚA
M = STAR WARS, LA MISIÓN CONTINÚA
M1 = STAR WARS LAMI SION CONT INUA
M1 = STAR WARS LAMI SION CONT INUA
S1 = TUBS WARS MBNJ SION DPÑU INUA
S1 = TUBS WARS MBNJ SION DPÑU INUA
P1 = BUST WARS NBJM SION ÑPUD INUA
P1 = BUST WARS NBJM SION ÑPUD INUA
M2 = WARS BUST SION NBJM INUA ÑPUD
M2 = WARS BUST SION NBJM INUA ÑPUD
S2 = XBST BUST TJPÑ NBJM JÑVB ÑPUD
S2 = XBST BUST TJPÑ NBJM JÑVB ÑPUD
P2 = SBTX BUST PJÑT NBJM VÑBJ ÑPUD
P2 = SBTX BUST PJÑT NBJM VÑBJ ÑPUD
Si: +1 mod 27
Pi: ∏3241
Primera
vuelta
Segunda
vuelta
C = SBTX BUST PJÑT NBJM VÑBJ ÑPUD
Aunque le parezca increíble, el DES hará prácticamente lo mismo
trabajando con bits y con funciones un poco más “complejas”.
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 477
Cifradores de bloque más conocidos
Algoritmo Bloque (bits)
Lucifer 128
64
DES
64
Loki
RC2
64
64
CAST
Blowfish
64
64
IDEA
Clave (bits)
Vueltas
128
56
64
variable
64
variable
128
16
16
16
--
8
16
8
Skipjack
Rijndael
64
128
80
128 o más
32
flexible
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 478
Características de estos algoritmos (1)
• Lucifer: algoritmo original tipo Feistel usado a comienzos de
los años 70 por en el Reino Unido y que posteriormente dará
lugar al DES.
• DES: algoritmo tipo Feistel que se convirtió en estándar
durante casi treinta años. Hoy es vulnerable por su pequeña
longitud de clave y ha dejado de ser estándar mundial.
• Loki: algoritmo australiano similar al DES, también de tipo
Feistel.
• RC2: algoritmo propuesto por Ron Rivest y que se incluye en
navegadores de Internet desde 1999.
• CAST: algoritmo canadiense tipo Feistel que se ofrece como
uno de los algoritmos de cifra en últimas versiones de PGP.
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 479
Características de estos algoritmos (2)
• Blowfish: algoritmo de tipo Feistel propuesto por Bruce
Schneier.
• IDEA: algoritmo europeo usado principalmente en el correo
electrónico PGP.
• Skipjack: propuesta de nuevo estándar en USA a finales de
los 90 para comunicaciones oficiales (tiene puerta trasera).
• Rijndael: nuevo estándar mundial desde finales de 2001,
conocido como AES, Advanced Encryption Standard.
Encontrará las especificaciones de éstos y otros algoritmos de
cifra simétrica y asimétrica en la siguiente página web.
http://www.quadibloc.com/crypto/intro.htm
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 480
Otros cifradores de bloque
128
64
64
64
Algoritmo Bloque (bits)
Twofish
Khufu
Khafre
Gost
RC5
SAFER 64
Akelarre
FEAL
variable
variable
64
64
Clave (bits)
Vueltas
variable variable
16, 24, 32
más vueltas
32
variable
8
variable
32
512
128
256
variable
64
variable
64
De éstos, los más conocidos son Twofish -uno de los candidatos a
AES- y que lo encontraremos en últimas versiones de PGP y RC5.
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 481
Características de estos algoritmos
• Twofish: Propuesto por Bruce Schneir después de Blowfish, de
tipo Feistel, diseño simple, sin claves débiles y multiplataforma.
• Khufu: algoritmo propuesto por Ralph Merkle con una clave
generada con un sistema de “cajas” S.
• Khafre: algoritmo propuesto por Ralph Merkle en el que la
clave ya no depende de las cajas S.
• Gost: algoritmo similar al DES con cajas S secretas propuesto
en la Unión Soviética.
• RC5: algoritmo propuesto por Ron Rivest; realiza operaciones
or exclusivo, suma modular y desplazamiento de bits.
• SAFER 64: algoritmo propuesto por James Massey.
• Akelarre: algoritmo español propuesto en 1996 por el CSIC,
Consejo Superior de Investigaciones Científicas.
• FEAL: algoritmo propuesto en Japón.
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 482
Algunas tasas de cifra comparativas
Velocidad de cifra de algoritmos en un PC 486 a 33 MHz
Algoritmo Kbytes/seg
DES
IDEA
Khufu (16 v)
RC5 (8 v)
SAFER (6 v)
Blowfish (12 v)
35
53
221
127
81
182
Algoritmo Kbytes/seg
Triple DES 12
FEAL (32 v) 91
Khufu (32 v) 115
RC5 (16 v) 65
SAFER (12 v) 41
Blowfish (20 v) 110
Fuente: Criptografía Digital. Fundamentos y
Aplicaciones. José Pastor y Miguel Angel Sarasa,
Prensas Universitarias de Zaragoza (1998).
Dada la baja velocidad
del PC ☺, estos valores
son sólo indicativos
para una comparación.
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 483
Algoritmos DES, IDEA y AES
Profundizaremos en estas diapositivas en los algoritmos
DES, Triple DES, IDEA y AES.
¿Por qué?
DES es un cifrador de Feistel, ha sido un estándar y en
aplicaciones bancarias se seguirá usando durante algún tiempo.
DES es de muy fácil comprensión y usa cajas S al igual que
varios algoritmos más modernos como el actual estándar AES.
Triple DES sigue siendo un estándar en e-commerce.
IDEA es un algoritmo seguro que hace uso de los conceptos de
inversos en un cuerpo finito, como todos los algoritmos de
cifra modernos, y se usa entre otros en la aplicación PGP.
AES (Rijndael) es el nuevo estándar de cifra avanzada.
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 484
Modos de cifra
Todos los algoritmos pueden usarse aplicando diversos
modos de cifra, entre ellos:
- ECB: Electronic CodeBook (libro electrónico de códigos)
- CBC: Cipher Block Chaining (encadenamiento de bloques)
- CFB: Cipher FeedBack (realimentación de bloques)
- OFB: Output FeedBack (realimentación bloque de salida)
Analizaremos cada uno de ellos para el caso del DES,
aunque el estudio es extensible a todos los demás ya que en
estos modos el cifrador se considera una caja negra.
http://www.itl.nist.gov/fipspubs/fip81.htm
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 485
Data Encryption Standard DES
DES (Data Encryption Standard) ha sido el estándar utilizado
mundialmente durante 25 años, generalmente en la banca. Hoy
presenta signos de envejecimiento y ha sucumbido a los diversos
criptoanálisis que contra él se viene realizando hace ya años.
FECHAS DE INTERÉS
1973: En EEUU la NBS National Bureaux of Standards llama a
concurso público para buscar un algoritmo criptográfico estándar.
1974: La NSA National Security Agency declara desierto el
primer concurso, publica unas segundas especificaciones y elige
Lucifer, algoritmo original de IBM (años 70) con variaciones.
1976: El DES se adopta como estándar y se autoriza para ser
utilizado en las comunicaciones no clasificadas del gobierno.
© Jorge Ramió Aguirre Madrid (España) 2006
Capítulo 12: Cifrado Simétrico en Bloque
Página 486
Especificaciones del algoritmo DES
Especificaciones del concurso
• El nivel de seguridad computacional debe ser alto.
• El algoritmo debe ser fácil de entender y deberá estar
especificado en todos sus detalles.
• La seguridad del sistema no debe verse afectada por la
publi
Comentarios de: Capítulo 12 - Cifrado Simétrico en Bloque (0)
No hay comentarios