SlideShare una empresa de Scribd logo
Algoritmos de Clave
Simétrica
Christian Torres
marcelo.torres@ucuenca.ec
Universidad de Cuenca
Facultad de Ingeniería
Objetivos
• Dar a conocer AES-Rijndael y el Twofish
• Implementacion en código de los mismos
Contenido
• Introducción
• AES
• AES(Rijndael)
• TwoFish
• AES(Rijndael) VS Twofish
• Referencias
Introducción
• ¿Qué significa cifrar?
• Aplicar un algoritmo de cifrado junto con una clave, a una
determinada información que se quiere transmitir
confidencialmente.
• Dos o más usuarios, tienen una única clave secreta, esta clave
será la que cifrará y descifrará la información transmitida a través
del canal inseguro. La clave secreta de los dos usuarios es la
MISMA
AES-(Estandar de Encriptacion Avanzada)
• En 1997, el Instituto Nacional de Normas y Tecnología (NIST)
decidió realizar un concurso para escoger un nuevo algoritmo de
cifrado capaz de proteger información sensible durante el siglo
XXI. Este algoritmo se denominó Advanced Encryption Standard
(AES).
• Convocatoria:
• Ser de dominio público, disponible para todo el mundo.
• Ser un algoritmo de cifrado simétrico y soportar bloques de, como mínimo,
128 bits.
• Las claves de cifrado podrían ser de 128, 192 y 256 bits.
AES(Rijndael)-Reseña
• En agosto de 1998, el NIST seleccionó cinco finalistas con base en su
seguridad, eficiencia, simplicidad, flexibilidad y requerimientos de
memoria.
• Los finalistas y sus puntajes fueron los siguientes:
• 1. Rijndael (de Joan Daemen y Vincent Rijmen, 86 votos).
• 2. Serpent (de Ross Anderson, Eli Biham y Lars Knudsen, 59 votos).
• 3. Twofish (de un equipo encabezado por Bruce Schneier, 31 votos).
• 4. RC6 (de los Laboratorios RSA, 23 votos).
• 5. MARS (de IBM, 13 votos)
• En 2001 Rijndael se volvió un estándar del gobierno de Estados
Unidos publicado.
AES(Rijndael)-Especificacion
• Publico
• Un algoritmo de clave simétrico
• Puede aumentar la longitud de la clave según las necesidades,
siempre y cuando el tamaño sea múltiplo de 4 bytes (128-192-
256…)
• Disponible gratuitamente, bajo términos de ANSI(Instituto
Nacional Americano de Estandares)
AES(Rijndael)-Vetajas Desventajas:
• Ventajas:
• Gran velocidad de cifrado y desifrado
• No aumenta el tamaño del mensaje
• Desventajas:
• La seguridad depende de un secreto compartido entre el emisor y
el receptor
• La distribución de claves debe hacerse a travez de algún medio
seguro
AES(Rijndael) - Aplicaciones
• La protección de las comunicaciones digitales: Internet, TV digital,
comunicaciones móviles, redes de datos.
• Transferencia de documentos, comercio electrónico.
• Garantiza la seguridad y protección de software.
• .
• Mensajería militar.
• La firma digital de documentos.
AES(Rijndael)-Pseudocodigo-Inicio
• 1 ) AddRoundKey — cada byte del «state» es combinado con la
clave «round»; cada clave «round» se deriva de la clave de cifrado
usando una iteración de la clave.
AES(Rijndael)-Pseudocodigo-Rondas
• SubBytes — en este paso se realiza una sustitución no lineal donde
cada byte es reemplazado con otro de acuerdo a una tabla de
búsqueda.
AES(Rijndael)-Pseudocodigo-Rondas
• ShiftRows — en este paso se realiza una transposición donde cada
fila del «state» es rotada de manera cíclica un número
determinado de veces.
AES(Rijndael)-Pseudocodigo-Rondas
• MixColumns — operación de mezclado que opera en las columnas
del «state», combinando los cuatro bytes en cada columna usando
una transformación lineal.
AES(Rijndael)-Pseudocodigo-Rondas
• AddRoundKey.
AES(Rijndael)-Pseudocodigo-Final
1. SubBytes
2. ShiftRows
3. AddRoundKey
AES(Rijndael)-Codificación
Paquete javax.crypto :
Proporciona las clases e
interfaces para operaciones
criptográficas
• .Cipher -> Esta clase proporciona la funcionalidad de
un sistema de cifrado criptográfico para el cifrado y el
descifrado.
• .KeyGenerator ->Esta clase proporciona la
funcionalidad de un generador de clave secreta
(simétrica).
• .SecretKey -> Una clave secreta (simétrica). El
propósito de esta interfaz es agrupar (y proporcionar
seguridad de tipo) todas las interfaces de clave secreta.
• .spec -> Proporciona clases e interfaces para las
especificaciones clave y especificaciones de los
parámetros del algoritmo.
• .SecretKeySpec -> Esta clase especifica una clave
secreta de una manera independiente del proveedor.
AES(Rijndael)-Codificación
• Generamos una clave de 128 bits adecuada para AES (clave mul 4 bits)
• Obtiene el cifrado tipo AES, Electronic Codebook (ECB) Modos de operación para
encriptación de bloques.
• Si desea cifrar un mensaje de
texto que no sea múltiplo de
bloques de 8 bytes, el mensaje
de texto se debe rellenar con
bytes adicionales para que el
mensaje de texto sea
múltiplos de bloques de 8
bytes.
AES(Rijndael)-Codificación
• Se escribe byte a byte en hexadecimal el texto
• Se inicializa el cifrado para des encriptar, con la misma clave y se des encripta
Twofish
• En criptografía, Twofish es un método de criptografía simétrica
con cifrado por bloques.
• El tamaño de bloque en Twofish es de 128 bits y el tamaño de
clave puede llegar hasta 256 bits.
• Twofish llegó a la ronda final del concurso del NIST, pero no fue
elegido para la estandarización. TwoFish quedó tercero, tras
Rijndael y Serpent.
Twofish –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).
Twofish-Redes de Feistel
• Se trata de un método general para transformar cualquier función F en
una permutación.
• El fundamento de las redes de Feistel se basa en un mapeo, dependiente
de la clave, de un string de entrada en otro de salida.
• Cada vuelta ( o round ) de estas redes es llamada ciclo. En cada ciclo
todos los bits del bloque han sido modificados una vez.
• Twofish son 16 vueltas de una red de Feistel con una función F
Twofish-Cajas S(S-Boxes)
• Twofish usa 4 S-Boxes de 8 por 8 bits, diferentes, de clave
independiente.
• Éstas son construidas usando 2 matrices fijas de 8 por 8 bits
mediante permutaciones y parte de la clave lo que genera S-Boxes
variables.
Twofish-Matrices MDS
• Esta matriz es el principal mecanismo de difusión de Twofish.
• La MDS garantiza que el número de bytes de entrada cambiados
mas los de salida es al menos 5. En otras palabras, un cambio de
solo un byte en la entrada lleva a cambiar 4 bytes de la salida, y
por lo tanto un cambio de 2 bytes de entrada garantiza un cambio
de 3 en la salida, etc.
• Las matrices MDS son también conocidas como códigos RS (Reed-
Solomon).
• La estructura RS ayuda a defender contra ataques de clave
relacionada difundiendo el material de clave en dirección
ortogonal al flujo usado en computar los S-Boxes de 8 por 8 bits
usados en Twofish
Twofish-Transformación
Pseudo-Hadamard ( PHT)
• Una transformación PHT es una operación de mezcla que corre
rápido en software.
• Dadas dos entradas a y b de 32 bits, la PHT es:
• a’ = a + b mod 2^32
• b’ = a + 2b mod 2^32
• Twofish usa una PHT de 32 bits para mezclar las salidas
Twofish
AES(Rijndael) VS Twofish
1. AES es en realidad Rijndael mientras Twofish es uno de los finalista AES.
2. AES utiliza la red de sustitución-permutación mientras Twofish utiliza la
red de Feistel.
3. AES se puede romper en algunas formas(Version 8 rondas), mientras que
Twofish es irrompible.
4. AES implementa un menor número de rondas que Twofish
Referencias:
• Descripcion a fondo de Twofish , RC6 y MARS
http://materias.fi.uba.ar/6669/alumnos/1999/aes.pdf
Descripcion de clases e interfaces de JCE(Java Cryptographic
Extension)
http://personales.upv.es/~fjmartin/cdii_web/traspas/jce.pdf
“Sencilla explicación sobre AES”
https://es.slideshare.net/elvisvinda/sencilla-explicacin-sobre-aes
Redes de Computadoras Tanenbaum-4ta-edición
https://juliorestrepo.files.wordpress.com/2010/08/redes-de-
computadoras-tanenbaum-4ta-edicion-espanol.pdf
Gracias…
• Cifrar Online-AES-Twofish
• https://cifraronline.com/descifrar-aes
• Codigos
• https://github.com/marcelo1995/Encriptacion_AES_Twofish.git

Más contenido relacionado

PPT
Semana 12 ip avanzado
PDF
PPTX
Encriptación simétrica-AES Y RC2
PPTX
Algoritmo Blowfish y TwoFish
PDF
Aes tipo de encriptacion ppt utp
PPTX
Sencilla explicación sobre AES
PDF
Cifradores
PPTX
cifrado simétrico criptografia moderna I
Semana 12 ip avanzado
Encriptación simétrica-AES Y RC2
Algoritmo Blowfish y TwoFish
Aes tipo de encriptacion ppt utp
Sencilla explicación sobre AES
Cifradores
cifrado simétrico criptografia moderna I

Similar a Algoritmos de clave simétrica (20)

PPT
algoritmos-criptograficos.ppt
PDF
Encriptacion
PDF
Criptografia: Conceptos básicos e implementación con software libre
PPTX
Encriptacion simetrica.pptx
PPT
Algoritmos criptograficos
PPTX
Algoritmo aes
PDF
Introduccion a la criptografia
PDF
AES encriptacion.pdf
PPT
Algoritmos de clave secreta, privada o simetrica.
DOC
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
PDF
Tipos de cifrado
PDF
Criptografia convencional
PDF
Encriptacion mark
DOCX
Unidad 4 trabajo 6
PPTX
Metodos cifrados
PPT
12 cifrasimetrica
PPT
Common Scrambling Algorithm al descubierto
PPTX
Seguridad 1 - Redes de Computadoras
DOCX
Algoritmos Para Encriptar Claves
PPTX
Tipos de Cifrados-Simetrico y Asimetrico.pptx
algoritmos-criptograficos.ppt
Encriptacion
Criptografia: Conceptos básicos e implementación con software libre
Encriptacion simetrica.pptx
Algoritmos criptograficos
Algoritmo aes
Introduccion a la criptografia
AES encriptacion.pdf
Algoritmos de clave secreta, privada o simetrica.
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Tipos de cifrado
Criptografia convencional
Encriptacion mark
Unidad 4 trabajo 6
Metodos cifrados
12 cifrasimetrica
Common Scrambling Algorithm al descubierto
Seguridad 1 - Redes de Computadoras
Algoritmos Para Encriptar Claves
Tipos de Cifrados-Simetrico y Asimetrico.pptx
Publicidad

Último (20)

PDF
LIBRO UNIVERSITARIO DESARROLLO ORGANIZACIONAL BN.pdf
PPT
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
Durabilidad del concreto en zonas costeras
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
PPTX
Software para la educación instituciones superiores
DOC
informacion acerca de la crianza tecnificada de cerdos
PPTX
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
PPTX
OPERACION DE MONTACARGAS maneji seguro de
PDF
Primera formulación de cargos de la SEC en contra del CEN
PDF
Módulo-de Alcance-proyectos - Definición.pdf
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PDF
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
PDF
S15 Protección de redes electricas 2025-1_removed.pdf
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PDF
LIBRO UNIVERSITARIO SOFTWARE PARA INGENIERIA BN.pdf
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PDF
Informe Estudio Final Apagon del 25 de febrero
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PDF
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
LIBRO UNIVERSITARIO DESARROLLO ORGANIZACIONAL BN.pdf
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
Sustancias Peligrosas de empresas para su correcto manejo
Durabilidad del concreto en zonas costeras
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
Software para la educación instituciones superiores
informacion acerca de la crianza tecnificada de cerdos
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
OPERACION DE MONTACARGAS maneji seguro de
Primera formulación de cargos de la SEC en contra del CEN
Módulo-de Alcance-proyectos - Definición.pdf
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
S15 Protección de redes electricas 2025-1_removed.pdf
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
LIBRO UNIVERSITARIO SOFTWARE PARA INGENIERIA BN.pdf
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
Informe Estudio Final Apagon del 25 de febrero
TESTAMENTO DE DESCRIPTIVA ..............
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
Publicidad

Algoritmos de clave simétrica

  • 1. Algoritmos de Clave Simétrica Christian Torres marcelo.torres@ucuenca.ec Universidad de Cuenca Facultad de Ingeniería
  • 2. Objetivos • Dar a conocer AES-Rijndael y el Twofish • Implementacion en código de los mismos
  • 3. Contenido • Introducción • AES • AES(Rijndael) • TwoFish • AES(Rijndael) VS Twofish • Referencias
  • 4. Introducción • ¿Qué significa cifrar? • Aplicar un algoritmo de cifrado junto con una clave, a una determinada información que se quiere transmitir confidencialmente. • Dos o más usuarios, tienen una única clave secreta, esta clave será la que cifrará y descifrará la información transmitida a través del canal inseguro. La clave secreta de los dos usuarios es la MISMA
  • 5. AES-(Estandar de Encriptacion Avanzada) • En 1997, el Instituto Nacional de Normas y Tecnología (NIST) decidió realizar un concurso para escoger un nuevo algoritmo de cifrado capaz de proteger información sensible durante el siglo XXI. Este algoritmo se denominó Advanced Encryption Standard (AES). • Convocatoria: • Ser de dominio público, disponible para todo el mundo. • Ser un algoritmo de cifrado simétrico y soportar bloques de, como mínimo, 128 bits. • Las claves de cifrado podrían ser de 128, 192 y 256 bits.
  • 6. AES(Rijndael)-Reseña • En agosto de 1998, el NIST seleccionó cinco finalistas con base en su seguridad, eficiencia, simplicidad, flexibilidad y requerimientos de memoria. • Los finalistas y sus puntajes fueron los siguientes: • 1. Rijndael (de Joan Daemen y Vincent Rijmen, 86 votos). • 2. Serpent (de Ross Anderson, Eli Biham y Lars Knudsen, 59 votos). • 3. Twofish (de un equipo encabezado por Bruce Schneier, 31 votos). • 4. RC6 (de los Laboratorios RSA, 23 votos). • 5. MARS (de IBM, 13 votos) • En 2001 Rijndael se volvió un estándar del gobierno de Estados Unidos publicado.
  • 7. AES(Rijndael)-Especificacion • Publico • Un algoritmo de clave simétrico • Puede aumentar la longitud de la clave según las necesidades, siempre y cuando el tamaño sea múltiplo de 4 bytes (128-192- 256…) • Disponible gratuitamente, bajo términos de ANSI(Instituto Nacional Americano de Estandares)
  • 8. AES(Rijndael)-Vetajas Desventajas: • Ventajas: • Gran velocidad de cifrado y desifrado • No aumenta el tamaño del mensaje • Desventajas: • La seguridad depende de un secreto compartido entre el emisor y el receptor • La distribución de claves debe hacerse a travez de algún medio seguro
  • 9. AES(Rijndael) - Aplicaciones • La protección de las comunicaciones digitales: Internet, TV digital, comunicaciones móviles, redes de datos. • Transferencia de documentos, comercio electrónico. • Garantiza la seguridad y protección de software. • . • Mensajería militar. • La firma digital de documentos.
  • 10. AES(Rijndael)-Pseudocodigo-Inicio • 1 ) AddRoundKey — cada byte del «state» es combinado con la clave «round»; cada clave «round» se deriva de la clave de cifrado usando una iteración de la clave.
  • 11. AES(Rijndael)-Pseudocodigo-Rondas • SubBytes — en este paso se realiza una sustitución no lineal donde cada byte es reemplazado con otro de acuerdo a una tabla de búsqueda.
  • 12. AES(Rijndael)-Pseudocodigo-Rondas • ShiftRows — en este paso se realiza una transposición donde cada fila del «state» es rotada de manera cíclica un número determinado de veces.
  • 13. AES(Rijndael)-Pseudocodigo-Rondas • MixColumns — operación de mezclado que opera en las columnas del «state», combinando los cuatro bytes en cada columna usando una transformación lineal.
  • 16. AES(Rijndael)-Codificación Paquete javax.crypto : Proporciona las clases e interfaces para operaciones criptográficas • .Cipher -> Esta clase proporciona la funcionalidad de un sistema de cifrado criptográfico para el cifrado y el descifrado. • .KeyGenerator ->Esta clase proporciona la funcionalidad de un generador de clave secreta (simétrica). • .SecretKey -> Una clave secreta (simétrica). El propósito de esta interfaz es agrupar (y proporcionar seguridad de tipo) todas las interfaces de clave secreta. • .spec -> Proporciona clases e interfaces para las especificaciones clave y especificaciones de los parámetros del algoritmo. • .SecretKeySpec -> Esta clase especifica una clave secreta de una manera independiente del proveedor.
  • 17. AES(Rijndael)-Codificación • Generamos una clave de 128 bits adecuada para AES (clave mul 4 bits) • Obtiene el cifrado tipo AES, Electronic Codebook (ECB) Modos de operación para encriptación de bloques.
  • 18. • Si desea cifrar un mensaje de texto que no sea múltiplo de bloques de 8 bytes, el mensaje de texto se debe rellenar con bytes adicionales para que el mensaje de texto sea múltiplos de bloques de 8 bytes.
  • 19. AES(Rijndael)-Codificación • Se escribe byte a byte en hexadecimal el texto • Se inicializa el cifrado para des encriptar, con la misma clave y se des encripta
  • 20. Twofish • En criptografía, Twofish es un método de criptografía simétrica con cifrado por bloques. • El tamaño de bloque en Twofish es de 128 bits y el tamaño de clave puede llegar hasta 256 bits. • Twofish llegó a la ronda final del concurso del NIST, pero no fue elegido para la estandarización. TwoFish quedó tercero, tras Rijndael y Serpent.
  • 21. Twofish –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).
  • 22. Twofish-Redes de Feistel • Se trata de un método general para transformar cualquier función F en una permutación. • El fundamento de las redes de Feistel se basa en un mapeo, dependiente de la clave, de un string de entrada en otro de salida. • Cada vuelta ( o round ) de estas redes es llamada ciclo. En cada ciclo todos los bits del bloque han sido modificados una vez. • Twofish son 16 vueltas de una red de Feistel con una función F
  • 23. Twofish-Cajas S(S-Boxes) • Twofish usa 4 S-Boxes de 8 por 8 bits, diferentes, de clave independiente. • Éstas son construidas usando 2 matrices fijas de 8 por 8 bits mediante permutaciones y parte de la clave lo que genera S-Boxes variables.
  • 24. Twofish-Matrices MDS • Esta matriz es el principal mecanismo de difusión de Twofish. • La MDS garantiza que el número de bytes de entrada cambiados mas los de salida es al menos 5. En otras palabras, un cambio de solo un byte en la entrada lleva a cambiar 4 bytes de la salida, y por lo tanto un cambio de 2 bytes de entrada garantiza un cambio de 3 en la salida, etc. • Las matrices MDS son también conocidas como códigos RS (Reed- Solomon). • La estructura RS ayuda a defender contra ataques de clave relacionada difundiendo el material de clave en dirección ortogonal al flujo usado en computar los S-Boxes de 8 por 8 bits usados en Twofish
  • 25. Twofish-Transformación Pseudo-Hadamard ( PHT) • Una transformación PHT es una operación de mezcla que corre rápido en software. • Dadas dos entradas a y b de 32 bits, la PHT es: • a’ = a + b mod 2^32 • b’ = a + 2b mod 2^32 • Twofish usa una PHT de 32 bits para mezclar las salidas
  • 27. AES(Rijndael) VS Twofish 1. AES es en realidad Rijndael mientras Twofish es uno de los finalista AES. 2. AES utiliza la red de sustitución-permutación mientras Twofish utiliza la red de Feistel. 3. AES se puede romper en algunas formas(Version 8 rondas), mientras que Twofish es irrompible. 4. AES implementa un menor número de rondas que Twofish
  • 28. Referencias: • Descripcion a fondo de Twofish , RC6 y MARS http://materias.fi.uba.ar/6669/alumnos/1999/aes.pdf Descripcion de clases e interfaces de JCE(Java Cryptographic Extension) http://personales.upv.es/~fjmartin/cdii_web/traspas/jce.pdf “Sencilla explicación sobre AES” https://es.slideshare.net/elvisvinda/sencilla-explicacin-sobre-aes Redes de Computadoras Tanenbaum-4ta-edición https://juliorestrepo.files.wordpress.com/2010/08/redes-de- computadoras-tanenbaum-4ta-edicion-espanol.pdf
  • 29. Gracias… • Cifrar Online-AES-Twofish • https://cifraronline.com/descifrar-aes • Codigos • https://github.com/marcelo1995/Encriptacion_AES_Twofish.git