-
Notifications
You must be signed in to change notification settings - Fork 0
/
article.tex
256 lines (198 loc) · 6.52 KB
/
article.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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
\documentclass{article}
\usepackage{arxiv}
\usepackage[utf8]{inputenc} % allow utf-8 input
\usepackage[T1]{fontenc} % use 8-bit T1 fonts
\usepackage{hyperref} % hyperlinks
\usepackage{url} % simple URL typesetting
\usepackage{booktabs} % professional-quality tables
\usepackage{amsfonts} % blackboard math symbols
\usepackage{nicefrac} % compact symbols for 1/2, etc.
\usepackage{microtype} % microtypography
\usepackage{lipsum}
\usepackage{graphicx}
\graphicspath{{../img/}}
\title{Using ML For Generating Cryptographic functions}
\author{
David S.~Hippocampus\thanks{Use footnote for providing further
information about author (webpage, alternative
address)---\emph{not} for acknowledging funding agencies.} \\
Department of Computer Science\\
Cranberry-Lemon University\\
Pittsburgh, PA 15213 \\
\texttt{[email protected]} \\
%% examples of more authors
\And
Elias D.~Striatum \\
Department of Electrical Engineering\\
Mount-Sheikh University\\
Santa Narimana, Levand \\
\texttt{[email protected]} \\
%% \AND
%% Coauthor \\
%% Affiliation \\
%% Address \\
%% \texttt{email} \\
%% \And
%% Coauthor \\
%% Affiliation \\
%% Address \\
%% \texttt{email} \\
%% \And
%% Coauthor \\
%% Affiliation \\
%% Address \\
%% \texttt{email} \\
}
\begin{document}
\maketitle
\begin{abstract}
TODO: read and review
In this paper we unite machine learning
and cryptography: using ML methods
trying to solve one of the
most important problem
in cryptography: to find boolean
function with acceptable cryptological
properties. Neural network for making pseudorandom
function is developed. This function
used as round function in Feistel Network, which
we finally test on NIST test battery.
\end{abstract}
\keywords{Cryptography \and Machine Learning \and Reinforcement Learning \and Privacy}
\section{Introduction}
TODO: read and review
Cryptography is widely used in
information security.
Everyone is using it in messagers, shops,
in internet of things and many others
aspects of life. Many users
encrypt its personal data without even
knowing what cryptography is.
There are a lot of basic templates
for cryptographic encryption
functions called schemes - Feisteil network, SP-network, XSL-scheme etc.
Every scheme has adjustable
set of parameters such as
plaintext and key size, internal
round functions, number of rounds.
Best practice in constructing new encryption
algorithm is to choose a good scheme,
then select perfect parameters of chosen scheme.
For example, algorithm AES is a XSL-scheme
with choosen internal operations, including s-boxes.
Chosing excellent round functions in another part
of cryptographic art.
When new algorithm is published,
researchers of whole world trying to find
weakness in it.
Besides, absence of attacks
doesn't mean that algorithm is strong.
Many people, besides, prefer concept of
<<nothing up my sleeve numbers>> \cite{NMSN},
which require generating s-boxes only
by random choise. Otherwise one can say that you
try to hide specific propeties of your algorithm.
On the other hand, ML methods can be applying as
approach to find a good
That's why in this paper we use neuronal network for generating good round function
for Feisteil Network - one of the most popular scheme.
Then we test properties of our algorithm on the NIST test battery.
\section{Symmetric encryption basics}
TODO...
\section{Problem statement}
TODO: read and review
From ancient times to nowadays
many different types of
cryptographic attacks were presented.
That's why cypher's developers very carefully
selected cypher's parameters.
Widely distributed (but, obviously,
not absolutily reliable)
method of proving new cipher's security is
trying to apply to it all
known attacks. Impossibility
of applying all these attacks
with acceptable time and data complexity
gives grounds to consider the cipher as
stable one.
This method has a lot of
obvious defects.
On the one hand, many variety
of new attacks developed
every year (and not all of them
are published). On the other hand,
when developer examined cipher made
himself, he could miss some
cipher's vulnerability. So
you cannot say about
absolute security.
Another look for cipher's security
if to make its encryption function
indistinguishable from
random substitution.
\section{Reinforcement Learning}
TODO...
\section{Solution}
\subsection{Main idea}
TODO: (general words about combining encryption and ML)...
\subsection{Feisteil Network}
TODO: read and review
For our experiments we chose the
Feisteil Network scheme. This scheme
first published in []. It uses in previous
international standard DES [] and present
widely used algorithm GOST28147-89 [].
Now we'll give a brief discription of the scheme.
Denote
$X = (x_n, x_{n-1}, \dots, x_0), x_i \in \{0,1\}, i = 0, 1, \dots, n-1$ as
input text, and
$n$ as (so, also a cipher text) size.
One {\it round} of the scheme is to
modify input text $X = (X_l, X_r)$
to $$(X_r, X_l \oplus f(X_r, k)).$$
Scheme has fixed number of rounds, which
we denote as $R$.
Input of first round is the input text.
For other rounds input is the output of
previous round. Cipher text is the output
of the last ($R$-th) round.
then modify right part $X_r$ with
function $f:V_{n/2}\rightarrow V_{n/2}$ and
round key $k\in V_{n/2}$.
TODO: in our experiments we used the following settings:
Block size - 64 bit (2 x 32)
Rounds number - 16
\subsection{Neural network architecture}
TODO...
Deep fully connected network (8 layers), activation function - SELU
Stochastic computation graph
\subsection{Optimization approach}
TODO (Stochastic Policy Gradients, REINFORCE???)...
\subsection{Reward function}
TODO...
consists of 3 components, each corresponding to a class of well-known attacks on cryptographic functions:
Attack on related open texts
Attack on related keys
Attack on related encrypted texts
\subsection{Putting pieces together}
\includegraphics[scale=1]{img/NFM_learing.png}
\section{Experiments}
\subsection{Test methodology}
TODO...
Input text data - 10 million Twitter messages
Randomly generated round keys
\subsection{Validation}
TODO...
\includegraphics[scale=1]{img/NFM_validation.png}
\subsection{Results}
TODO...
\includegraphics[scale=1]{img/learning_curve.png}
\includegraphics[scale=1]{img/result_nfm.png}
\includegraphics[scale=1]{img/result_blowfish.png}
\section{Thoughts on further development}
TODO...
\section{Conclusion}
TODO...
\bibliographystyle{unsrt}
\bibliography{references}
\end{document}