Hello and welcome to this fundamentals of cryptography course, in this section of the course, we're
talking about advanced cryptographic concepts.
So cryptographic algorithms that go beyond symmetric and asymmetric encryption and hash functions that
are designed to achieve particular purposes in this video.
We're going to be talking about Homma, morphic encryption algorithms.
And so we'll have three sections in this video.
We're going to start out by discussing the need for homo morphic encryption.
Essentially the why of homo morphic algorithms will then discuss how homo morphic encryption works and
some of the definitions in the space.
And then finally, we'll talk about some of the contexts where homo morphic encryption may be necessary
or desirable.
And so we've discussed several times so far in this course.
The fact that encryption algorithms are designed to protect data confidentiality.
So protecting data access from unauthorized parties.
Only someone who has the appropriate secret key should be able to read the encrypted data.
And so we have a variety of different encryption algorithms with their pros and cons.
However, most encryption algorithms in use today have one main drawback.
They can only be used to encrypt data at rest or data in transit.
Essentially, when that data is not being modified, when we talk about data in use, essentially cases
where you're performing calculations on that data.
Most algorithms have to use decrypted data.
So the data has to be decrypted, perform those operations.
And you could read encrypted because, for example, say we take A-S.
If you have two pieces of data that are encrypted with A-s and you add them together.
You are not going to end up with the encrypted version of the sum of the two plain texts.
And so homo morphic encryption algorithms are designed to solve this problem.
They'll allow you to perform computations on cipher texts that if you perform decryption, will have
the correct result of the plain text.
If you add to cipher text together or have like the equivalent of an addition operation, then decryption
will produce the addition of those two plain text rather than random gibberish.
And so fully Homma morphic encryption systems allow an unlimited number of additions and multiplications.
However, we also have systems that are partially homo morphic, which may allow a certain number or
certain types of operations.
So, for example, you may have a partially whole morphic system which will allow you to perform one
multiplication and an unlimited number of additions, and you'll still have the right answer.
But if you perform a second multiplication anywhere in the process, you end up with jibberish.
And so we do have some fully Homma morphic encryption algorithms, and actually there are multiple different
generations of these algorithms and many of them are both based off of post quantum cryptographic algorithms.
So we talked about post quantum cryptography and the last video and how there are a variety of different
hard problems that post quantum cryptography is based upon.
Latisse based cryptography is one of these and is a common basis for fully Homma morphic encryption
algorithms, which would allow you to provide or perform an unlimited number of multiplications and
additions on the cyper texts and have a resulting ciphertext that, when decrypted, has a plain text
that makes sense.
And in many cases, these algorithms use bootstrapping.
So we'll take a partially hummell morphic encryption system and they'll bootstrap it into a fully Homma
morphic encryption algorithm.
And we've gone through multiple different generations here.
And after a certain point, the goal of the improvements is to improve the efficiency of these operations.
Some fully whole morphic encryption algorithms are hugely inefficient with regard to processing and
data storage.
Maybe encrypting a single bit of data could take kilobytes of ciphertext.
And so as algorithms have improved, these have gone down so that we're getting to the point where you
actually can use a fully Homma morphic encryption algorithm rather than it being more of a theoretical
cryptographic concept.
And so why would we want to use a fully Homma morphic algorithm?
It's useful in cases where processing of encrypted data is important or useful, for example, on untrusted
platforms.
You may think, when would I ever use sensitive data on an untrusted platform?
Well, the cloud is getting really, really popular, if you haven't noticed.
And cloud computing involves renting or leasing, computational data storage, processing power, ET
from a third party where you don't have control over the infrastructure that you're using.
And so you might trust your cloud services provider.
However, these cloud environments are often running on virtual machines, and it's possible in some
contexts to perform virtual machine breakouts where you go from inside a virtual machine to the host
computer and potentially can see into other virtual machines.
And so if you're sharing a physical server with another party, that party manages to identify and exploit
a vulnerability in the isolation, then potentially your data could be exposed to someone you don't
trust.
Or if you don't trust your cloud services provider or are legally or contractually obligated not to
trust them because there's certain types of data that only you should have access to, then maybe fully
Homma morphic encryption is a useful tool.
Alternatively, there's the case of sharing sensitive data.
So if you think about data protection regulations, whether general ones like GDP are in the EU or CCPOA
in California or industry specific ones like the Hippo Regulation in Health Care or PCI DSW for financial
data, you have data where you are legally obligated to limit sharing of data and to protect that data
from exposure.
However, there can be certain cases where the ability to share that data would be helpful because other
parties might be interested in performing processing on that data, et cetera.
And so if you wanted to sort of balance those two requirements, the ability to perform useful processing
on the data and the fact that you cannot reveal individual, say, patient records under Hippo's rules,
you can make use of fully Homma morphic encryption.
You provide the fully encrypted data to whoever wants to process it.
They might perform whatever calculations that they want and you can decrypt the results and get the
end result.
While all of that processing that's being performed potentially out untrusted platforms is protecting
the data, the original data, and so enables you to outsource that processing of sensitive data without
violating regulatory requirements.
And so there's a short discussion of Homma morphic encryption, so we need it because traditional encryption
algorithms work for data at rest and data and transit, but not for data in use.
Trying to perform mathematical operations on encrypted data produces gibberish for most encryption algorithms.
And so inside Homel, morphic encryption algorithms there are partially Hommel morphic algorithms,
and some of these are in common use today.
However, fully home morphic encryption algorithms exist and they're getting better to the point where
they're becoming more and more usable in real environments.
And this is useful because it allows protection of data while still making it usable.
If you can perform mathematical operations on encrypted data, then you can outsource processing to
untrusted platforms, et cetera, without violating regulatory or contractual requirements for protecting
that sensitive data.
And so this concludes our discussion here on Homel, morphic encryption.
And thank you very much.