Тёмный

Elliptic Curve Diffie Hellman 

Robert Pierce
Подписаться 956
Просмотров 248 тыс.
50% 1

A short video I put together that describes the basics of the Elliptic Curve Diffie-Hellman protocol for key exchanges.
There is an error at around 5:30 where I state that the point at infinity is the result of point-doubling a point whose X coordinate is zero. This is incorrect, it should be when the Y coordinate is zero.
Also I state 'geographically' instead of 'geometrically'.

Опубликовано:

 

9 дек 2014

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 495   
@trogdorstrngbd
@trogdorstrngbd 4 года назад
Many have said this already, but this is by far the best explanation I have seen for Elliptic Curve Diffie-Hellman in any medium ever. The world needs more people like you to be teachers.
@robertpierce5142
@robertpierce5142 4 года назад
Thanks for the compliment! It made my day!
@3rdman99
@3rdman99 2 года назад
Agreed. I scoured Internet all over today the whole day to find anything that gives me the basic understanding of ECDH, and this is the only one that made sense to me so far.
@fuzzywzhe
@fuzzywzhe 7 месяцев назад
It's quite clear governments don't want people to understand cryptography, much less use it in my opinion. What screwed me up is that this is very different than RSA in that in RSA, the secret key is recovered, and in this, it's not. I'm doing some work with the libsodium library BTW - if anybody knows if their mailing list is still up, let me know. I've tried to sign onto it many times with no success.
@mtare8942
@mtare8942 3 месяца назад
I wish all teachers would be able to put something like this for everything . THIS IS THE SIMPLEST SIMPLEST EXPLANATION By Far. Thank you.
@robertpierce5142
@robertpierce5142 3 месяца назад
Wow, thank you!
@garry137
@garry137 9 лет назад
This is the most concise explanation of ECC that I ever learned. Great video! Thanks for taking time to put it together.
@zes7215
@zes7215 Год назад
wrg
@fantaaa61
@fantaaa61 2 года назад
Even after six years... Still the best, and by far, simple explanation of elliptic curve cryptography. No way too complicated math statements and no oversimplified kids drawing explaining what a public key is. Many thanks :D
@fantaaa61
@fantaaa61 2 года назад
Not sure if it already has been mentioned but at 11:27 bob computer P with small a and b. This is impossible, right? As bob has no access to small a. It should be big A if I am correct.
@robertpierce5142
@robertpierce5142 2 года назад
@@fantaaa61 Sorry for the late reply ... You are correct, Bob does not know what small a (alpha) is. Bob only sees big A. I just show that big A = alpha*G to demonstrate that Bob and Alice are indeed computing the same thing since the point addition operation is commutative.
@omargaber3122
@omargaber3122 Год назад
Even after seven years... Still the best simple explanation of elliptic curve cryptography , thank you very much
@asilbekergashev6788
@asilbekergashev6788 8 лет назад
Someone is going to impress their maths teacher tomorrow
@youtubepooppismo5284
@youtubepooppismo5284 2 года назад
did you impress your maths teacher 5 yeas ago?
@quickyummy8120
@quickyummy8120 2 года назад
😅😅😅
@94rainbowx33
@94rainbowx33 2 года назад
Let's be honest, this guy has a real talent for explaining things.
@SusheelAryarocks
@SusheelAryarocks Год назад
Agreed
@WTHNoSpam
@WTHNoSpam 5 лет назад
Excellent. I always enjoy the magical feeling of explaining to people about how the modularity of the multiplied secret at the end for Bob and Alice and watching people 'get it' (if only for a short while.)
@MMABeijing
@MMABeijing Год назад
This video is the clearest explanation of ECC. I was starting to give up on getting the big picture and I am grateful to having found this gem. Thank you Sir
@lappdev5071
@lappdev5071 3 года назад
The Best Explaination in under 20 minutes EVER. Salute brother ;)
@robertpierce5142
@robertpierce5142 3 года назад
Thanks!
@drone2369
@drone2369 2 года назад
I cannot like this video enough. Better than any textbook explanation! Thank you Rob!!!!
@joshcampbell402
@joshcampbell402 2 года назад
Thank you for this, I've understood how to do Diffie Hellman and can whiteboard it from memory, but this finally made ECDH click for me.
@pkpio
@pkpio 9 лет назад
The best ECDH video! Short, to the point and the depictions and font are neat!
@PawanBathe
@PawanBathe 5 лет назад
I am not a person who typically comments on videos on youtube, but this is really concise and clear definition on one of the most difficult topics on ECC, you deserved appreciation Robert, big thank you!
@robertpierce5142
@robertpierce5142 5 лет назад
Thanks Pawan, I really appreciate it.
@chandravaranasi2535
@chandravaranasi2535 5 лет назад
Absolutely great video. Never watched a better explanation!
@Devashish18081
@Devashish18081 5 лет назад
Thank you sooo much! This helped my major doubt. I was struck on how to perform scalar multiplication of end. This helped me clear it.
@rahulgomes4823
@rahulgomes4823 5 лет назад
By far the best example of elliptic curves out there..
@robertpierce5142
@robertpierce5142 5 лет назад
Thanks!
@jawadhussain8175
@jawadhussain8175 6 лет назад
One word for the video. AWESOME. I needed to know exactly this. Most concise explanation of ECC DH that i ever got to know. I thank you very much for the bottom of the heart for taking the time out to put together such an outstanding video. Please post more videos. And Yeah you have another subscriber :-)
@NoNTr1v1aL
@NoNTr1v1aL 2 года назад
Absolutely amazing video! Subscribed.
@shubhamshourya7518
@shubhamshourya7518 6 лет назад
concise and clear. thanks a lot for this video. helped a lot for tomorrow's cryptography exam.
@parwinderdhillon4094
@parwinderdhillon4094 6 лет назад
thank you so much for such a simple and easy understanding on ECC... great video...
@slobodandobrijevic1374
@slobodandobrijevic1374 3 года назад
I have been looking for some clear explanation related to ECC and this is by far the best I have found.
@robertpierce5142
@robertpierce5142 3 года назад
Thanks, I’m glad it helped
@andrewclarke598
@andrewclarke598 6 лет назад
Fantastic! Great job. Thanks for taking the time to make this video.
@jeankhawand5539
@jeankhawand5539 5 лет назад
Great explanation. Thank you for taking the time to provide a simple explanation.
@robertpierce5142
@robertpierce5142 5 лет назад
Thanks for watching
@arunkumarsaravanan7875
@arunkumarsaravanan7875 5 лет назад
Single video with more contents...wow...looks awesome
@iomat9727
@iomat9727 8 лет назад
Very instructive! Thank you very much for giving me a good lecture.
@hanskessock3941
@hanskessock3941 4 года назад
Excellent resource :) - was searching for something advanced maths students in middle school and this was perfect. Thanks! BTW, small typo on Alice/Bob page "Elliptic Curce Diffie Hellman" - typo. Apologies if people have reported this previously. Thanks again for making this.
@adde362
@adde362 6 лет назад
Very good video, first complete explanation I found!
@vikas_chaube
@vikas_chaube 7 лет назад
Great video, love the way things have been explained. Thank you.
@prabavathihariharan147
@prabavathihariharan147 4 года назад
an excellent method of explaining ECC, thanks
@SusheelAryarocks
@SusheelAryarocks Год назад
Man Best explanation of ECC. I am subscribing😄
@Jonasonweb
@Jonasonweb 8 лет назад
Great Video and very good Explanation of ECDH!! Thumbs up.
@averagesoup8432
@averagesoup8432 7 лет назад
Man this video was amazing. Thank you for all that work. Crystal clear
@robertpierce5142
@robertpierce5142 7 лет назад
Thanks! Glad it helped!
@simiouch5128
@simiouch5128 6 лет назад
Amazing explanation! Thank you for explaining this!
@philippdolomit4830
@philippdolomit4830 Год назад
Best explanation ever and I have seen many videos already. Thanks 👍
@riccardoandreetta9520
@riccardoandreetta9520 7 лет назад
low levels details of this magic stuff is probably not really understandable by normal people, but this video makes it appear to be so simple (even though I still believe it's just not). Thank you !!!
@donha475
@donha475 5 лет назад
I still don't get it. How do you add two positive y coordinates together and end up with a negative y coordinate!?? WTH!
@appapurapu
@appapurapu 6 лет назад
Great Video explaining the elliptic curve fundamentals
@user-rz1vm9fh3l
@user-rz1vm9fh3l 9 лет назад
Thanks for the very nice video. Overall, the basic concepts is explained well. Just got stuck briefly with the 2^(-1)mod17. Thanks to Chris de Corte for bringing that up. Now, I have to dig deeper to understand group theory as you mentioned in the comments. (*haven't tried to compute 3G,4G...19G, yet)
@IqbalSyamil
@IqbalSyamil 2 года назад
Thanks, this video really helps me to understand ECC.
@haikalhawari1298
@haikalhawari1298 9 лет назад
Thank you so much for this explanation! Nicely done :)
@a7medFCI
@a7medFCI 2 года назад
Excellent explanation thank you for This great toturial
@nitin-hp6ug
@nitin-hp6ug 8 лет назад
Very informative video. Thanks!
@anjalichaudhri8455
@anjalichaudhri8455 3 года назад
Best explanation ever. Thank you very much.
@robertpierce5142
@robertpierce5142 3 года назад
Thanks!
@lance3401
@lance3401 Месяц назад
I'm learning refreshing my math knoledge, this is more like calculus and albregra II, will take time to fully do all the pre-requisites to fully implement in a crypto, but I love it, it almost has all the incredients but then transform to programming language algorithnms.
@hsharma3933
@hsharma3933 2 года назад
You’re right that it’s a key exchange protocol but more specifically it’s a key agreement protocol, where both parties contribute more or less, equally toward the creation of the symmetric key. On the other hand with RSA it’s more of a key transport, because (at least for server auth) it’s more along the lines of the client using the server public key along with the client and server random vectors to generate the premaster secret, which is then sent over to the server so the server and client both independently generate the master secret (symmetric key).
@shrutipatkar3256
@shrutipatkar3256 8 лет назад
Thanks a lot... This was the fastest way of understanding ECDH. :D
@streetfighter1kz
@streetfighter1kz 7 лет назад
Good job! Thank you! Hello from Kazakhstan!
@robertpierce5142
@robertpierce5142 7 лет назад
Hello there!
@thefirstfishadvancetheland8980
Thank you for this video! you saved my life:) Robert!!
@fuzzywzhe
@fuzzywzhe 7 месяцев назад
For people not too familiar with modular math: At 12:39 - modular division. 1/2 mod 17 is really this problem: What must x be for (2 * x) mod 17 == 1. In this case, it's 9. 2*9 = 18, 18 mod 17 == 1. There isn't always a solution depending on the modulo number, but I believe there always is provided that the modulo is prime.
@robertpierce5142
@robertpierce5142 7 месяцев назад
Thanks for that explanation. You are exactly correct. The modular arithmetic is what trips a lot of people up on this.
@fuzzywzhe
@fuzzywzhe 7 месяцев назад
@@robertpierce5142 OK, since you responded to me, how do you compute Q=kP at 5:58? It can't just be repeated addition, how does multiplication actually work in this? This is all theory, and I know there are a ton shortcuts with modular math. What are they? You can't be doing just repeated addition, because that would be trillions or trillions of operations and Eve can do the same thing, it would be insecure. ALSO - what makes a weak curve? It would be interesting to know a curve that is ENTIRELY unsuitable for cryptography. No offense, but this might be beyond your knowledge, but it's certainly beyond mine. It's so hard to get information about cryptography. Also, is the modulo number always prime? Is it CERTAIN to be prime, or just pretty likely to be prime? I know in RSA, you have a very good chance of the numbers being prime, but they aren't proven to be prime. I was always curious if RSA would completely break if the numbers went through the battery of tests to assure the number was prime, but it wasn't. I guess I should review the math in RSA again, I've never tested it with relatively small numbers.
@fuzzywzhe
@fuzzywzhe 7 месяцев назад
I understand how scalar multiplication can be done now, although it took a few days. if Y = X+X+X and Z = X+X+X+X+X+X also Z = Y+Y Is that correct? If so, then multiplication is being done the same way a computer did multiplication back in the 1980s and I see how that can be translated to an elliptic curve although I cannot see how the order is of the curve at generator point G is determined.
@fuzzywzhe
@fuzzywzhe 6 месяцев назад
@@robertpierce5142 Well, I was hoping for some free information, and didn't get it. That's fine, this tutorial did help, and it does seem that if: X = 2P and Y = 4P Z = 8P that Y also can be computed with 2X and Z can be computed as 2Y or 4X. If this is true, then I understand how numbers like 485728378320273X is computed with the distributive property where you calculate just powers of 2,4,8,16 etc, and then use those powers to do point addition until you get the result. The distributive property was used extensively in multiplication on early machines lacking an FPU or ALU.
@yuvrajsakshith9405
@yuvrajsakshith9405 3 года назад
Very insightful! Thank you! :)
@beback_
@beback_ 7 лет назад
That was awesome. Amazing.
@lamureon
@lamureon 5 лет назад
thanks for the great explanation
@Prvosienko
@Prvosienko 5 лет назад
Very good explanation. Thanks.
@robertpierce5142
@robertpierce5142 5 лет назад
Thank you
@husseinsuhail7961
@husseinsuhail7961 9 лет назад
thank you very much,explain very clearly.
@RoBuceo
@RoBuceo 3 года назад
Thx thx thx thx, This video is awesome, really nice explanation!
@RoBuceo
@RoBuceo 3 года назад
I have a doubt at minute 11:07. Bob computes P = Beta*Alfa*G, but Alfa is Alice private key. P shouldnt be P = Beta*A*G? and the same for P = B * Alfa * G?
@2777kk
@2777kk 5 лет назад
Awesome! One of the best explanations I ever found on RU-vid one Question however I would like to put forth. Why it is called Elliptical when the equation seems to have eccentricity greater than 1?
@ronnykuckuck4390
@ronnykuckuck4390 4 года назад
I would say because he's talking about an elliptic curve, not an elliptic function (which has eccentricity)? So, as you may already see, an elliptic curve is not an ellipse.
@purnimasaikia7776
@purnimasaikia7776 7 лет назад
Very helpful for my exam, thank u so much
@dormariel1409
@dormariel1409 6 лет назад
great video, what I did not get it how is it possible that 3G does not appear in the graph? do not all the points should be on the graph?
@samliao2393
@samliao2393 3 года назад
concise teaching video !
@anuppatil3427
@anuppatil3427 8 лет назад
Really Nice Video. Thanks a lot
@mrvargarobert
@mrvargarobert 8 лет назад
I think it is y_p = 0 at 5:27 instead of x_p.
@robertpierce5142
@robertpierce5142 8 лет назад
You are correct. That correction was made, but unfortunately it doesn't show up on mobile devices.
@lemague
@lemague 3 года назад
@@robertpierce5142 Emmm, but if you are doing P+P, then obviously you fall in the first case, since x_p is always equal to x_p. So P+P is always infinity? Or the first rule only applies when P != Q?
@KristofVydt
@KristofVydt 3 года назад
@@lemague 1) P+Q=O if xp=xq and yp!=yq This is when the line connecting P and Q is parallel to the Y axis. In case both xp=xq and yp=yq, that implicates P=Q making P+Q=2P. 2P with xp=0 coincides with the Y axis and hence =O. 2) P+P=O if yp=0 The line representing 2P runs tangential to the curve at P. Only if P is located at the spot where the curve crosses the Y axis, then the tangential line is parallel to the Y axis.
@pineneedle
@pineneedle 7 лет назад
Best video on ECC.
@jackzhp
@jackzhp 9 лет назад
nicely done!
@truestopguardatruestop164
@truestopguardatruestop164 2 года назад
That was so helpful! Is there any mathy way to compute the order of the generator without trying until we find infinity?
@MercuryTheWhite
@MercuryTheWhite 8 лет назад
Very helpful. Thank you! :)
@OKeefeist
@OKeefeist Год назад
So now they have a point only they know can this point be hashed into a certain length and used in AES encryption for example? SHA256 for AES256?
@dharma6662013
@dharma6662013 7 лет назад
Great video - thank you!
@HajiAkhundov
@HajiAkhundov 8 лет назад
A great, succinct introduction! Thanks. p.s. I need to implement this in hardware.
@robertpierce5142
@robertpierce5142 8 лет назад
+Haji Akhundov Thanks! That sounds like a fun (but challenging) project.
@HajiAkhundov
@HajiAkhundov 8 лет назад
challenging indeed
@munkh-erdenez2117
@munkh-erdenez2117 7 лет назад
Great tutorial.
@jeremydavie4484
@jeremydavie4484 2 месяца назад
Good explanation! Is there a formula to get the order of an arbitrary elliptic curve over a finite field? I can imagine that if one were to find an isomorphism of an elliptical curve onto a cyclic group (or subgroup) of integers mod n, then it would make the discrete logarithm a lot easier and then elliptical curves would not be secure. Just how hard is it?
@ryanharris9413
@ryanharris9413 8 лет назад
Super Clear, Kudos!
@zhiyizhu3040
@zhiyizhu3040 5 лет назад
Very helpful! Thank you!
@richa2921
@richa2921 6 лет назад
great work !!!!
@hanskessock3941
@hanskessock3941 4 года назад
Does anyone know what software was used to produce this video? The author does not recall - but it seems pretty fantastic.
@t33d33
@t33d33 6 лет назад
Great, informative video, but I have a question, since all G - points are known to all parties, what prevent Eve, to search in the list of Points which point has Bobs Coordinates 7,6. She can easly find out, that it was 3G also alpha is 3...
@tynansigg5472
@tynansigg5472 8 лет назад
Great video! I have a few questions. First, why is it necessary for both parties to know the cofactor? And how can the algebraic formulas for point addition be derived? Also, it seems like the group generated by G would not be cyclic unless infinity plus G is defined to be equal G. Is this the case, or am I missing something?
@robertpierce5142
@robertpierce5142 8 лет назад
About the cofactor: As far as I know the cofactor is not necessary to implement the protocol. It is just a parameter of the curve. It is important when designing the curve and understanding its properties. However, I do not know a whole lot about the cofactor, and I may be wrong. It is a more advanced topic then I got into when studying this. The infinity point should be considered the identity element, so yes ... infinity + G should be G. If you try to test this property using the example I gave you can do so. For example, if you do the modular arithmetic correctly, you should see that Infinity + G = G. Here Infinity = 19G. So 19G + G should be equal to G. See if you can verify that. If not let me know. As far as deriving the formulas, someone asked me a question about it, and I gave a link to someone's power point where they derive the formulas. See if you can find that comment.
@eurasiantreesparrow7547
@eurasiantreesparrow7547 6 лет назад
Great video. Thanks
@bluekaioken5924
@bluekaioken5924 9 лет назад
Awesome Video, nicely explain, understood everything, how about a video on Finite Fields, I can't find a good video, they're all over the place with their explanations, you sir explain everything very clearly.
@jenspettersen7837
@jenspettersen7837 6 лет назад
_Lets just take it from the bottom. First you need to know what a group is._ A group is a set of elements with *one* operation (usually denoted # (operation that is similar to or is adding) or * (operation that is similar to or is multiplying)) The set have to fulfill these 4 requirements under the operation. 1. *There have to excist an identity e so that e*a = a.* Example multiplicative identity is 1 and additive identity is 0 since a*1=a and a+0=a. 2. *Every element have to have an inverse aˉ¹ so that a*aˉ¹=e.* Example multiplicative inverse of 2 is 1/2 and additive inverse of 2 is -2. 3. *The set have to be closed under the operation.* if the set is whole numbers then when you add two whole numbers you get a new whole number so it's a group. Multiplication is not a group on the set of whole numbers since the inverses are fractions. 4. *The set have to be assosiative under the operation which means (a*b)*c=a*(b*c)* A field is a special kind of ring, and a ring is a set with two operations (R, +, *) with the following requirements. 1. *The set is an abelian group under the + operation.* Abelian means a*b = b*a. 2. *The set is assosiative and have a multiplicative identity.* 3. *The set is left and right distributive under multiplication.* a*(b+c)=ab+ac and (a+b)*c=ac+bc For a field every non-zero element have to have a multiplicative inverse and multiplication have to be commutative too. A finite field is a field with a finite number of elements. Lets see if the elliptic curve operations define a field Group 1 axiom: The identity have to be "point at infinity" O, since if you do P+O the line would go straight up to O and come straight down to P again, so P+O=P. Difficult to show algebraically, but I think it must be so. Group 2 axiom: The inverse of P is -P Group 3 axiom: Since O is included in the set you will eigther end up on the elliptic curve or at O, thus it's closed. However I'm not sure where you have P+Q where P=(x_P, y_P) and Q=(x_Q, y_Q) where y_P = y_Q, but x_P is not equal to x_Q. Does that go to O too? Group 4 axiom: My gut feeling tells me (P+Q)+R=(P+Q)+R Abelian: just draw an elliptic curve and do the operation P+Q and Q+P and you'll see tha P+Q=Q+P Ring 1 axiom: see above Ring 2 axiom: Multiplicative identity is 1, assosiativity is more of a challenge. Ring 3 axiom: This is challenging too. Sorry for the lazyness of not calculating it. I mainly wrote this post to understand ECC my self.
@jenspettersen7837
@jenspettersen7837 6 лет назад
TL;DR A field requires: Associativity of addition and multiplication: a + (b + c) = (a + b) + c and a · (b · c) = (a · b) · c. Commutativity of addition and multiplication: a + b = b + a and a · b = b · a. Additive and multiplicative identity: there exist two different elements 0 and 1 in F such that a + 0 = a and a · 1 = a. Additive inverses: for every a in F, there exists an element in F, denoted −a, called additive inverse of a, such that a + (−a) = 0. Multiplicative inverses: for every a ≠ 0 in F, there exists an element in F, denoted by aˉ¹ or 1/a, called the multiplicative inverse of a, such that a · aˉ¹ = 1. Distributivity of multiplication over addition: a · (b + c) = (a · b) + (a · c) . Since it is a finite field it have a finite amount of elements. Look at 1:08, bigger field means more elements and more secure encrytion
@zhiyizhu3040
@zhiyizhu3040 5 лет назад
How do Bob and Alice agree on the Domain parameter(a, b, G, etc.), so that they are actually using the same elliptic curve?
@robertpierce5142
@robertpierce5142 5 лет назад
The domain parameters are agreed to ahead of time by the communicating parties. So in practice it is based on the application. For example if you are using software to encrypt video files using elliptic curves that software will have already decided on which curve they are using ahead of time.
@hyunwoolee6222
@hyunwoolee6222 6 лет назад
What tools were you using?! amazing animation with hand writing. I wanna make lecture video like this.. So can you tell me what tools did you use??
@robertpierce5142
@robertpierce5142 5 лет назад
I can't remember what the actual program was that I used, but that is not my hand. It is an animation provided by the software.
@solmindaudy
@solmindaudy 8 лет назад
Thanks Alot Robert Sir. :)
@alibaba888
@alibaba888 2 года назад
How does Bob know 9A is 27G? Since Alice didn't share the private key "beta", Bob will only know he has to do 9 * (7,6). So the question is how does Bob calculate 9 * (7, 6) ?
@robertpierce5142
@robertpierce5142 2 года назад
Bob is calculating 9A = 9*3G = 9*(10,6). Bob calculates 9*(10,6) by using the point addition formulas, so 9*(10,6) -> (10,6) + (10,6) + (10,6) .... and so on nine times. In practice there are shortcuts but this demonstrates the idea.
@whatyouwantyouare
@whatyouwantyouare 4 года назад
Very clear! Thank you. Only thing that might improve it slightly is to elaborate on how it is helpful that bob and Alice have the same point 8G at the end. How do they use this to send messages?
@whatyouwantyouare
@whatyouwantyouare 4 года назад
Ok I googled me some Diffie Hellman and now I get the goal is to establish a common private key for some other code unspecified.
@robertpierce5142
@robertpierce5142 4 года назад
@@whatyouwantyouare Hey Joseph ... yeah you are right, this protocol only establishes the key exchange process and doesn't address what we actually do with that key to encrypt messages. I am not an expert by any means, but I think most of the time they use one of the coordinates and throw the other one away. That number is then used in some other encryption protocol
@meshwu
@meshwu 8 лет назад
Thank you!
@TheAL9090
@TheAL9090 Год назад
question how is point 3g and point 9g calculated by alice and bob? do they iterate on the generator point a or b Times? or is there a direct function to calculate a point based off of a or b?
@robertpierce5142
@robertpierce5142 Год назад
Yes there are different methods that are used in practice. I am in no way very knowledgable about how this is done in the real world, but one method is repeated doubling i.e. to calculate 9G you just need to know 8G+ 1G. But 8G is is (2G)^3 -> 2G*2G*2G. So 9G = 2G*2G*2G + 1G which gives you the point you want in 4 curve operations. But you probably already knew 4G or even 8G ahead of time so an ad hoc calculation could be done for even less.
@mechalec
@mechalec Год назад
Given the example y^2 = x^3 + 2x + 2 which you have used; when I graph it, the generator point, (X:5, Y:1) does not fall on this curve? Nor does any of the other points? Should they not be on the line?
@robertpierce5142
@robertpierce5142 Год назад
Are you doing modular arithmetic? The curve isn't y^2 = x^3 + 2x + 2. It is y^2 = x^3 + 2x + 2 (mod 17). I am not sure if that is what you meant and you are indeed doing modular arithmetic or if you are trying to just plot points as if this curve were over the real numbers. This distinction is crucial though.
@mauisstepsis5524
@mauisstepsis5524 2 года назад
Is it a typo at 5:34, did you mean y_P =0 for the point doubling?
@mdelatorre
@mdelatorre 7 лет назад
Great video.
@shridharjoshi9028
@shridharjoshi9028 6 лет назад
Can anyone plz send me the c or c++ code which implement the above small example? At least Flowchart. Thanks in advance.
@borisreitman
@borisreitman 5 лет назад
Can someone explain what happens in elliptic curve over the real numbers if you intersect a line that is not vertical, but which still doesn't hit the curve in a 3rd point? For instance, the line y=10-9x? I plugged this into Wolfram Alpha and I got complex numbers in 2 solutions. Is the group supposed to allow complex valued coordinates for the points? If so, then why define a vertical line as a special case?
@robertpierce5142
@robertpierce5142 5 лет назад
What curve are you referring to? The one in the video but over the real numbers: y^2 = x^3 + 2x + 2 ? When I plugged this into wolfram-alpha with the line y = 10 - 9x I received two real valued solutions and one complex. The two real valued solutions were approximately (0.877259, 2.10467 ) and (1.4194, -2.77461). There is also a complex solution, but there are indeed two real valued. So if you are on one of these points then there will be a point of intersection. If the line is not vertical then there should always be a point of intersection (I may be wrong, but my intuition tells me this. I am not an expert).
@borisreitman
@borisreitman 5 лет назад
Robert Pierce let’s say the two real intersections are my P and Q. What is P+Q? The rule is to find a third intersection, then reflect it. But, the third intersection is complex valued.
@gundabalf
@gundabalf 4 года назад
this is some clearly explained shit right here
@ayeyebrazof6559
@ayeyebrazof6559 2 года назад
I didn't get how do you pass from a curve on R to a curve on Z/pZ from a graphical point of view.
@NYFL2156
@NYFL2156 8 лет назад
Please explain the derivation of the equation at 3:36 X subr = s squared minus (xsubp + xsubQ)
@robertpierce5142
@robertpierce5142 8 лет назад
+JcJohn Clarke Check out slide 27 at www.math.brown.edu/~jhs/Presentations/WyomingEllipticCurve.pdf
@robertpierce5142
@robertpierce5142 8 лет назад
+JcJohn Clarke Basically you have two points on the curve. You draw a line through those two points. You want to find the x-coordinate of the third point of intersection on the curve. You take the equation of the line passing through the points and substitute that into the curve equation. You then set the curve equation equal to zero. You know there are three solutions to this equation (the two known points and the third unknown point). You factor out these solutions and solve for the missing third.
@takeru1442
@takeru1442 3 года назад
Awesome!! thank you!
@AkashPatelAkashPatel
@AkashPatelAkashPatel 5 лет назад
Can someone help me understand how s was calculated at 13:45? I don't see how to go from 77/2 to 9*9. Same applies for 14:20 and how he went from 13^2-2(5) to 16-10. Any thoughts?
@robertpierce5142
@robertpierce5142 5 лет назад
So in modular arithmetic we never actually 'divide' in the most accepted sense of the word. When we divide we are actually multiplying by the inverse. Thus in this example (13:45) 77/2 (mod 17) is actually 77*2^(-1) (mod 17). 77 (mod 17) is congruent to 9. Hopefully that part is clear. Thus 77*2^(-1) (mod 17) is congruent to 9*2^(-1) (mod 17). So now to figure out 2^(-1) (mod 17). The inverse operation in this algebra (integers modulo 17) is solved by 2x == 1 (mod 17), or what times two modulo 17 gives us 1 (where 1 is the identity element). So hopefully you agree that 2(9) == 18 == 1 (mod 17) is a valid solution. Thus 2^(-1) == 9 (mod 17). Putting this together give us 77/2 (mod 17) is congruent to 9*9 (mod 17) For the example at 14:20: 13^2 - 2(5) (mod 17) can be simplified to (-4)^2 - 10 == 16 -10 (mod 17).
@estebanzd9434
@estebanzd9434 5 лет назад
I finally understood it! Does somebody know a place for getting elliptic curves, and their data neccesary for ECC? I can only find Curve25519 and the one in the video.
@mrjjavier112
@mrjjavier112 4 года назад
RFC 5114
@lol-xs9wz
@lol-xs9wz 2 года назад
Sorry, if I didn't understand it properly but how do I calculate 3G from G + 2G?
@robertpierce5142
@robertpierce5142 Год назад
Use the point addition formulas. In the example I demonstrate point addition only. Also remember this is modular arithmetic, and the rules are different than what you may be used to.
@EmosGambler
@EmosGambler 6 лет назад
FInally I understand it. Thanks!
@MoshMoshProf
@MoshMoshProf 6 лет назад
Useful, thanks. Two spelling corrections on slide at 9:43 'Curve' and 'Hellman'. Q. How to generate a series of shared secret offline using your method? Q. Is the transcript/maple code for the example available online?
@robertpierce5142
@robertpierce5142 6 лет назад
Thanks!
@robertpierce5142
@robertpierce5142 6 лет назад
No I have not put out any code for this project.
@Evan2718281828
@Evan2718281828 Год назад
Should the condition at 5:25 be that the y coordinate is 0 (not the x coordinate)? Then the tangent line is vertical?
@robertpierce5142
@robertpierce5142 Год назад
Yes that was a mistake.
Далее
$10,000 Every Day You Survive In The Wilderness
26:44
САМЫЕ ТУПЫЕ МАЖОРЫ С ПАТРИКОВ
33:19
What is... an elliptic curve?
53:28
Просмотров 45 тыс.
Elliptic Curve Back Door - Computerphile
12:24
Просмотров 506 тыс.
Elliptic Curve Cryptography Overview
11:29
Просмотров 457 тыс.
Elliptic Curve Point Addition
6:27
Просмотров 55 тыс.
Diffie Hellman -the Mathematics bit- Computerphile
7:05
Elliptic curves
58:06
Просмотров 129 тыс.
$10,000 Every Day You Survive In The Wilderness
26:44