Placeholder Image

字幕列表 影片播放

  • Yeah, we talked about elliptic curves

  • And how we can use them as a sort of drop-in replacement for the mathematics in things like diffie-hellman key exchange

  • and the digital signature algorithm and so on.

  • There's another interesting story that people are asking me to talk about which is the story of the

  • Dual EC-DRGB or the Dual Elliptic Curve

  • Deterministic Random Bit Generator, which is a pseudo-random

  • generator for generating random numbers.

  • Most of the time you do programming, you don't need something that's truly random, right.

  • If you're writing a computer game, and you need the AI to act in a kind of unpredictable way, a normal

  • general mathematical random number generator, but just move some bits around and produces numbers between a minimum and a maximum

  • Should be fine

  • For cryptography that is not the case for cryptography

  • What you need to not be able to do is predict anything to do with what it's going to output it needs to be as

  • Random as you can and of course the problem of computers is they aren't random?

  • They don't operate in a random way

  • So if I produce any mathematical function or any logic circuit that produces something that looks random the problem is it isn't actually

  • random

  • What a normal operating system will do is combine an

  • Actual source of randomness so for example the decay on over radioactive isotope or my mouse clicks which are kind of random

  • Or my typing which is sort of the pace of which is a bit odd?

  • and

  • It'll combine that actual randomness with something that produces a very long stream of random bits for use by

  • Applications on a machine like these. Oh these are called cryptographic random number generators. We're not talking about the actual randomness today

  • We're talking about the generators for generating these random bits

  • but they used all the time if you go onto if you perform a

  • Handshake on the Internet

  • you're going to be generating a random number used once you're going to be generating the private part of a

  • Different key exchange and so on so these need to be unpredictable if I can predict your private diffie-hellman key

  • Then I can just get straight in on your conversation

  • That's not a good thing the way

  • Normally a random number generator like this works is a bit like this so we have some kind of state

  • Which we'll call s and that's the current internals for our random number generator, and that is a secret now

  • This is seeded based on real random date so for example the keyboard taps or the hard disk

  • Latency and things like this on a computer now what we do

  • I ask this random number generator to generate some random bits for me, and it passes this state

  • Through a function G. Which is a one-way function like a hash function and this produces some seemingly random bits?

  • Which I can use in my application for something secure now if I ask it to produce G of s again

  • It's going to be the same thing the hash is always the same

  • So what happens is at this point?

  • We pass s through another function f of s

  • And it comes back down here to be s plus 1 and so the state gets updated. This is in general

  • What a random number generator will do so we seed the random number generator

  • With something actually random and we keep doing that whenever we can, but it doesn't happen all the time

  • And then we can update the state and we can generate

  • Random bits as required now usually these are different functions

  • But often hash functions of what we use the reason is because it has to be one way

  • What we absolutely want to make sure is that I can't work out as an attacker what this state is because if I can I?

  • Can predict the next random value you're going to be that could be your password, but you're generating on your password manager

  • So I've seen this output. This is something you sent in the clear. Let's say a random number or something I've seen it

  • Can I calculate what the state is well no because it to do that I have to reverse this one-way function this hash function

  • So I can't do it. I'm stuck here

  • That's the idea now in the early two-thousands the National Institute for Standards and technology's in the US

  • Published a list of four new random number generators the idea being that these would be adopted by

  • the kind of key players who are actually building these libraries like open SSL so most of these were kind of standard like like I'm

  • Showing you here one of them was based on elliptic curves and was a little bit unusual

  • And so it kind of piqued everyone's interest and though I say peak devil and suspicion at the time this was called the dual

  • Elliptic curve drbg which I was going to call Julie C from now on otherwise

  • I'm going to get very tongue-tied it works very much like this using elliptic curves

  • just to remind you when we talked about elliptic curves an elliptic curve looks a bit like this and it has a

  • formula of the type Y squared is XQ plus a X plus B

  • The idea is that this can be used to perform a one-way function like our hash if we have a point here

  • P on our curve. We can produce a multiple of P

  • Let's say here. Which is a P, and if I give you that you can't tell me? What a was right?

  • That would be solving the elliptic curve discrete log problem

  • very very difficult

  • right

  • That's all we really need to know about the mathematics for this particular one so we could replace these two one-way

  • Functions with these elliptic curve functions this point addition and kind of get the same kind of structure going and the and the nice thing

  • About it

  • If it worked would be that this is kind of mathematically

  • Provable in some sense because we know how difficult this problem is we don't know for sure what the difficulty of this hash function is

  • Because no one's broken it yet right we all fought sha-1 with unbreakable and then what happen

  • All right

  • So how does Julie C work all right? So we have our two random variables on our curve right P?

  • Thank you. It doesn't matter where they are for this example

  • They just points on the curve, so those each have an X and a y-coordinate

  • We have a state for a random number generator s. That is not a point on the curve

  • It's just a number so what we do we want to use s to generate some random bits

  • But then we also need to update the state and their state has to remain secret remember

  • So the first thing we do is we calculate s

  • P all right, so we're moving P around the curve s x right and that gives us our R is

  • Just the x coordinate of this so this is going to be a point on the curve

  • we take the x coordinate and that's our number now ah

  • It's sort of an intermediate variable we're going to use it to generate our random bits, so we

  • calculate our

  • Q and we take the x value so our Q X in some sense and we scrap the first 16 bits of that we take

  • the least significant bits of that from

  • 16 to the end

  • I'm using sort of Python notation. Why not write what sort of size and in bits is that number? They're going to be approximately

  • 256 bits because they're modulo upon bits 256 bits and this particular curve now this has been our random number

  • Right so so far so good. We've got some random bits out

  • We then use our we pass it through P again, so we say our P. Don't doesn't so why and that?

  • Produces our new s but by taking just VX again

  • So what we've got is the exact same framework that I showed you at the beginning

  • We've got a state. We update the state by moving

  • It around the elliptic curve a bit and taking just the x coordinate

  • But we also can output some bits in principle

  • Which is not a terrible idea for a random number generator

  • except for actually this is much slower than a normal hash based one by about a thousand times right which

  • For you know for someone who really cares about security

  • Maybe they would be able to accept that but in fact actually

  • there are some other bigger problems with this that mean that the thousand times is really the

  • Good part of the deal in SATs in some sense

  • Remember that the whole point of this is that if I get this in the clear?

  • I can't reverse to find this internal state the reason

  • I can't do that is because first of all I don't know what our Q was and even if I did I

  • Can't go backwards through this to find R. And then go this way right so we can't reverse that because that is a one-way function

  • Remember just because of the elliptic curve problem if I was an attacker how might I attack this well the first thing is to notice

  • Is for 16 bits it's not actually very many

  • So I can brute-force through the possible our Q's quite quickly to to the 16 operations

  • 65,000 operations even on a laptop not going to take very long so I go through and I find all the possible

  • X's for this random data

  • And only some of them are going to adhere properly

  • To that elliptic curve formula where we can find an actual Y that goes with them. All right?

  • So let's say we go from 65,000 to 10. We have 10 candidates

  • That's a real problem, so we found that our Q fat alone

  • Wouldn't actually be much of a problem

  • So then the question becomes can we reverse this discrete log problem and find our way into this state

  • Which would be a huge issue and the answer is?

  • If these two a random no we can't do that all right if P

  • And Q are truly random we have to brute force it we have to start with as one doesn't work ours, too

  • Doesn't work and how many how many of those are there?

  • 256 bits worth which is

  • not

  • Yeah, it gets a bit more complicated that not all point to valid on the curve and so on but is a lot of them

  • Now what if there was a secret mathematical relationship between would that change anything?

  • What if he was actually equal to some multiple of hue like this now it will be very difficult to prove that

  • Because if we can't solve that problem we'd have to find that a by brute force ago

  • Or there is a relationship between the two brilliant

  • Right we don't know but the problem was that when this standard came out

  • It was implied that the NSA were the ones that generated these points

  • And they did not explain how they did it you remember the video on nothing up my sleeve numbers

  • Let's pick a number at random

  • I don't know 24, and then did some trick with it you think well that's great but clearly 24 wasn't random

  • There's something up the sleeve. We're not sure about it. If this is true. If there's a secret e

  • Which we can multiply by Q to get to P, then? Here's what happens? We have our Q because we've derived it from bith here

  • All right, we can calculate e

  • Our secret e times our cue, it's associative so it's actually our times EQ

  • EQ is P so we've got R

  • Of P which is this and we've calculated the internal state?

  • Right this should be impossible to go backwards from here to get to here. It's trivial if we know this secretly

  • Right which is kind of worrying? What's more interesting about this

  • It's not so much the mathematical backdoor, but could exist it's wherever it exists. No one knows and

  • What happened when this NIST standard was announced so when it was announced?

  • Cryptographers said well first of all this is not enough bits. You're cutting off here right. There's a slight bias in the output

  • We don't like it. It doesn't look random enough. That's a problem. It's a thousand times slower. That's a problem

  • All right, this didn't worry too much about this. They said it's fine. Why we're gonna put it in

  • then in

  • 2007 dan sumo and Niels Ferguson from Microsoft did a short talk

  • Explaining that this backdoor could exist you know that should have killed this off straight away

  • But the problem was but it was an agreed standard in this it was starting to be implemented in some of these libraries

  • And that's deeply concerning. We don't know whether this exists

  • Hypothetically it could all right

  • But no one can find this e so how can we know but then the Snowden leaks came along?

  • And it looks even more suspicious money was changing hands between the NSA in companies to have them install this as their star

  • For a number generation. That's deeply suspicious and so

  • The strong opinion should he be consensus of the cryptographic community is that this is indeed a backdoor?

  • someone knows that a but it isn't me and

  • But we don't know for sure, but it's a really interesting issue because

  • There could be a backdoor

  • But they might not now of course when you're using this you can generate your own P&Q and

  • Then it's not it hasn't got a backdoor. Well if you put it in yourself

  • But the interesting thing was in my list standard they said you have to use this P, and Q if you don't we won't

  • Give you a fits accreditation for being extra secure which is also suspicious

  • So it's a really interesting read if you read the history of this

  • People were coming up with problems. They were publishing papers saying that's not right and

  • They were being ignored and the standard was put through anyway, which is you know very interesting?

  • if I was on stage I

  • Don't do magic right, but if I was on stage and I said to you let's pick a number at random

  • I don't know 24

  • And then did some trick with it you think well that's great but clearly

  • 24 wasn't mathematics to do with lines and the tangent of this curve

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

  • By both numbers or adding it to itself this point addition. We're moving around this curve

Yeah, we talked about elliptic curves

字幕與單字

單字即點即查 點擊單字可以查詢單字解釋

B1 中級

橢圓曲線後門 - Computerphile(電腦愛好者) (Elliptic Curve Back Door - Computerphile)

  • 2 0
    林宜悉 發佈於 2021 年 01 月 14 日
影片單字