0

I am creating a Binary Neural Network that encrypts payloads and I would like to compare it to AES in quality, for example: With BNN you would need XX years to decrypt where with AES would take YY years. How can I do that??

Currently, I have two tests:

  • A graphic representation that shows how random the payload is, like the image below: enter image description here
  • The STS randomness test, which gives me the following numbers: enter image description here

Are there any other test(s) that I can perform to increase the confidence that the encrypted payload is comparable/best/worst than AES??

2 Answers2

3

What you are trying to do is fundamentally incompatible with cryptographic methods as would be described by this site. You are looking at an analog input, and analog output, and a lossy compression. Neural networks by definition have a stochastic behavior because the axon->dendrite interface is inherently unreliable.

There is a body of work in the encryption of analog signals with chaotic oscillators. I would personally not call it encryption because there is loss, but the brain or machine learning can figure out the output.

The basis of this is Chua's Circuit, and if you look dig around in libraries you can find how these different compression methods were handled in the 90s during the analog to digital channel transistion.

b degnan
  • 5,110
  • 1
  • 27
  • 49
2

AES has been studied for many years by experts in the field, and the estimates on how long it would take to break are based on the best known public cryptanalysis. Your algorithm has likely not received any expert study, so any estimates would be meaningless.

Instead of trying to estimate how good the cipher is you could try to understand how the BNN works, what it does to the bits, whether it achieves good mixing, confusion and diffusion, and whether you can find an attack.

Also take note of Schneier's "law": "Any person can invent a security system so clever that he or she can't imagine a way of breaking it". If you don't find an attack, that doesn't mean it's secure.

Please also note, that the statistical randomness tests you perform can give you with some level of confidence an answer that something is broken, but they most definitely cannot tell you that something is secure. The problem with these tests is that they presume an adversary model - that is they take one specific adversary and state that the scheme is secure against this adversary. However, that does not rule out the existence of another adversary that breaks it. Additionally, these tests are statistical, so they will have the same flaws as any other empiric test.

In trying to find an attack you could also look at what other people have done in symmetric cryptography - the obvious ones would be methods like linear and differential cryptanalysis. But you could also look at what other's have looked into regarding neural networks for cryptography. One example here would be: https://arxiv.org/abs/1610.06918 .

I hope I could give you some pointers on what you could do next.

P.S.: Why is there a 1007% success chance at the bottom of the U2 column?

ambiso
  • 706
  • 4
  • 13