how diffie hellman key exchange works
-
@b0rk have you seen the paint explainer for Diffie-Helman? That's quite a good way to get the idea across.
@pmb00cs i have! i wanted to write something a little closer to the mathematical reality
-
@pmb00cs i have! i wanted to write something a little closer to the mathematical reality
@b0rk that's fair enough, and I think you've done an excellent job of it. I just like the paint analogy because it's easy to grasp that unmixing paint is hard.
-
@b0rk that's fair enough, and I think you've done an excellent job of it. I just like the paint analogy because it's easy to grasp that unmixing paint is hard.
@pmb00cs one interesting way the mixing paint metaphor doesn't work (imo) is that when you're mixing paint the two colours you're mixing both have the same "type", and it's a symmetric operation (a mixed with b is the same as b mixed with a)
but in diffie hellman the operation is not symmetric at all, like the type of the function is more like f(type1, type2) => type1
I think saying that "s" and "a" are both "numbers" might be a bit of an oversimplification in that sense
-
@pmb00cs one interesting way the mixing paint metaphor doesn't work (imo) is that when you're mixing paint the two colours you're mixing both have the same "type", and it's a symmetric operation (a mixed with b is the same as b mixed with a)
but in diffie hellman the operation is not symmetric at all, like the type of the function is more like f(type1, type2) => type1
I think saying that "s" and "a" are both "numbers" might be a bit of an oversimplification in that sense
@pmb00cs but I definitely have a tendency to be overly critical about the specifics of metaphors in a way that's not necessarily helpful

the paint thing is cool!
-
how diffie hellman key exchange works
(with as little math as possible)
-
@pmb00cs one interesting way the mixing paint metaphor doesn't work (imo) is that when you're mixing paint the two colours you're mixing both have the same "type", and it's a symmetric operation (a mixed with b is the same as b mixed with a)
but in diffie hellman the operation is not symmetric at all, like the type of the function is more like f(type1, type2) => type1
I think saying that "s" and "a" are both "numbers" might be a bit of an oversimplification in that sense
@b0rk I mean, there's a point where a metaphor doesn't work anymore, because it's not the truth, just a way to explain part of the truth. If you need perfect accuracy you're just explaining reality.
The paint metaphor also breaks down because there are tools for recreating paint colours accurately from pure pigments. Do that for (sxa), (sxb), and s, and you recover a and b. So it's not really suitable as a form of key exchange. But it is easy to understand on a basic level.
-
how diffie hellman key exchange works
(with as little math as possible)
@b0rk Small typo in panel 4, choose = chose?
-
how diffie hellman key exchange works
(with as little math as possible)
@b0rk you can do it without maths at all. Say I want to give you my bicycle, but our schedules just will never work out for me to give you it directly. Well, we pick a place both of us can access, say outside the train station. I lock my bike up at a designated spot and go about my day. You come along with your own lock and use it to fasten the bike to the same spot without interfering with my lock, then go about your day. At some point I remove my lock, after which you can remove yours and gain a bicycle.
As I understand it, such a protocol was the inspiration for DH key exchange. Picking a spot is picking a generator. Locking is exponentiating. Locks not interfering is the commutativity property.
It's the explanation I always use when TAing cryptography
-
how diffie hellman key exchange works
(with as little math as possible)
@b0rk I would boost it, but the attached image doesn't have any alt text, so I can't. What's the image about? is it showing a mathematical formula or something similar? a diagram?
-
@b0rk I would boost it, but the attached image doesn't have any alt text, so I can't. What's the image about? is it showing a mathematical formula or something similar? a diagram?
@esoteric_programmer will write some and let you know when it’s added
-
how diffie hellman key exchange works
(with as little math as possible)
@b0rk I love it. when I have taught this material, I have fallen back on the paint mixing analogy, but as a colorblind person this never felt right!
-
how diffie hellman key exchange works
(with as little math as possible)
@b0rk am I missing something or is "add the result s to itself x times) a result of mixed-up puncutation? Did a double-take at that
-
@b0rk am I missing something or is "add the result s to itself x times) a result of mixed-up puncutation? Did a double-take at that
@b0rk fantastic work as usual, thanks for sharing

-
@divVerent ah yeah good point! do you know an example offhand where you can find (S o A) o B given S o A and S o B? (but not find B given S o B)
@b0rk@social.jvns.ca No such groups are known yet. However one can easily prove that discrete log solves CDH, whereas no general reduction from CDH to discrete log exists, which in a way tells that DL is a "harder or equivalent" problem.
There exists however such a reduction for some elliptic curves (e.g. the NIST curves and Curve25519); these curves are usually preferred, as we then only depend on one problem being hard. -
how diffie hellman key exchange works
(with as little math as possible)
@b0rk that’s a great explainer. You made it straightforward for me to understand how it works without having to know how the functions involved work (I don’t).
And the keys are for symmetric encryption, I guess? -
@b0rk am I missing something or is "add the result s to itself x times) a result of mixed-up puncutation? Did a double-take at that
@SnoopJ what do you mean by mixed up punctuation?
it’s trying to explain how on an elliptic curve, you start with an initial point s on the elliptic curve, choose a random integer x , and then add that point s to itself x times (using elliptic curve addition) to get the result of the “magic function”
-
-
how diffie hellman key exchange works
(with as little math as possible)
@b0rk like how you used 'hard to undo'. I used to explain it by saying the inverse is really hard to do but that explanation is simpler.
-
how diffie hellman key exchange works
(with as little math as possible)
-
how diffie hellman key exchange works
(with as little math as possible)
@b0rk The Wikipedia article uses a color-mixing analogy that I've always liked. I used to know someone who would do the color-mixing thing live in a class she taught!