-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.tex
186 lines (137 loc) · 6.42 KB
/
main.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
\documentclass[10pt, a4paper]{report}
\usepackage{nonotation}
%%%%%%%%%%%%%%%%%%%%%%%%% FONTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{bold-extra} % Used for boldface-smallcaps combo in section headers
\usepackage[normalem]{ulem} % For strikethrough text
%%%%%%%%%%%%%%%%%%%%%%%%% HYPERLINKS %%%%%%%%%%%%%%%%%%%%%%%%%
\PassOptionsToPackage{hyphens}{url}
\usepackage{hyperref}
\hypersetup{
colorlinks,
linkcolor = {red!70!black},
citecolor = {blue!50!black},
urlcolor = {blue!80!black}
}
% Hyperlink dingbat
\usepackage{pifont}
\newcommand{\linkicon}{\ding{226}}
%%%%%%%%%%%%%%%%%%%%%%%%% TIKZ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{datavisualization.formats.functions}
% Tikz styles used throughout all the figures
% Nodes
\tikzstyle{box} = [draw, minimum size = 2em]
\tikzstyle{nobox} = [minimum size = 2em]
% Pins
\tikzstyle{init} = [pin edge = {-to, thin, black}]
%%%%%%%%%%%%%%%%%%%%%%%%% THEOREMS %%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{amsthm}
\newtheorem{theorem} {Theorem} [chapter]
\newtheorem{lemma} [theorem] {Lemma}
\newtheorem{corollary} [theorem] {Corollary}
\newtheorem{claim} [theorem] {Claim}
\newtheorem{observation} [theorem] {Observation}
\newtheorem{proposition} [theorem] {Proposition}
\theoremstyle{definition}
\newtheorem{definition} [theorem] {Definition}
\newtheorem{exercise} [theorem] {Exercise}
\newtheorem{example} [theorem] {Example}
\newtheorem{construction} {Construction}
\theoremstyle{remark}
\newtheorem{solution} [theorem] {Solution}
%%%%%%%%%%%%%%%%%%%%%%%%% TODOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xcolor}
\usepackage{framed}
\newcounter{todocount}
\definecolor{shadecolor}{rgb}{1, 1, 0}
\newcommand{\todo}[1]{
\stepcounter{todocount}
\begin{shaded}
\textsc{To-do} \arabic{todocount}: #1
\end{shaded}
}
%%%%%%%%%%%%%%%%%%%%%%%%% OTHER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Math?lap commands
\usepackage{mathtools}
% Custom chapter title
\newcommand{\mychapter}[2]{
\setcounter{chapter}{#1}
\setcounter{section}{0}
\chapter*{#2}
\addcontentsline{toc}{chapter}{#2}
}
\newcommand{\upto}{\text{---}} % Range ligature
\renewcommand{\mod}{\mathrel{\textup{mod}}} % Remainder operator
\newcommand{\groupgen}{\mathcal{GG}} % Group generators for standard assumptions
\newcommand{\quadres}{\mathcal{Q}uad} % Quadratic residue group
\newcommand{\keygen}{\textsf{\textup{Keygen}}} % Key generator for public-privte pairs
\newcommand{\C}{\mathcal{C}} % Cipherspace
\newcommand{\G}{\mathcal{G}} % Generally used for generators or groups
\newcommand{\K}{\mathcal{K}} % Keyspace
\newcommand{\M}{\mathcal{M}} % Messagespace
\newcommand{\T}{\mathcal{T}} % Tagspace
\newcommand{\RO}{\mathrm{RO}} % Random oracle
\newcommand{\Gen}{\mathrm{Gen}} % Generic generator
\newcommand{\otp}{\textsc{otp}} % One-Time Pad
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\chapter{Introduction}
Newcomers beware: this course will employ a great deal of math, especially:
\begin{itemize}
\item Probability;
\item Algebra, especially group theory;
\item Notions of complexity theory and asymptotic analysis;
\item Some unique mathematical constructs, such as \emph{cryptographic games}
\end{itemize}
\subsubsection{Some terminology}
% Some people might have heard terms similar to ``cryptography'', like ``cryptology'', or ``cryptanalysis''. While they are often deemed interchangeable, there exists indeed a differentiation between the three:
% \begin{itemize}
% \item \emph{Cryptography} denotes the study and betterment of encryption techniques;
% \item \emph{Cryptanalysis} denotes the study of encrypted messages, and the ways of breaking the encryption to get to the message;
% \item \emph{Cryptology} refers collectively to cryptography and cryptanalisis.
% \end{itemize}
% This course has the intended main purpose of fostering better encryption techniques, hence its name.
While cryptography is almost always associated with the idea of keeping something secret, it is worthwhile to carefully consider other aspects that it influences:
\begin{itemize}
\item \emph{Confidentiality}: the two parties using a form of encrypted communication can safely assume that they are communicating privately; this can be further split into:
\begin{itemize}
\item \emph{Secrecy}: the particular aspect of privacy;
\item \emph{Authentication}: the particular aspect of identity verification.
\end{itemize}
\item \emph{Integrity}: this is about having a guarantee that data is not altered, a property which becomes essential especially in safety-critical scenarios.
\end{itemize}
\subsubsection{Principles}
Modern cryptography systems are usually designed according to \emph{Kerckhoffs's principle}, which states that a secure system shall only rely on the encryption keys, and not by the secrecy of the underlying algorithm; as Claude Shannon later summed up: \emph{``the enemy knows the scheme''}. The problem of sharing the key between two parties while retaining communication confidentiality thus becomes central in developing a good scheme, and is the main focus of almost every scheme described during the course.
\part{Mathematical foundations}
\input{lessons/lesson_1.tex}
\input{lessons/lesson_2.tex}
\input{lessons/lesson_3.tex}
\input{lessons/lesson_4.tex}
\input{lessons/lesson_5.tex}
\part{Symmetric schemes}
\input{lessons/lesson_6.tex}
\input{lessons/lesson_7.tex}
\input{lessons/lesson_8.tex}
\input{lessons/lesson_9.tex}
\input{lessons/lesson_10.tex}
\input{lessons/lesson_11.tex}
\input{lessons/lesson_12.tex}
\part{Asymmetric schemes}
\input{lessons/lesson_13.tex}
\input{lessons/lesson_14.tex}
\input{lessons/lesson_15.tex}
\input{lessons/lesson_16.tex}
\input{lessons/lesson_17.tex}
\input{lessons/lesson_18.tex}
\input{lessons/lesson_19.tex}
\part{Proof-based schemes}
\input{lessons/lesson_20.tex}
\input{lessons/lesson_21.tex}
\input{lessons/lesson_22.tex}
\input{lessons/lesson_23.tex}
\input{lessons/lesson_24.tex}
\end{document}