In cryptography, a keystream is a stream of Randomness or Pseudorandomness characters that are combined with a plaintext message to produce an encrypted message (the ciphertext).
The "characters" in the keystream can be , , numbers or actual characters like A-Z depending on the usage case.
Usually each character in the keystream is either added, subtracted or bitwise XOR with a character in the plaintext to produce the ciphertext, using modular arithmetic.
Keystreams are used in the one-time pad cipher and in most . can also be used to produce keystreams. For instance, CTR mode is a block mode that makes a block cipher produce a keystream and thus turns the block cipher into a stream cipher.
To encrypt we add the keystream numbers to the plaintext. And to decrypt we subtract the same keystream numbers from the ciphertext to get the plaintext.
If a ciphertext number becomes larger than 25 we wrap it to a value between 0-25. Thus 26 becomes 0 and 27 becomes 1 and so on. (Such wrapping is called modular arithmetic.)
Here the plaintext message "attack at dawn" is combined by addition with the keystream "kjcngmlhylyu" and produces the ciphertext "kcvniwlabluh".
|
|