Algoritmo que calcula todas las claves redondas a partir de la clave.
En criptografía , los llamados cifrados de producto son un cierto tipo de cifrado, donde el (des)cifrado de datos generalmente se realiza como una iteración de rondas . La configuración para cada ronda es generalmente la misma, excepto por los valores fijos específicos de la ronda llamados constante de ronda y los datos específicos de la ronda derivados de la clave de cifrado llamada clave de ronda . Un programa de claves es un algoritmo que calcula todas las claves redondas a partir de la clave.
Algunos tipos de horarios clave
Algunos cifrados tienen programas de claves simples. Por ejemplo, el cifrado de bloque TEA divide la clave de 128 bits en cuatro piezas de 32 bits y las utiliza repetidamente en rondas sucesivas.
DES tiene una programación de claves en la que la clave de 56 bits se divide en dos mitades de 28 bits; A partir de entonces, cada mitad se trata por separado. En rondas sucesivas, ambas mitades se giran hacia la izquierda uno o dos bits (especificados para cada ronda), y luego se seleccionan 48 bits de clave redonda mediante Permuted Choice 2 (PC-2): 24 bits de la mitad izquierda y 24 de la derecha. . Las rotaciones tienen el efecto de que se utiliza un conjunto diferente de bits en cada clave de ronda; cada bit se utiliza en aproximadamente 14 de las 16 claves redondas.
Para evitar relaciones simples entre la clave de cifrado y las claves redondas, para resistir formas de criptoanálisis como los ataques de clave relacionada y los ataques deslizantes , muchos cifrados modernos utilizan programas de claves más elaborados para generar una "clave expandida" a partir de la cual se obtienen las claves redondas. dibujado. Algunos cifrados, como Rijndael (AES) y Blowfish , utilizan las mismas operaciones que las utilizadas en la ruta de datos del algoritmo de cifrado para su expansión de claves, a veces inicializadas con algunos " números que no tengo nada bajo la manga ". Otros cifrados, como RC5 , amplían las claves con funciones que son algo o completamente diferentes de las funciones de cifrado.
Notas
Knudsen y Mathiassen (2004) brindan cierta evidencia experimental que indica que el programa clave juega un papel en proporcionar resistencia contra el criptoanálisis lineal y diferencial . Para los cifrados de Feistel de juguete , se observó que aquellos con programas de claves complejos y bien diseñados pueden alcanzar una distribución uniforme para las probabilidades de diferenciales y cascos lineales más rápidamente que aquellos con programas de claves mal diseñados.
Referencias
Lars R. Knudsen y John Erik Mathiassen, Sobre el papel de las programaciones clave en los ataques a cifrados iterados, ESORICS 2004, páginas 322–334.
Uri Blumenthal y Steven M. Bellovin, A Better Key Schedule for DES-like Ciphers, Actas de PRAGOCRYPT '96.