<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Evaluating Efficiency of Artificial Neural Networks for Solving Symmetric Cryptography Issues</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Denis</forename><surname>Roenko</surname></persName>
							<email>roenko.dv@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="institution">ITMO University</orgName>
								<address>
									<addrLine>49 Kronverksky Pr</addrLine>
									<postCode>197101</postCode>
									<settlement>Saint Petersburg</settlement>
									<country key="RU">Russian Federation</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Evaluating Efficiency of Artificial Neural Networks for Solving Symmetric Cryptography Issues</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">AF2D9A688F9C42D96981CC3FE6F1F694</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T00:35+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Symmetric encryption algorithm</term>
					<term>artificial neural network</term>
					<term>neural cryptography</term>
					<term>algorithmic efficiency</term>
					<term>statistical security analysis</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The paper is devoted to explore efficiency of artificial neural networks applied to the field of symmetric cryptography. It describes several applications of neural networks to cryptography in general to define concepts allowing to use them in this sphere. After the literature analysis on the neural cryptography the encryption algorithm based on recurrent neural network was defined and implemented in order to conduct experiments on its performance and statistical security comparing with modern symmetric encryption standards such as AES and GOST R 34.12-2015 "Magma". Based on the results of these experiments, which were presented in graphs and tables, conclusions on the efficiency of the algorithm were drawn, prospects for its improvement were noted which will become a basis for further research in neural cryptography.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Applying cryptographic algorithms has always been among of the most important approaches to information protection. Cryptography studies existing and develops new methods of transforming information, guaranteeing that third parties will not be able to obtain confidential data.</p><p>Active usage of artificial neural networks (ANN) -algorithms, simulating a work of human brain to solve applied tasks, where standard approaches does not show high effectiveness, has become a logical stage of computer systems development. Such features of neural networks as mutual learning, self-learning and stochastic behavior allows to solve issues of public key cryptography, symmetric encryption, key distribution and generation of pseudo-random numbers. These properties are also contributed to the emergence of neural cryptography -branch of cryptography that studies usage of neural networks for encryption and cryptanalysis.</p><p>Therefore, it is important to determine the efficiency of neural network algorithms applied to the sphere of cryptography, particularly to symmetric encryption. To achieve this goal the following tasks should be solved:</p><p>1. analyze related works and evaluate the application of neural networks in cryptography; 2. determine neural network encryption algorithm under the study; 3. define methods of evaluating performance and security of proposed algorithm; 4. conduct experiments to compare various neural network topologies and modern symmetric encryption standards, such as AES and GOST R 34.12-2015 "Magma"; 5. make conclusions and designate prospects for further research.</p><p>There are some limitations and assumptions in this work. Performance metrics of the proposed encryption algorithm, which were obtained during the tests are limited by a processing power of the test environment (the laptop with Intel Core i5 7300HQ CPU, Nvidia GeForce GTX 1050 GPU and 8 Gb of RAM was used to conduct experiments). Also it can be supposed that architecture of the neural network, which was selected to implement encryption algorithm, provides best results for the given task.</p><p>Paper's structure corresponds to the order of performing the research tasks. The usage of neural network algorithms in some areas of cryptography is stated in Section 2. "Description of the algorithm" section is dedicated to explaining working principles of the algorithm and its mathematical background. Section 4 stands for definition of evaluation metrics, which were used to compare certain neural network topologies with existing encryption standards and analysis of the experimental results. Last section focuses on conclusions of the research and prospects for future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Application of neural networks in cryptography</head><p>Artificial neural networks have already shown their effectiveness in implementation of hashing algorithm which was described by L. Shiguo et el. <ref type="bibr" target="#b0">[1]</ref> and key exchange protocol introduced by A. Singh and A. Nandal <ref type="bibr" target="#b1">[2]</ref>. In this paper a short explanation of these algorithms was provided in order to identify key features of neural networks allowing to use them for cryptographic purposes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Hashing function based on ANN</head><p>In fact, the simplest unit of a neural network, such as a neuron, is a one-way function. Artificial neuron has several input parameters and one output parameter, therefore it is easy to obtain the output value with known input values, but the reverse process is almost impossible to perform. Such property of a neuron as the irreversibility of the output value makes it suitable for creating hash functions based on it.</p><p>The model of the neural network, shown in Fig. <ref type="figure" target="#fig_0">1</ref> and used to implement the hashing function, is a three-layer feed-forward neural network and consists of the input layer, the hidden layer and the output layer. Input layer of the ANN gets 1024 bit vector of information, which is divided by 32 parts called data-pixels, each data-pixel contains 32 bits of information. Then input layer produces 8 outputs by calculating weighted sum from 4 data-pixels in each neuron, adding corresponding biases and applying chaotic function to each value. Hidden layer and output layer performs the same operations with their inputs. As a result, ANN gets a 128-bit hash block 𝐻 that consists of 4 data-pixels <ref type="bibr" target="#b0">[1]</ref>. The following equation defines the output of neural network: 𝐻 = 𝑓 (𝑊 2 𝑓 (𝑊 1 𝑓 (𝑊 0 𝑃 + 𝐵 0 ) + 𝐵 1 ) + 𝐵 2 )</p><p>(1) 𝑃 -input vector; 𝑊 0 , 𝑊 1 , 𝑊 2 -weight vectors of corresponding layers; 𝐵 0 , 𝐵 1 , 𝐵 2 -biases of corresponding layers; 𝑓 -chaotic function.</p><p>The hashing algorithm is built on the basis of ANN and key generator. The latter transforms user's key into a set of weights and biases for neural network and control parameters of chaotic functions for each layer (Fig. <ref type="figure" target="#fig_1">2</ref>).</p><p>The scheme of hashing algorithm for all blocks of text is shown on Fig. <ref type="figure" target="#fig_2">3</ref>. Function receives a hash block 𝐻 from one block of message 𝑀 than performs XOR operation between vector 𝐻 and key vector 𝐾 , which are both 128-bits long. The received value becomes a key for the next block hashing.</p><p>Analysis of this algorithm showed a high sensitivity of the output value to the input data and the user's key. In addition, the described algorithm is protected from "birthday" and "meet-inthe-middle" attacks. It is also worth noting that when carrying out parallel computations, the number of computational operations for the given algorithm becomes less than that of MD5 and SHA-1, as a result, the speed of calculating the function increases. However, to transform text using a neural network algorithm, the presence of a key is required, otherwise the unidirectionality of the algorithm is violated, while most hash functions work without a key <ref type="bibr" target="#b2">[3]</ref>. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">Neural key exchange protocol</head><p>The neural key exchange protocol is based on synchronization of two tree parity machines (TPM). It is a special type of multi-layer feed-forward neural network (Fig. <ref type="figure" target="#fig_3">4</ref>). It consists of   After the complete synchronization, both sides can use weights as a key. This method is known as bidirectional training <ref type="bibr" target="#b1">[2]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Description of the algorithm</head><p>To test the effectiveness of applying ANN to implement symmetric block cipher, the algorithm proposed by M. Arvandi et el. <ref type="bibr" target="#b3">[4]</ref> was chosen. It was selected due to the presence of a sufficient scientific base for its implementation, as well as vast prospects for its further improvement.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Neural network architecture and key sharing</head><p>Neural network architecture shown in Fig. <ref type="figure" target="#fig_4">5</ref> consists of one input, two hidden, one output layer and reverse relationship. The input of the neural network receives two-byte blocks of plaintext, combined with the two output values of the network from the previous step, then a procedure 𝐹 1 of calculating the values of neurons in the first hidden layer is performed. Next a procedure 𝑉 1 calculates the value of a single neuron in the second hidden layer. In this layer one neuron helps to get data mixing and applying nonlinear sigmoid function allows to achieve data replacement. At the end of iteration output values are calculated by 𝐹 2 procedure and sent to the next calculating iteration <ref type="bibr" target="#b3">[4]</ref>. After receiving the dataset, each user performs learning process with their own copy of neural network to obtain weight coefficients, which will be a secret key for further encryption and decryption. Last output value 𝑀 0 from generation of a shared key becomes an initialization vector for encryption process <ref type="bibr" target="#b3">[4]</ref>.</p><p>It should be noted that learning process is performed with a predefined loss function (mean squared error) and optimizer (stochastic gradient decent). Another important moment is that initial weights and biases should be set by the algorithm and be the same for both parties.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Encryption process</head><p>Data encryption (Fig. <ref type="figure" target="#fig_5">6</ref>) starts with concatenation of initialization vector 𝑀 0 with first plaintext block 𝑀 1 . Resulting vector 𝑋 1 is used to obtain the value of intermediate neuron 𝑉 1 and neural network output 𝑌 1 . Then the difference 𝐸 1 between plaintext block and neural network output is calculated. Values 𝑉 1 and 𝐸 1 are the first block of ciphertext 𝐶 1 <ref type="bibr" target="#b3">[4]</ref>.</p><p>To encrypt the next block of plaintext, the concatenation of the values 𝑌 1 and 𝑀 2 is sent to the network input. In a more general form, the encryption process can be represented by the following equations:</p><formula xml:id="formula_0">𝑉 𝑖 = 𝐹 1 (𝑋 𝑖 )<label>(2)</label></formula><formula xml:id="formula_1">𝑌 𝑖 = 𝐹 2 (𝑉 𝑖 )<label>(3)</label></formula><formula xml:id="formula_2">𝐸 𝑖 = 𝑀 𝑖 − 𝑌 𝑖<label>(4)</label></formula><p>In addition, after encrypting each block of plaintext, it is possible to carry out one training iteration using 𝑀 𝑖 as the input vector and 𝑌 𝑖 as the training goal. In this case, the weights will constantly change during the data encryption. This technique allows to improve the security of algorithm <ref type="bibr" target="#b3">[4]</ref>. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">Decryption process</head><p>The decryption process (Fig. <ref type="figure" target="#fig_6">7</ref>) starts when user on the other side of communication channel receives ciphertext blocks. Using value 𝑉 𝑖 from ciphertext it is possible to calculate neural network output 𝑌 𝑖 : 𝑌 𝑖 = 𝐹 2 (𝑉 𝑖 ).</p><p>(5)</p><p>With known 𝑌 𝑖 and 𝐸 𝑖 the plaintext block can be calculated:</p><formula xml:id="formula_3">𝑀 𝑖 = 𝑌 𝑖 + 𝐸 𝑖 . (<label>6</label></formula><formula xml:id="formula_4">)</formula><p>After recovering the plaintext block, one iteration of neural network training is performed in the same way as this operation was performed at the encryption stage. The security of the described encryption algorithm is based on the fact, that it will be difficult for an attacker to calculate the set synaptic weights and biases of neurons, without knowing the training dataset, which was used to synchronize the neural networks.</p><p>An important advantage of this cipher is the ability to easily regulate the level of security by increasing neurons in hidden layers or complicating their hierarchy. This advantage removes the limitation on the length of the secret key, which is present in all modern encryption algorithms. However, it is worth to avoid changes in the hidden layer with one neuron, otherwise there is a risk of losing the effect of mixing data <ref type="bibr" target="#b3">[4]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Experiments and results</head><p>To conduct experiments, that will assess the performance and security of the neural network encryption algorithm, several neural network topologies were chosen:</p><p>• RNN-2 with layer configuration [4-4-1-2];</p><p>• RNN-4 with layer configuration [8-8-1-2-4];</p><p>• RNN-8 with layer configuration [16-16-1-2-4-8];</p><p>• RNN-12 with layer configuration [24-24-1-6-12];</p><p>• RNN-16 with layer configuration [32-32-1-8-16];</p><p>• RNN-32 with layer configuration [64-64-1-8-16-32].</p><p>The above topologies were also compared with the AES algorithm implemented in the pycryptodome library of Python programming language and GOST R 34.12-2015 "Magma" from the pygost library.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1.">Execution time testing</head><p>Function time from Python standard library was used to estimate the time to perform encryption and decryption operations on a randomly generated 10,000-byte plaintext sequence. Due to the fact that measuring the execution time of programs always contains some anomalies, 5 measurements were made and average value of time consumption was found for each algorithm <ref type="bibr" target="#b4">[5]</ref>. Experiment results are depicted in Table <ref type="table" target="#tab_0">1</ref>.</p><p>From the test results, it can be concluded, that deeper neural network architectures with a longer block length perform cryptographic transformations faster. Insofar as the main operation performed by neural network is matrix multiplication, so if network layers are small, it is necessary to perform much more operations, which greatly affects performance. Comparison with the GOST and AES algorithms showed, that there are prospects for creating a neural network cipher, which performance will be equal to or even faster than these algorithms. This can be achieved with optimization of the algorithm and applying hardware support, for example, performing calculations on graphics processing unit (GPU).</p><p>It should be noted that AES showed so high result because of hardware support of this algorithm at the level of special assembler instructions for Intel processor.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2.">Memory consumption testing</head><p>To estimate the random access memory (RAM) consumption <ref type="bibr" target="#b4">[5]</ref>, the tracemalloc module from the standard Python library was used. The get_traced_memory() function shows the peak RAM consumption within a specific section of the program. The test results are shown in Table <ref type="table" target="#tab_1">2</ref>.</p><p>From the test results, it can be concluded that a deeper neural network topology consumes more system RAM, due to the fact that more values of weights and biases need to be stored.</p><p>The neural encryption algorithm shows significantly lower results by the criterion of system resources consumption comparing with AES and GOST standards, but its results is less than 3 MB, so it is not too critical for modern computers. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3.">Statistical security assessment</head><p>To determine the security degree of a block cipher, a statistical assessment of ciphertexts was applied. It shows how close the ciphertext produced by the algorithm to a truly random sequence.</p><p>Statistical security test was performed by plotting graphs of ciphertexts and calculation of their entropy with Shannon's formula <ref type="bibr" target="#b5">[6]</ref>, where 𝑋 -a set of non-repeating values 𝑥 𝑖 of ciphertext, 𝑝(𝑥 𝑖 ) -the probability of specific value from ciphertext to occur, n -amount of these values:</p><formula xml:id="formula_5">𝐻 (𝑋 ) = 𝑛 ∑ 𝑖=1 𝑝(𝑥 𝑖 ) log 2 1 𝑝(𝑥 𝑖 ) (7)</formula><p>The minimum value of entropy is equal to zero and characterized the sequence of identical symbols. The entropy takes maximum value when all symbols occurs with the same probability and equals to 8 for the alphabet of symbols from 0 to 255, that is all possible values for a byte of information.</p><p>The tests were performed on a plaintext of 600 characters, which is a cyclic repetition of 40 "A" symbols and 20 "z" characters. Entropy value of such text is low and approximately equal to 0,918 (Fig. <ref type="figure" target="#fig_7">8</ref>). From the test results (Table <ref type="table" target="#tab_2">3</ref>), it can concluded that the topologies with a smaller block size produces a ciphertext with a higher entropy value. It can also be seen on the graphs of the corresponding ciphertexts (Fig. <ref type="figure" target="#fig_8">9</ref>, Fig. <ref type="figure" target="#fig_0">10</ref>). For large block size configurations such as RNN-16 and RNN-32, entropy values were not obtained, as in these cases the problem of fading gradient was noticed. This means that the weights of initial layers of the network do not change up to the layer with one neuron. Obviously, this is a significant flaw in their security, as half of the network is not trained. In comparison with existing encryption standards, it was found that more preferable configurations in terms of operating speed, such as RNN-8 and RNN-12 has lower entropy of ciphertexts than AES (Fig. <ref type="figure" target="#fig_9">11</ref>) and GOST R 34.12-2015, while the ciphertext entropy of the latter is very close to a pseudo-random sequence.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusions and prospects for further research</head><p>During analysis and testing of the encryption algorithm based on neural network, its main advantages and disadvantages were noted. The strengths of the neural network algorithm in comparison with the current cryptographic standards for block ciphers are:</p><p>• there is no restrictions on the length of the secret key;</p><p>• easy adjustment the security parameters of the algorithm. At the same time, there are a number of negative aspects:</p><p>• long execution time and the presence of additional time spent on the process of synchronizing the weight coefficients;</p><p>• the presence of a fading gradient problem, which makes it difficult to design an algorithm with deep neural network topologies;</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Neural network model used in the basis of the hashing algorithm</figDesc><graphic coords="3,183.05,399.83,229.18,178.33" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Scheme of hashing function for one block of message</figDesc><graphic coords="4,172.63,84.19,250.02,70.16" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Scheme of hashing function for all message</figDesc><graphic coords="4,130.96,193.76,333.35,70.77" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Scheme of tree parity machine</figDesc><graphic coords="4,172.63,393.49,250.02,162.64" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Basic architecture of recurrent neural network used in encryption algorithm</figDesc><graphic coords="5,130.96,433.74,333.35,146.45" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: Scheme of encryption process</figDesc><graphic coords="6,151.80,466.83,291.68,99.75" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 7 :</head><label>7</label><figDesc>Figure 7: Scheme of decryption process</figDesc><graphic coords="7,151.80,197.38,291.69,92.71" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Figure 8 :</head><label>8</label><figDesc>Figure 8: Statistical graph of plaintext</figDesc><graphic coords="9,193.47,521.88,208.35,105.85" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Figure 9 :</head><label>9</label><figDesc>Figure 9: Graph of RNN-4 ciphertext Figure 10: Graph of RNN-12 ciphertext</figDesc><graphic coords="10,113.47,353.24,180.02,92.75" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Figure 11 :</head><label>11</label><figDesc>Figure 11: Graph of AES ciphertext</figDesc><graphic coords="11,193.47,84.19,208.36,107.36" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1</head><label>1</label><figDesc>Execution time tests for encryption algorithms</figDesc><table><row><cell>Algorithm</cell><cell cols="8">RNN-2 RNN-4 RNN-8 RNN-12 RNN-16 RNN-32 GOST "Magma" AES</cell></row><row><cell cols="9">Test 1, sec. 0,001</cell></row><row><cell>Average time, sec.</cell><cell>17,26</cell><cell>8,98</cell><cell>4,57</cell><cell>3,06</cell><cell>2,43</cell><cell>1,30</cell><cell>0,52</cell><cell>0,001</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2</head><label>2</label><figDesc>RAM consumption tests for encryption algorithms</figDesc><table><row><cell>Algorithm</cell><cell>RAM consumption, MB</cell></row><row><cell>RNN-2</cell><cell>1,190</cell></row><row><cell>RNN-4</cell><cell>1,304</cell></row><row><cell>RNN-8</cell><cell>1,356</cell></row><row><cell>RNN-12</cell><cell>1,419</cell></row><row><cell>RNN-16</cell><cell>1,482</cell></row><row><cell>RNN-32</cell><cell>2,515</cell></row><row><cell>GOST "Magma"</cell><cell>0,010</cell></row><row><cell>AES</cell><cell>0,018</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 3</head><label>3</label><figDesc>Results of statistical security tests</figDesc><table><row><cell>Algorithm</cell><cell>Entropy</cell></row><row><cell>RNN-2</cell><cell>7,010</cell></row><row><cell>RNN-4</cell><cell>7,129</cell></row><row><cell>RNN-8</cell><cell>6,620</cell></row><row><cell>RNN-12</cell><cell>6,604</cell></row><row><cell>RNN-16, RNN-32</cell><cell>-</cell></row><row><cell>AES-256 (CBC)</cell><cell>7,611</cell></row><row><cell>GOST "Magma" (CBC)</cell><cell>7,640</cell></row><row><cell>Random number generator</cell><cell>7,696</cell></row></table></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>• the security level is lower in comparison with current cryptographic standards.</p><p>The elimination of these drawbacks can be the basis for further research of the neural network algorithm for block encryption. Several potential directions for its improvement were identified.</p><p>Possible solution for the problem of low encryption and decryption speed can be optimization of the algorithm and applying hardware support to improve its performance. To solve the fading gradient problem, it is necessary to test the algorithm using other activation functions, such as Leaky ReLU. To increase degree of ciphertext randomness it is possible to add multiple rounds of data transformation and permutation operations, as it implemented in the AES and GOST R 34.12-2015 standards.</p><p>Conducted research showed that neural networks can be successfully used to implement block ciphers with good efficiency, but the results of experiments confirmed that neural network algorithms are not yet able to compete with the current standards in the field of symmetric cryptography. It is required to conduct more research in order to get better results.</p></div>
			</div>


			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>17,212 8,964 4,596 3,135 2,438 1,350 0,518 0,001 Test 2, sec. 17,308 8,934 4,615 3,039 2,404 1,274 0,522 0,001 Test 3, sec. 17,309 8,987 4,545 3,037 2,453 1,298 0,524 0,001 Test 4, sec. 17,123 9,027 4,544 3,035 2,446 1,283 0,520 0,001 Test 5, sec. 17,359 8,989 4,558 3,041 2,429 1,291 0,523</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">One-way hash function based on neural network</title>
		<author>
			<persName><forename type="first">S</forename><surname>Lian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Sun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Wang</surname></persName>
		</author>
		<ptr target="https://arxiv.org/abs/0707.4032" />
		<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Neural cryptography for secret key exchange and encryption with AES</title>
		<author>
			<persName><forename type="first">A</forename><surname>Singh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Nandal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal of Advanced Research in Computer Science and Software Engineering</title>
		<imprint>
			<biblScope unit="page" from="367" to="381" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<ptr target="http://cryptowiki.net/index.php?title=Neural_networks_in_cryptography" />
		<title level="m">Neural networks in cryptography</title>
				<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Symmetric cipher design using recurrent neural networks</title>
		<author>
			<persName><forename type="first">M</forename><surname>Arvandi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Wu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Sadeghian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">W</forename><surname>Melek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Woungang</surname></persName>
		</author>
		<idno type="DOI">10.1109/IJCNN.2006.246972</idno>
	</analytic>
	<monogr>
		<title level="m">The 2006 IEEE International Joint Conference on Neural Network Proceedings</title>
				<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="2039" to="2046" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<ptr target="http://www.cs.kent.edu/~durand/CS2/Notes/03_Algs/ds_alg_efficiency.html" />
		<title level="m">Algorithm efficiency</title>
				<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Local shannon entropy measure with statistical tests for image randomness</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Wu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zhou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Saveriades</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Agaian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">P</forename><surname>Noonan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Natarajan</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.ins.2012.07.049</idno>
	</analytic>
	<monogr>
		<title level="j">Information Sciences</title>
		<imprint>
			<biblScope unit="page" from="323" to="342" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
