Cryptography basics

Lastly i've wrote about Cryptographic Hash Functions and i've recognized, that it's might be important to have a clear understanding of the cryptography basics at all. Hash function's is one of the important cryptography building blocks, but let' me first go a step back and draw the overall picture..

Why cryptography

Let's recap what the main goals of using cryptography in IT systems are:

Authentication - Receiving party can verify the source of the message. As example verifying the authenticity of a website with a digital certificate.

Confidentiality - More commonly, the biggest concern is be to keep information private. Cryptographic systems were originally developed to function in this capacity.

Non-repudiation - It provides protection against denial of
one of the entities involved in the communication. Often, cryptographic tools are required to prove that a unique user has made a transaction request. It must not be possible for the user to refute his or her actions.

Cryptosystem

In cryptography, a cryptosystem is a suite of cryptographic algorithms needed to implement a particular security service. Typically, a cryptosystem consists of algorithms for key generation, encryption, and decryption. Encryption and decryption algorithms referred as ciphers.

Ciphers

A cipher (or cypher) is an algorithm (Series of well-defined steps - a procedure) for performing encryption or decryption. Such procedure is depending on a piece of auxiliary information, called a key. At the end without knowledge of the key, it should be unfeasible to decrypt the resulting ciphertext into readable plaintext.

Ciphers can be categorized in the following way:

Whether the same key is used for both encryption and decryption (symmetric key algorithms), or if a different key is used for each (asymmetric key algorithms).

Whether they work on blocks of symbols usually of a fixed size (block ciphers), or on a continuous stream of symbols (stream ciphers).