SlideShare una empresa de Scribd logo
1 de 16
Universidad de Cuenca
Nombre : David Valladarez
Tema : Algoritmos de Clave Simétrica
Índice
• Introducción Blowfish
• ¿Cifrado por Bloques?
• Función Feistel
• Algoritmo de Cifrado Blowfish
• ¿Qué es TwoFish?
• Componentes del Algoritmo
• MDS (Distancia de Separación Máxima )
• S-Box
• Planificación de claves
• Expansión de la clave de usuario
• Algoritmo de Cifrado TwoFish
Objetivos
• Conocer las principales características de los algoritmos Blowfish y TwoFish
 Conocer el funcionamiento Feistel
 Componentes del algoritmo TwoFish
• Conocer el funcionamiento de los algoritmo Blowfish y TwoFish
Introducción Blowfish
• Fue desarrollado por Bruce Schneier en 1993 como una alternativa para
reemplazar a DES como estándar de cifrado.
• Es un algoritmo que ofrece un cifrado de alta seguridad
 Hasta el momento se desconoce algún tipo de criptoanálisis efectivo en su contra.
• Implementa el cifrado por bloques con una longitud de clave variable y una
función Feistel que le permite hacer cifrado y descifrado idénticos.
¿Cifrado por Bloques?
• Es una unidad de cifrado de clave simétrica(se usa una misma clave para cifrar y
descifrar mensajes) que opera en grupos de bits de longitud fija, llamados bloques,
aplicándoles una transformación invariante.
Función Feistel
• Es un método de cifrado en bloque con una estructura
particular.
• Algoritmo
 Se selecciona una cadena, N, normalmente de 64 o 128 bits.
 Se la divide en dos subcadenas, L y R, de igual longitud (N/2)
 Se toma una función, F, y una clave Ki
 Se realizan una serie de operaciones complejas con F y Ki y
con L o R
 La cadena obtenida se cambia por la cadena con la que no se
han realizado operaciones, y se siguen haciendo las rondas.
Ejemplo
• El algoritmo usará bloques de tamaño 8 caracteres.
• Tendrá dos vueltas y en cada vuelta realizará una operación de
 Sustitución
 Una función : 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ª
Algoritmo de
Cifrado Blowfish
• Un bloque de 64bits se divide en
dos bloques de 32bits (L y R)
• Se realiza una operación XOR a los
primeros 32bits(L) con la primera
subclave(K) y se realiza la función F
con el resultado de la operación
• Se realiza una operación XOR con
la segunda parte de los 32
bits(R) con el resultado de la
función F(L).
• Se intercambian posiciones (R pasa a ser L y L pasa a ser R) y se repite el proceso
anterior por 16 iteraciones.
• Al terminar la ultima iteracion no se realizara el intercambio.
• Se realiza la operacion XOR entre el valor alojado en L y la subclave 18.
• Se realiza la operacion XOR entre el valor alojado en R y la subclave 17.
• Se unen los dos fragmentos del bloque para generar nuevamente un bloque de 64bits
ya cifrado
¿Qué es TwoFish?
• Fue diseñado por Bruce Schneier, John Kelsey, Doug Whiting, David Warner,
Chris Hall y Niels Ferguson en el año de 1998.
• Se trata de un algoritmo Feistel que tiene como fundamento las
características de Blowfish
• Acorde a las especificaciones que el NIST(National Institute of Standards
and Technology) dio para seleccionar al nuevo estándar de cifrado, Twofish
cifra bloques de texto plano de 128 bits, así como longitud de clave
seleccionable entre 128, 192 y 256 bits.
• No se conoce un ataque contra Twofish más eficiente que la búsqueda de
claves por la fuerza bruta.
Componentes del Algoritmo
• A lo largo de 16 rondas, se aplica una red Feistel que consiste en sustitución
mediante cajas,
• Dos subfunciones especiales consistentes en una matriz Distancia de
Separación Máxima (MDS) y una Transformación Pseudo Hadamart (PHT) y
la mezcla con dos subclaves de ronda
• La planificación de claves se lleva a cabo mediante el uso de una matriz
derivada de un código Reed-Solomon (RS).
MDS (Distancia de Separación
Máxima )
• Para un cógodio q-ary(n , M ,d)
• Esto implica que para cada una [ n , k ] – code debemos tener
• De lo cual se deduce que k ≤ n - d + 1 o d ≤ n - k + 1
Un código lineal que cumple con este límite se denomina Máximo Código de
distancia separable (MDS)
S-Box
• Es un componente básico de los algoritmos de cifrado de clave simétrica.
• En los cifradores por bloques son usadas a menudo para oscurecer la
relación existente entre texto plano y texto cifrado
• En general, una S-Box toma un número m de bits de entrada y los
transforma en n bits de salida
• Las Tablas prefijadas se usan en algunos algoritmos, como DES, mientras
que otros cifradores usan S-Boxes dependientes de la clave, como en
Blowfish y Twofish.
Planificación de claves
• A partir de la clave de usuario, se generará un conjunto de 40 subclaves
(cada una de 32 bits de longitud), las 4 cajas-S y de 2 a 4 subclaves
adicionales que trabajan dentro de las cajas-S.
Expansión de la
clave de usuario
Para este caso, se requiere dos veces el uso
de la función MSD con dos entradas cada
una.
La salida de la función MSD entra a la
transformación PHT
Aplican rotaciones circulares únicamente a
una entrada
Algoritmo de
Cifrado TwoFish
• Una vez que se ha planificado las
subclaves de ronda y cajas-S, se
procede a cifrar bloques de texto de
128 bits.
• sustitución por cajas-S,
• mutiplicación por matriz MDS,
• transformación mediante PHT
• mezcla con las subclaves de ronda.
Conclusión
• Podemos decir que TwoFish es mejor que Blowfish ya que es mas completo
pos las S- Boxes y sus transformaciones PHT, pero aun así en ninguno de los
dos se han encontrado un ataque más que por fuerza bruta.
Links Información
• http://www-math.ucdenver.edu/~wcherowi/courses/m7823/mdscodes.pdf
• http://samhain.softgot.com/criptografia/lecturasnotas/algoritmos/twofish.pdf

Más contenido relacionado

La actualidad más candente

Ejercicio creacion de ipv6 freddy beltran
Ejercicio creacion de ipv6  freddy beltranEjercicio creacion de ipv6  freddy beltran
Ejercicio creacion de ipv6 freddy beltranbeppo
 
Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6bramstoker
 
Algoritmo congruencial aditivo
Algoritmo congruencial aditivoAlgoritmo congruencial aditivo
Algoritmo congruencial aditivoEwing Ma
 
Tabla comparativa servidores web
Tabla comparativa servidores webTabla comparativa servidores web
Tabla comparativa servidores webjuancma77
 
Documents.tips metodo para-el-calculo-de-subredes
Documents.tips metodo para-el-calculo-de-subredesDocuments.tips metodo para-el-calculo-de-subredes
Documents.tips metodo para-el-calculo-de-subredesCristian Oporta Villalobos
 
Ejercicios redes
Ejercicios redesEjercicios redes
Ejercicios redesChars Orden
 
Caracteristicas De Una Red De Area Local (
Caracteristicas De Una Red De Area Local (Caracteristicas De Una Red De Area Local (
Caracteristicas De Una Red De Area Local (Nelly Flores
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedioGuillermo
 
Configuracion y direccionamiento del router
Configuracion y direccionamiento del routerConfiguracion y direccionamiento del router
Configuracion y direccionamiento del routeryoes1053
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
Comandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoComandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoCISCO NETWORKING
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 
Componentes del microprocesador y vista funcional
Componentes del microprocesador y vista funcionalComponentes del microprocesador y vista funcional
Componentes del microprocesador y vista funcionalIsrael Zamora
 
ejercicios de subnetting
ejercicios de subnettingejercicios de subnetting
ejercicios de subnettingMarcelo Herrera
 
Tecnicas de escaneo de puertos
Tecnicas de escaneo de puertosTecnicas de escaneo de puertos
Tecnicas de escaneo de puertosFrancisco Vergara
 
IPv6 - Internet Protocol version 6 v2
IPv6 - Internet Protocol version 6 v2IPv6 - Internet Protocol version 6 v2
IPv6 - Internet Protocol version 6 v2Gianpietro Lavado
 
Introducción al Direccionamiento IPv6
Introducción al Direccionamiento IPv6Introducción al Direccionamiento IPv6
Introducción al Direccionamiento IPv6Educática
 

La actualidad más candente (20)

Ejercicio creacion de ipv6 freddy beltran
Ejercicio creacion de ipv6  freddy beltranEjercicio creacion de ipv6  freddy beltran
Ejercicio creacion de ipv6 freddy beltran
 
1
11
1
 
Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6
 
Algoritmo congruencial aditivo
Algoritmo congruencial aditivoAlgoritmo congruencial aditivo
Algoritmo congruencial aditivo
 
Tabla comparativa servidores web
Tabla comparativa servidores webTabla comparativa servidores web
Tabla comparativa servidores web
 
Documents.tips metodo para-el-calculo-de-subredes
Documents.tips metodo para-el-calculo-de-subredesDocuments.tips metodo para-el-calculo-de-subredes
Documents.tips metodo para-el-calculo-de-subredes
 
Ejercicios redes
Ejercicios redesEjercicios redes
Ejercicios redes
 
Caracteristicas De Una Red De Area Local (
Caracteristicas De Una Red De Area Local (Caracteristicas De Una Red De Area Local (
Caracteristicas De Una Red De Area Local (
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Configuracion y direccionamiento del router
Configuracion y direccionamiento del routerConfiguracion y direccionamiento del router
Configuracion y direccionamiento del router
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Comandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoComandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos cisco
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Componentes del microprocesador y vista funcional
Componentes del microprocesador y vista funcionalComponentes del microprocesador y vista funcional
Componentes del microprocesador y vista funcional
 
ejercicios de subnetting
ejercicios de subnettingejercicios de subnetting
ejercicios de subnetting
 
Tabla De Transicion
Tabla De TransicionTabla De Transicion
Tabla De Transicion
 
Tecnicas de escaneo de puertos
Tecnicas de escaneo de puertosTecnicas de escaneo de puertos
Tecnicas de escaneo de puertos
 
IPv6 - Internet Protocol version 6 v2
IPv6 - Internet Protocol version 6 v2IPv6 - Internet Protocol version 6 v2
IPv6 - Internet Protocol version 6 v2
 
Direccionamiento Ip Y Subredes Ejercicios Resueltos
Direccionamiento Ip Y Subredes Ejercicios ResueltosDireccionamiento Ip Y Subredes Ejercicios Resueltos
Direccionamiento Ip Y Subredes Ejercicios Resueltos
 
Introducción al Direccionamiento IPv6
Introducción al Direccionamiento IPv6Introducción al Direccionamiento IPv6
Introducción al Direccionamiento IPv6
 

Destacado

Destacado (7)

Curso: Seguridad física y criptografía: Algoritmo DES
Curso: Seguridad física y criptografía: Algoritmo DESCurso: Seguridad física y criptografía: Algoritmo DES
Curso: Seguridad física y criptografía: Algoritmo DES
 
The Blowfish Effect
The Blowfish EffectThe Blowfish Effect
The Blowfish Effect
 
Algoritmos de clave secreta, privada o simetrica.
Algoritmos de clave secreta, privada o simetrica.Algoritmos de clave secreta, privada o simetrica.
Algoritmos de clave secreta, privada o simetrica.
 
Blowfish Cryptosystem
Blowfish Cryptosystem Blowfish Cryptosystem
Blowfish Cryptosystem
 
MicroC/OS-II
MicroC/OS-IIMicroC/OS-II
MicroC/OS-II
 
Unit 4 Real Time Operating System
Unit 4 Real Time Operating SystemUnit 4 Real Time Operating System
Unit 4 Real Time Operating System
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 

Similar a Algoritmo Blowfish y TwoFish

Tema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaTema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaDaniel Pecos Martínez
 
Criptografia convencional
Criptografia convencionalCriptografia convencional
Criptografia convencionalluisantonio222
 
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasJorge
 
Encriptacion
EncriptacionEncriptacion
Encriptacionmenamigue
 
algoritmos-criptograficos.ppt
algoritmos-criptograficos.pptalgoritmos-criptograficos.ppt
algoritmos-criptograficos.pptMildredEchezano
 
Algoritmos criptograficos
Algoritmos criptograficosAlgoritmos criptograficos
Algoritmos criptograficosIsrra AguiMor
 
Encriptación simétrica-AES Y RC2
Encriptación simétrica-AES Y RC2Encriptación simétrica-AES Y RC2
Encriptación simétrica-AES Y RC2Moisés Arévalo Sf
 
Introduccion a la criptografia
Introduccion a la criptografiaIntroduccion a la criptografia
Introduccion a la criptografiaTensor
 
Direcciones ipv4 e ipv6
Direcciones ipv4 e ipv6Direcciones ipv4 e ipv6
Direcciones ipv4 e ipv6jeka1995
 
Dispositivos de interconexión de
Dispositivos de interconexión deDispositivos de interconexión de
Dispositivos de interconexión deMartin Zuñiga
 
Aes tipo de encriptacion ppt utp
Aes tipo de encriptacion  ppt  utp Aes tipo de encriptacion  ppt  utp
Aes tipo de encriptacion ppt utp Home
 

Similar a Algoritmo Blowfish y TwoFish (20)

Algoritmos de clave simétrica
Algoritmos de clave simétricaAlgoritmos de clave simétrica
Algoritmos de clave simétrica
 
Des
DesDes
Des
 
ALGORITMO DES
ALGORITMO DESALGORITMO DES
ALGORITMO DES
 
Tema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaTema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la Criptografía
 
Criptografia convencional
Criptografia convencionalCriptografia convencional
Criptografia convencional
 
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
 
Encriptacion
EncriptacionEncriptacion
Encriptacion
 
algoritmos-criptograficos.ppt
algoritmos-criptograficos.pptalgoritmos-criptograficos.ppt
algoritmos-criptograficos.ppt
 
Algoritmos criptograficos
Algoritmos criptograficosAlgoritmos criptograficos
Algoritmos criptograficos
 
Encriptación simétrica-AES Y RC2
Encriptación simétrica-AES Y RC2Encriptación simétrica-AES Y RC2
Encriptación simétrica-AES Y RC2
 
Tipos de cifrado
Tipos de cifradoTipos de cifrado
Tipos de cifrado
 
Introduccion a la criptografia
Introduccion a la criptografiaIntroduccion a la criptografia
Introduccion a la criptografia
 
12 cifrasimetrica
12 cifrasimetrica12 cifrasimetrica
12 cifrasimetrica
 
Direccionamiento
DireccionamientoDireccionamiento
Direccionamiento
 
Encriptacion mark
Encriptacion markEncriptacion mark
Encriptacion mark
 
Direcciones ipv4 e ipv6
Direcciones ipv4 e ipv6Direcciones ipv4 e ipv6
Direcciones ipv4 e ipv6
 
Dispositivos de interconexión de
Dispositivos de interconexión deDispositivos de interconexión de
Dispositivos de interconexión de
 
I pv4 e ipv6
I pv4 e ipv6I pv4 e ipv6
I pv4 e ipv6
 
Cifradores
CifradoresCifradores
Cifradores
 
Aes tipo de encriptacion ppt utp
Aes tipo de encriptacion  ppt  utp Aes tipo de encriptacion  ppt  utp
Aes tipo de encriptacion ppt utp
 

Algoritmo Blowfish y TwoFish

  • 1. Universidad de Cuenca Nombre : David Valladarez Tema : Algoritmos de Clave Simétrica
  • 2. Índice • Introducción Blowfish • ¿Cifrado por Bloques? • Función Feistel • Algoritmo de Cifrado Blowfish • ¿Qué es TwoFish? • Componentes del Algoritmo • MDS (Distancia de Separación Máxima ) • S-Box • Planificación de claves • Expansión de la clave de usuario • Algoritmo de Cifrado TwoFish
  • 3. Objetivos • Conocer las principales características de los algoritmos Blowfish y TwoFish  Conocer el funcionamiento Feistel  Componentes del algoritmo TwoFish • Conocer el funcionamiento de los algoritmo Blowfish y TwoFish
  • 4. Introducción Blowfish • Fue desarrollado por Bruce Schneier en 1993 como una alternativa para reemplazar a DES como estándar de cifrado. • Es un algoritmo que ofrece un cifrado de alta seguridad  Hasta el momento se desconoce algún tipo de criptoanálisis efectivo en su contra. • Implementa el cifrado por bloques con una longitud de clave variable y una función Feistel que le permite hacer cifrado y descifrado idénticos.
  • 5. ¿Cifrado por Bloques? • Es una unidad de cifrado de clave simétrica(se usa una misma clave para cifrar y descifrar mensajes) que opera en grupos de bits de longitud fija, llamados bloques, aplicándoles una transformación invariante.
  • 6. Función Feistel • Es un método de cifrado en bloque con una estructura particular. • Algoritmo  Se selecciona una cadena, N, normalmente de 64 o 128 bits.  Se la divide en dos subcadenas, L y R, de igual longitud (N/2)  Se toma una función, F, y una clave Ki  Se realizan una serie de operaciones complejas con F y Ki y con L o R  La cadena obtenida se cambia por la cadena con la que no se han realizado operaciones, y se siguen haciendo las rondas.
  • 7. Ejemplo • El algoritmo usará bloques de tamaño 8 caracteres. • Tendrá dos vueltas y en cada vuelta realizará una operación de  Sustitución  Una función : 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ª
  • 8. Algoritmo de Cifrado Blowfish • Un bloque de 64bits se divide en dos bloques de 32bits (L y R) • Se realiza una operación XOR a los primeros 32bits(L) con la primera subclave(K) y se realiza la función F con el resultado de la operación • Se realiza una operación XOR con la segunda parte de los 32 bits(R) con el resultado de la función F(L). • Se intercambian posiciones (R pasa a ser L y L pasa a ser R) y se repite el proceso anterior por 16 iteraciones. • Al terminar la ultima iteracion no se realizara el intercambio. • Se realiza la operacion XOR entre el valor alojado en L y la subclave 18. • Se realiza la operacion XOR entre el valor alojado en R y la subclave 17. • Se unen los dos fragmentos del bloque para generar nuevamente un bloque de 64bits ya cifrado
  • 9. ¿Qué es TwoFish? • Fue diseñado por Bruce Schneier, John Kelsey, Doug Whiting, David Warner, Chris Hall y Niels Ferguson en el año de 1998. • Se trata de un algoritmo Feistel que tiene como fundamento las características de Blowfish • Acorde a las especificaciones que el NIST(National Institute of Standards and Technology) dio para seleccionar al nuevo estándar de cifrado, Twofish cifra bloques de texto plano de 128 bits, así como longitud de clave seleccionable entre 128, 192 y 256 bits. • No se conoce un ataque contra Twofish más eficiente que la búsqueda de claves por la fuerza bruta.
  • 10. Componentes del Algoritmo • A lo largo de 16 rondas, se aplica una red Feistel que consiste en sustitución mediante cajas, • Dos subfunciones especiales consistentes en una matriz Distancia de Separación Máxima (MDS) y una Transformación Pseudo Hadamart (PHT) y la mezcla con dos subclaves de ronda • La planificación de claves se lleva a cabo mediante el uso de una matriz derivada de un código Reed-Solomon (RS).
  • 11. MDS (Distancia de Separación Máxima ) • Para un cógodio q-ary(n , M ,d) • Esto implica que para cada una [ n , k ] – code debemos tener • De lo cual se deduce que k ≤ n - d + 1 o d ≤ n - k + 1 Un código lineal que cumple con este límite se denomina Máximo Código de distancia separable (MDS)
  • 12. S-Box • Es un componente básico de los algoritmos de cifrado de clave simétrica. • En los cifradores por bloques son usadas a menudo para oscurecer la relación existente entre texto plano y texto cifrado • En general, una S-Box toma un número m de bits de entrada y los transforma en n bits de salida • Las Tablas prefijadas se usan en algunos algoritmos, como DES, mientras que otros cifradores usan S-Boxes dependientes de la clave, como en Blowfish y Twofish.
  • 13. Planificación de claves • A partir de la clave de usuario, se generará un conjunto de 40 subclaves (cada una de 32 bits de longitud), las 4 cajas-S y de 2 a 4 subclaves adicionales que trabajan dentro de las cajas-S. Expansión de la clave de usuario Para este caso, se requiere dos veces el uso de la función MSD con dos entradas cada una. La salida de la función MSD entra a la transformación PHT Aplican rotaciones circulares únicamente a una entrada
  • 14. Algoritmo de Cifrado TwoFish • Una vez que se ha planificado las subclaves de ronda y cajas-S, se procede a cifrar bloques de texto de 128 bits. • sustitución por cajas-S, • mutiplicación por matriz MDS, • transformación mediante PHT • mezcla con las subclaves de ronda.
  • 15. Conclusión • Podemos decir que TwoFish es mejor que Blowfish ya que es mas completo pos las S- Boxes y sus transformaciones PHT, pero aun así en ninguno de los dos se han encontrado un ataque más que por fuerza bruta.
  • 16. Links Información • http://www-math.ucdenver.edu/~wcherowi/courses/m7823/mdscodes.pdf • http://samhain.softgot.com/criptografia/lecturasnotas/algoritmos/twofish.pdf