Seleccione una clave TripleDES para que se comporte efectivamente como DES normal

6

Estoy trabajando con una tarjeta inteligente (DESFire) que admite tanto TripleDES como DES. En las especificaciones se indica que ambos modos de operación utilizan claves de 16 bytes. Cuando los primeros 8 bytes en la clave son idénticos a los 8 bytes finales, se usa el modo DES. De lo contrario, se selecciona el algoritmo TDEA.

Esto es un shock para mí porque entendí que Triple DES usa un paquete de claves de 56 bits * 3 = 168 bits (21 bytes). ¿Qué tipo de cifrado Triple DES podría soportar? ¿Hay alguna otra forma de seleccionar una clave para TDEA para que se comporte como un solo DES, además de seleccionar un conjunto de claves k1k2k3 donde k1 = k2 = k3?

EDITAR: Parece que hay una "opción de codificación 2", donde k1 = k3! = K2.

Esta es la única opción TDEA que soporta DESFire, supongo. El nuevo DESFire ev1 admite la opción de codificación completa 3 TDEA junto con AES.

    
pregunta Mister Smith 15.11.2011 - 10:01
fuente

1 respuesta

5

DES se define para usar una clave de 64 bits. Solo 56 de estos bits se utilizan realmente, por lo que la "longitud efectiva de la clave" (para la resistencia frente a la búsqueda exhaustiva) es la de una clave de 56 bits. Sin embargo, cualquier implementación esperará una secuencia de 64 bits (por lo tanto, 8 bytes, no 7).

Triple-DES (también conocido como "3DES") son tres instancias de DES en la secuencia debida. La instancia de DES "media" se usa en el modo de descifrado, precisamente para que un motor que implementa 3DES también pueda ejecutar DES simple. Si nombra las tres teclas sucesivas K1 , K2 y K 3 , luego, cuando K 1 = K 2 , las dos primeras instancias de DES se cancelan entre sí (la segunda DES al estar en modo de descifrado, invierte lo que hizo el primer DES), por lo que es equivalente a un DES simple con la tecla K3 . De manera similar, si K 2 = K 3 , esto es equivalente a un DES simple con la tecla K 1 .

3DES nominalmente utiliza una clave de 192 bits (tres claves DES de 64 bits), de las cuales se utilizan realmente 168 bits. Sin embargo, hay un ataque "académico" contra 3DES con un costo 2112 , por lo que a menudo se dice que la seguridad general de 3DES es similar a la ofrecida por un teórico perfecto. cifrado de bloque con una clave de 112 bits. Por lo tanto, hay un modo de uso generalizado de 3DES en el que usamos una clave de 128 bits: 64 bits para K1 y 64 bits para K 2 , y luego configure K 3 = K 1 . En palabras sencillas, cifre el bloque con K1 , luego descifre con K2 , luego encripte nuevamente con < em> K 1 . Esto parece suficiente para alcanzar el nivel de seguridad de 112 bits (de los 128 bits clave, solo se usan realmente 112), y el ataque académico muestra que no se puede ir más allá de ese nivel de todos modos (112 bits ya están bastante más allá de lo que es tecnológicamente rompible ahora, así que no se preocupe) ( Editar: DW señala que hay un ataque mejor, siempre que pueda cosechar unos cuantos pares de texto sin cifrar / texto cifrado; aún así, el costo del ataque sigue siendo demasiado alto para ser utilizado en la práctica). Esto es lo que implementa tu tarjeta inteligente.

Tenga en cuenta que hay protocolos que utilizan 3DES y que realmente requieren la clave completa de 192 bits, y no pueden funcionar con una implementación que solo admite claves de 128 bits; un buen ejemplo es SSL .

    
respondido por el Thomas Pornin 15.11.2011 - 16:00
fuente

Lea otras preguntas en las etiquetas