Session Key + Nonce = Keystream?
Sí, el flujo de claves es una función de la clave y del nonce, en el sentido matemático (la misma combinación de teclas + nonce produce el mismo flujo de claves):
keystream = F(key, nonce)
... donde F
es la función de generación del flujo de clave del cifrado de la secuencia (a menudo solo se llama el cifrado de la secuencia). Piense en F
como la caja negra donde ocurre toda la magia oscura criptográfica; cada vez que la alimente con una clave secreta y una fuente pública, producirá una salida muy larga que, en la práctica, parece aleatoria para alguien que no conoce la clave. pero que otra parte que conoce la misma clave secreta puede recrear simplemente usando la misma combinación de clave + nonce.
¿Keystream es ahora la parte que se utiliza para cifrar el texto sin formato?
Sí, al XORingarlas juntas:
ciphertext = plaintext XOR keystream
O, expandiendo la definición de keystream
:
ciphertext = plaintext XOR F(key, nonce)
¿Cómo es posible descifrar algo? ¿Necesito un fragmento de texto sin formato y un mensaje encriptado de lo que sugiero que esté allí para derivar el flujo de claves?
Dado que 0 XOR x = x
y x XOR x = 0
para todos x
, la ecuación anterior implica esta:
plaintext = ciphertext XOR F(key, nonce)
Para descifrar el texto cifrado, el destinatario solo necesita tener la misma clave y nonce que se usaron para cifrarlo. Piense en F
, nuevamente, como una caja negra compacta que reproduce la misma secuencia de claves dada la misma clave y nonce que se usaron para cifrar.
¿Cada paquete individual obtiene un nuevo flujo de claves para el cifrado o el flujo de claves se renueva después de un nuevo protocolo de enlace de cuatro vías?
Cada paquete en la misma sesión está cifrado con la misma clave, pero con un nonce diferente; esto significa que en la operación correcta, se utiliza una nueva secuencia de claves para cada paquete. Se usa un contador de paquetes incrementales para los nonces. El ataque consiste en engañar a las implementaciones para restablecer el contador de paquetes a su valor inicial sin restablecer la clave. Esto hace que la víctima cifre múltiples mensajes con la misma clave y nonce, y por lo tanto con la misma secuencia de claves.