En criptografía , una secuencia de claves es una secuencia de caracteres aleatorios o pseudoaleatorios que se combinan con un mensaje de texto plano para producir un mensaje cifrado (el texto cifrado).
Los "caracteres" en el flujo de claves pueden ser bits , bytes , números o caracteres reales como AZ, según el caso de uso.
Por lo general, cada carácter en el flujo de claves se suma, resta o XOR con un carácter en el texto sin formato para producir el texto cifrado, utilizando aritmética modular .
Los flujos de claves se utilizan en el cifrado de almohadilla de un solo uso y en la mayoría de los cifrados de flujo . Los cifrados en bloque también se pueden utilizar para producir cadenas de claves. Por ejemplo, el modo CTR es un modo de bloque que hace que un cifrado de bloque produzca un flujo de claves y, por lo tanto, convierte el cifrado de bloque en un cifrado de flujo.
Ejemplo
En este sencillo ejemplo usamos el alfabeto inglés de 26 caracteres de az. Por tanto, no podemos cifrar números, comas, espacios y otros símbolos. Los números aleatorios en el flujo de claves deben estar al menos entre 0 y 25.
Para cifrar, agregamos los números de flujo de claves al texto sin formato. Y para descifrar, restamos los mismos números de flujo de claves del texto cifrado para obtener el texto sin formato.
Si un número de texto cifrado es mayor que 25, lo ajustamos a un valor entre 0-25. Por tanto, 26 se convierte en 0 y 27 se convierte en 1 y así sucesivamente. (Tal envoltura se llama aritmética modular ).
Aquí, el mensaje de texto plano "ataque al amanecer" se combina mediante la adición con la secuencia de claves "kjcngmlhylyu" y produce el texto cifrado "kcvniwlabluh".
Texto sin formato | a | t | t | a | C | k | a | t | D | a | w | norte |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Texto sin formato como números | 0 | 19 | 19 | 0 | 2 | 10 | 0 | 19 | 3 | 0 | 22 | 13 |
Keystream | k | j | C | norte | gramo | metro | l | h | y | l | y | tu |
Keystream como números | 10 | 9 | 2 | 13 | 6 | 12 | 11 | 7 | 24 | 11 | 24 | 20 |
Texto cifrado como números | 10 | 28 | 21 | 13 | 8 | 22 | 11 | 26 | 27 | 11 | 46 | 33 |
Texto cifrado como números ajustados a 0-25 | 10 | 2 | 21 | 13 | 8 | 22 | 11 | 0 | 1 | 11 | 20 | 7 |
Texto cifrado como texto | k | C | v | norte | I | w | l | a | B | l | tu | h |
Referencias
- Manual de criptografía aplicada de Menezes, van Oorschot y Vanstone (2001), capítulos 1, 6 y 7.