3

Is there a difference between "symmetric algorithms" and "symmetric ciphers" within the context of cryptography? In reading some security exam prep material, the author seems inconsistent when referring to those terms.

Examples of sites using the term "symmetric algorithm":

I thought that "ciphers" were algorithms specifically used for performing encryption or decryption (as per wikipedia).

What is the proper terminology to use when referring to (or grouping) things like DES, 3DES, Blowfish, IDEA, MARS, etc?

Can I use the terms "symmetric algorithms" and "symmetric ciphers" interchangeably?

(Sorry if this question is a bit pedantic -- beyond just studying for the exam, I want to ensure I'm communicating properly when referring to the concepts).

  • I personally never heard of "symmetric algorithms" as an actual term. For the listed algorithms it would certainly be correct to call them "symmetric cipher". – John Dec 29 '15 at 22:58
  • Wikipedia calls them Symmetric-key algorithms. – Nate Diamond Dec 29 '15 at 23:38
2

A cipher is in fact a type of algorithm, so that's why you see the confusing verbiage. Often a cipher is referred to as 'cipher algorithm,' and for purposes of brevity the term 'cipher' has been oft-used. However, using simply 'algorithm,' while also succinct; is less clear and explicit.

For usage in Standard Written English, I believe 'symmetric cipher' is a more accurate term, as a 'symmetric algorithm' infers the fact it is a cipher/cryptopgrahic algorithm, but is not explicit in this reference (and, is rather, implicit) -- a 'symmetric algorithm' could theoretically also refer to algorithms not associated with cryptography.

For reference, here's the first sentence of the Wikipedia article for cipher:

In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure.

0

They are not quite the same. Similar, but not identical.

Encryption algorithms are used to take plain-text data, turn it into cipher-text, then turn it back into plain-text.

Symmetric Encryption Algorithms use Symmetric Ciphers to achieve this. They put plain-text data into a symmetric cipher with given key material to get the cipher-text, then put the cipher-text back into the symmetric cipher with the same key material to get the plain-text.

Symmetric Ciphers can be used for other cryptographic primitives though. Consider using a symmetric stream cipher with a (hopefully high-entropy) key to generate random values. Or encrypting a challenge block to prove that you have the same symmetric key as a form of authentication (not necessarily a good one, but a form).

Consider a hash function in which you use the first block as a key, then encrypt the rest of the data, returning the last encrypted block as the hash.

Note: These are not necessarily good uses of symmetric ciphers, and you should not roll your own crypto. They are simply examples.

Check out more uses here.

  • 1
    I'm failing to see the distinction between ciphers and algorithms as you place it here..symmetric encryption algorithms can be used for stream ciphers, or encoding a challenge block, e.g. RC4 or AES; so I don't believe a tangible distinction exists since either way, you're using a symmetric cipher algorithm, whether it be RC4, 3DES, AES etc. – Herringbone Cat Dec 30 '15 at 0:23
  • I'm arguing that once you use a 'symmetric algorithm' as a 'stream cipher', it's no longer a symmetric algorithm. An algorithm is a 'self-contained step-by-step set of operations to be performed'. Once you change that, why is it still the same? The cipher underneath the two algorithms may be the same, but in one case you're doing symmetric encryption (going from plain to cipher and back) and in one you're not. I.e., how is generating random numbers with AES doing the symmetric encryption algorithm? You should throw away the key! – Nate Diamond Dec 30 '15 at 0:29
  • 1
    because the stream cipher is still acting as an algorithm in that it contains a self-contained method of steps to be executed in order for the encryption to take place. As noted in the Wikipedia article, NSA often uses the term "combiner-type algorithm" instead of stream cipher. Note that AES is not a stream cipher but RC4 is, different cipher algorithms are used for stream rather than block ciphering. I'd argue all ciphers are types of algorithms. – Herringbone Cat Dec 30 '15 at 0:32
  • The stream cipher is certainly a sub-algorithm. And it's true that ciphers are types of algorithms. That doesn't mean that a cipher in itself is an encryption algorithm, as it doesn't specify its use with regards to using keys to encrypt and decrypt data (see: the other uses included in the above answer). The point that I was trying to make is that "using a symmetric cipher as a symmetric encryption algorithm" is different than "a symmetric cipher". One is the specific use case, the other is the general tool used in that use case. – Nate Diamond Dec 30 '15 at 18:06

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.