Score:1

How do different types of ciphers relate to each other?

va flag

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 subsitution, 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.

Amit avatar
ci flag
@YozNacks Perhaps you are looking for something like this: https://www.researchgate.net/profile/Liam-Keliher-2/publication/239554949/figure/fig1/AS:349898198274048@1460433639512/Taxonomy-of-cryptographic-primitives.png This is just one example of how to create a "taxonomy" of Cryptographic Primitives.
YozNacks avatar
va flag
@Amit that's actually very useful, thanks!
MechMK1 avatar
ru flag
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.
YozNacks avatar
va flag
@MechMK1 maybe I didn't phrase it correctly, as it is kind of hard to explain what I'm looking for. E.G.: Do asymmetric ciphers also divide into block and stream ciphers? For example, can you use a block cipher, using private and public keys as well? I just want a hierarchy that is easily to divide into groups, in terms of what ciphers do. Say, in the category of symmetric ciphers, you can have both block and stream ciphers. Something like that. I just don't know all the groupings that can be made (or make sense making).
MechMK1 avatar
ru flag
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.
Maarten Bodewes avatar
in flag
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'.
MechMK1 avatar
ru flag
@MaartenBodewes The only time I've seen "Cypher" is when referring to the character from *The Matrix*
Score:0
in flag

Asymmetric ciphers commonly are not used in succession on the same message input, so they are commonly coupled with a symmetric cipher (which is called a "hybrid cryptosystem"). They 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 don't 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 - at the cost of significant data and processing overhead.


So actually your idea of splitting symmetric ciphers and asymmetric ciphers, and then splitting the symmetric ciphers into block and stream ciphers is right on the money and can be found in most textbooks.

Any other splits could be made on the properties of specific ciphers, but these are indeed the main ones. As indicated, there are many properties possible for ciphers, and any additional split can be made according to them, for instance authenticated / non-authenticated for symmetric ciphers or homomorphic or not for asymmetric ones to name just two possible splits.


The Caesar cipher 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 would be a stream cipher, although it acts on a key stream rather than a key, which makes it the odd one out.

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.