How does a stream cipher work?
-
A stream cipher works roughly like a one-time pad.
-
Just as in one-time pad, it can be broken if (A) you have insight into what the pad looks like, or if (B) the pad is used multiple times.
-
The difference is that the “pad” in a stream cipher is not random, but pseudorandom - called a “keystream”.
-
The pad/keystream essentially comes from a PRNG, which is seeded by (secret key + nonce).
-
So the PRNG seed has a constant secret half (the secret key), and a changing public half (the nonce).
-
The constant secret half (the key) prevents the first kind of breakage (A: attacker having insight into the pad).
-
The changing public half (the nonce) prevents the second kind of breakage (B: the pad being used multiple times).
Similar posts
openssl
? openssl passwd
command hashes passwords using the outdated crypt algorithm, with truncation to 8 characters - a poor choice for secure password hashing. 2017-03-12openssl
? openssl rand
, which uses a PRNG seeded with entropy from ~/.rnd
. 2017-03-10openssl
? openssl enc
command with a password and AES-256 cipher. The encrypted text is base64-encoded. 2017-03-09localhost
and your local network. 2019-05-26Similar posts
openssl
? openssl passwd
command hashes passwords using the outdated crypt algorithm, with truncation to 8 characters - a poor choice for secure password hashing. 2017-03-12openssl
? openssl rand
, which uses a PRNG seeded with entropy from ~/.rnd
. 2017-03-10openssl
? openssl enc
command with a password and AES-256 cipher. The encrypted text is base64-encoded. 2017-03-09localhost
and your local network. 2019-05-26More by Jim
foo.bar
, foo.bar()
, or foo.bar = baz
- what do they mean? A deep dive into prototypical inheritance and getters/setters. 2020-11-01This page copyright James Fisher 2016. Content is not associated with my employer. Found an error? Edit this page.