Public Key Cryptography using ANNs
Well, i took this post as a chance to show some of my undergraduate work i did. This was a part of my curriculum and it was one of the First things i really really like working on. But before i give you the link, let me brief you on what the whole thing was all about. ANNs or Artificial Neural Networks are an attempt to capture the neural nets of sentient beings. Its final purpose in my opinion is to model the Human neural network and finally the Human Brain leading to a better understanding of how things work. What they are has been given in the presentation that is to follow. What they do is actually quite simple: they learn.They are a system of logical entities which try and develop logic by a process of learning just like any sentient being. It has a teacher which is likely to be a teaching algorithm or another neural network. The neural net basically tries to formulate results for a given problem. In doing so it attains a state which can be determined by the values held by all its underlying sub-entities. It then compares its final Output value or results with the actual results. Based on the difference between the two, it corrects its own internal state and tries to recompute the results. It does so on a different problem but of the same type. If you recall this is how we would practice our Math sums as well, back in school. It does so till it starts to get the right set of results again and again and then declares its then corresponding internal state as the correct solution or approach to solving problems of that category.
Now, if you fast forward to your college days you will remember that mutual learning or learning by discussion was faster. The same applies to Neural networks as well. When learning takes place between two untrained neural networks, it is very fast and they achieve a state of Neural Synchronization in a very fast manner. In this state their internal states are the same and it is this information which is used as the public keys for the encryption and decryption of messages. Now, this is not a classical public key crypto-system with a public key and a private key. There is in essence only one key which is known to the two mutually learning networks, and no one else. Now here is the good part: between the two neural nets, one does do not even know the state of the other. The moment they start communicating the correct results they are convinced that they have a common internal state (or understanding and approach in human terms) for the problem. That is the beauty. And this whole process can actually take place over a public network without compromising any level of secrecy. Having said all that, there are issues and in overcoming those issue lies our challenge. One of the major issues is that it might get highly computationally demanding.
Well, enough said. Here is the link to the presentation i made for the technical seminar: Click here.
Hope you find it interesting. It was at a very basic level. And do be critical of this work. How else will i improve.