3

Working in security, I often hear terms such as algorithms, ciphers, primitives and functionalities. but as cryptography is not my field, they seem to be used interchangeably.

What are the differences between all those terms, and what nuances do they bring?

Maarten Bodewes
  • 96,351
  • 14
  • 169
  • 323
SaltyChips
  • 33
  • 3

1 Answers1

2

Those terms definitely have some differences!

Algorithm has the same meaning in cryptography as elsewhere in computer science: a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer. This is the most general term on your list.

A cipher is an algorithm you can use to encrypt or decrypt a message. For instance: RSA is a cipher. Not all the algorithms in cryptography are ciphers though.

A primitive is something low-level that will be used in cryptographic algorithms and ciphers, like Pseudo-Random Permutations or One-Way Hash Functions. They are tools to construct a crypto scheme.

Finally, I believe that functionalities are properties of your schemes, for instance perfect forward secrecy.

Goupil
  • 58
  • 6