jueves, 9 de marzo de 2017

Modos de cifra en bloque.

En criptografía, una unidad de cifrado por bloques es una unidad de cifrado de clave simétrica que opera en grupos de bits de longitud fija, llamados bloques, aplicándoles una transformación invariante. Al realizar el cifrado, la unidad de cifrado por bloques toma como entrada un bloque de texto plano (o claro) y produce un bloque cifrado de igual tamaño. La transformación exacta es controlada utilizando una segunda entrada: la clave secreta provista por el usuario.

Para realizar el proceso inverso, el descifrado, se ingresa un bloque de texto cifrado y se produce el texto plano original. El cifrado por bloques se diferencia del cifrado por flujo (stream ciphers) en que, en este último, opera en dígitos individuales, uno tras otro, y la transformación varía durante el proceso de cifrado.

El Data Encryption Standard (DES) fue un diseño de unidad de cifrado por bloques de gran influencia. Fue desarrollado y publicado por IBM y publicado como estándar en 1977. El Advanced Encryption Standard (AES) es un sucesor de DES, adoptado en 2001.

Algoritmo IDEA (International Data Encryption Algorithm).


Es un cifrador por bloques diseñado por Xuejia Lai y James L. Massey de la Escuela Politécnica Federal de Zúrich y descrito por primera vez en 1991. IDEA fue diseñado en contrato con la Fundación Hasler, la cual se hizo parte de Ascom-Tech AG.

IDEA es libre para uso no comercial, aunque fue patentado y sus patentes se vencerán en 2010 y 2011. El nombre "IDEA" es una marca registrada y está licenciado mundialmente por MediaCrypt. IDEA fue utilizado como el cifrador simétrico en las primeras versiones de PGP (PGP v2.0) y se lo incorporó luego de que el cifrador original usado en la v1.0 ("Bass-O-Matic") se demostró insegura. Es un algoritmo opcional en OpenPGP.

IDEA es un algoritmo bastante seguro, y hasta ahora se ha mostrado resistente a multitud de ataques, entre ellos el criptoanalisis diferencial. No presenta claves debiles, y su longitud de clave hace imposible en la practica un ataque por la fuerza bruta. Como ocurre con todos los algoritmos sim_etricos de cifrado por bloques, IDEA se basa en los conceptos de confusion y difusion, haciendo uso de las siguientes operaciones elementales (todas ellas faciles de implementar):
XOR.
Suma modulo 2 (base 16)
Producto modulo 2 (base 16) + 1

El algoritmo IDEA consta de ocho rondas. Dividiremos el bloque X a codicar, de 64 bits, en cuatro partes X1, X2, X3 y X4 de 16 bits. Denominaremos Zi a cada una de las 52 subclaves de 16 bits que vamos a necesitar. Las operaciones que llevaremos a cabo en cada ronda son las siguientes:
  •  Multiplicar X1 por Z1.
  •  Sumar X2 con Z2.
  •  Sumar X3 con Z3.
  •  Multiplicar X4 por Z4.
  •  Hacer un XOR entre los resultados del paso 1 y el paso 3.
  •  Hacer un XOR entre los resultados del paso 2 y el paso 4.
  •  Multiplicar el resultado del paso 5 por Z5.
  •  Sumar los resultados de los pasos 6 y 7.
  •  Multiplicar el resultado del paso 8 por Z6.
  •  Sumar los resultados de los pasos 7 y 9.
  •  Hacer un XOR entre los resultados de los pasos 1 y 9.
  •  Hacer un XOR entre los resultados de los pasos 3 y 9.
  •  Hacer un XOR entre los resultados de los pasos 2 y 10.
  •  Hacer un XOR entre los resultados de los pasos 4 y 10.
La salida de cada iteracion seran los cuatro sub-bloques obtenidos en los pasos 11, 12, 13 y 14, que seran la entrada del siguiente ciclo, en el que emplearemos las siguientes seis subclaves, hasta un total de 48. Al final de todo intercambiaremos los dos bloques centrales (en realidad con eso deshacemos el intercambio que llevamos a cabo en los pasos 12 y 13). Despues de la octava iteracion, se realiza la siguiente transformacion:
  •  Multiplicar X1 por Z49.
  •  Sumar X2 con Z50.
  •  Sumar X3 con Z51.
  •  Multiplicar X4 por Z52.
Las primeras ocho subclaves se calculan dividiendo la clave de entrada en bloques de 16 bits. Las siguientes ocho se calculan rotando la clave de entrada 25 bits a la izquierda y volviendo a dividirla, y asi sucesivamente. Las subclaves necesarias para descifrar se obtienen cambiando de orden las Zi y calculando sus inversas para la suma o la multiplicacion. Puesto que 216 + 1 es un numero primo, nunca podremos obtener cero como producto de dos numeros, por lo que no necesitamos representar dicho valor. Cuando estemos calculando productos, utilizaremos el cero para expresar el numero 216 un uno seguido de 16 ceros. Esta representacion es coherente puesto que los registros que se emplean internamente en el algoritmo poseen unicamente 16 bits.

 Algoritmo AES (Advanced Encryption Standard). 


El Estándar de cifrado de datos (DES, del inglés Data Encryption Standard) es un algoritmo criptográfico diseñado para cifrar y descifrar datos utilizando bloques de 8 bytes y una clave de 64 bits.

EL DES triple (DES3) es una variación de en la que se utilizan claves de 64 bits para una clave de 192 bits. DES3 funciona cifrando primer lugar el texto sin formato utilizando los 64 primeros bits de la clave. Después el texto cifrado se descifra utilizando la siguiente parte de la clave. En el paso final, el texto cifrado resultante se vuelve a cifrar utilizando la última parte de la clave.
El Estándar de cifrado avanzado (AES, del inglés Advanced Encryption Standard) es un algoritmo de sustitución utilizado por el gobierno de los Estados Unidos.

Dos modalidades de cifrado son:
  • Modalidad de bloques, un método de cifrado en el que el mensaje se divide en bloques y el cifrado se realiza individualmente en cada bloque. Puesto que cada bloque tiene, como mínimo, una longitud de 8 bytes, la modalidad de bloques permite la digna aritmética de 64 bits en el algoritmo de cifrado.
  • Modalidad de secuencia, un método de cifrado en el que se cifra cada byte individualmente. Se considera generalmente una forma de cifrado débil.

Blowfish es un cifrado de bloques que funciona en bloques de datos de 64 bits (8 bytes). Utiliza una clave de tamaño variable, aunque normalmente las claves de 128 bits (16 bytes) se consideran buenas para un cifrado fuerte. Blowfish se puede utilizar en las mismas modalidades que DES.

No hay comentarios:

Publicar un comentario