Keystream - Keystream
Na criptografia , um fluxo de chave é um fluxo de caracteres aleatórios ou pseudo - aleatórios que são combinados com uma mensagem de texto simples para produzir uma mensagem criptografada (o texto cifrado).
Os "caracteres" no fluxo de chaves podem ser bits , bytes , números ou caracteres reais como AZ, dependendo do caso de uso.
Normalmente, cada caractere no fluxo de chaves é adicionado, subtraído ou XORed com um caractere no texto simples para produzir o texto cifrado, usando aritmética modular .
Os fluxos de teclas são usados na cifra de bloco única e na maioria das cifras de fluxo . As cifras de bloco também podem ser usadas para produzir fluxos de teclas. Por exemplo, o modo CTR é um modo de bloco que faz com que uma cifra de bloco produza um fluxo de chaves e, portanto, transforma a cifra de bloco em uma cifra de fluxo.
Exemplo
Neste exemplo simples, usamos o alfabeto inglês de 26 caracteres de az. Assim, não podemos criptografar números, vírgulas, espaços e outros símbolos. Os números aleatórios no fluxo de chaves devem estar pelo menos entre 0 e 25.
Para criptografar, adicionamos os números do fluxo de chaves ao texto simples. E para descriptografar, subtraímos os mesmos números do fluxo de chaves do texto cifrado para obter o texto simples.
Se um número de texto cifrado ficar maior que 25, nós o agrupamos com um valor entre 0-25. Assim, 26 torna-se 0 e 27 torna-se 1 e assim por diante. (Esse agrupamento é chamado de aritmética modular .)
Aqui, a mensagem de texto simples "ataque ao amanhecer" é combinada por adição com o fluxo de chave "kjcngmlhylyu" e produz o texto cifrado "kcvniwlabluh".
Texto simples | uma | t | t | uma | c | k | uma | t | d | uma | C | n |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Texto simples como números | 0 | 19 | 19 | 0 | 2 | 10 | 0 | 19 | 3 | 0 | 22 | 13 |
Keystream | k | j | c | n | g | m | eu | h | y | eu | y | você |
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 agrupados em 0-25 |
10 | 2 | 21 | 13 | 8 | 22 | 11 | 0 | 1 | 11 | 20 | 7 |
Texto cifrado como texto | k | c | v | n | eu | C | eu | uma | b | eu | você | h |
Referências
- Handbook of Applied Cryptography por Menezes, van Oorschot e Vanstone (2001), capítulos 1, 6 e 7.