Instructor: Cryptography considerations.
In this lesson, we're going to cover
kind of a hodgepodge of different things
inside the world of cryptography.
So we've talked about all the things you need to know
really in-depth for the exam.
And these are just a couple of things
that are on the list of objectives.
So I want to make sure I cover them
so at least you've heard of them before.
But you're not going to get a lot of questions on these.
And really, if you know the definitions,
that's about as deep as you need to go right now.
These are all things that are kind of new
to the world of cryptography.
And that's why there's some of these considerations
you have to think about,
because they're kind of on the fringe of cryptography.
But really when we talk about cryptography,
we are really going to be focused
on symmetric and asymmetric encryptions,
as we talked about in the rest of this section.
So what are some of these terms?
It's things like blockchain,
and quantum, and post quantum,
and ephemeral, and homomorphic encryption.
So let's go through each of these
to introduce you to the concepts.
Now, the first one is blockchain,
and you've probably heard of this before.
A blockchain is a shared immutable ledger
for recording transactions,
tracking assets, and building trust.
Now, when we talk about the blockchain,
you're probably thinking about cryptocurrencies
because these are some of the most
famous examples out there.
For example, Bitcoin has been all the rage
for about a decade,
and this was really the first commercially available
type of thing that was using the blockchain.
Now, when we talk about the blockchain,
the way it works is it's essentially
a really long series of information.
And each block contains information in it.
That block is this ledger that we're talking about.
In it, you're going to have the previous hash
for the block before it.
So if I'm looking at block 11 here,
you can see that previous hash
is actually the hash of block 10.
Then we have the timestamp.
When was the last time this block was modified.
We have that route transactions.
And under there, we have hashes
for each of the different transactions that have occurred.
And these things all roll up as you see transaction zero,
and transaction one each had their own hash.
Then we combine those to give us a Hash01 together.
And then we can combine Hash01 and Hash23
and put those together to give us the transmission route.
All of this kind of feeds up into that one block
and there are millions of blocks inside this blockchain.
Now, when we talk about the blockchain,
the other thing we have to think about is what's known
as a public ledger.
Now the public ledger is a record keeping system
that maintains participants identities
in a secure and anonymous form.
This also keeps track of the respective
cryptocurrency balances if we're dealing
with cryptocurrency, and it has a record book
for all the genuine transactions
that have been executed
between different network participants.
So as we start dealing with the blockchain,
everyone is a part of this massive peer to peer network.
It is decentralized.
And because of that, we use this series of hashes
to make sure that everything is being recorded properly,
and then nobody can change it without proper permission
that gets authenticated throughout the blockchain.
In addition to talking about cryptocurrencies
with the blockchain, there are commercial uses
for the blockchain too.
One of the biggest people out there
who really likes to push blockchain is IBM.
IBM is really focused on getting the blockchain
into use inside of the commercial environment.
One of the ways they've been doing this
is to be using what's called a permissioned blockchain.
Now a permissioned blockchain
is going to be used for business transactions
and it promotes new levels of trust and transparency
using this immutable public ledger,
meaning we can know everything about that particular piece
of information that's being stored in the blockchain.
Now, one of the places they're trying to use
the blockchain is in the supply chain.
This way we can have a fully traceable
and transparent supply chain.
If you think about from a food perspective,
it would be really nice to know exactly
when and where and how that food was grown,
when and where and how it was picked,
when and where and how it was shipped,
where and when and how it was processed,
all the way through the sales chain
until you finally got it.
This way, you can know all the information
about that particular food to make sure
it is following the right procedures,
and you have all the information you need.
Because it's inside the immutable public ledger,
nobody can modify it.
And we all know exactly where it's been.
Now, the next thing we're going to talk about is quantum.
Now, there's really three areas we have to talk about.
When we talk about quantum.
We need to talk about quantum computing,
quantum communications, and post-quantum cryptography.
The first is quantum computing.
Now quantum computing is where we take a computer
that uses quantum mechanics to generate
and manipulate quantum bits known as qubits
in order to access enormous processing power.
Now, I know this is a weird definition
because in the definition
we're actually using both terms inside of it.
We're using the word quantum and the word computing,
or computer in this case.
And I really don't like doing that in a definition,
but there's really no better way to explain this.
When you think about a classic computer,
like the one you're watching this course on right now,
it uses ones and zeros to process information.
And the faster you can process those ones and zeros,
that means the faster you can get information done,
and that's going to be a faster computer.
Well, at a certain point,
we can't make our computers really any faster.
And we run out of computing capability.
So what we ended up doing was taking single processors
and putting in two processors, or we made quad-core,
which had four processors, or make octa-core,
which has eight processors.
And that's the way we've been able to speed up computers.
Well, with quantum computing
is a completely different ball game.
Instead of using ones and zeros,
we use these things known as quantum bits or qubits.
Now this can be done in computing or in communications.
When we deal with communications,
we're talking about quantum communications
being a communications network
that relies on using qubits made of photons,
in our case light, to send multiple combinations
of ones and zeros simultaneously,
which will result in tamper assistant
and extremely fast communications.
Again, I know this is very vague,
but hanging in here for a second.
Now, when we talk about quantum,
I keep talking about these qubits.
I talk about the fact that there's difference
between our traditional electrons,
which are either on or off, ones and zeroes, or a qubit.
So what is a qubit?
Well, a qubit is really just a quantum bit.
It's composed of either electrons or photons,
so it can be electrical or made by light,
and it can represent numerous combinations
of ones and zeros at the same time
using something known as superposition.
And this is really the main benefit
of using quantum computing,
because you're not just having a single one or a zero
and you can do multiple combinations of ones and zeros
at the same time with this one qubit,
you can actually crunch through a wide variety
of potential outcomes simultaneously.
And so it's really great for complex math problems.
That's the idea of quantum computing.
When you think about quantum computing,
it's never going to replace the computer on your desktop.
That's not what it's designed for.
It's designed for very specific use cases,
such as very complex math problems
or trying to do something like the modeling
of an atom or some kind of atomic structure.
Now, why should I care about quantum then
if it's never going to be on my desktop?
Well, because there's one thing
that quantum is really, really good at.
And what is that? Math problems.
And I just mentioned that.
And if you think about cryptography,
all cryptography is, is a bunch of math problems.
And so because cryptography is used to secure
our communications and our data,
by relying on how difficult a math problem
is to compute with our traditional computers.
That's what gives us strength in cryptography.
Well, if quantum computers are really good at doing math
problems and they can do it much, much faster,
that means our cryptography could actually be taken down.
And this is why we have to start thinking about this
because one of the things that we rely on so heavily
in cryptography is key exchanges
using asymmetric communication.
Now, one way we do that is with public key infrastructure,
which we're going to talk about in a little bit,
but the whole concept here is that we want to have a way
for us to do a simple math problem
to create a very complex thing that has a difficult time
of breaking it back apart.
So for instance, if I take two prime numbers
and I multiply them together and I give you the result,
that result is very easy to calculate
if you know what the two prime numbers.
In our case of private and public key,
which again, we're going to talk more about this later.
Now, when you have that result,
though, it might be a really large number,
but there's only two things that can be factored into it.
Those two keys that I just gave you,
those two prime numbers.
Well, with quantum computing,
they can make very quick work of this type of math problem.
Whereas our traditional computers can't,
because they would try taking that big number
and dividing by one and then dividing by two,
then dividing by three and then by five,
and then by seven,
as they keep going through all the primes
until they found the factors.
But with quantum computing,
this becomes a relatively easy math problem,
and it can crack it much quicker for us.
In fact, asymmetric encryption algorithms,
those that are relying on this hard math problem
have been mathematically proven
to be broken by quantum computers.
Now, the only good thing we have going for us
is there's no real quantum computers in use today.
The ones they have are only prototypes
and they are very small scale,
and they have been spending millions
and millions of dollars to create these.
Right now, the estimate is that
we won't have a working quantum computer
until at least 2025 or 2030
in some sort of a production environment,
maybe even later than that,
but it is something we have to think about.
Because our current encryption algorithms
aren't made to a stand this.
So that brings us to the idea of post-quantum cryptography.
Now post-quantum cryptography
is a new kind of cryptographic algorithm
that can be implemented using today's classical computers,
but would still be impervious to attacks
from future quantum computers when they are available.
Now, there's really two methods
that we can use to try to create
this post-quantum cryptography.
The first method is just to increase our key size
to increase the number of permutations
that are needed to be brute forced.
This works well when you're dealing
with a symmetric encryption algorithm, something like AES.
If I take AES 128 and I increase it to AES 256,
for instance, I doubled the key length.
But I now have actually squared
the number of possible combinations
that are going to have to be figured out
by the quantum computer.
And that extends the time and makes it much stronger
and harder to crack.
Now, the other way we can do this is by working
on other approaches and researchers
are doing this right now.
They're looking into things like lattice-based cryptography
and super singular isogenic key exchanges.
Now, again, both of these terms
are not something you need
to understand or go in-depth on.
In fact, when we talk about quantum computing
and quantum communications,
we think about qubits and all this stuff
we're talking about with the word quantum,
I just want you to associate this with something
that can really break apart,
our asymmetric encryption algorithms pretty quickly.
And remember asymmetric encryption algorithms.
We use those for things like key exchanges
and digital signatures in public key infrastructure
that we're going to talk about later.
So that's really where the threat is
when we start talking about quantum.
Again, right now, we don't have any dedicated
quantum resistant cryptography yet.
There is a current ongoing competition
for the National Institute of Science and Technology
to pick one, to become the standard.
And that's supposed to be done by 2022.
The next thing we want to talk about is ephemeral.
When we talk about ephemeral cryptography or ephemeral keys,
we're talking about a cryptographic key
that's generated for each execution
of a key establishment process.
Essentially, when you hear the word ephemeral,
I want you to think about the fact that it is short-lived,
it's something we're going to pick
for a short period of time and then throw away.
If you think back to network plus,
we talked about ephemeral ports.
We pick a port, we use it to create
a connection to the web server,
and then when we're done with that session,
we throw it away and we close that port.
The same thing with an ephemeral key.
Now, when we deal with ephemeral keys,
these are short-lived and they're using things
like the key exchange for WPA3.
This is used to create that perfect forward secrecy
that we talked about back in our wireless lessons.
Next, we need to talk about homomorphic encryption.
Now, homomorphic encryption is an encryption mechanism
that allows calculations to be performed
on data without decrypting at first.
And this is pretty cool.
Now we're not going to get into the technical details
of how this works.
If you're interested in that you can Google this
and learn it on your own.
But for the exam,
when you talk about homomorphic encryption,
I want you to think about the fact that this is a good thing
to use with your cloud providers if they offer it.
Now, the reason is because homomorphic encryption
can be used for privacy-preserving,
outsourced storage and computation.
Now, if you have a cloud provider
who needs to work on your data,
and you can encrypt it with something
that supports homomorphic encryption,
they can still do the calculations for you
without ever seeing the data that's inside that encryption.
And that's the idea of homomorphic encryption
and why it provides us some additional privacy.