Want to create interactive content? It’s easy in Genially!

Get started free

Cifrado por bloques

missaelbf.26

Created on November 12, 2024

Start designing with a free template

Discover more than 1500 professional designs like these:

Higher Education Presentation

Psychedelic Presentation

Vaporwave presentation

Geniaflix Presentation

Vintage Mosaic Presentation

Modern Zen Presentation

Newspaper Presentation

Transcript

CIFRADOR POR BLOQUES "DES"

Alumnos: Tovar Vite Rocio AngelicaBarrera Franco Hector Missael Grupo: 6CM5 Maestra:Dra. Nidia A. Cortez Duarte

01. Cifrado Por bloques

¿Que es?

Los cifradores por bloque son algoritmos de cifrado que dividen el mensaje en bloques de longitud fija y cifran cada uno de estos bloques de manera independiente. Es eficiente y adecuado para grandes volúmenes de datos, pero puede ser vulnerable a ataques si no se usa un modo de operación adecuado.

  • Estructura:Cada bloque tiene un tamaño estándar (como 64 bits para DES o 128 bits para AES) y se cifra con una misma clave.

02. red de Feistel

  • Tamaño del bloque
  • Tamaño de clave
Los tamaños de bloques más grandes significan mayor seguridad pero reducen la velocidad de cifrado / descifrado para un algoritmo dado.
  • Número de rondas:
La esencia del cifrado de Feistel es que una sola ronda ofrece una seguridad inadecuada, pero que múltiples rondas ofrecen una seguridad creciente
  • Algoritmo de generación de subclaves:
Mayor complejidad en este algoritmo debe conducir a una mayor dificultad de criptoanálisis

Estructura utilizada para construir cifradores de bloque seguros y eficientes en criptografía. La red divide el bloque de datos en dos mitades y aplica una serie de rondas que transforman y permutan los datos, generando el texto cifrado final.Las entradas al algoritmo de cifrado son un bloque de texto claro y una clave K. El bloque de texto claro se divide en dos mitades, L0 y R0

03.Cifrado y decifrado

04.. Modos de operacion

Métodos para aplicar un cifrador de bloque a datos de tamaño arbitrario. Existen varios modos, cada uno con diferentes propiedades de seguridad y de manejo de errores.

  • ECB (Electronic Codebook)
  • CBC (Cipher Block Chaining)
  • CFB (Cipher Feedback)
  • OFB (Output Feedback)
  • CTR (Counter)

ECB (Electronic Codebook)

En el modo ECB, cada bloque de texto claro se cifra de manera independiente usando la misma clave.A pesar de su vulnerabilidad, puede ser útil para cifrar pequeños bloques de datos que no se repiten, como claves de cifrado.

  • No es seguro para datos con patrones repetidos, ya que estos patrones se reflejan en el texto cifrado (si dos bloques de texto claro son iguales, su cifrado también será igual).

CBC (Cipher Block Chaining)

  • No permite paralelización en el cifrado, ya que cada bloque depende del anterior. Además, si un bloque se corrompe, este error afectará al bloque siguiente en el descifrado.

En el modo CBC, cada bloque de texto claro se combina (usando XOR) con el bloque cifrado anterior antes de ser cifrado. El primer bloque se combina con un vector de inicialización (IV).El modo CBC enmascara patrones repetidos y depende de bloques anteriores, proporcionando mayor seguridad

CFB (Cipher Feedback)

El modo CFB convierte un cifrador de bloque en un cifrador de flujo. Aquí, cada bloque de salida de cifrado se retroalimenta a la entrada para cifrar el siguiente bloque de texto claro.Permite el cifrado en unidades más pequeñas (como bits o bytes), lo que lo hace útil para flujos de datos y transmisión en tiempo real.

  • La corrupción en un bloque afecta solo a la porción correspondiente en el texto descifrado y no propaga el error de la misma forma que en CBC.

OFB (Output Feedback)

  • No ofrece autenticidad, por lo que es vulnerable a ataques de manipulación de datos si no se emplean mecanismos adicionales.

Similar a CFB, OFB también convierte un cifrador de bloque en un cifrador de flujo. Sin embargo, en lugar de retroalimentarse con el texto cifrado, retroalimenta la salida de la función de cifrado.OFB es resistente a errores, ya que un error en un bloque no se propaga a los bloques siguientes. También permite cifrar bloques en paralelo.

CTR (Counter)

Un contador se combina con el cifrador en cada bloque de datos. Este contador se incrementa para cada bloque, lo que permite la generación de una secuencia pseudoaleatoria de cifras que se combina con el texto claro.Es paralelizable y resistente a errores de transmisión. También convierte el cifrador de bloque en un cifrador de flujo eficiente y de alto rendimiento.

  • Si se reutiliza el mismo contador con la misma clave, la seguridad se compromete, ya que los cifrados generados serían idénticos para bloques iguales.

05. Biblioteca utilizada

  • En este código se utiliza la biblioteca CryptoJS para realizar operaciones criptográficas, específicamente el algoritmo DES (Data Encryption Standard). Este algoritmo es un cifrado simétrico que utiliza una clave de 64 bits para cifrar y descifrar datos.
  • Funciones criptográficas usadas: Se hace uso de las funciones CryptoJS.DES.encrypt y CryptoJS.DES.decrypt, que aplican el cifrado y descifrado DES, respectivamente. Además, se configuran los parámetros adicionales mode (modo de operación, como CBC, CFB, OFB, entre otros) y padding (relleno, en este caso Pkcs7).

06.Parametros

leer Archivo Como Array Buffer

  • archivo: archivo BMP que se va a leer.
  • callback: función que recibe el archivo leído como ArrayBuffer para continuar con el procesamiento.

convertir Hex

  • buffer: los datos que se convertirán a hexadecimal o a ArrayBuffer.
  • toHex: booleano para indicar si se convierte de ArrayBuffer a hexadecimal (true) o viceversa (false).

validar Entrada

  • clave: clave de cifrado/desencriptado, que debe tener exactamente 8 caracteres.
  • iv: vector de inicialización (IV) para los modos de cifrado que lo requieren (CBC, CFB, OFB).
  • modo: modo de operación de DES, como CBC, CFB, u OFB, que puede requerir un IV.

cifrar Descifrar.

  • imagenHex: cadena hexadecimal que representa los datos de la imagen.
  • clave: clave de cifrado en formato hexadecimal.
  • iv: vector de inicialización en formato hexadecimal (si es necesario).
  • modo: modo de operación de DES, configurado en CryptoJS.
  • isEncrypt: booleano que indica si la operación es de cifrado (true) o descifrado (false).

crear Archivo Y Descargar..

  • header: encabezado del archivo BMP.
  • resultadoBuffer: datos cifrados o descifrados de la imagen en ArrayBuffer.
  • archivoNombre: nombre original del archivo para generar el nombre del archivo resultante.
  • modo: modo de cifrado usado, que se añadirá al nombre del archivo.
  • isEncrypt: indica si la operación fue de cifrado (true) o descifrado (false).

Manejar cifrado o decifrado

Manejar cifrado o decifrado

07.Pasos necesarios para procesar la imagen

Lectura del archivo original

  • leerArchivoComoArrayBuffer: Esta función utiliza un objeto FileReader para leer el archivo BMP seleccionado y convertirlo en un ArrayBuffer. El contenido resultante se envía a través del callback para su procesamiento.
  • Separación de encabezado y datos de imagen: Una vez que el archivo está en formato ArrayBuffer, el código separa el encabezado BMP (primeros 54 bytes) de los datos de imagen. El encabezado se conserva sin cambios, ya que solo los datos de la imagen serán cifrados o descifrados.
  • Conversión a hexadecimal: Con convertirHex, los datos de la imagen se convierten a una cadena hexadecimal para que puedan ser manipulados por las funciones de CryptoJS.

Generación de nuevos archivos

  • Cifrado o descifrado: Según el modo de operación y si es cifrado o descifrado (isEncrypt), se llama a cifrarDescifrar para obtener el resultado en hexadecimal.
  • Conversión de datos procesados: convertirHex convierte el resultado hexadecimal de regreso a un ArrayBuffer, lo cual permite trabajar con datos binarios necesarios para formar un nuevo archivo BMP.
  • Ajuste de tamaño: Se verifica que el tamaño del ArrayBuffer resultante coincida con el de los datos de imagen originales. Si el tamaño es menor, se ajusta el buffer rellenándolo con ceros o se corta según sea necesario.
  • Creación y descarga del nuevo archivo: crearArchivoYDescargar combina el encabezado original y los datos procesados para crear un nuevo archivo BMP. Se genera un Blob (objeto binario) que se descarga automáticamente con un nombre específico, indicando si es una imagen cifrada o descifrada y el modo utilizado.

08.Tabla de cifrados

  • CFB
  • CBC
  • OFB
  • ECB

Tabla de cifrados.

  • CFB
  • CBC
  • OFB
  • ECB

09..descifrar CBC con el modo OFB

  • CBC y OFB manejan bloques de datos de manera diferente.
  • Los datos no se descifran en el orden ni con la lógica necesaria para reconstruir el archivo original.
  • Para recuperar correctamente la imagen, debes descifrar con el mismo modo en el que fue cifrada, es decir, CBC.

10.descifrar Cfb con el modo cbc

  • Al descifrar una imagen BMP cifrada con CFB usando el modo CBC:
  • Los bloques de datos de la imagen no serán descifrados correctamente.
  • El archivo BMP será irreconocible, resultando en un encabezado corrupto y datos de píxeles ilegibles.
  • Para recuperar la imagen correctamente, debes usar el mismo modo de operación (CFB) con los mismos parámetros de cifrado (clave, IV, etc.).

11.Cifrar OFB 2 VECES

  • El archivo final será igual al archivo original.
  • Esto ocurre por la naturaleza del operador XOR y la forma en que OFB genera su flujo de claves.
  • Para evitar esto, siempre usa una combinación única de IV o evita cifrar múltiples veces con la misma configuración.

12. conclusiones

Barrera Franco Hector Missael

Tovar Vite Rocio Angelica

La elección de un modo de operación adecuado puede optimizar la transmisión y el almacenamiento de datos, especialmente en entornos de comunicación y almacenamiento en alta velocidad. Modos como CFB y OFB convierten el cifrador en un sistema de flujo, ideal para datos en tiempo real con tolerancia a errores, mientras que CTR, con su capacidad de paralelización, es ideal para aplicaciones de alto rendimiento. Así, los modos no solo incrementan la seguridad sino también la versatilidad y eficiencia en diferentes aplicaciones.

Los modos de operación proporcionan una manera flexible y segura de aplicar cifradores de bloque en una variedad de contextos, adaptándose a necesidades específicas. Por ejemplo, ECB, aunque es el más simple, puede ser útil para datos pequeños sin patrones repetidos, mientras que CBC es ideal para archivos y mensajes largos debido a su capacidad de ocultar patrones. De esta manera, cada modo permite optimizar la seguridad y eficiencia según las características de los datos y el entorno.

Gracias