Answers.Body: <p>I know that in order to discuss your question, I must have a background in cryptography, which I don't have! But there is something that I know for sure:</p>
  
  <ul>
  <li><p>First of all, a simple search gave me <a href="https://en.wikipedia.org/wiki/Neural_cryptography" rel="nofollow noreferrer">this</a>. It might help.</p></li>
  <li><p>To lots of us, ANN looks like a magic wand which can turn almost everything into anything. But the point is, ANN is only a ML algorithm, but absolutely a powerful one. You should be aware that there are random and multiple weight initializations in ANNs, and this means a fairly stochastic behavior of your network, which vanishes only in shallow networks with high amount of training data. Your network's specifications are even likely influenced by the order of feeding the instances in the training phase. So if what I think of the encryption/decryption process "certain rules for message transformation" is true, then a stochastic network is indeed a sophisticated option (but according to scientists in neural cryptography research area, completely possible)</p></li>
  <li><p>You're probably thinking of auto-encoding networks, one kind that maps <code>X</code> to <code>X</code> and has a bottle neck, such that if successfully trained, it has developed the power of reducing the number of data features from say 10'000 to 500, and then successfully retrieving the original data with 10'000 features from that 500-features one; such that If I feed a new instance to a trained auto-encoding network, grab it in the bottle neck layer and send it to you, you must be able to feed the message to the bottle neck layer and receive the full decoded message from the output layer. However there's (always) a catch! and that is you need a really "BIG" dataset to train your deep network. Besides you cannot expect it to work well on every kind of data after being trained by a fixed amount. for example your network cannot successfully retrieve an image of a dog, if all you've fed in the training phase was cats' and lizards' images. So can you guarantee that new messages to be encoded have the same type as the ones in the training set?! If no, then you might also take this challenge into account.</p></li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-03-26T08:03:31.273Z
Answers.LastActivityDate: 2017-03-26T08:03:31.273Z
Answers.UserDisplayName: Alireza
Body: <p>If a group of computers have identical ANN with exact same set of learning data and all have functionality of encryption and decryption, would there be any way for interceptors to interpret encrypted data?</p>
  
  <p>+
  Applying the fact that people with more background information obtaining more knowledge from same source than those who don't, would it be possible for ANN to interpret data based on their access level? 
  (Each level has different amount of "background information")</p>
  
  <p>For example, if there is a encrypted text file, a computer with highest access level would fully decrypt the data to a plain text while a computer with lower access level would only decrypt half of them (and this decrypted half becomes a plain text).</p>
  
  <p>If above methods can exist, what would be their pros and cons compared to pre-existing technologies? (AES, Blowfish and so on)</p>
  
Tags: <neural-networks><training>
Title: Can we apply ANN to cryptography?
UserDisplayName: A Cat Named Tiger
ThreadText: # Can we apply ANN to cryptography?
  
  (Asked by: username_0 on 2017-03-26)
  
  If a group of computers have identical ANN with exact same set of learning data and all have functionality of encryption and decryption, would there be any way for interceptors to interpret encrypted data?
  
  +
  Applying the fact that people with more background information obtaining more knowledge from same source than those who don't, would it be possible for ANN to interpret data based on their access level?
  (Each level has different amount of "background information")
  
  For example, if there is a encrypted text file, a computer with highest access level would fully decrypt the data to a plain text while a computer with lower access level would only decrypt half of them (and this decrypted half becomes a plain text).
  
  If above methods can exist, what would be their pros and cons compared to pre-existing technologies? (AES, Blowfish and so on)
  
  **Tags:** neural-networks, training
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2017-03-26. Score: 2 | Accepted answer
  
  I know that in order to discuss your question, I must have a background in cryptography, which I don't have! But there is something that I know for sure:
  
  * First of all, a simple search gave me [this](https://en.wikipedia.org/wiki/Neural_cryptography). It might help.
  * To lots of us, ANN looks like a magic wand which can turn almost everything into anything. But the point is, ANN is only a ML algorithm, but absolutely a powerful one. You should be aware that there are random and multiple weight initializations in ANNs, and this means a fairly stochastic behavior of your network, which vanishes only in shallow networks with high amount of training data. Your network's specifications are even likely influenced by the order of feeding the instances in the training phase. So if what I think of the encryption/decryption process "certain rules for message transformation" is true, then a stochastic network is indeed a sophisticated option (but according to scientists in neural cryptography research area, completely possible)
  * You're probably thinking of auto-encoding networks, one kind that maps `X` to `X` and has a bottle neck, such that if successfully trained, it has developed the power of reducing the number of data features from say 10'000 to 500, and then successfully retrieving the original data with 10'000 features from that 500-features one; such that If I feed a new instance to a trained auto-encoding network, grab it in the bottle neck layer and send it to you, you must be able to feed the message to the bottle neck layer and receive the full decoded message from the output layer. However there's (always) a catch! and that is you need a really "BIG" dataset to train your deep network. Besides you cannot expect it to work well on every kind of data after being trained by a fixed amount. for example your network cannot successfully retrieve an image of a dog, if all you've fed in the training phase was cats' and lizards' images. So can you guarantee that new messages to be encoded have the same type as the ones in the training set?! If no, then you might also take this challenge into account.
  
  
  ---
  
  