Neural cryptography

Neural cryptography is a branch of cryptography dedicated to analyzing the application of stochastic algorithms, especially neural network algorithms, for use in encryption and cryptanalysis.

Details
The ideas of mutual learning, self learning, and stochastic behavior of neural networks and similar algorithms can be used for different aspects of cryptography, like public-key cryptography, solving the key distribution problem using neural network mutual synchronization, hashing or generation of pseudo-random numbers.

The ability of neural networks to explore the solution space could also be used in the field of Cryptanalysis. It also could be possible to generate new kind of attacks on existing algorithms based on the idea that any function could be reproduced by a neural network, so it will be possible to find the exact solution, at least theoretically, breaking the algorithm.

Applications
Still there are no practical applications due to the recently of the development of the field, but it could be used specially over applications where the keys could be continually generated and the system (both pairs and the insecure media) could be in a continuous evolving mode.