Cifrado múltiple, cifradores producto y cifradores de Feistel, funciones hash

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,58 KB

2.5.3: Cifrado múltiple

Existen encasaca: doble y triple encriptación. Donde las claves pueden ser iguales o los algoritmos pueden ser los mismos, diferentes o hasta inversos.

2.5.4 Cifradores producto y cifradores de Feistel

Un cifrador producto es aquel que combina dos o más transformaciones de forma tal que el resultado del cifrado es más seguro que los componentes individuales. Un cifrador Feistel es aquel cifrador que itera secuencialmente una serie de funciones, donde cada iteración recibe el nombre de función ronda (con al menos tres rondas y un número par), donde en cada iteración se utilizan redes de sustitución-permutación y se utiliza en cada una de ellas una subclave que ha sido derivada de la clave general del cifrador. Estos cifradores se parametrizan a partir del número de rondas r, el tamaño de bloque n, el tamaño k de la clave K de la que se derivan las r subclaves Ki.

2.6 Funciones Hash

Una función hash criptográfica es un conjunto de algoritmos usados para generar claves o representar de manera unívoca a un documento o conjunto de datos. Es una operación matemática que se realiza sobre un conjunto de datos de cualquier longitud, y la salida es una huella digital, de tamaño fijo e indeterminado de la dimensión del documento original.

Requisitos de seguridad:

  • Imposibilidad de obtener el texto original a partir de la huella digital.
  • Imposibilidad de encontrar un conjunto de datos diferentes que tengan la misma huella digital.
  • Poder transformar un texto de longitud variable en una huella de tamaño fijo.
  • Facilidad de empleo e implementación.

Propiedades:

  • Unidireccionalidad: con resultado h(M), computacionalmente es imposible encontrar M a partir de resumen.
  • Compresión: para mensajes de longitud m, el resumen h(M) tiene una longitud fija n, que es menor que m.
  • Facilidad de cálculo: debe ser fácil computar h(M) de un mensaje M.
  • Difusión: el resumen h(M) debe ser una función compleja de todos los bits del mensaje M, si se modificara un bit de M, el hash h(M) debería cambiar aproximadamente en la mitad de sus bits.
  • Colusión simple o resistencia débil a las colisiones: conocido M, será computacionalmente imposible encontrar otro M’ distinto tal que h(M) = h(M’).
  • Resistencia a la preimagen: para cualquier entrada es computacionalmente irrealizable encontrar un x (desconocido) tal que h(x) = y (conocido).
  • Resistencia a la segunda preimagen: dados x y su correspondiente y = h(x), es computacionalmente irrealizable encontrar otro x’ distinto a x tal que y’ = h(x’) = y.
  • No correlación: los bits de entrada y salida no están correlacionados. Cada cambio de bit afecta la salida.
  • Resistencia a la casi colisión: debe ser difícil obtener dos entradas (x, x’) para las cuales sus imágenes (y, y’) difieran solamente en unos pocos bits.
  • Resistencia a las preimágenes parciales: debe ser igual de difícil recuperar una parte de la preimagen de un hash que recuperar la totalidad.

2.6.1 Aplicaciones de la función Hash

a) Autenticación de mensajes: Servicio usado para verificar la integridad del mensaje y que haya sido enviado por quien dice, asegurando que el contenido no se haya modificado, borrado o rechazado, los mensajes así autenticados se denominan message digest.

b) Firmas digitales: Funciona de manera semejante a MAC, el valor hash del mensaje y la clave privada del usuario son encriptados, el que conoce la clave pública del usuario podrá verificar su identidad.

c) Otras Aplicaciones: Crear password para proteger archivos, para detectar intrusiones, para detectar virus, como generador de funciones y números pseudoaleatorios, confirmación de conocimiento (ACK), obtención de claves aleatorias, almacenamiento seguro de contraseñas, autenticación mutua en protocolos de enlace remoto, autenticación de sistemas.

Dibujo: Fragmeta, permuta, rotac, compre 128, 160, 512 - entrada 512 -> 48, 64, 80 cliclos por bloque -> hash.

2.6.2 Clasificación de las funciones Hash

a) Con llave: Autenticación de mensajes (MACs) y otras.

b) Sin llave: Detección de modificación (MDCs): *owhf (weak one way hash func), *crhf (strong one way hash func), otras.

2.6.3 Funciones Hash más comunes

MD5: Es más lento, pero con mayor nivel de seguridad. Resumen de 128 bits. Es una función hash de 128 bits. A partir de una huella hash no se puede recuperar la información.

SHA-1: Similar a MD5 pero con resumen de 160 bits. SHA-256 y SHA-512. La función de compresión es más compleja que la función de MD5, por tanto, SHA-1 es más lento que MD5 porque el número de pasos son de 80 (64 en MD5) y porque tiene 160.

SHA-2: Las principales diferencias con SHA-1 radican en su diseño y que los rangos de salida han sido incrementados. Dentro de SHA-2 encontramos varios tipos, el SHA224, SHA-256, SHA-384 y SHA-512. El más seguro es el que mayor salida de bits tiene, el SHA-512, que tiene 80 rondas (pasos), como el SHA-1 pero se diferencia de éste en: tamaño de salida 512 por los 160 de SHA-1, tamaño del bloque, tamaño de la palabra y tamaño interno que es el doble que SHA-1. Como ocurre con todos los cifrados y hash, cuanto más seguro, más lento es su procesamiento y uso, debemos encontrar un equilibrio entre seguridad y velocidad.

Entradas relacionadas: