[00:57.720 --> 00:59.780] Hey, guys, how's it going? [01:01.260 --> 01:05.740] Congratulations, you guys are the coolest people here at the conference, you know. [01:06.800 --> 01:10.340] Who willingly comes to a math talk in their free time? [01:10.440 --> 01:15.300] Like, just as a warning, if you didn't know that's what this was, we are doing a math talk today. [01:15.900 --> 01:18.420] But I promise it's not scary. [01:18.460 --> 01:20.060] It's not gonna be scary at all. [01:20.700 --> 01:25.700] And if there's like any questions at all, like, do not hesitate, right? [01:25.700 --> 01:31.220] Because I want everyone to know, math brings up a lot of feelings for people. [01:31.220 --> 01:34.860] I get told all the time, they're like, okay, you do math, okay. [01:35.240 --> 01:41.400] So, if there's anything at all you don't understand, like, there's no shame. [01:41.400 --> 01:47.440] You know, if a lack of comprehension is not a reflection of your abilities, just come up afterwards. [01:47.760 --> 01:50.680] You know, math always has more than one way to solve a problem. [01:50.680 --> 01:52.160] There's more than one way to learn. [01:52.200 --> 01:56.700] So, take a deep breath, you're fine, and we can get going. [01:56.800 --> 01:57.840] So, I'm Abby. [01:57.840 --> 01:59.000] Thanks for coming. [01:59.360 --> 02:01.380] I went and got a math degree. [02:01.380 --> 02:03.240] I know, I'm a math nerd. [02:03.260 --> 02:14.440] So, I went to Eastern Michigan University, and there I took several classes on cryptography and write the mathematical algorithms used today. [02:14.620 --> 02:16.660] So, that's what we'll be going over. [02:17.300 --> 02:22.300] Yeah, and then from there, I went on to the PKI world of the cybersecurity. [02:22.500 --> 02:25.920] I work for a PKI as a service company. [02:26.380 --> 02:27.860] So, that's what I do. [02:28.060 --> 02:31.280] So, we will be becoming quantum computers today. [02:33.480 --> 02:39.480] We'll begin with a little bit of an introduction to just some basic math concepts. [02:39.480 --> 02:41.720] You know, we don't want to dive in to the deep end. [02:41.720 --> 02:47.060] We're going to start slow, warm ourselves up, and then we'll go into RSA. [02:47.060 --> 02:51.340] We will do an example, and then we'll do elliptic curve, ECC. [02:51.340 --> 02:54.360] We'll talk about how those are broken, right? [02:54.360 --> 03:01.860] And then we actually will also be doing a post-quantum cryptographic example, but like pretty basic. [03:01.860 --> 03:07.640] So, but first, we get to go back to everyone's favorite time, high school. [03:07.980 --> 03:12.960] Yeah, because we will not be doing anything higher than high school level math. [03:13.240 --> 03:15.380] I don't know if that makes you feel better or not. [03:15.380 --> 03:20.820] So, okay, the first concept, exponents, right? [03:20.820 --> 03:24.440] Three times three times three is three to the fourth. [03:24.480 --> 03:25.940] Which numbers are exponent? [03:25.960 --> 03:27.300] Four, right? [03:28.360 --> 03:29.760] This make sense so far? [03:29.760 --> 03:30.780] We're doing okay? [03:30.860 --> 03:32.420] Yeah, okay, good. [03:33.420 --> 03:35.760] The next one is we have prime numbers. [03:36.280 --> 03:38.280] So, what is a prime number? [03:38.320 --> 03:41.600] A prime number has two factors, one and itself. [03:41.920 --> 03:46.500] And those numbers are the two numbers that it can be divided by, right, or divisible by. [03:46.500 --> 03:49.040] It means when you divide it, there's no decimals. [03:49.500 --> 03:51.240] An example is 13, right? [03:51.240 --> 03:54.080] Thirteen has two factors, one and thirteen. [03:54.360 --> 03:57.680] Another example is 46,853. [03:59.580 --> 04:05.620] The reason I have some stake up here is, right, because I like to think of prime numbers like prime rib. [04:05.780 --> 04:11.240] You'll share it with, you only want it for yourself, right, but you'll share it with one other person if you have to. [04:11.520 --> 04:14.100] So, that's how I kind of remember prime numbers. [04:14.720 --> 04:18.280] And obviously, if there's prime numbers, then we have numbers that are not prime. [04:18.560 --> 04:19.420] Twenty-four. [04:19.420 --> 04:21.400] Twenty-four has way more than two factors. [04:21.400 --> 04:22.100] It has eight. [04:22.100 --> 04:23.460] I guess it's not that many more. [04:24.560 --> 04:30.440] And then, like, 3,652 also has, I think that one has 12 factors. [04:30.960 --> 04:33.320] So, okay. [04:33.660 --> 04:35.400] We have one more concept. [04:35.700 --> 04:38.140] This one you're probably not as familiar with. [04:38.140 --> 04:41.540] And if you did talk about it in high school, let me know because that's awesome. [04:41.760 --> 04:43.760] So, this is modular arithmetic. [04:44.340 --> 04:45.540] Sounds terrifying. [04:45.540 --> 04:46.500] I swear it's not. [04:46.500 --> 04:48.140] You can do this. [04:48.460 --> 04:52.640] So, in modular arithmetic, you only have to know how to subtract and divide. [04:52.880 --> 04:54.660] Can you guys subtract and divide? [04:54.860 --> 04:55.580] Yeah. [04:55.860 --> 04:57.120] That's a maybe. [04:57.560 --> 04:58.760] That's all you have to do. [04:58.760 --> 05:01.280] You don't even actually have to, like, divide, divide. [05:01.280 --> 05:04.200] You can just kind of maybe pretend. [05:04.560 --> 05:14.800] So, in modular arithmetic, we say two numbers are congruent modulo m if their difference is divisible by m. [05:14.900 --> 05:15.340] Right? [05:15.340 --> 05:16.200] What is difference? [05:16.200 --> 05:17.440] Subtraction. [05:17.440 --> 05:18.200] Divisible? [05:18.200 --> 05:19.280] Division. [05:19.280 --> 05:27.620] So, two numbers are congruent modulo m if their difference is divisible by m. [05:27.620 --> 05:29.680] Let's take a look. [05:30.080 --> 05:32.900] I have two numbers, 29 and 14. [05:33.160 --> 05:35.180] And I've chosen m to be 5. [05:35.380 --> 05:36.220] So, what do I do? [05:36.220 --> 05:37.740] First, subtract. [05:37.780 --> 05:40.560] What is 29 minus 14 is 15. [05:41.640 --> 05:42.980] Pretty straightforward. [05:42.980 --> 05:46.780] Next, we ask ourselves, is 15 divisible by 5? [05:47.320 --> 05:48.780] And the answer is yes. [05:48.780 --> 05:49.040] Right? [05:49.040 --> 05:51.000] 15 divided by 5 is 3. [05:51.000 --> 05:52.160] There are no decimals. [05:52.160 --> 05:52.920] It's a whole number. [05:52.920 --> 05:55.580] So, 15 is divisible by 5. [05:55.720 --> 06:00.040] So, we have met the two parts of modular arithmetic. [06:00.040 --> 06:06.140] So, we can say 29 is congruent to 14 modulo 5. [06:06.700 --> 06:08.260] So, that's how we write this. [06:08.500 --> 06:11.480] Remember, all we did was subtract and then divide. [06:11.480 --> 06:16.220] And then we just write it very complicatedly at the end. [06:16.600 --> 06:23.820] So, to say something is congruent, we use an equal sign and then we have the third parallel line on top. [06:23.820 --> 06:27.480] You know, it's kind of like an equal sign with like a top hat or, you know, something like that. [06:27.480 --> 06:31.180] But those three lines represent congruency. [06:31.180 --> 06:34.440] So, it's like they are equal, but they're also not. [06:35.920 --> 06:41.980] So, if two numbers can be congruent, that means two numbers can also not be congruent. [06:42.060 --> 06:43.780] I mean, look at this example here. [06:43.900 --> 06:46.680] Two completely different numbers, 23 and 12. [06:46.680 --> 06:48.660] This time my m will be 3. [06:49.500 --> 06:51.100] We subtract first, right? [06:51.100 --> 06:52.960] 23 minus 12 is 11. [06:52.960 --> 06:55.140] We do 11 divided by 3. [06:55.140 --> 06:57.580] Is 11 divisible by 3? [06:57.580 --> 06:58.240] No. [06:58.240 --> 07:00.500] There are decimals, there are remainders. [07:00.820 --> 07:07.860] So, then we just put a slash through and we say 23 is not congruent to 12 mod 3. [07:09.260 --> 07:13.160] And fun fact about mathematicians, we are known to be lazy. [07:13.160 --> 07:14.660] It is just a fact. [07:14.940 --> 07:21.120] So, essentially, mathematicians find the quickest and most efficient way to do, to make a shortcut. [07:21.120 --> 07:24.140] So, right, we don't need to write modulo out every single time. [07:24.140 --> 07:25.340] You can just write mod. [07:26.120 --> 07:28.960] And that is modular arithmetic. [07:29.180 --> 07:32.560] And those are the only concepts you need to know for RSA. [07:33.240 --> 07:35.200] So, you guys feel like you can do this? [07:35.500 --> 07:36.660] You'll be okay? [07:36.660 --> 07:37.340] Okay. [07:39.880 --> 07:40.580] Oh, yeah. [07:40.720 --> 07:42.460] Congratulations, you repassed high school. [07:42.460 --> 07:43.620] Good job, everyone. [07:43.800 --> 07:45.280] You can get a second degree. [07:46.920 --> 07:48.040] Let's dive right in. [07:48.040 --> 07:49.560] RSA, right? [07:49.560 --> 07:53.460] RSA is asymmetric cryptography, right? [07:53.460 --> 07:54.940] Asymmetric encryption. [07:55.060 --> 08:01.280] That means there's two keys, a public key for encryption and a private key for decryption. [08:02.560 --> 08:10.820] We, it was created by three men, Rivest, Shamir, and Adelman, RS and A, in, when was it made? [08:10.880 --> 08:12.020] 1977. [08:12.020 --> 08:23.940] So, actually, RSA is almost 50 years old, which, you know, makes sense that we're now coming to get some new algorithms because 50 years old in tech world, oh, that's a long time. [08:25.120 --> 08:25.500] Okay. [08:25.500 --> 08:28.580] RSA, seven, we have seven components. [08:28.660 --> 08:32.880] We start with two positive whole numbers, D and E. [08:32.880 --> 08:35.980] D for decryption, it's going to be our private key. [08:36.140 --> 08:39.120] E for encryption, it's going to be our public key. [08:39.980 --> 08:43.560] Next, we have P and Q, so we're going to have two prime numbers. [08:43.740 --> 08:44.440] Good thing, right? [08:44.440 --> 08:45.420] We went over that. [08:45.880 --> 08:48.100] N is just P times Q. [08:48.760 --> 08:51.060] Sorry, I forgot to mention, you have to know how to multiply, too. [08:51.960 --> 08:56.120] And then we, right, have M is going to be our plain text, C is our cipher text. [08:58.830 --> 09:06.150] And then all seven of these beautiful numbers, we will put together to have three different algorithms for RSA. [09:08.290 --> 09:10.330] Here's our first one for encryption. [09:10.690 --> 09:12.410] Go ahead and look at it for a second. [09:12.410 --> 09:16.650] See if you can, like, read it to yourself the way we were reading modular arithmetic. [09:23.220 --> 09:23.660] Okay. [09:23.660 --> 09:24.380] Did you read it? [09:24.380 --> 09:28.860] C is congruent to M to the E mod N, maybe. [09:29.500 --> 09:29.820] Right? [09:29.820 --> 09:31.640] How is this different than what we did before? [09:31.740 --> 09:33.260] All I did was add an exponent. [09:33.260 --> 09:34.120] That's it. [09:34.660 --> 09:35.180] Right? [09:35.180 --> 09:41.340] So we have our basic, our two numbers, our C and our M, but this time now, right, M has an exponent. [09:41.780 --> 09:43.860] So what does this mean, exactly? [09:43.860 --> 09:53.200] It means our cipher text is congruent to our message raised to the public key, you know, raised to the encryption, mod N. [09:53.620 --> 09:57.900] And if you forget how we find that, that's what the bottom just says. [09:57.900 --> 10:01.780] It says C minus M to the E is divisible by N. [10:02.100 --> 10:05.340] That's all we're doing, is we're subtracting and then we divide. [10:07.700 --> 10:08.500] Take a second. [10:08.500 --> 10:09.720] This is the decryption. [10:09.900 --> 10:10.860] Is it different? [10:10.860 --> 10:11.440] Maybe? [10:15.950 --> 10:16.550] Okay. [10:16.550 --> 10:29.650] So in decryption, we switch, right, the message and the cipher text, because now we need the cipher text to decrypt, which is now, instead of our exponent being E with the public key, now we have our exponent being D with the private key. [10:30.930 --> 10:34.890] And I forgot to mention this, but all of these algorithms are framed. [10:34.890 --> 10:36.090] They are works of art. [10:36.090 --> 10:37.470] They belong in a museum. [10:37.470 --> 10:38.890] They are beautiful. [10:39.670 --> 10:40.570] But, yeah. [10:41.050 --> 10:45.710] And then, right, so our message minus C to the D is divisible by N. [10:47.610 --> 10:49.190] I know what you're all thinking now. [10:49.250 --> 10:51.670] We have our encryption and our decryption. [10:51.970 --> 10:53.730] Why, what is the third algorithm? [10:53.730 --> 10:55.130] Why do we need a third one? [10:55.930 --> 11:00.030] So this third one is what makes RSA secure. [11:00.030 --> 11:01.530] It's not like a name for it. [11:01.530 --> 11:05.870] I just call it our make secure algorithm, to be straight forward. [11:06.010 --> 11:13.370] So this describes the relationship between the private key and the public key, our D and our E. [11:13.430 --> 11:21.550] So here we can see D times E is congruent to 1 mod P minus 1 times Q minus 1. [11:22.050 --> 11:25.870] And if you remember before on the previous ones, we had mod N. [11:26.370 --> 11:27.670] And what was N? [11:27.670 --> 11:29.530] N was P times Q. [11:29.770 --> 11:31.850] So we no longer have P times Q anymore. [11:31.850 --> 11:33.430] We have something a little different. [11:33.950 --> 11:35.350] Don't worry, you don't have to memorize it. [11:35.350 --> 11:36.390] It's on Google. [11:39.110 --> 11:39.930] Okay. [11:40.030 --> 11:40.950] Let's do it. [11:40.950 --> 11:41.830] You guys, are you ready? [11:42.090 --> 11:43.550] Let's do some RSA. [11:44.770 --> 11:49.290] So in any good crypto system, we have our two main characters, Alice and Bob. [11:49.290 --> 11:51.090] So we're going to start with Alice. [11:51.130 --> 11:59.590] Alice is going to create the RSA crypto system and Bob is going to use it to encrypt a message and then Alice will decode. [12:00.230 --> 12:03.230] So we begin with our private key, our D. [12:03.230 --> 12:04.570] We have 37. [12:04.810 --> 12:09.550] We have two prime numbers, P is 71, Q, 97. [12:09.690 --> 12:13.690] Multiply them together and you get 6,887. [12:16.510 --> 12:17.810] Let's see. [12:19.650 --> 12:20.450] Okay. [12:21.190 --> 12:24.230] Now, we have our private key. [12:24.470 --> 12:27.190] We can calculate our public key. [12:27.410 --> 12:29.790] So I have our make secure algorithm, right? [12:29.790 --> 12:35.130] D times E is congruent to 1 mod P minus 1 times Q minus 1. [12:35.290 --> 12:37.230] All I have to do is plug in what we know. [12:37.530 --> 12:41.250] We know 37 and we know P and Q. [12:41.670 --> 12:43.250] I hope you all can subtract 1. [12:43.250 --> 12:45.250] So then we get 70 times 96. [12:45.650 --> 12:51.090] And we get 37E is congruent to 1 mod 6720. [12:52.930 --> 12:59.250] And then, obviously, you can see the answer is E is 1,453, which is our public key. [12:59.550 --> 13:02.810] And you all know exactly how I got from line 3 to line 4, right? [13:03.790 --> 13:05.490] Makes complete sense, right? [13:05.490 --> 13:06.990] I subtracted and then divided. [13:07.130 --> 13:08.930] And you're like, but there's a variable. [13:09.010 --> 13:10.570] How do I know what? [13:10.830 --> 13:11.270] Okay. [13:11.270 --> 13:13.830] So fun fact, I did not solve this. [13:13.830 --> 13:16.890] I had an online calculator solve this. [13:17.250 --> 13:20.230] So my favorite is Wolfram Alpha, right? [13:20.230 --> 13:21.870] You guys don't, we don't need to do this by hand. [13:21.870 --> 13:27.850] It's really, that would take like 10 more slides and nobody's got time for that. [13:28.130 --> 13:32.010] So, I mean, because modern computers can solve RSA problems. [13:32.010 --> 13:33.490] Like, that's not the issue. [13:33.670 --> 13:37.710] Well, they can solve small RSA problems, right? [13:38.150 --> 13:48.310] The reason we use large numbers for real-time RSA is because computers take thousands and thousands of years of computation to solve them. [13:48.310 --> 13:50.790] It's not that they're unsolvable, unbreakable. [13:50.950 --> 13:53.990] It's that it's just, they're not breakable in our lifetime. [13:54.270 --> 13:59.190] So if you use numbers like 37, a computer can't solve that. [13:59.190 --> 14:01.970] And then I just prefer Wolfram Alpha. [14:02.890 --> 14:06.970] But now that we have that, we can plug it back into our table. [14:07.370 --> 14:09.310] And Alice's part is done. [14:09.310 --> 14:11.170] So let's move on to Bob. [14:12.490 --> 14:13.530] Okay. [14:13.530 --> 14:15.970] Bob wants to say hi to Alice. [14:16.250 --> 14:23.010] So we turn his alpha characters into numeric characters. [14:23.370 --> 14:26.610] So that means our message is 0809. [14:26.650 --> 14:27.910] How did I get that? [14:27.910 --> 14:30.450] Well, H is the eighth letter of the alphabet. [14:31.030 --> 14:32.210] Nine, right? [14:32.330 --> 14:34.590] Or I is the ninth letter of the alphabet. [14:36.830 --> 14:37.750] Actually, that's it. [14:37.750 --> 14:39.130] That's all Bob needs to do. [14:40.090 --> 14:40.790] Okay. [14:40.870 --> 14:43.250] Now we're going to use our encryption algorithm. [14:44.610 --> 14:51.030] Remember, we have our ciphertext is congruent to our message raised to the public key, mod N. [14:51.670 --> 14:53.030] Plug in what we know. [14:53.030 --> 14:56.210] We know our message, 0809. [14:56.550 --> 15:00.770] We're going to raise it to the 1,453rd power. [15:01.330 --> 15:07.850] And then we're going to, essentially we call it simplifying mod N or mod 6,887. [15:08.150 --> 15:13.910] Once again, if you're crazy like me, feel free to do this by hand, but that's a very large exponent. [15:13.910 --> 15:15.850] You don't need to do that. [15:16.010 --> 15:27.030] So plug it in online, you know, write software to do it for you, and you will find out that your ciphertext is going to be congruent to 5,593. [15:27.530 --> 15:33.090] So now we have a complete RSA system. [15:33.890 --> 15:34.930] That's it. [15:34.930 --> 15:36.950] You guys are still alive. [15:37.210 --> 15:37.870] Yeah. [15:38.590 --> 15:42.970] But we would not be good mathematicians if we didn't double check our work, right? [15:43.750 --> 15:44.790] So let's do that. [15:44.790 --> 15:45.990] Let's be Alice. [15:46.090 --> 15:51.090] So Alice is given the ciphertext, and she is the only one who has the private key. [15:51.430 --> 15:53.230] So let's plug in what we know. [15:53.490 --> 15:57.210] So our ciphertext, right, was 5,593. [15:57.310 --> 15:59.790] Our private key, if we remember, was 37. [16:00.130 --> 16:04.730] So we're going to raise 5,593 to the 37th power. [16:04.930 --> 16:14.150] We will simplify it, mod N, and then we can get M is congruent to 809, which was our original message. [16:15.730 --> 16:30.270] And then, thing to note, right, because in encryption a lot, we have to repad zeros to the ends of things, or in this case, in the beginning, which just means you have to know the alpha-to-numeric system you're using. [16:30.270 --> 16:40.370] And, right, in this case, I know that there are not 80 letters in the English alphabet, so I'm not going to use... the zero does not attach to the eight on the other side. [16:40.370 --> 16:42.250] That's how I know it attaches to the nine. [16:43.050 --> 16:48.990] That's just like, mathematicians can get picky, you know, they're like, what are you doing over there? [16:49.030 --> 16:50.750] So that's how we do that. [16:51.330 --> 16:56.270] Right, and we have our keys on here because we're unlocking the ciphertext, essentially. [17:00.400 --> 17:10.220] Oh, I did also want to mention that the numbers chosen for this RSA cryptosystem are technically just arbitrarily, randomly chosen. [17:10.220 --> 17:14.420] You're not using that in like an actual public key infrastructure. [17:14.420 --> 17:21.280] There are rules surrounding how you choose these values, but, right, for the purpose of an example, it doesn't matter. [17:22.840 --> 17:25.460] That's actually it for RSA. [17:25.880 --> 17:29.340] So, now you guys know how to encrypt all of your data. [17:30.500 --> 17:33.780] Or, I guess, decrypt it, if you really want to. [17:34.620 --> 17:35.900] But let's move on. [17:35.900 --> 17:37.100] Now we have elliptic curves. [17:37.100 --> 17:38.200] We have ECC. [17:39.220 --> 17:40.500] Completely different. [17:40.700 --> 17:44.060] We are actually, we're not really going to use any of the math we just did. [17:44.120 --> 17:46.940] So, sorry if you're like, I finally got it. [17:47.120 --> 17:49.360] We're completely switching gears here. [17:49.760 --> 17:54.600] So, ECC is going to be using more graphing. [17:54.600 --> 18:03.480] If you guys remember, like, X, Y coordinates, you know, your X axis, your Y axis, coordinate plane, that's what we're doing here. [18:04.420 --> 18:06.300] And then just a bit of history. [18:06.460 --> 18:11.840] ECC is, what was it, eight years after RSA. [18:11.840 --> 18:14.200] So, it still has been around for a long time. [18:14.420 --> 18:20.360] I think RSA is the more common one, right, but ECC is definitely picking up traction. [18:21.080 --> 18:28.260] These keys tend to be smaller than RSA, right, because remember how I mentioned you have to use extremely large numbers for RSA. [18:28.700 --> 18:31.240] So, that's why ECC tends to be a little more popular. [18:33.990 --> 18:36.610] Just like before, here are our basic components. [18:36.910 --> 18:38.230] We always start with E. [18:38.230 --> 18:41.630] E is going to be our equation for the elliptic curve graph. [18:42.530 --> 18:44.510] P is not a prime number. [18:44.630 --> 18:48.150] So, it's the same variable but different concept. [18:48.410 --> 18:52.070] So, P is going to be a point on our graph, a point on the curve. [18:52.070 --> 18:54.930] And this point is going to be our public key. [18:55.910 --> 18:58.430] Now, we have two positive whole numbers. [18:58.470 --> 19:00.470] We have N A and N B. [19:01.070 --> 19:07.510] Q A will be N A times P, right, and then Q B will be N B times P. [19:08.430 --> 19:16.730] And then to get the private key, which will be a second point on the curve, we do N A times Q B, right. [19:16.730 --> 19:19.650] I have an A and a B in this scenario. [19:20.150 --> 19:22.210] So, these are the components. [19:23.230 --> 19:24.910] Let's put it all together. [19:27.090 --> 19:28.670] Alice and Bob are back. [19:28.670 --> 19:30.430] We always miss Alice and Bob. [19:30.570 --> 19:35.910] So, we start with our equation E and our public key, our point P. [19:37.170 --> 19:42.790] Alice chooses her secret value, which is N A, right, A for Alice. [19:42.790 --> 19:50.530] So, Alice chooses a secret value, multiplies it by the public key, and gets her Q A value. [19:51.170 --> 19:54.450] Bob is actually going to do the exact same thing. [19:54.450 --> 20:04.930] Bob's also choosing a secret value, his N B, multiplying it by P, right, the public key, and getting his own Q B value. [20:05.230 --> 20:07.410] But why do they both do this? [20:07.410 --> 20:12.010] It's actually because Alice and Bob are both going to have access to the private key. [20:12.010 --> 20:14.250] They're both calculating the private key. [20:14.410 --> 20:16.710] How is that different, right, than RSA? [20:16.730 --> 20:20.270] In RSA, only Alice had the private key. [20:20.990 --> 20:23.670] So, how do they both calculate the private key? [20:23.670 --> 20:27.470] Well, what they're going to do is then swap Q's with each other. [20:28.230 --> 20:32.890] So, when Alice calculates her Q value, she gives it to Bob. [20:32.910 --> 20:37.030] And then when Bob calculates his Q value, he sends it to Alice. [20:37.230 --> 20:40.310] But remember, they both have their secret value still. [20:40.310 --> 20:41.690] So, it's still secure. [20:41.690 --> 20:45.170] There's still information that is not becoming public. [20:46.070 --> 20:50.410] So, then once we swap Q's, we can calculate the private key, right? [20:50.410 --> 20:57.010] We have Q B times N A, and then that will equal Q A times N B, right? [20:57.010 --> 21:00.510] A private key is always going to have an A and a B or a B and an A. [21:00.510 --> 21:03.590] We're never calculating A A or B B. [21:03.770 --> 21:07.790] So, that's kind of how to help you remember because there's so many N's and so many Q's, right? [21:07.790 --> 21:10.930] So, we need an A and a B to calculate our private keys. [21:13.580 --> 21:21.560] The first algorithm for our elliptic curve here, this is how we graph our elliptic curves. [21:21.900 --> 21:26.800] We have Y squared is equal to X cubed plus A X plus B. [21:27.380 --> 21:34.960] What's different about this than what you're probably normally used to in like a high school algebra class is that our Y is squared, right? [21:35.100 --> 21:37.960] Because normally you're like, okay, yeah, I've seen this before. [21:37.960 --> 21:38.920] This is not that bad. [21:39.100 --> 21:43.880] But now we just square the Y and that makes like a ton of a difference. [21:44.120 --> 21:54.080] Because what it's going to do, so I have an example over here, is it turns it sideways and makes it look like a weird little octopus squid thing. [21:54.200 --> 21:58.060] So, this is what an elliptic curve looks like. [21:58.800 --> 22:04.180] Here, I graph the example Y squared equals X cubed minus 3 X plus 3. [22:04.180 --> 22:10.380] And then we get this fun, I don't know, horn trumpet graph. [22:10.380 --> 22:13.200] Whatever your imagination makes it look like. [22:13.360 --> 22:15.620] This is just a random example. [22:15.620 --> 22:22.560] I know there's a Bitcoin example that's Y squared equals X cubed plus 7. [22:23.340 --> 22:30.600] So, there are other, like the A and your B values are dependent on what you're trying to do. [22:34.270 --> 22:35.610] Here's our second algorithm. [22:35.610 --> 22:39.070] ECC is only going to have these two, so we're not going to have a third one. [22:39.370 --> 22:42.130] So, this is how we calculate the Qs. [22:42.630 --> 22:46.910] Not how we calculate the, well, kind of also how we calculate the private keys. [22:47.490 --> 22:57.070] So, when we look at this here, we see Q is equal to P plus P plus, right, plus P, or just N times P. [22:57.510 --> 23:00.250] I'm sure, right, this is just multiplication, right? [23:00.250 --> 23:03.670] If I have 5 apples, 5 times, like 25 apples. [23:04.990 --> 23:09.090] Unfortunately, guys, I hate to break it to you, this is not that simple. [23:09.230 --> 23:15.450] There is an extra step that we have to do to do this multiplication. [23:16.510 --> 23:17.770] Let's do it together. [23:18.470 --> 23:19.950] Okay, we start with point P. [23:19.950 --> 23:21.410] Point P is on the left. [23:22.030 --> 23:23.470] I want to get to 2P. [23:23.470 --> 23:25.730] All I want to do is just P plus P. [23:26.190 --> 23:28.250] And you can see it's on the bottom right. [23:28.450 --> 23:29.490] You're like, what? [23:29.490 --> 23:31.650] That is not multiplication. [23:32.330 --> 23:40.730] So, what we did is I start with point P and I draw a line through it and then I stop once I hit the graph again. [23:41.310 --> 23:43.110] That becomes point R. [23:43.110 --> 23:44.510] Point R is irrelevant. [23:44.510 --> 23:45.890] It's just like a middleman. [23:45.890 --> 23:47.610] We're not really going to use it. [23:47.730 --> 23:56.210] But from point R, then we go straight down and that new point is our final 2P or Q. [23:56.670 --> 24:06.370] So, essentially, when we say we're multiplying by the points, right, we're multiplying by, like, the public key, which is a point on the curve, we're doing point translation. [24:06.370 --> 24:11.550] We're going from point to point to point using straight lines. [24:14.340 --> 24:15.740] Oh, did you have a question? [24:15.740 --> 24:16.580] Yeah. [24:19.600 --> 24:22.700] Oh, that's a good question. [24:23.960 --> 24:29.380] I think it's the tangent line. [24:29.480 --> 24:31.280] So, it's where the derivative is zero. [24:31.980 --> 24:33.580] I believe that's what we choose. [24:34.660 --> 24:37.820] So, at P. [24:38.020 --> 24:39.020] Yes, at P. [24:39.220 --> 24:39.780] Yeah. [24:40.080 --> 24:43.650] Yeah. [24:45.430 --> 24:46.310] Okay. [24:47.130 --> 24:48.470] Let's put it all together now. [24:48.470 --> 24:50.990] Let's put ECC and let's walk through this. [24:51.430 --> 24:53.150] So, here's, I start with my equation. [24:53.150 --> 25:00.410] I have Y squared equals X cubed plus 324X plus 1,287. [25:00.910 --> 25:04.090] My public key, right, is a point on the curve. [25:04.090 --> 25:06.570] So, my X coordinate is 920. [25:06.570 --> 25:09.450] My Y coordinate is 303. [25:09.790 --> 25:12.350] Now I have my public key. [25:13.130 --> 25:20.630] And not to confuse you guys, but if you plug in 920 for X, you will not get 303. [25:21.510 --> 25:22.970] I apologize. [25:22.970 --> 25:32.750] But the reasoning for that is because essentially we also apply modular arithmetic to elliptic curve equations. [25:32.750 --> 25:34.710] We're not going to do that here. [25:34.790 --> 25:36.750] It's just, we went over it before. [25:36.750 --> 25:39.390] Just going to add, you know, like 30 more slides. [25:39.710 --> 25:41.910] So, we also apply modular arithmetic. [25:42.070 --> 25:48.310] We also apply your elliptic curve graph over a finite field. [25:48.550 --> 25:54.290] And since I promised we were only going to do high school math, we will not be talking about finite fields today. [25:54.770 --> 26:04.550] But just a basic example is essentially a finite field, has a bunch of points in it, and you remove some of them because they don't fit the criteria. [26:05.410 --> 26:08.050] That's like a basic example of a finite field. [26:08.050 --> 26:12.810] So, essentially, if you plug in 920, you're not going to get 303. [26:13.490 --> 26:16.630] I mean, if you were, if you want to, like, and see what the actual answer is. [26:16.630 --> 26:19.490] If you want to do math in your free time, like, I'm here for it. [26:20.110 --> 26:22.990] So, okay. [26:22.990 --> 26:27.150] Handy-dandy table because there's a lot of values and numbers and I get confused. [26:27.150 --> 26:28.530] So, we have our equation. [26:28.530 --> 26:30.150] We have our public key. [26:30.430 --> 26:32.830] Alice has chosen her secret value, right? [26:32.830 --> 26:34.390] Because remember, we need our NA. [26:34.590 --> 26:38.030] She chooses 1,194. [26:38.710 --> 26:41.670] Now, she does her multiplication, right? [26:41.670 --> 26:45.110] Her NA times P to get her Q value. [26:45.630 --> 26:48.410] Remember, it was our point translation. [26:48.410 --> 27:00.290] So, essentially, she will start at the public key and do the point translation 1,194 times over and over and over again until she gets the brand-new point. [27:00.370 --> 27:08.050] So, she gets the point 2067 for X and 2178 for Y, and that is her Q value. [27:09.630 --> 27:12.190] And with that, Alice is done. [27:12.490 --> 27:13.770] Say goodbye, Alice. [27:13.970 --> 27:14.610] Okay, Bob. [27:14.610 --> 27:15.770] Bob's back. [27:16.110 --> 27:19.970] Bob has his secret value, 1,759. [27:20.490 --> 27:22.050] He does the same thing, right? [27:22.050 --> 27:24.030] Because he needs a Q value as well. [27:24.030 --> 27:38.010] So, he starts with the public key, does his point translation 1,759 times to get his brand-new point, 3684 for X, 3125 for Y. [27:40.070 --> 27:43.470] And then we get to everyone's favorite part. [27:43.770 --> 27:46.850] Alice and Bob now get to swap Qs with each other. [27:46.850 --> 27:49.810] Because what else did we learn in kindergarten, guys? [27:49.810 --> 27:51.330] Sharing is caring. [27:51.330 --> 27:54.050] So, unless it's encrypted data. [27:54.050 --> 27:58.430] So, Bob sends his QV value to Alice. [27:58.430 --> 28:01.270] Alice sends her QA value to Bob. [28:02.610 --> 28:04.110] We'll start with Alice. [28:04.150 --> 28:06.310] Because, right, what do they both do? [28:06.390 --> 28:10.670] They are both computating the private key. [28:10.970 --> 28:15.470] So, we will calculate Alice and we will calculate Bob and we will make sure they get the same thing. [28:16.670 --> 28:17.670] What do we know? [28:17.670 --> 28:21.990] We know Alice's secret value, NA, is 1,194. [28:22.510 --> 28:28.970] We know Bob's Q value, QV, is the point 3684, 3125. [28:30.050 --> 28:43.850] We do our point translation over the N and the Q and we get the brand-new point, which is going to be our private key, for 3347 for X, 1242 for Y. [28:47.860 --> 28:49.180] Was I going to mention you guys? [28:49.180 --> 28:50.740] It must not have been that important. [28:53.420 --> 28:53.960] Okay. [28:54.580 --> 28:56.940] So, now let's do Bob. [28:56.940 --> 28:58.760] Let's make sure Bob gets the same thing. [28:59.100 --> 29:01.320] We start with his secret value, right? [29:01.320 --> 29:04.420] Because Bob is the only one who knows his secret value. [29:04.460 --> 29:07.180] Alice is the only one who knows her secret value. [29:07.700 --> 29:11.200] So, that's our NB, 1,759. [29:11.960 --> 29:15.320] We know Alice's Q value because they swapped them with each other. [29:15.500 --> 29:23.620] We do our point translation and we get the brand-new point, 3347 for X, 1242 for Y. [29:24.800 --> 29:31.060] And as you can see, Bob and Alice did get the exact same point, so they both now have the private key. [29:32.340 --> 29:33.820] Oh, that's what I was going to mention. [29:33.980 --> 29:38.900] Just like with RSA, how do you do this point translation if not by hand? [29:39.720 --> 29:41.660] Type it into an online calculator. [29:41.860 --> 29:43.540] There are ones that exist. [29:43.560 --> 29:45.120] They can do this for you. [29:45.840 --> 29:49.420] Or, you know, write something if you really want the challenge. [29:49.840 --> 29:52.480] But, yeah, you do not, I did not do any of this by hand. [29:52.480 --> 29:53.500] There's no need. [29:53.740 --> 29:56.400] So, another fun fact. [29:56.400 --> 29:57.660] There's so many fun facts. [29:58.060 --> 30:03.520] When we have our private key, finally, we actually only take the X coordinate. [30:04.060 --> 30:07.800] Y, sorry, Y, W, H, Y. [30:08.240 --> 30:10.860] Because our elliptic curves are symmetrical, right? [30:10.860 --> 30:13.100] Whatever's on the top is on the bottom. [30:13.360 --> 30:16.760] So, our Y value actually could be positive or negative. [30:17.300 --> 30:19.060] And that doesn't mean it's wrong, right? [30:19.060 --> 30:22.000] That doesn't mean they got the wrong private key. [30:22.400 --> 30:29.840] It just means, sorry, the modular arithmetic they were doing brought them on top or brought them on bottom. [30:29.840 --> 30:32.880] So, that's why we just get rid of the Y value. [30:32.880 --> 30:34.440] We're like, we don't need the added negatives. [30:34.960 --> 30:36.820] So, we just keep the X value. [30:40.130 --> 30:42.410] We're going to review all of this again. [30:42.630 --> 30:49.530] Because elliptic curve seems like it would be fine, but it's suddenly way more complicated than RSA. [30:50.430 --> 30:55.450] So, we always start with our elliptic curve equation, our E. [30:55.710 --> 30:58.390] And we have a public key, our point P. [30:58.950 --> 31:04.570] Alice and Bob both choose a secret value, N A and N B. [31:04.610 --> 31:07.010] They both have access to the public key, right? [31:07.010 --> 31:08.510] The point P. [31:08.830 --> 31:14.370] So, they both multiply it and get their own Q values. [31:14.370 --> 31:17.050] Alice has Q A, A for Alice. [31:17.050 --> 31:19.510] Bob has Q B, B for Bob. [31:20.230 --> 31:26.690] They swap Q values with each other because they both need to calculate the private key. [31:27.770 --> 31:34.590] So, that means Alice calculates the private key with her secret value and Bob's Q value. [31:34.590 --> 31:40.490] Bob does the same thing, but he uses his secret value and Alice's Q value. [31:41.090 --> 31:42.370] How do we remember that? [31:42.370 --> 31:44.210] Right, we need an A and a B. [31:44.210 --> 31:47.010] We need an A and a B or a B and an A. [31:47.290 --> 31:51.510] We do not calculate private keys with an A and an A or a B and a B. [31:54.140 --> 31:56.340] It's kind of a lot, I guess. [31:57.260 --> 32:00.020] Okay, are we still alive? [32:00.080 --> 32:03.380] Doing a bunch of math on a Thursday? [32:03.380 --> 32:04.180] Okay. [32:05.180 --> 32:07.400] But now, let's talk about the fun stuff. [32:07.400 --> 32:09.680] How do we break these algorithms? [32:10.180 --> 32:19.540] So, these mathematical algorithms are used for encryption and cryptography because going one direction is extremely easy. [32:19.680 --> 32:21.680] Well, extremely is relative. [32:21.680 --> 32:25.500] And then, going backwards is extremely difficult. [32:26.380 --> 32:29.060] I like to use the metaphor of like quicksand, right? [32:29.060 --> 32:31.340] You step into quicksand, that's so easy. [32:31.340 --> 32:34.460] You know, you can just take a step forward and all of a sudden, you're in the quicksand. [32:34.520 --> 32:38.300] But then, you try to get out and all of a sudden, you're stuck and you can't. [32:38.540 --> 32:40.520] That's what these algorithms are like. [32:40.940 --> 32:46.240] So, for RSA, the quicksand is going to be factorization. [32:46.900 --> 32:50.900] So, essentially, if we remember, we had an N value. [32:50.900 --> 32:52.080] And what was N? [32:52.140 --> 32:54.060] N was P times Q. [32:55.400 --> 33:01.160] So, N is really easy to get if I gave you P and Q, right? [33:01.160 --> 33:02.600] You guys know how to multiply. [33:02.600 --> 33:05.620] All you have to do is multiply P and Q together and you get N. [33:06.160 --> 33:09.740] But then, if I'm like, okay, here's N, now factor it. [33:09.740 --> 33:15.000] And not only factor it, find the two prime numbers that multiply together and get it. [33:15.000 --> 33:16.200] And you're like, what? [33:16.880 --> 33:20.800] And like, sure, like 6,887, that was our N. [33:20.800 --> 33:22.560] Like, you could do that. [33:22.560 --> 33:24.440] You could probably even do that by hand. [33:25.760 --> 33:28.920] But, I mean, computers also can do that if you don't want to. [33:29.300 --> 33:34.280] But all of a sudden, like, right, those aren't the level of numbers we're using in a real cryptosystem. [33:34.360 --> 33:37.680] We're using our 2048 bits, our 4096 bits. [33:37.680 --> 33:47.880] All of a sudden, if I hand you that number and I say factor it, and not only factor it, factor it using prime numbers, you're like, um, what? [33:48.460 --> 33:52.900] So, that's what makes it easy one direction, hard the other. [33:53.800 --> 33:55.640] Elliptic curves, right? [33:55.640 --> 34:01.700] So, for elliptic curves, we call the quicksand the discrete log problem. [34:02.060 --> 34:07.460] But it's essentially doing that point translation backwards, right? [34:07.460 --> 34:13.140] So, when you start with a point, it's really easy to find two lines to find the next one. [34:13.140 --> 34:20.560] But if you don't know where you're going, it's really difficult, and we just call that the discrete log problem. [34:21.740 --> 34:26.600] There's also, um, what was it? [34:26.720 --> 34:28.000] Eh, that's not going to be important. [34:28.000 --> 34:28.680] Okay. [34:31.370 --> 34:39.890] So, essentially, right, the struggle is real, as the millennials say, with going backwards for RSA and ECC. [34:40.230 --> 34:44.950] But the struggle is not real if you're a quantum computer. [34:45.210 --> 34:51.750] So, essentially, right, quantum computers run on qubits instead of our regular bits. [34:52.630 --> 35:01.530] And they, using that, can do these, you know, going backwards, they can do the factorization, they can do the discrete log problem in less than a day. [35:01.870 --> 35:04.970] Right, what did we say before with modern computers? [35:04.970 --> 35:08.810] For modern computers, it takes thousands of years to go backwards. [35:09.090 --> 35:13.830] And, you know, all of a sudden, quantum computers show up and they're like, eh, I got it, like, today. [35:13.830 --> 35:16.570] And actually, one has. [35:16.570 --> 35:27.410] There is, um, I don't remember where, but a quantum computer using a quantum tunneling process actually did break an RSA 2048. [35:27.490 --> 35:33.690] So, I don't remember how long it took, but it did break it. [35:34.210 --> 35:36.330] But that's just one example. [35:36.330 --> 35:43.040] Quantum computers are also typically, they could use, like, Shor's algorithm, if you guys have heard of that. [35:43.040 --> 35:52.760] So, a Shor's algorithm is going to be using probability to factor and probability to find the discrete log. [35:53.300 --> 36:00.920] And when you use probability, essentially what that means is you do not have to check every single number. [36:01.540 --> 36:06.380] And so because they don't have to check every single number now, it cuts their time, right? [36:06.380 --> 36:09.580] And as you can tell, it cuts the time drastically. [36:13.810 --> 36:14.470] Okay. [36:14.770 --> 36:21.190] So that's essentially, without going too, like, my brain hurts, into quantum computers. [36:22.030 --> 36:27.290] They do also have post-quantum cartography, right? [36:27.290 --> 36:34.470] So if we're like, okay, well, if this quantum computer is coming and it's about to break my RSA and my ECC, right, what do we do? [36:34.470 --> 36:38.150] We use post-quantum, which is my favorite. [36:38.150 --> 36:39.430] It's just more math. [36:40.730 --> 36:43.610] You guys want to see some post-quantum cartography? [36:44.030 --> 36:45.110] Yeah. [36:45.910 --> 36:46.990] Okay. [36:47.270 --> 36:48.110] Here you go. [36:48.110 --> 36:49.070] Here it is. [36:50.410 --> 36:52.970] So, post-quantum cartography. [36:53.030 --> 36:58.330] NIST just standardized an algorithm, MLDSA. [36:58.330 --> 36:59.610] Feel free to look it up. [36:59.610 --> 37:01.610] There's three strengths to it. [37:03.030 --> 37:05.530] MLDSA is, like, the government name for it. [37:05.530 --> 37:10.790] It's way less boring than the original name, which is Dilithium, if that sounds familiar. [37:11.190 --> 37:16.750] So Dilithium essentially uses lattices and learning with errors. [37:16.790 --> 37:18.390] So here's a lattice. [37:18.390 --> 37:19.790] It's a bunch of dots. [37:20.270 --> 37:25.650] And then my encrypted message is the red dot that I have just over on the left. [37:26.250 --> 37:37.410] So when you, in a post-quantum example, I have my encrypted message and I say, to break it, you need to find the closest dot on the lattice that it is to. [37:38.490 --> 37:41.310] Do you guys know which dot the red one is closest to? [37:41.430 --> 37:43.270] The bottom left, right? [37:43.810 --> 37:44.430] Yeah. [37:44.430 --> 37:46.790] And it's really easy just by looking at it. [37:47.170 --> 37:54.350] Now, what if you had a 3D lattice, a 4D lattice, you know, a 20th dimension lattice? [37:54.490 --> 37:56.730] It's not as easy anymore. [37:58.150 --> 38:03.350] And so that, right, because this is just a pretty basic visual example. [38:05.070 --> 38:12.490] But if you don't like the graph aspect, this will explain the learning with errors a little bit more. [38:12.810 --> 38:16.650] So here's my lattice, but instead of having a graph, now I have it algebraically. [38:17.130 --> 38:20.290] If you remember, this is what we call a systems of equations. [38:20.750 --> 38:25.730] I'm sorry if I just, like, tweaked something in your brain you hadn't thought about in a long time. [38:26.590 --> 38:32.150] So systems of equations, I have six equations, I have six variables, and I have six answers. [38:32.370 --> 38:34.290] That means I could solve this. [38:34.290 --> 38:36.350] I could solve this by hand if I wanted to. [38:38.330 --> 38:40.150] So I have, well, don't actually solve this. [38:40.150 --> 38:41.330] I just made this one up. [38:41.330 --> 38:43.290] So this is not going to work. [38:44.190 --> 38:46.470] So here's my lattice, right? [38:47.070 --> 38:49.530] Now pay attention as I go to the next slide. [38:50.650 --> 38:52.730] What's different about it? [38:52.930 --> 38:55.270] All the answers are different. [38:55.690 --> 39:03.330] So here I can see the answers 13, 790, 31, 414, 66, 35. [39:03.630 --> 39:06.170] Let's go back, right? [39:06.170 --> 39:14.950] But the actual answers are 12, 789, 30, 413, 65, and 34. [39:14.990 --> 39:16.690] So what did I do? [39:16.690 --> 39:19.730] I gave my answers an error. [39:20.110 --> 39:22.590] It's learning with errors. [39:22.590 --> 39:29.330] So essentially what this means is the public key is the error matrix, right? [39:29.330 --> 39:30.590] The error lattice. [39:30.590 --> 39:32.390] That's the public knowledge. [39:32.390 --> 39:37.430] Because you have no idea how much I shifted my answers by, right? [39:37.430 --> 39:42.250] Unless I told you the original answers, you have no idea I shifted everything by one, right? [39:42.250 --> 39:45.870] I could shift it either direction as much as I wanted. [39:46.530 --> 39:52.650] So that's where that error comes in and why it makes it extremely difficult to solve these problems. [39:53.210 --> 40:00.210] Because unless you start like just going through and figuring, you know, like quantum computers even can't solve this. [40:00.210 --> 40:07.870] So that's why we have this learning with errors and lattices as our post-quantum cryptography. [40:09.250 --> 40:12.730] And with that, we have successfully made it through. [40:12.810 --> 40:14.530] We have done our RSA, right? [40:14.530 --> 40:15.770] What was RSA? [40:15.850 --> 40:21.230] We have prime numbers, modular arithmetic, and then we have our elliptic curves, right? [40:21.230 --> 40:24.050] We have our little squid octopus graph thing. [40:24.050 --> 40:26.050] We have our point-to-point translation. [40:26.490 --> 40:30.850] We talked about breaking them using factorization and discrete logs. [40:31.750 --> 40:34.510] And then, right, our bonus post-quantum example. [40:35.490 --> 40:44.150] So, if you guys are still alive after doing just a bunch of math on a Thursday afternoon, give yourselves a little pat on the back. [40:45.490 --> 40:48.390] But we now have... I don't know what time it is. [40:48.730 --> 40:49.610] Is there time? [40:50.950 --> 40:51.630] Oh, yeah. [40:51.630 --> 40:53.710] We have some time for questions if there are any. [40:54.010 --> 40:57.810] If there's not, you can also just come up after if you don't want to ask it out loud. [40:57.810 --> 40:58.590] But thank you. [41:05.470 --> 41:06.830] Oh, yes? [41:13.330 --> 41:18.850] Well, I mean, like, in other nation-states, we don't really know unless they, like, tell us, right? [41:19.010 --> 41:37.850] I think... I mean, I'm kind of leaning... like, IBM has done a lot, you know, and I really like... so, with IBM, you can actually go online and get in line to use a quantum computer, which I think is awesome. [41:37.990 --> 41:45.810] I don't know how long that line is, but they also have, like, fake quantum software out there as well. [41:45.810 --> 41:59.050] If you want to, like, practice coding on a quantum computer, you can go on their website, and I think that's awesome, especially since, like, so just giving that access and that knowledge to the public, I think what makes... sets IBM ahead. [41:59.170 --> 42:00.790] You know, they're, like, not fooling around. [42:00.790 --> 42:02.310] They're actually doing the work. [42:03.350 --> 42:04.410] I mean, what's the other one? [42:04.410 --> 42:04.930] Google. [42:04.930 --> 42:11.330] Google has a really big one, but I'd probably lean a little more towards IBM, but that's just my opinion. [42:17.020 --> 42:18.000] Oh, yeah. [42:42.550 --> 42:44.670] What, 2035 is what, 10 years? [42:45.910 --> 42:59.710] I mean, I'm not a betting person, so I prefer to be, right, you know , 10 years is just unrealistic. [43:00.430 --> 43:02.170] So I think 10 years is fine. [43:02.290 --> 43:04.590] I mean, at the rate... [43:04.590 --> 43:17.790] first of all, right, when quantum computers come out, and then for them to be actually, like, worrisome for the average consumer, they have to be plentiful, right? [43:17.790 --> 43:23.250] If just IBM has a quantum computer, then is that really... how dangerous is that, right? [43:23.250 --> 43:25.390] So I guess that's kind of what you want to ask yourself. [43:25.750 --> 43:34.630] So if IBM gets one working in 10 years, how many years after that will then other people who are more dangerous get access to one? [43:34.690 --> 43:36.630] So I think 10 years is fine. [43:36.630 --> 43:43.630] Also, like, because we don't even have access to that many post quantum keys yet, and those things are large. [43:43.630 --> 43:51.910] If you haven't looked at a post quantum key, it is very large, and unfortunately, right, a lot of our machines aren't going to be able to handle those yet. [43:52.090 --> 43:57.810] So, I mean, and just getting that tech up, I don't... yeah, I think 10 years is fine. [43:58.070 --> 44:03.230] I mean, I even think 15, but more people... but that's me. [44:03.230 --> 44:07.850] Other people like to be a little, yeah, a little more on top of it. [44:08.930 --> 44:10.310] Did that answer? [44:10.490 --> 44:11.830] Okay, yeah. [44:13.730 --> 44:14.210] Oh [44:33.910 --> 44:35.730] , yeah, yeah. [44:35.730 --> 44:37.770] Like how you get a 20th dimension? [44:49.030 --> 44:54.370] Yeah, so, yeah. [44:54.370 --> 45:01.650] So when we say 20th dimension, like, I guess I don't mean it in, like, our 3D world. [45:01.650 --> 45:06.230] Like here, right, I have six equations with six variables. [45:06.230 --> 45:09.270] Each variable just gives me another dimension, right? [45:09.270 --> 45:09.610] Yeah. [45:09.610 --> 45:12.330] So a 20th dimension just has 20 variables. [45:12.330 --> 45:12.970] Yeah. [45:13.090 --> 45:14.670] Does that... yeah, okay. [45:17.860 --> 45:19.020] Oh, yeah? [45:32.900 --> 45:34.180] Yeah. [45:34.340 --> 45:46.220] So the symmetric... to repeat the question, why are, like, symmetric like AES and hashing less susceptible to quantum computing? [45:47.140 --> 45:49.980] It's essentially like... [45:54.420 --> 45:56.480] how do I explain this? [46:00.730 --> 46:04.390] I mean, it's not that they're, like, not, right? [46:04.390 --> 46:09.690] But they use completely different algorithms. [46:09.930 --> 46:17.590] So, like, what we went over today is, like, that's not even at all what symmetric encryption uses, right? [46:18.050 --> 46:20.630] And AES, there's, like, what, 256? [46:21.230 --> 46:27.150] I'm not as familiar with them, but essentially, right, because they're on... what's the word? [46:27.150 --> 46:29.730] You know, they use more the blockchain, right? [46:29.730 --> 46:33.390] So, like, they're just... yeah, yeah. [46:33.390 --> 46:39.030] So with that concept, it's just going to... quantum computers are going to attack it differently. [46:39.030 --> 46:44.010] I guess we just haven't reached that point where they can attack it as efficiently. [46:44.070 --> 46:44.710] Yeah. [47:05.470 --> 47:07.550] There are several others. [47:08.330 --> 47:11.910] You mean, like, other post-quantum algorithms? [47:12.090 --> 47:12.930] Is that what you're talking about? [47:12.930 --> 47:13.590] Yeah. [47:14.750 --> 47:15.710] Yeah. [47:18.870 --> 47:19.590] So I've... [47:19.590 --> 47:29.410] well, for encryption, there's a homogenous one, but it was proven to be broken. [47:29.730 --> 47:33.190] So that's why NIST didn't move forward with standardizing it. [47:33.670 --> 47:37.090] There's also, like, Sphinx Plus for digital signing. [47:37.090 --> 47:39.430] There's several others out there for digital signing. [47:40.070 --> 47:45.170] And those are going to be using... what is it? [47:46.530 --> 47:48.870] Those actually fall back onto the hashing. [47:48.870 --> 47:55.550] They're going to use things like Merkle trees and hashing for a lot of their digital signing. [47:56.270 --> 47:57.490] So that exists out there. [47:57.490 --> 48:05.730] But as for, like, just an actual encryption system, they're just not up to standards. [48:06.010 --> 48:09.790] So there are... they do exist, right? [48:09.790 --> 48:15.990] And you can, like, look up what are some other ones, but they just haven't been able to keep up to par. [48:16.570 --> 48:17.170] Yeah. [48:24.250 --> 48:25.070] Okay. [48:25.070 --> 48:25.430] Sweet. [48:25.430 --> 48:26.670] Thanks, everyone.