# The Dichotomy of Neural Networks and Cryptography: War and Peace
## 4 Peace: Coexistence and Alliance
### Alliance
#### 4.2.1 The Role of NNs in Cryptography
Uses recurrent NNs parallel processing speed to increase the performance of encryption, also proposes a symmetric encryption scheme allowing for variable message and block sizes for data integrity and data encryption [139; 140]. A look at the literature shows that different kinds of NNs are useful for different applications. * **Hardware Implementation:*
* A successful implementation of [PERSON]'s neural model has been created using SIMECK block cryptography to allow the spiking NN to perform authentication [141]. Neural Physically Unclonable Function (PUF): A Physically Unclonable Function is a physical device that when provided with challenges provides a response that acts as a digital finger print. The uniqueness of these fingerprints relies on the physical variations created during manufacturing of the device. Neural PUF are PUFs with NNs embedded into the hardware in an attempt to make them resistant against attacks from NNs learning the outcome of challenge response pairs [142]. It is well known that Strong PUF's can have their pattern recognized by NNs, thus it is suggested to used a WiSARD NN in order to add machine learning resistance to strong PUF's [142]. Further ways to disallow NNs to learn from challenge responses of PUF's is to use analog NNs [143]. Moving on to hardware purposes, researches have created a 1-bit PUF with a 2 neuron CNN with good metrics for robustness [144]. Other uses for NNs in the space of PUF's involve Error Coding Correction for keys which provides more efficient corrections than standard models [145]. Finally, Tests have been conducted to show there is feasibility in using NN based PUF's for authentication purposes [146]. * **Security Evaluation:** Here we discuss attacks on previously mentioned cryptographic systems [147, 148]. First we note a majority attack on neural synchronization via NN to provide secret keys, this attack is possible due to many cooperating attackers [147]. Then we view the lack of side-channel resistance in tree parity machine NNs and how you can obtain the secret weight vector via this side channel attack [148]. Finally, we look at a power analysis attack on NNs in order to discover their secret information and then propose resistances against these types of side channel attacks [149]. Although NNs are susceptible to the aforementioned attacks, it also provides resistances to the more commonly known vectors of classical cryptography [150]. * **Synchronization:** Synchronization of NNs is when a client and network exchange output of NN's with the goal of having identical weights for synapses. Following with the derivation of a shared key using these keys. Researchers use Period Self-Triggered Impulses to attempt synchronization of NNs and then applied the NN to encrypted images [151]. There has also been study into the generalization of synchronization by using Discrete Time-Array Equations [152]. Other papers investigate the use of lag within the neuron activation functions of a network of NNs in order to provide secure synchronization [153]. Papers have also tested different reaction-diffusion technique of Lyapunov time-dependent impulses within NNs to see its applicability to encrypting images [154]. Synchronization for arrays in a network system can also be achieved by using master-slave synchronization of a delayed NN [155]. The use of memristor-based models and its chaotic properties have also been studied in regards to its image encryption capabilities [156]. Other memristive models using lyapunov functions have also been used for image encryption [157]. * **Asynchronous Neural Cryptography:** Asynchronous Neural cryptography is neural cryptography where synchronization of the sender and receiver model need not be conducted, in fact they can calculate their weights separately based on information passed to each other via encryption schemes such as one time pad [158].