# Fundamentals of Cryptosystems

Learn about some important cryptographic terminologies and explore some common cryptographic primitives.

## Cryptography

*Cryptography* is a generic term used to describe the design and analysis of mechanisms based on mathematical techniques that provide fundamental security services. We’ll use cryptography in a generic sense, but a more formally accurate term is *cryptology*, which is the scientific study of cryptography (the design of such mechanisms) and *cryptanalysis* (the analysis of such mechanisms).

It is appropriate to think of cryptography as the establishment of a large toolkit of different techniques, the contents of which can either be used on their own or combined in security applications.

## Cryptographic primitive

A cryptographic primitive is a cryptographic process that provides a number of specified security services. If cryptography is a toolkit, then cryptographic primitives are the basic generic tools in that kit. Examples of cryptographic primitives we’ll later discuss are block ciphers, stream ciphers, message authentication codes, hash functions, and digital signature schemes.

## Cryptographic algorithm

A *cryptographic algorithm* is the particular specification of a cryptographic primitive. A cryptographic algorithm is essentially a ‘recipe’ of computational steps (rules such as ‘add these two values together’ or ‘replace this value by an entry from this table’). An algorithm is a sufficiently detailed specification that a computer programmer could implement.

For example, AES is a cryptographic algorithm that specifies a block cipher. The term *cipher* is sometimes associated with a cryptographic algorithm, particularly historical algorithms.

## Cryptographic protocol

A *cryptographic protocol* is a sequence of message exchanges and operations between one or more parties at the end of which a series of security goals should be achieved. An examples of cryptographic protocols that we’ll discuss include STS protocol. Cryptographic protocols typically employ a number of different cryptographic primitives at various stages.

If cryptographic primitives are tools in the cryptography toolkit, then a cryptographic protocol is a way of taking a number of these tools and using them in a specific way in order to achieve more complex security goals.

## Cryptosystem

A *cryptosystem* (or *cryptographic scheme*) is often used rather generically to refer to the implementation of some cryptographic primitives and their accompanying infrastructure. So, while a cryptosystem that is being used to provide data confidentiality might use a block cipher, the cryptosystem may also include the users, the keys, the key management, etc. This term is most often used in association with cryptographic primitives that provide data confidentiality. A cryptosystem is sometimes also referred to as a *cipher system*.

## Cryptographic primitives for security services

Having introduced the notion of a cryptographic primitive, we now indicate which common cryptographic primitives can be used to implement the various security services. The table below provides a mapping from our list of security services onto some of the cryptographic primitives that we’ll encounter in the remainder of the course. It shows the common use of cryptographic primitives that are used on their own to achieve security services.

Note:We use the generic term ‘encryption’ in the table provided below to represent a range of cryptographic primitives including block ciphers, stream ciphers, and public-key encryption.

Get hands-on with 1200+ tech skills courses.