Seguridad del modo contador AES vs. modo CBC

Evgeni Vaknin 09/05/2017. 1 answers, 401 views
aes cbc ctr nonce

Para que AES-CBC sea CPA seguro, el IV que se utiliza debe seleccionarse aleatoriamente para cada paquete. Si el IV es predecible, el cifrado no es seguro CPA. ¿Es lo mismo para el modo AES-CTR? es decir, para el modo AES-CTR, ¿el primer contador debe ser aleatorio o puede ser un nonce? Gracias

1 Answers


Patrick K 07/31/2017.

El requisito para los bloques de entrada AES-CTR es que deben ser unique durante la vida útil de una clave. En la mayoría de los casos, se usa un nonce aleatorio de 96 bits con un contador de 32 bits que comienza desde 0. Si el mismo bloque de entrada para AES-CTR ocurre dos veces, AES-CTR ya no es CPA seguro. En este caso, esto puede deberse a un desbordamiento de contador después de bloques de $ 2 ^ {32} $ o debido a colisiones con nonces de 96 bits elegidos aleatoriamente (paradoja de cumpleaños: 50% de probabilidad después de $ \ sqrt {2 ^ {96}} $ mensajes. Considere el siguiente caso:

Dos mensajes de 1 bloque distintos $ P $ y $ P '$ se envían con la misma clave $ K $ (que se podría negociar de antemano) y con el mismo nonce $ N $. El atacante sabe que los textos de cifrado relacionados $ C $ y $ C '$ se calculan mediante XORing ellos con el flujo de claves (que se basa en el nonce y el contador):

$ C = P \ oplus E_K (N, 0) $

$ C '= P' \ oplus E_K (N, 0) $

Entonces el atacante puede simplemente xor los textos de cifrado

$ C \ oplus C '= P \ oplus E_K (N, 0) \ oplus P' \ oplus E_K (N, 0) = P \ oplus P '$

y él obtiene la "distancia" entre los dos textos claros. Debido a las redundancias en el idioma inglés, podría determinar $ P $ y $ P '$.

Este problema también se conoce como el "teclado de dos tiempos". Una vez que la misma cadena de claves está XORed con el texto plano, nos metemos en problemas. Por lo tanto, es importante que la entrada para el cifrado AES sea única durante el tiempo de vida de una clave. No tiene que ser impredecible, solo único.

5 comments
Evgeni Vaknin 07/31/2017
por la frase "2 ^ 32 mensajes", ¿cree que quiere decir 2 ^ 32 bloques de 16 bytes cada uno en AES? si es así, el tiempo de 2 ^ 32 bloques es de 2 ^ 32 * 128 bits, que es de 10 Gbps, aproximadamente 1 minuto ... así que cada 1 minuto debe ejecutarse un algoritmo de intercambio de claves para configurar una nueva clave y nonce ?
1 Patrick K 07/31/2017
Sí tienes razón. He editado la respuesta. Si tiene un nonce estático, entonces tendría que hacer un intercambio de claves cada minuto en este caso. Pero dado que el nonce generalmente se cambia con cada mensaje, está limitado a mensajes de una longitud máxima de $ 2 ^ {32} \ cdot128 $ bits. El número máximo de mensajes que se pueden enviar con una clave determinada está limitado por la paradoja del cumpleaños. Si el nonce de 96 bits se elige uniformemente al azar para cada mensaje, la probabilidad de una colisión nonce es $ \ approx 0.5q ^ 2/2 ^ {96} $ para q mensajes. Si desea que este término sea como máximo del 1%, su $ q_ {max} = 4 \ cdot10 ^ {13} $.
Evgeni Vaknin 07/31/2017
¿Qué sucede si no utilizo el código aleatorio, sino que utilizo un valor aleatorio para el valor inicial distinto de incrementado cada paquete? Por ejemplo, supongamos que cada paquete contiene menos de 256 bloques AES (128 bits cada uno), y el contador para el AES-CTR está compuesto de nonce de 120 bits, que se inicializa al azar cuando se intercambia la clave, y que dentro del paquete 8 bits counter se usa para contar los bloques de 128 bits. Y cada paquete nuevo, (continúa en el siguiente comentario)
Evgeni Vaknin 07/31/2017
Incremento el nonce en 1, y borro el contador de 8 bits. En este caso, la paradoja del cumpleaños no es relevante, ya que la colisión es imposible (asumiendo que estoy reemplazando la clave antes de que expire el contador de 120 bits del nonce)
1 Patrick K 08/01/2017
Sí, si de alguna manera se asegura de que nunca reutilice el mismo par (bloque de entrada, clave) para la generación de la corriente de claves, entonces todo está bien. (por supuesto, suponiendo que la clave se mantiene en secreto y se elige uniformemente de forma aleatoria)

Related questions

Hot questions

Language

Popular Tags