CAST-256 (o CAST6) es un algoritmo de cifrado por bloques publicado en junio de 1998 y propuesto como candidato para el programa Advanced Encryption Standard (AES). Es una extensión de algoritmo de cifrado CAST-128; ambos fueron diseñados siguiendo la metodología de diseño "CAST" inventada por Carlisle Adams y Stafford Tavares. Howard Heys y Michael Wiener contribuyeron también en su diseño.
CAST-256 utiliza los mismos elementos que CAST-128, incluyendo cajas de tipo S-Box, pero éste último está adaptado al tamaño de bloque de 128 bits — el doble que su predecesor. (Una construcción similar ocurrió en la evolución de RC5 hacia RC6). 'CAST-256 acepta claves de tamaño 128, 160, 192, 224 y 256 bits. CAST-256 ejecuta 48 vueltas, algunas veces descritas como 12 quad-rounds, organizadas en una red de Feistel generalizada.
En el RFC 2612, los autores afirman que, "El algoritmo de cifrado CAST-256 descrito en este documento está disponible en todo el mundo sin cobro de royalties y sin necesidad de licencia para aplicaciones no comerciales."
Este algoritmo tiene las siguientes propiedades:- Se basa en CAST-128: funciones redondas, cajas-S, mezcla clave, mezclar Operaciones
- Tamaños clave: 128, 160, 192, 224, 256 bits
- El tamaño de bloque es de 128 bits, más debe ser posible, según el autor
- Para la generación de claves en torno a una función de encriptación similar se utiliza ansich utilizada para el cifrado. Se desprende de la independencia de la tecla redonda
- Un total de 48 rondas (12 rondas cada uno con 4 sub-rondas)
- En contraste con el DES un (`` '' incompleto) red de Feistel extendido se utiliza:
Algoritmo de cifrado CAST-256 [31] desarrollado por la empresa canadiense Entrust Technologies. El algoritmo es ampliamente utilizado antes de la conversión, y el probado algoritmo CAST-128 (ver Sec.. 3.10), también desarrollado por Entrust Technologies.
Características y estructura del algoritmo de clave
CAST-256 algoritmo de cifra los datos con bloques de 128 bits y utiliza múltiples cifrado fijo tamaños de clave: 128, 160, 192, 224 o 256 bits.
Datos de 128 bits divididos en cuatro subbloques de 32 bits, cada uno de los cuales en cada ronda del algoritmo, y se somete a la transformación específica superpuesta sobre uno de los sub-bloques adyacentes. Algoritmo Desarrolladores clasificarlo red de permutación como substitution- (SP-red, ver. Sec. 1.3). Sin embargo, algunos expertos pensaron que la competencia algoritmo AES CAST-256 red Feistel en cada ronda que sólo puede atender una subunidad, y el número de rondas "reales" 4 veces mayor que la indicada en la especificación del algoritmo [384].
En el curso del algoritmo realizado 12 rondas de transformaciones en el primero de los cuales 6 convierte TL (llamado una función directa de la ronda), y en los últimos 6 rondas realizado función inversa ronda TL .
Conversión tl y tl se muestran en la Fig. 3,35 y 3,36, respectivamente. Función tl describe como sigue:
donde / - Número de la ronda actual.
Conversión tl consta de las siguientes operaciones:
Funciones / 1/2/3 realizan varias operaciones elementales sobre 32 bits subbloque; Se muestran respectivamente en la Fig. 3,37, 3,38 y 3,39. Cada función toma tres parámetros:
□ valor del sub-bloque de procesado (las cifras indican como "datos");
□ 32 bits subclave ronda Km Ni (llamado enmascaramiento conectado, ya que la primera operación de cada función es la imposición de la llave en la subunidad procesado);
□ 5 bits ronda subclave Kr Ni (llamado de cizalla subclave ya que esta clave se utiliza en una operación de desplazamiento cíclico sobre el resultado de la operación anterior número variable de bits).
Fig. 3.35. Convertir rl
Fig. 3.36. Convertir r2
Fig. 3.37. Función fi
Fig. 3.38. La función fl
Fig. 3.39. Función / 3
Suma y resta se realizan con 32-bit de operando en módulo 2.
Funciones 5 | 5, 2 , 5 3 y S 4 se tabulan sustituciones, sustituyendo los valores de entrada de 8 bits a 32 bits. Las tablas son diferentes, cada uno de ellos contiene 256 valores fijos de 32 bits (tabla completamente dada en el Apéndice 1).
El descifrado se realiza de manera similar a la codificación, pero las rondas de enchufe utilizado en el orden inverso, es decir. E., en lugar de la subclave Kx Ni utiliza subclave Ajc /i (1 W ) (suponiendo que las rondas se numeran de 0 a I).
Procedimiento de expansión de claves
La tarea de la expansión de teclas de función - a desarrollar para cada ronda 4 subclave 32-bit de enmascaramiento Km Ni y 4 de 5 bits turno subclave Kr Ni . Eso es 1776 bytes forman la información clave.
Procedimiento de ampliación de la clave es más complicado que el cifrado de datos real.En primer lugar, una clave de cifrado de 256 bits se divide en ocho fragmentos en 32 bits. Si la clave es más pequeño, las piezas "extra" de la tecla se consideran cero.
Después de esto, se inicializa la variable temporal, tal como se describe en lo sucesivo.
A continuación, las 12 rondas de transformaciones, cada uno de los cuales realiza las siguientes:
1. Servir como W 2 J , donde J - número redondo procedimiento de ampliación de la clave (función Wj se muestra en la figura 3.40.).
2. Ejecución de la función W 2 J + \ .
3. 5 bits menos significativos del resultado de la operación de cuatro fragmentos (A \ C,E, G ) son subclaves Kr 0 J , Kr X J , Kr 2 j y AC 3y , respectivamente.
4. Los fragmentos restantes (B ', D', F \ I ') son subclaves Rm b ^ Km 2 J , Km X J y Km 0j , respectivamente.
Como se puede ver, en cada función de extensión ronda se utiliza clave para 8 variables adicionales Tm NK y Tr NK , que se calcula como sigue:
Fig. 3.40. La función W :
2. En el ciclo del 0 al 23, un bucle se ejecuta de 0 a 8, en el que se realizan los siguientes cálculos:
• n - el contador del bucle interno;
• Para el - contador del bucle exterior.
Ventajas y desventajas del algoritmo
La aparente ventaja del algoritmo CAST-256 es la falta de vulnerabilidades de seguridad probadas. Además, la ventaja es la capacidad de realizar la tecla de expansión "sobre la marcha", es decir. E. En la operación de cifrado (pero no descifrar) [284]. Sin embargo, el algoritmo se encontró varias deficiencias, debido a que no salió en la segunda ronda de la competencia [284]:
□ algoritmo da un rango de velocidad de algoritmos - participantes, entre todos los finalistas de la competencia;
□ bastante altas demandas en la memoria operativa y no volátil hacen que sea difícil el uso de este algoritmo en las tarjetas inteligentes;
□ Algunos expertos consideran algoritmo CAST-256 expuesta a los ataques contra el consumo de energía [80, 114].
No hay comentarios:
Publicar un comentario