Hey, guys, how's it going?
Congratulations, you guys are the coolest people here at the conference, you know.
Who willingly comes to a math talk in their free time?
Like, just as a warning, if you didn't know that's what this was, we are doing a math talk today.
But I promise it's not scary.
It's not gonna be scary at all.
And if there's like any questions at all, like, do not hesitate, right?
Because I want everyone to know, math brings up a lot of feelings for people.
I get told all the time, they're like, okay, you do math, okay.
So, if there's anything at all you don't understand, like, there's no shame.
You know, if a lack of comprehension is not a reflection of your abilities, just come up afterwards.
You know, math always has more than one way to solve a problem.
There's more than one way to learn.
So, take a deep breath, you're fine, and we can get going.
So, I'm Abby.
Thanks for coming.
I went and got a math degree.
I know, I'm a math nerd.
So, I went to Eastern Michigan University, and there I took several classes on cryptography and write the mathematical algorithms used today.
So, that's what we'll be going over.
Yeah, and then from there, I went on to the PKI world of the cybersecurity.
I work for a PKI as a service company.
So, that's what I do.
So, we will be becoming quantum computers today.
We'll begin with a little bit of an introduction to just some basic math concepts.
You know, we don't want to dive in to the deep end.
We're going to start slow, warm ourselves up, and then we'll go into RSA.
We will do an example, and then we'll do elliptic curve, ECC.
We'll talk about how those are broken, right?
And then we actually will also be doing a post-quantum cryptographic example, but like pretty basic.
So, but first, we get to go back to everyone's favorite time, high school.
Yeah, because we will not be doing anything higher than high school level math.
I don't know if that makes you feel better or not.
So, okay, the first concept, exponents, right?
Three times three times three is three to the fourth.
Which numbers are exponent?
Four, right?
This make sense so far?
We're doing okay?
Yeah, okay, good.
The next one is we have prime numbers.
So, what is a prime number?
A prime number has two factors, one and itself.
And those numbers are the two numbers that it can be divided by, right, or divisible by.
It means when you divide it, there's no decimals.
An example is 13, right?
Thirteen has two factors, one and thirteen.
Another example is 46,853.
The reason I have some stake up here is, right, because I like to think of prime numbers like prime rib.
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.
So, that's how I kind of remember prime numbers.
And obviously, if there's prime numbers, then we have numbers that are not prime.
Twenty-four.
Twenty-four has way more than two factors.
It has eight.
I guess it's not that many more.
And then, like, 3,652 also has, I think that one has 12 factors.
So, okay.
We have one more concept.
This one you're probably not as familiar with.
And if you did talk about it in high school, let me know because that's awesome.
So, this is modular arithmetic.
Sounds terrifying.
I swear it's not.
You can do this.
So, in modular arithmetic, you only have to know how to subtract and divide.
Can you guys subtract and divide?
Yeah.
That's a maybe.
That's all you have to do.
You don't even actually have to, like, divide, divide.
You can just kind of maybe pretend.
So, in modular arithmetic, we say two numbers are congruent modulo m if their difference is divisible by m.
Right?
What is difference?
Subtraction.
Divisible?
Division.
So, two numbers are congruent modulo m if their difference is divisible by m.
Let's take a look.
I have two numbers, 29 and 14.
And I've chosen m to be 5.
So, what do I do?
First, subtract.
What is 29 minus 14 is 15.
Pretty straightforward.
Next, we ask ourselves, is 15 divisible by 5?
And the answer is yes.
Right?
15 divided by 5 is 3.
There are no decimals.
It's a whole number.
So, 15 is divisible by 5.
So, we have met the two parts of modular arithmetic.
So, we can say 29 is congruent to 14 modulo 5.
So, that's how we write this.
Remember, all we did was subtract and then divide.
And then we just write it very complicatedly at the end.
So, to say something is congruent, we use an equal sign and then we have the third parallel line on top.
You know, it's kind of like an equal sign with like a top hat or, you know, something like that.
But those three lines represent congruency.
So, it's like they are equal, but they're also not.
So, if two numbers can be congruent, that means two numbers can also not be congruent.
I mean, look at this example here.
Two completely different numbers, 23 and 12.
This time my m will be 3.
We subtract first, right?
23 minus 12 is 11.
We do 11 divided by 3.
Is 11 divisible by 3?
No.
There are decimals, there are remainders.
So, then we just put a slash through and we say 23 is not congruent to 12 mod 3.
And fun fact about mathematicians, we are known to be lazy.
It is just a fact.
So, essentially, mathematicians find the quickest and most efficient way to do, to make a shortcut.
So, right, we don't need to write modulo out every single time.
You can just write mod.
And that is modular arithmetic.
And those are the only concepts you need to know for RSA.
So, you guys feel like you can do this?
You'll be okay?
Okay.
Oh, yeah.
Congratulations, you repassed high school.
Good job, everyone.
You can get a second degree.
Let's dive right in.
RSA, right?
RSA is asymmetric cryptography, right?
Asymmetric encryption.
That means there's two keys, a public key for encryption and a private key for decryption.
We, it was created by three men, Rivest, Shamir, and Adelman, RS and A, in, when was it made?
1977.
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.
Okay.
RSA, seven, we have seven components.
We start with two positive whole numbers, D and E.
D for decryption, it's going to be our private key.
E for encryption, it's going to be our public key.
Next, we have P and Q, so we're going to have two prime numbers.
Good thing, right?
We went over that.
N is just P times Q.
Sorry, I forgot to mention, you have to know how to multiply, too.
And then we, right, have M is going to be our plain text, C is our cipher text.
And then all seven of these beautiful numbers, we will put together to have three different algorithms for RSA.
Here's our first one for encryption.
Go ahead and look at it for a second.
See if you can, like, read it to yourself the way we were reading modular arithmetic.
Okay.
Did you read it?
C is congruent to M to the E mod N, maybe.
Right?
How is this different than what we did before?
All I did was add an exponent.
That's it.
Right?
So we have our basic, our two numbers, our C and our M, but this time now, right, M has an exponent.
So what does this mean, exactly?
It means our cipher text is congruent to our message raised to the public key, you know, raised to the encryption, mod N.
And if you forget how we find that, that's what the bottom just says.
It says C minus M to the E is divisible by N.
That's all we're doing, is we're subtracting and then we divide.
Take a second.
This is the decryption.
Is it different?
Maybe?
Okay.
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.
And I forgot to mention this, but all of these algorithms are framed.
They are works of art.
They belong in a museum.
They are beautiful.
But, yeah.
And then, right, so our message minus C to the D is divisible by N.
I know what you're all thinking now.
We have our encryption and our decryption.
Why, what is the third algorithm?
Why do we need a third one?
So this third one is what makes RSA secure.
It's not like a name for it.
I just call it our make secure algorithm, to be straight forward.
So this describes the relationship between the private key and the public key, our D and our E.
So here we can see D times E is congruent to 1 mod P minus 1 times Q minus 1.
And if you remember before on the previous ones, we had mod N.
And what was N?
N was P times Q.
So we no longer have P times Q anymore.
We have something a little different.
Don't worry, you don't have to memorize it.
It's on Google.
Okay.
Let's do it.
You guys, are you ready?
Let's do some RSA.
So in any good crypto system, we have our two main characters, Alice and Bob.
So we're going to start with Alice.
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.
So we begin with our private key, our D.
We have 37.
We have two prime numbers, P is 71, Q, 97.
Multiply them together and you get 6,887.
Let's see.
Okay.
Now, we have our private key.
We can calculate our public key.
So I have our make secure algorithm, right?
D times E is congruent to 1 mod P minus 1 times Q minus 1.
All I have to do is plug in what we know.
We know 37 and we know P and Q.
I hope you all can subtract 1.
So then we get 70 times 96.
And we get 37E is congruent to 1 mod 6720.
And then, obviously, you can see the answer is E is 1,453, which is our public key.
And you all know exactly how I got from line 3 to line 4, right?
Makes complete sense, right?
I subtracted and then divided.
And you're like, but there's a variable.
How do I know what?
Okay.
So fun fact, I did not solve this.
I had an online calculator solve this.
So my favorite is Wolfram Alpha, right?
You guys don't, we don't need to do this by hand.
It's really, that would take like 10 more slides and nobody's got time for that.
So, I mean, because modern computers can solve RSA problems.
Like, that's not the issue.
Well, they can solve small RSA problems, right?
The reason we use large numbers for real-time RSA is because computers take thousands and thousands of years of computation to solve them.
It's not that they're unsolvable, unbreakable.
It's that it's just, they're not breakable in our lifetime.
So if you use numbers like 37, a computer can't solve that.
And then I just prefer Wolfram Alpha.
But now that we have that, we can plug it back into our table.
And Alice's part is done.
So let's move on to Bob.
Okay.
Bob wants to say hi to Alice.
So we turn his alpha characters into numeric characters.
So that means our message is 0809.
How did I get that?
Well, H is the eighth letter of the alphabet.
Nine, right?
Or I is the ninth letter of the alphabet.
Actually, that's it.
That's all Bob needs to do.
Okay.
Now we're going to use our encryption algorithm.
Remember, we have our ciphertext is congruent to our message raised to the public key, mod N.
Plug in what we know.
We know our message, 0809.
We're going to raise it to the 1,453rd power.
And then we're going to, essentially we call it simplifying mod N or mod 6,887.
Once again, if you're crazy like me, feel free to do this by hand, but that's a very large exponent.
You don't need to do that.
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.
So now we have a complete RSA system.
That's it.
You guys are still alive.
Yeah.
But we would not be good mathematicians if we didn't double check our work, right?
So let's do that.
Let's be Alice.
So Alice is given the ciphertext, and she is the only one who has the private key.
So let's plug in what we know.
So our ciphertext, right, was 5,593.
Our private key, if we remember, was 37.
So we're going to raise 5,593 to the 37th power.
We will simplify it, mod N, and then we can get M is congruent to 809, which was our original message.
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.
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.
That's how I know it attaches to the nine.
That's just like, mathematicians can get picky, you know, they're like, what are you doing over there?
So that's how we do that.
Right, and we have our keys on here because we're unlocking the ciphertext, essentially.
Oh, I did also want to mention that the numbers chosen for this RSA cryptosystem are technically just arbitrarily, randomly chosen.
You're not using that in like an actual public key infrastructure.
There are rules surrounding how you choose these values, but, right, for the purpose of an example, it doesn't matter.
That's actually it for RSA.
So, now you guys know how to encrypt all of your data.
Or, I guess, decrypt it, if you really want to.
But let's move on.
Now we have elliptic curves.
We have ECC.
Completely different.
We are actually, we're not really going to use any of the math we just did.
So, sorry if you're like, I finally got it.
We're completely switching gears here.
So, ECC is going to be using more graphing.
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.
And then just a bit of history.
ECC is, what was it, eight years after RSA.
So, it still has been around for a long time.
I think RSA is the more common one, right, but ECC is definitely picking up traction.
These keys tend to be smaller than RSA, right, because remember how I mentioned you have to use extremely large numbers for RSA.
So, that's why ECC tends to be a little more popular.
Just like before, here are our basic components.
We always start with E.
E is going to be our equation for the elliptic curve graph.
P is not a prime number.
So, it's the same variable but different concept.
So, P is going to be a point on our graph, a point on the curve.
And this point is going to be our public key.
Now, we have two positive whole numbers.
We have N A and N B.
Q A will be N A times P, right, and then Q B will be N B times P.
And then to get the private key, which will be a second point on the curve, we do N A times Q B, right.
I have an A and a B in this scenario.
So, these are the components.
Let's put it all together.
Alice and Bob are back.
We always miss Alice and Bob.
So, we start with our equation E and our public key, our point P.
Alice chooses her secret value, which is N A, right, A for Alice.
So, Alice chooses a secret value, multiplies it by the public key, and gets her Q A value.
Bob is actually going to do the exact same thing.
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.
But why do they both do this?
It's actually because Alice and Bob are both going to have access to the private key.
They're both calculating the private key.
How is that different, right, than RSA?
In RSA, only Alice had the private key.
So, how do they both calculate the private key?
Well, what they're going to do is then swap Q's with each other.
So, when Alice calculates her Q value, she gives it to Bob.
And then when Bob calculates his Q value, he sends it to Alice.
But remember, they both have their secret value still.
So, it's still secure.
There's still information that is not becoming public.
So, then once we swap Q's, we can calculate the private key, right?
We have Q B times N A, and then that will equal Q A times N B, right?
A private key is always going to have an A and a B or a B and an A.
We're never calculating A A or B B.
So, that's kind of how to help you remember because there's so many N's and so many Q's, right?
So, we need an A and a B to calculate our private keys.
The first algorithm for our elliptic curve here, this is how we graph our elliptic curves.
We have Y squared is equal to X cubed plus A X plus B.
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?
Because normally you're like, okay, yeah, I've seen this before.
This is not that bad.
But now we just square the Y and that makes like a ton of a difference.
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.
So, this is what an elliptic curve looks like.
Here, I graph the example Y squared equals X cubed minus 3 X plus 3.
And then we get this fun, I don't know, horn trumpet graph.
Whatever your imagination makes it look like.
This is just a random example.
I know there's a Bitcoin example that's Y squared equals X cubed plus 7.
So, there are other, like the A and your B values are dependent on what you're trying to do.
Here's our second algorithm.
ECC is only going to have these two, so we're not going to have a third one.
So, this is how we calculate the Qs.
Not how we calculate the, well, kind of also how we calculate the private keys.
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.
I'm sure, right, this is just multiplication, right?
If I have 5 apples, 5 times, like 25 apples.
Unfortunately, guys, I hate to break it to you, this is not that simple.
There is an extra step that we have to do to do this multiplication.
Let's do it together.
Okay, we start with point P.
Point P is on the left.
I want to get to 2P.
All I want to do is just P plus P.
And you can see it's on the bottom right.
You're like, what?
That is not multiplication.
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.
That becomes point R.
Point R is irrelevant.
It's just like a middleman.
We're not really going to use it.
But from point R, then we go straight down and that new point is our final 2P or Q.
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.
We're going from point to point to point using straight lines.
Oh, did you have a question?
Yeah.
Oh, that's a good question.
I think it's the tangent line.
So, it's where the derivative is zero.
I believe that's what we choose.
So, at P.
Yes, at P.
Yeah.
Okay.
Let's put it all together now.
Let's put ECC and let's walk through this.
So, here's, I start with my equation.
I have Y squared equals X cubed plus 324X plus 1,287.
My public key, right, is a point on the curve.
So, my X coordinate is 920.
My Y coordinate is 303.
Now I have my public key.
And not to confuse you guys, but if you plug in 920 for X, you will not get 303.
I apologize.
But the reasoning for that is because essentially we also apply modular arithmetic to elliptic curve equations.
We're not going to do that here.
It's just, we went over it before.
Just going to add, you know, like 30 more slides.
So, we also apply modular arithmetic.
We also apply your elliptic curve graph over a finite field.
And since I promised we were only going to do high school math, we will not be talking about finite fields today.
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.
That's like a basic example of a finite field.
So, essentially, if you plug in 920, you're not going to get 303.
I mean, if you were, if you want to, like, and see what the actual answer is.
If you want to do math in your free time, like, I'm here for it.
So, okay.
Handy-dandy table because there's a lot of values and numbers and I get confused.
So, we have our equation.
We have our public key.
Alice has chosen her secret value, right?
Because remember, we need our NA.
She chooses 1,194.
Now, she does her multiplication, right?
Her NA times P to get her Q value.
Remember, it was our point translation.
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.
So, she gets the point 2067 for X and 2178 for Y, and that is her Q value.
And with that, Alice is done.
Say goodbye, Alice.
Okay, Bob.
Bob's back.
Bob has his secret value, 1,759.
He does the same thing, right?
Because he needs a Q value as well.
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.
And then we get to everyone's favorite part.
Alice and Bob now get to swap Qs with each other.
Because what else did we learn in kindergarten, guys?
Sharing is caring.
So, unless it's encrypted data.
So, Bob sends his QV value to Alice.
Alice sends her QA value to Bob.
We'll start with Alice.
Because, right, what do they both do?
They are both computating the private key.
So, we will calculate Alice and we will calculate Bob and we will make sure they get the same thing.
What do we know?
We know Alice's secret value, NA, is 1,194.
We know Bob's Q value, QV, is the point 3684, 3125.
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.
Was I going to mention you guys?
It must not have been that important.
Okay.
So, now let's do Bob.
Let's make sure Bob gets the same thing.
We start with his secret value, right?
Because Bob is the only one who knows his secret value.
Alice is the only one who knows her secret value.
So, that's our NB, 1,759.
We know Alice's Q value because they swapped them with each other.
We do our point translation and we get the brand-new point, 3347 for X, 1242 for Y.
And as you can see, Bob and Alice did get the exact same point, so they both now have the private key.
Oh, that's what I was going to mention.
Just like with RSA, how do you do this point translation if not by hand?
Type it into an online calculator.
There are ones that exist.
They can do this for you.
Or, you know, write something if you really want the challenge.
But, yeah, you do not, I did not do any of this by hand.
There's no need.
So, another fun fact.
There's so many fun facts.
When we have our private key, finally, we actually only take the X coordinate.
Y, sorry, Y, W, H, Y.
Because our elliptic curves are symmetrical, right?
Whatever's on the top is on the bottom.
So, our Y value actually could be positive or negative.
And that doesn't mean it's wrong, right?
That doesn't mean they got the wrong private key.
It just means, sorry, the modular arithmetic they were doing brought them on top or brought them on bottom.
So, that's why we just get rid of the Y value.
We're like, we don't need the added negatives.
So, we just keep the X value.
We're going to review all of this again.
Because elliptic curve seems like it would be fine, but it's suddenly way more complicated than RSA.
So, we always start with our elliptic curve equation, our E.
And we have a public key, our point P.
Alice and Bob both choose a secret value, N A and N B.
They both have access to the public key, right?
The point P.
So, they both multiply it and get their own Q values.
Alice has Q A, A for Alice.
Bob has Q B, B for Bob.
They swap Q values with each other because they both need to calculate the private key.
So, that means Alice calculates the private key with her secret value and Bob's Q value.
Bob does the same thing, but he uses his secret value and Alice's Q value.
How do we remember that?
Right, we need an A and a B.
We need an A and a B or a B and an A.
We do not calculate private keys with an A and an A or a B and a B.
It's kind of a lot, I guess.
Okay, are we still alive?
Doing a bunch of math on a Thursday?
Okay.
But now, let's talk about the fun stuff.
How do we break these algorithms?
So, these mathematical algorithms are used for encryption and cryptography because going one direction is extremely easy.
Well, extremely is relative.
And then, going backwards is extremely difficult.
I like to use the metaphor of like quicksand, right?
You step into quicksand, that's so easy.
You know, you can just take a step forward and all of a sudden, you're in the quicksand.
But then, you try to get out and all of a sudden, you're stuck and you can't.
That's what these algorithms are like.
So, for RSA, the quicksand is going to be factorization.
So, essentially, if we remember, we had an N value.
And what was N?
N was P times Q.
So, N is really easy to get if I gave you P and Q, right?
You guys know how to multiply.
All you have to do is multiply P and Q together and you get N.
But then, if I'm like, okay, here's N, now factor it.
And not only factor it, find the two prime numbers that multiply together and get it.
And you're like, what?
And like, sure, like 6,887, that was our N.
Like, you could do that.
You could probably even do that by hand.
But, I mean, computers also can do that if you don't want to.
But all of a sudden, like, right, those aren't the level of numbers we're using in a real cryptosystem.
We're using our 2048 bits, our 4096 bits.
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?
So, that's what makes it easy one direction, hard the other.
Elliptic curves, right?
So, for elliptic curves, we call the quicksand the discrete log problem.
But it's essentially doing that point translation backwards, right?
So, when you start with a point, it's really easy to find two lines to find the next one.
But if you don't know where you're going, it's really difficult, and we just call that the discrete log problem.
There's also, um, what was it?
Eh, that's not going to be important.
Okay.
So, essentially, right, the struggle is real, as the millennials say, with going backwards for RSA and ECC.
But the struggle is not real if you're a quantum computer.
So, essentially, right, quantum computers run on qubits instead of our regular bits.
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.
Right, what did we say before with modern computers?
For modern computers, it takes thousands of years to go backwards.
And, you know, all of a sudden, quantum computers show up and they're like, eh, I got it, like, today.
And actually, one has.
There is, um, I don't remember where, but a quantum computer using a quantum tunneling process actually did break an RSA 2048.
So, I don't remember how long it took, but it did break it.
But that's just one example.
Quantum computers are also typically, they could use, like, Shor's algorithm, if you guys have heard of that.
So, a Shor's algorithm is going to be using probability to factor and probability to find the discrete log.
And when you use probability, essentially what that means is you do not have to check every single number.
And so because they don't have to check every single number now, it cuts their time, right?
And as you can tell, it cuts the time drastically.
Okay.
So that's essentially, without going too, like, my brain hurts, into quantum computers.
They do also have post-quantum cartography, right?
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?
We use post-quantum, which is my favorite.
It's just more math.
You guys want to see some post-quantum cartography?
Yeah.
Okay.
Here you go.
Here it is.
So, post-quantum cartography.
NIST just standardized an algorithm, MLDSA.
Feel free to look it up.
There's three strengths to it.
MLDSA is, like, the government name for it.
It's way less boring than the original name, which is Dilithium, if that sounds familiar.
So Dilithium essentially uses lattices and learning with errors.
So here's a lattice.
It's a bunch of dots.
And then my encrypted message is the red dot that I have just over on the left.
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.
Do you guys know which dot the red one is closest to?
The bottom left, right?
Yeah.
And it's really easy just by looking at it.
Now, what if you had a 3D lattice, a 4D lattice, you know, a 20th dimension lattice?
It's not as easy anymore.
And so that, right, because this is just a pretty basic visual example.
But if you don't like the graph aspect, this will explain the learning with errors a little bit more.
So here's my lattice, but instead of having a graph, now I have it algebraically.
If you remember, this is what we call a systems of equations.
I'm sorry if I just, like, tweaked something in your brain you hadn't thought about in a long time.
So systems of equations, I have six equations, I have six variables, and I have six answers.
That means I could solve this.
I could solve this by hand if I wanted to.
So I have, well, don't actually solve this.
I just made this one up.
So this is not going to work.
So here's my lattice, right?
Now pay attention as I go to the next slide.
What's different about it?
All the answers are different.
So here I can see the answers 13, 790, 31, 414, 66, 35.
Let's go back, right?
But the actual answers are 12, 789, 30, 413, 65, and 34.
So what did I do?
I gave my answers an error.
It's learning with errors.
So essentially what this means is the public key is the error matrix, right?
The error lattice.
That's the public knowledge.
Because you have no idea how much I shifted my answers by, right?
Unless I told you the original answers, you have no idea I shifted everything by one, right?
I could shift it either direction as much as I wanted.
So that's where that error comes in and why it makes it extremely difficult to solve these problems.
Because unless you start like just going through and figuring, you know, like quantum computers even can't solve this.
So that's why we have this learning with errors and lattices as our post-quantum cryptography.
And with that, we have successfully made it through.
We have done our RSA, right?
What was RSA?
We have prime numbers, modular arithmetic, and then we have our elliptic curves, right?
We have our little squid octopus graph thing.
We have our point-to-point translation.
We talked about breaking them using factorization and discrete logs.
And then, right, our bonus post-quantum example.
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.
But we now have... I don't know what time it is.
Is there time?
Oh, yeah.
We have some time for questions if there are any.
If there's not, you can also just come up after if you don't want to ask it out loud.
But thank you.
Oh, yes?
Well, I mean, like, in other nation-states, we don't really know unless they, like, tell us, right?
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.
I don't know how long that line is, but they also have, like, fake quantum software out there as well.
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.
You know, they're, like, not fooling around.
They're actually doing the work.
I mean, what's the other one?
Google.
Google has a really big one, but I'd probably lean a little more towards IBM, but that's just my opinion.
Oh, yeah.
What, 2035 is what, 10 years?
I mean, I'm not a betting person, so I prefer to be, right, you know , 10 years is just unrealistic.
So I think 10 years is fine.
I mean, at the rate...
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?
If just IBM has a quantum computer, then is that really... how dangerous is that, right?
So I guess that's kind of what you want to ask yourself.
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?
So I think 10 years is fine.
Also, like, because we don't even have access to that many post quantum keys yet, and those things are large.
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.
So, I mean, and just getting that tech up, I don't... yeah, I think 10 years is fine.
I mean, I even think 15, but more people... but that's me.
Other people like to be a little, yeah, a little more on top of it.
Did that answer?
Okay, yeah.
Oh
, yeah, yeah.
Like how you get a 20th dimension?
Yeah, so, yeah.
So when we say 20th dimension, like, I guess I don't mean it in, like, our 3D world.
Like here, right, I have six equations with six variables.
Each variable just gives me another dimension, right?
Yeah.
So a 20th dimension just has 20 variables.
Yeah.
Does that... yeah, okay.
Oh, yeah?
Yeah.
So the symmetric... to repeat the question, why are, like, symmetric like AES and hashing less susceptible to quantum computing?
It's essentially like...
how do I explain this?
I mean, it's not that they're, like, not, right?
But they use completely different algorithms.
So, like, what we went over today is, like, that's not even at all what symmetric encryption uses, right?
And AES, there's, like, what, 256?
I'm not as familiar with them, but essentially, right, because they're on... what's the word?
You know, they use more the blockchain, right?
So, like, they're just... yeah, yeah.
So with that concept, it's just going to... quantum computers are going to attack it differently.
I guess we just haven't reached that point where they can attack it as efficiently.
Yeah.
There are several others.
You mean, like, other post-quantum algorithms?
Is that what you're talking about?
Yeah.
So I've...
well, for encryption, there's a homogenous one, but it was proven to be broken.
So that's why NIST didn't move forward with standardizing it.
There's also, like, Sphinx Plus for digital signing.
There's several others out there for digital signing.
And those are going to be using... what is it?
Those actually fall back onto the hashing.
They're going to use things like Merkle trees and hashing for a lot of their digital signing.
So that exists out there.
But as for, like, just an actual encryption system, they're just not up to standards.
So there are... they do exist, right?
And you can, like, look up what are some other ones, but they just haven't been able to keep up to par.
Yeah.
Okay.
Sweet.
Thanks, everyone.