Reiner Pope
π€ SpeakerAppearances Over Time
Podcast Appearances
That is the common case in ciphers, whereas that's the like undesired case in neural nets for sure.
Yeah, so using neural nets for cryptography, well, in general, cryptography, like creating a new cipher is a very, very dangerous proposition.
Like almost all of them are broken, like 99% of them are broken.
So...
probably a bad place to start.
But the other direction has been very, like in at least one very clear case, quite productive.
So there's this construction in, so a construction that exists in ciphers and then was imported into neural nets called a Feistel cipher, Feistel network.
So the idea is that you may have some function f, which is not invertible, but
But you like the function because it does interesting things, like it does an MLP, for example, or it mixes in an interesting way.
You'd like to build something out of this that is invertible.
So the construction we're going to make is going to actually be a two-input function rather than a one-input function.
And we're going to apply f of x.
We need to actually remember what x was.
So we're going to stick x over here so that we can work backwards.
And then we also can't drop y. So we're going to remember y and we're going to add them together.
And so we form this tuple.
So the way to invert this, like if you think I have this output and I want to recover x and y, well, I can easily recover x. That's right there.
I just read it off.
And then to recover y, if this thing was called z, I can recover y by z minus f of x because I've already recovered x. So that means that this construction is invertible.
This was used in ciphers like a ton, still is used.