fixed 'MAC algortithm' inconsistency (thanks to Rainer Hoerbe)
[ach-master.git] / src / cipher_suites / architecture.tex
1 %%\subsection{Architectural overview }
2
3 This section defines some terms which will be used throughout this guide.
4
5
6 A cipher suite is a standardised collection of key exchange algorithms, encryption 
7 algorithms (ciphers) and Message authentication codes (MAC) algortihm that provides
8 authenticated encryption schemes. It consists of the following components:
9
10 \begin{description}
11
12 \item{\it Key exchange protocol:}
13 ``An (interactive) key exchange protocol is a method whereby parties who do not 
14 share any secret information can generate a shared, secret key by communicating 
15 over a public channel. The main property guaranteed here is that an 
16 eavesdropping adversary who sees all the messages sent over the communication 
17 line does not learn anything about the resulting secret key.'' \cite{katz2008introduction}
18
19 Example: \texttt{DHE}
20
21 \item{\it Authentication:}
22 The client authenticates the server by its certificate. Optionally the server 
23 may authenticate the client certificate.
24
25 Example: \texttt{RSA}
26
27 \item{\it Cipher:}
28 The cipher is used to encrypt the message stream. It also contains the key size
29 and mode used by the suite.
30
31 Example: \texttt{AES256}
32
33 \item{\it Message authentication code (MAC):}
34 A MAC ensures that the message has not been tampered with (integrity).
35
36 Examples: \texttt{SHA256}
37
38 \item{\it Authenticated Encryption with Associated Data (AEAD):}
39 AEAD is a class of authenticated encryption block-cipher modes
40 which take care of encryption as well as authentication (e.g. GCM, CCM mode). 
41
42 Example: \texttt{AES256-GCM}
43
44
45
46 \begin{figure}[h]
47 \makebox[\textwidth]{
48 \framebox[1.1\width]{ \texttt{DHE} }--\framebox[1.1\width]{ \texttt{RSA} }--\framebox[1.1\width]{ \texttt{AES256} }--\framebox[1.1\width]{ \texttt{SHA256} } }
49 \caption{Composition of a typical cipher string}
50 \end{figure}
51
52 \item {\textbf{A note on nomenclature:}} there are two common naming schemes for cipher strings -- IANA names (see section \ref{section:Links}) and the more well known OpenSSL names. In this document we will always use OpenSSL names unless a specific service uses IANA names.
53
54 \end{description}