Placeholder Image

Subtitles section Play video

  • So when we looked in the last video my security overview for a particular website we noticed he actually wasn't using Diffie Hellman

  • it was using elliptic curve diffie-hellman, so this is just going to be a short video

  • that explains broadly the difference between the two without going into too much maths although actually the maths of elliptic curves isn't that difficult.

  • Let's not go over Diffie-Hellman a third time

  • So you and me have some kind of secret key and we use that to talk securely

  • Diffie-Hellman is how we get that secret key.

  • Every time I talk about Diffie-Hellman

  • and use any kind of analogy people were like oh show us the maths so this is for the maths people

  • We had a few interesting questions on the Diffie-Hellman video so let's explore

  • Remember that Alice here has some public variable g ^ a mod n now

  • what's important about this is that in some sense a has been mixed into this generator, so what we can't split it up

  • She can send this around,

  • without everyone working out

  • what a is, which is the important thing. So really what the mathematics behind Diffie-Hellman does, is allow the protocol to send

  • messages where you can't extract this private variable and that's exactly what elliptic curves do, they just do it in a slightly different way

  • I'll draw a picture elliptic curve ish. Right so this is an elliptic curve

  • Elliptic curves are curves in two dimensions

  • Cameraman: We need colors on this mark, colors, couple colors

  • Mark: It's the future, right!

  • So the formula for an elliptic curve is y^2 = x^3 + ax + b.

  • and that's the last time we were to talk about it. So the parameters of the curve are a and b

  • and then the curve will look something like, hold on I'm going to sort take a bit of artistic license with this

  • but something a bit like that. Now they vary in shape depending on what a and b are. The thing about an elliptic

  • Curve is in our modular arithmetic we had numbers going around modulo n, right which is just a list of numbers

  • it's a cycle of numbers.

  • Here we have a cycle of points somewhere on this curve, so our generator will be a point on this curve

  • Let's use blue, shall we.

  • This is our generator

  • That's not a good place for my generator

  • It's not a good place my generator, because then my next example of adding things to the generator won't work

  • Let's let's do it

  • Let's do it there all right ignore that point that can be a different point for later now if this is our generator G

  • What we can do, instead of raising things to powers, we just add G to itself. We have 2G 3G

  • 3G is G Plus G Plus G. Yeah, so what we can do is we can add

  • G to itself. To do that what you do is you draw a line

  • At the tangent of this curve all the way until it hits another point on the curve

  • You flip it over to the other dimension, and this is 2g over here

  • 3G would be the line between these two. Find out where it intersects and flip it over here

  • So this is 3G. 3G plus G, would be, it goes along here like this

  • Intersects the curve somewhere else flips over and it's over here, so this is 4G.

  • Now we won't look at it anymore right the actual formula for this is just

  • mathematics to do with lines and the tangent of this curve

  • It's actually not very complicated the point is what we're doing is by multiplying G

  • By various numbers or adding it to itself this point addition. We're moving around this curve sort of seemingly at random

  • Right a bit like how we were moving around our clock face seemingly at random so the nice thing is that if you're adding points

  • together one elliptic curve

  • You will always intersect only one other point

  • Which means that you've never got a choice of two or three points where you could go so that helps a lot?

  • When you're doing this so if I give you a point on the curve here

  • And I say question mark G right how many multiples of G

  • Is that then any ideas no no idea at all right? It could be 50 G. It. Could be 5 billion G

  • We don't we you know it

  • There's no way of knowing that is our private number, and that's the thing we can't extract back out here

  • We couldn't get our a if I give you a G

  • That's all I'm gonna capitalize it now G. Plus G Plus G Plus G a times on this curve

  • I give you that point and ask you to tell me what the private variable was oh

  • No idea, you know for a small curve. You might get it off a few attempts for a big curve

  • You're never going to get it. Oh, it's going to take you so long and you won't bother

  • So what?

  • Elliptic curves, do is literally a plug in replacement for the mathematics that a modular arithmetic mathematics involved in normal

  • difficulty late B

  • G and their shared secret will end up being a B G and it's very very similar now

  • Just to give you someone. We also do this all modulo n because why wouldn't you?

  • Know because that's how the mathematics works. That's what we do so in fact. It doesn't really look like a curve anymore

  • I'll show you a picture of one so this is an example of elliptic curve. I just looked on internet right modulo something like

  • 460 this is some curve

  • I don't know what the parameters are now you can see if this was a generator

  • The points are just gonna dot around all over the place eventually

  • They'll go back to the start and cycle background again

  • But not for a long long time so if I give you this point and tell you what was my private number

  • That's how it's secure. It's very hard

  • to undo that and in fact

  • It's very mathematically quite easy to calculate some multiple of G and move around

  • But it's difficult to undo that process that's the private part of elliptic curves. You know I'm going to ask you though

  • Why why, would you bother with this? So this looks like it's are being unnecessary complication. Yeah well

  • It's a notice in some sense slightly more complicated, but actually

  • Mathematically, it's much more efficient the so elliptic curves are a little bit harder to solve this elliptic curve discrete logarithm problem

  • Which is what we call it?

  • It's slightly harder to solve in some sense than the regular discrete logarithm problem

  • Which means that elliptic curves can get away with shorter key sizes?

  • And that just means less computation when you're calculating a to the G or B to the G

  • To give you an example, so let's imagine that I use a different key was three thousand bits long

  • I would get the same security from an elliptic curve where my

  • prime n is only 256 bits long which is much much shorter the matter is much easier to compute much much faster, so

  • There was a strong tendency to use elliptic curves for that reason if you've got to imagine if you're a server

  • Performing these key exchanges all the time because people come into your shop or something like this

  • Then that kind of savings actually quite useful. It doesn't really matter if you're doing on your home

  • PC

  • But you know that many

  • You might as well use it with the flip side of that question that yeah is anyone still using the other way

  • Yep

  • so there are a few people who are a little bit suspicious of elliptic curves and

  • certain elliptic curves for example the NIST P 256 curve has its disk trap

  • Detractors because they're not absolutely sure where things like this a and B came from and so on okay

  • Maybe I mean for what it's worth big companies are also using that curve, and they seem to be fond of it

  • Other curves are available to give you an example

  • I've used a publicly available cryptography library to generate a couple essentially equivalent to

  • G to the a and a G just so you can see the difference in this sort of size

  • We're talking about here if I run this Python script

  • We've established a generator and a large prime

  • And this prime is 2048 bits so this is our a and this is our G to the a mod N

  • And you can see I mean this will be slightly shorter, but the idea you can see they're there

  • They're quite long approaching two thousand bits so that on a fast version you can see it didn't take very long to compute

  • But it took a little time to compute if I've run the same thing using elliptic curve. Cryptography on the NIST P 256 curve

  • We'll see it should be a lot shorter, okay

  • There we go right much shorter the missing 256 bit number much much shorter. You can see our private key is actually a number

  • Because it's a number a the number of times

  • We've jumped around our elliptic curve, and this is our actual XY coordinate of our point on the curve

  • So you can see it's split into here's the first part, and then the second part here

  • So this is X and this is y?

  • What you would normally do in this kind of situation if you were driving a key from this is

  • Scrap the Y and just use the X because it's long enough and secure enough

  • But that will depend on your situation there are debates that I had over

  • What curves are safe to use a lot of people use the NIST PT five six curve?

  • But some people other researchers don't think that secure because it may be made they've taken shortcuts on some of the parameters for efficiency reasons

  • They're not sure where somebody's parameters came from and that isn't without precedent

  • There was a situation where an elliptic curve random number generator was found to essentially have a backdoor

  • Which might be for a different video so the x.25 five one nine. Curve is quite well-regarded because they've gone to great lengths to

  • Demonstrate how they came up with their variables, and why it's used you know if you're if you're intricate to graphic research

  • This is something that comes concern. You who's just using the web probably don't worry about it

  • Heed the message hello computer file pop up, so it's getting the data of various things and we see here hello computer file

  • We've been able to do this by accessing a value that we shouldn't be able to access this code this if statement should stop us

  • Being able to access this past the end of this array

So when we looked in the last video my security overview for a particular website we noticed he actually wasn't using Diffie Hellman

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it