1
$\begingroup$

I am learning about stream ciphers, which apparently are unpopular. I just want to have a better idea of some basic algorithms that are in use or were in use till recently.

I checked:

  • the OTP: Apparently great but unpractical
  • Linear Congruent Generator: insecure
  • LFSR: not sure yet but it appears insecure

Can you suggest a few not overly complicated stream cipher algorithms, with some practical relevance, that one should check and maybe indicate where is it applied ?

$\endgroup$
3
  • 2
    $\begingroup$ "which apparently are unpopular" - Not really. TLS 1.3 supports 5 cipher suites, two of which use AES-GCM, which is essentially converting a block cipher into a stream cipher, and one uses ChaCha20, which is a stream cipher. $\endgroup$
    – nobody
    Aug 2 at 11:37
  • 1
    $\begingroup$ ChaCha20 is a good one to look at because it's quite simple whilst being the main competitor to AES. Here is a list of some protocols/applications using it. $\endgroup$ Aug 2 at 12:41
  • $\begingroup$ The classic example is RC4. Sweet and simple. $\endgroup$
    – Paul Uszak
    16 hours ago

1 Answer 1

0
$\begingroup$

First we have to understand what stream and block ciphers are. In Katz & Lindell's textbook (2nd edition) you can have a deeper look into this topic. At this point I assume you know about them. Anyway I try to keep my answer as simple as possible.

I am learning about stream ciphers, which apparently are unpopular.

I think this is not true. Block ciphers and stream ciphers both have their justification for existence, especially for practical cryptography.

Block ciphers can be better regarding performance if the length of the plaintext is known or if the plaintext itself is structured in blocks. The most common use case for that is disk encryption of your computer. The bits in a computer are also structured in block. E.g. 8 bit to 1 byte, 32 or 64 bit processores, etc. On the other hand, the size of the plaintext is known. Thus, this creates the perfect environment for a block cipher. An example is AES.

On the other hand, it makes more sense to use stream ciphers if the length of the plaintext is not known. A typical use case are wireless connections. Another, easier to understand example are instant message applications. The size of the messages varies a lot. Therefore the use of block ciphers is not necessarily practical. An example is Threema, which uses the stream cipher XSalsa20 to encrypt their messages.

Now there are many more properties that are advantageous or disadvantageous depending on the context. For example, implementation size, performance, existing literature, network structures, hardware options, etc. So it cannot be generally said that block ciphers or stream ciphers are unpopular. In general, I would avoid saying that ciphers are unpopular because there is always a use case where they stand out. Even old and insecure historical ciphers are still popular today as teaching material or puzzle sources :D

Note:

  • The transition between block ciphers and stream ciphers is smooth and some stream ciphers are incorrectly called block ciphers and vice versa.
  • wikipedia has a list of stream ciphers
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy