E2 | |
---|---|
Creador | NTT |
publicado | 1998 |
Tamaño de clave | 128 (192, 256) bits |
Tamaño de bloque | 128 bits |
Número de rondas | 12 |
Tipo de | célula de Feistel |
E2 ( English Efficient Encryption - cifrado efectivo) - en criptografía , una familia de algoritmos criptográficos de bloques simétricos basados en la celda de Feistel . E2 usa un bloque de 128 bits y claves de 128, 192, 256 bits. Creado por NTT (Nippon Telegraph and Telephone) en 1998 y fue presentado en el concurso AES . El sucesor de este cifrado es el cifrado Camellia , que también es el resultado del trabajo de NTT (Nippon Telegraph and Telephone).
El cifrado E2, creado por NTT, se presentó a la competencia AES junto con otros catorce cifrados. E2 pasó con éxito la prueba de fuerza criptográfica . La fuerza del cifrado E2 no afectó su rendimiento. E2 ha tomado una de las posiciones de liderazgo tanto en la competencia por la velocidad de cifrado/descifrado, como en la velocidad de generación de claves. En particular, la implementación del cifrado E2 ( compilador Borland ) mostró una velocidad de cifrado/descifrado de 26 Mbps. Sin embargo, otros cinco líderes también mostraron velocidades de más de 25 Mbps. Si bien las puntuaciones de cifrado variaron según el compilador, la plataforma y la lógica, la tendencia general siguió siendo la misma. La mayoría de los autores que han escrito sobre el concurso AES afirman que E2, junto con otros cifrados, pasó con éxito la primera ronda. Sin embargo, E2 no llegó a la final de los cinco primeros cifrados. NIST señaló que a pesar del buen rendimiento de velocidad y la ausencia de vulnerabilidades , los requisitos de memoria no volátil son demasiado altos ( CAST-256 sufrió de manera similar ). [una]
El trabajo del algoritmo de cifrado se puede dividir en tres partes principales : la función de TI, o transformación inicial (TI) , la celda de Feistel basada en la función F, repetida 12 veces, y la función FT, o el convertidor de datos final ( Transformación final en inglés (FT) ). El bloque del algoritmo responsable de la planificación de claves ( ing. key sheduling part ), antes del cifrado, a partir de la clave secreta K crea dieciséis subclaves {k1,..k16}, cada una de las cuales es un vector de bits de 128 bits (un elemento de el campo de Galois (2^128)). La primera transformación del texto sin formato M se realiza utilizando la función de TI y dos claves generadas numeradas 13 y 14 ( y )
M'=IT(M, , )M` se divide en dos bloques de igual longitud, cada uno de los elementos es un vector de bits de 64 bits. Luego se realizan 12 ciclos de transformaciones en la celda de Feistel, en los que el bloque derecho en la iteración actual del ciclo está determinado por la suma módulo dos de la parte izquierda de la iteración anterior del ciclo y el resultado de la función F, cuya Los argumentos son la parte derecha de la iteración anterior y la clave , y al bloque izquierdo en el paso r del ciclo se le asigna el valor del bloque derecho en el paso r-1. El ciclo se repite 12 veces, es decir, r cambia de 1 a 12
= = .La etapa final del cifrado es la ejecución de la función FT. El resultado de la función FT, cuyos argumentos son la concatenación de las partes derecha e izquierda a la salida de la iteración 12 de la celda de Feistel y las claves :
`El descifrado se produce de acuerdo con un esquema similar al cifrado. El trabajo del algoritmo de descifrado se puede dividir en tres partes principales: función de TI (transformación inicial - información inicial en inglés (IT) ), 12 ciclos de la celda Feistel con función F y al final función FT ( transformación final en inglés (FT) ) . El bloque del algoritmo responsable de la planificación de claves ( programación de claves en inglés ) a partir de la clave secreta inmediatamente antes del cifrado genera 16 subclaves { }, que son vectores de bits de dimensión 128 (un elemento del campo de Galois GF(2^128)). En la primera etapa, se ejecuta la función de TI, cuyos argumentos son el criptograma C y dos subclaves
`El resultado de la función informática C` se divide en 2 partes iguales de 64 bits (medio bloque): derecha e izquierda ( ). A continuación, se realizan 12 ciclos de la celda de Feistel en función de la función F ( cambia de 12 a 1).
Al final del último ciclo de la celda de Feistel, las mitades del bloque se concatenan ( ). Y al final, la transformación final: se ejecuta la función FT , cuyos argumentos son el resultado de la concatenación de ` y dos claves . El resultado de ejecutar la función FT es el texto plano .
En base a la clave secreta ( { } tiene una dimensión de medio bloque, es decir, 64 bits y es un argumento para las funciones de cifrado y descifrado), subclaves {i=1;2…16} ( vectores de bits de dimensión 128) se generan usando la función G y las funciones S. El procedimiento de generación de claves permanece casi sin cambios si la longitud de la clave privada es de 128, 192 o 256 bits. Si la longitud especificada es de 128 bits, las constantes se eligen como valores de la siguiente manera: , . Si la longitud de la clave es de 192 bits, el valor de la clave es , donde S() es la función S.
BRS(),S(),P() — respectivamente función BRS, función S, función P; X,Y - palabras del alfabeto binario con una dimensión de 64 bits (la mitad del bloque); — claves de 128 bits cada una. H es un espacio de dimensión de 64 bits .
La esencia de la función F es la conversión de palabras del alfabeto binario de 64 bits con una clave dada de 128 bits. El resultado de la transformación es una palabra del alfabeto binario de 64 bits.
Función informática o convertidor de datos inicial:
H es el espacio de palabras del alfabeto binario de 64 bits; X,A,B: palabras binarias de 128 bits; BP() - Función BP; es una operación binaria .
Función FT o convertidor de datos final:
.H es el espacio de palabras del alfabeto binario de 64 bits; X,A,B: palabras binarias de 128 bits; () es una función inversa de la función BP; es la operación binaria de.
La función FT es la inversa de la función IT:
.La función BRL (función de giro a la izquierda del byte inglés ), o desplazamiento cíclico a la izquierda, es una parte integral de la función F:
{ } es una palabra binaria con una dimensión de 8 bits ( bytes ) o, en otras palabras, un elemento del campo de Galois .
La función S es la parte de la función F definida por s-box :
.El S-box utilizado en la S-función se define de la siguiente manera:
, dóndeNo está prohibido usar tablas con valores ya calculados de s(x) en los cálculos. Eso es
225 | 66 | 62 | 129 | 78 | 23 | 158 | 253 | 180 | 63 | 44 | 218 | 49 | treinta | 224 | sesenta y cinco |
204 | 243 | 130 | 125 | 124 | Dieciocho | 142 | 187 | 228 | 88 | 21 | 213 | 111 | 233 | 76 | 75 |
53 | 123 | 90 | 154 | 144 | 69 | 188 | 248 | 121 | 214 | 27 | 136 | 2 | 171 | 207 | 100 |
9 | 12 | 240 | una | 164 | 176 | 246 | 147 | 67 | 99 | 134 | 220 | 17 | 165 | 131 | 139 |
201 | 208 | 25 | 149 | 106 | 161 | 92 | 36 | 110 | 80 | 33 | 128 | 47 | 231 | 83 | quince |
145 | 34 | cuatro | 237 | 166 | 72 | 73 | 103 | 236 | 247 | 192 | 57 | 206 | 242 | 45 | 190 |
93 | 28 | 227 | 135 | 7 | 13 | 122 | 244 | 251 | cincuenta | 245 | 140 | 219 | 143 | 37 | 150 |
168 | 234 | 205 | 51 | 101 | 84 | 6 | 141 | 137 | diez | 94 | 217 | 22 | catorce | 113 | 108 |
once | 255 | 96 | 210 | 46 | 211 | 200 | 85 | 194 | 35 | 183 | 116 | 226 | 155 | 223 | 119 |
43 | 185 | 60 | 98 | 19 | 229 | 148 | 52 | 177 | 39 | 132 | 159 | 215 | 81 | 0 | 97 |
173 | 133 | 115 | 3 | ocho | 64 | 239 | 104 | 254 | 151 | 31 | 222 | 175 | 102 | 232 | 184 |
174 | 189 | 179 | 235 | 198 | 107 | 71 | 169 | 216 | 167 | 114 | 238 | 29 | 126 | 170 | 182 |
117 | 203 | 212 | 48 | 105 | 32 | 127 | 55 | 91 | 157 | 120 | 163 | 241 | 118 | 250 | 5 |
61 | 58 | 68 | 87 | 59 | 202 | 199 | 138 | 24 | 70 | 156 | 191 | 186 | 56 | 86 | 26 |
146 | 77 | 38 | 41 | 162 | 152 | dieciséis | 153 | 112 | 160 | 197 | 40 | 193 | 109 | veinte | 172 |
249 | 95 | 79 | 196 | 195 | 209 | 252 | 221 | 178 | 89 | 230 | 181 | 54 | 82 | 74 | 42 |
Función P: una parte integral de la función F
P - matriz de transformación que describe la función P
G - la función realiza la siguiente visualización:
, dónde - función f.La función f es necesaria para calcular la función G. La función f se define de la siguiente manera:
P() es una función P, S() es una función S.
El operador binario se define de la siguiente manera:
, dónde - suma lógica bit a bit ("o" lógica) con 1 en el anillo .El operador binario de se define de la siguiente manera:
, dónde - suma lógica bit a bit ("o" lógica) con 1 en el anillo .La función BP, o función de permutación de bytes , forma parte de la función IT y de la función FT. Se define de la siguiente manera:
,dónde .El inverso de la transformación BP, o BP^{-1}, se calcula de la siguiente manera:
,dónde
Los empleados del centro de investigación y desarrollo de tecnología de la información Mitsubishi Electric Corporation, Mitsuru Matsui y Toshio Tokita , descubrieron que el cifrado no era resistente al criptoanálisis diferencial . [3] A pesar de esto, el cifrado (usando 12 ciclos de cifrado) sigue siendo sólido desde un punto de vista práctico. Aunque Mitsuru Matsui y Toshio Tokita pudieron demostrar que el nivel de seguridad del cifrado E2 con menos ciclos de cifrado es significativamente más bajo que el declarado por los desarrolladores.
Altos requisitos de memoria no volátil.
Criptosistemas simétricos | |
---|---|
Cifrados de flujo | |
Red Feistel | |
red SP | |
Otro |