# How do different types of ciphers relate to each other?

I understand that there are symmetric and asymmetric (public-key) cyphers. The first have the same key used for encryption and decryption, while the second use a public key for encryption and a private key for decryption.

I understand that there are block and stream cyphers. The first work on rounds through the various blocks of a message, while the second work on bits as they come.

I also understand that there are substitution, permutation-based, etc. cyphers.

I understand that there are many cyphers, such as Caeser, OTP, AES, RSA, RC4, etc.

Now I want to connect all these terms together. How can I group them?

I.E.: Can symmetric and asymmetric cyphers both be block or stream? Or do those concepts only apply to symmetric cyphers. In what category do cyphers, such as OTP, Caeser, etc. follow in?

What I would like is to group it in topics, so any available resources would be appreciated.

I wanted something like:

1. Symmetric

1.1. Block?

1.2. Stream?

2. Asymmetric

But with the correct values, if that makes sense.

• The question doesn't really make sense. You group them in whichever way makes sense for you. Grouping ciphers (the correct spelling, by the way) by symmetric and asymmetric ciphers gives them meaning, because they may be good in some cases and bad in others. You could, conceivably, group them by length of their name - which is a valid and consistent grouping, but not likely to be useful. May 9, 2022 at 15:12
• No, asymmetric ciphers don't work like that - they're based on math using large numbers, not bits as we think of them in other contexts. And as I said, group them however makes sense for your use-case. There is no one-size-fits-all hierarchy of ciphers. May 9, 2022 at 15:23
• The spelling with a 'y' in the word "cypher" is hardly used by now, even though it is still deemed correct. The field seems to gravitate towards "cipher" with a 'i'. May 10, 2022 at 9:30
• @MaartenBodewes The only time I've seen "Cypher" is when referring to the character from The Matrix May 11, 2022 at 0:30
• @YozNacks Perhaps you are looking for something like this: researchgate.net/profile/Liam-Keliher-2/publication/239554949/… This is just one example of how to create a "taxonomy" of Cryptographic Primitives.
– Amit
Feb 5, 2023 at 19:46

Asymmetric ciphers commonly are generally not used to encrypt message data in blockwise fashion. Instead they will commonly be coupled with a symmetric cipher (which is called a "hybrid cryptosystem"). Asymmetric ciphers are essentially permutations, so in that sense they have more in common with block ciphers.

Generally the modes of operation that are defined for block ciphers do not apply to asymmetric ciphers. The exception to the rule is ECB mode - the repeated application of the cipher for subsequent blocks of the plaintext. However, in that case the asymmetric cipher may actually provide more security than the block cipher. The increased security is however at the cost of significant data and processing overhead.

The proposed solution in the question idea to split symmetric ciphers and asymmetric ciphers, and then splitting the symmetric ciphers into block and stream ciphers. This kind of hybrid cryptosystem can be found in most textbooks.

There are certainly different ways of grouping the cipher algorithms according to specific properties of the algorithms. For instance it is possible to split (symmetric) ciphers into authenticated and non-authenticated ciphers. Another possible grouping could depend on homomorphic or non-homomorphic asymmetric ciphers.

The Caesar cipher (note spelling) is a classical cipher that acts on an alphabet instead of bits / bytes, and I wonder if it should be part of any modern definition. It has more of the properties of a stream cipher though; if each character is considered atomic then I guess you could call it one.

OTP could be considered a stream cipher, although it acts on a key stream rather than a key, which makes it the odd one out.