Mastery Monday: Homomorphic Encryption

This is the first installment of our blog series, “Mastery Monday with VIA” where we share with you some of the inside details of our technology and math in 5 minutes or less. So, are you ready to become a master?

So, what is homomorphic encryption (HE)? 

HE is a way to compute something without knowing what the numbers are (i.e., keeping them encrypted). For example, adding two numbers or multiplying two numbers and learning the exact result while keeping each of the two input numbers secret.

Why does it matter? 

Unencrypted data is unsafe. With cybersecurity increasing, the last remaining case where data routinely remains unencrypted is during computations. Encryption is already commonly used when data is stored and when it’s sent from one place to another. 

When would you use it? 

Anytime you use math. Which is everywhere. A simple example is a census. I want to know how many people live in a town without knowing how many people live on any single street, in a particular building, or in their own home. AI is all math. So, voice and face recognition while the data is private is a more complicated example.

How does it work?

Check out this less than 4 minute video below! 

Please note: this video was filmed in VIA’s new office space, hence considerable echo. We recommend using the closed captions.

Want to learn more?

VIA holds several issued patents in homomorphic encryption. 

Other details related to VIA’s approach to HE are available from VIA’s earlier blog from 2020.

Next week, we’ll be sharing some code and a use for HE.


Below is a transcript of the “Homomorphic Encryption Explained” video.

Everybody, everywhere is asking about homomorphic encryption.

Said no one ever.

It’s not actually a thing that anyone ever asks about, but it’s super important, nonetheless.

And the reason is because keeping our data safe is super important.

So, the idea that we keep data safe when it’s at rest – that happens. Where the data is not safe is when you actually try to do some math on numbers.

For example, you have some data or information [Becky] and you have some data or information [Sam] and you want to do a comparison.

So, both of you have kitten collectible porcelain statues. And now we want to know which one of you has more without either of you revealing your own number because your porcelain kitten collection data is intensely personal.

[Becky] How did you know? 

[Sam] True.

As a person who’s doing, you know, high academic research, I’m really interested in the total sum of kitty collectors in this world and how many porcelain kitties there are in the world. That’s my thing! I’m super interested in it.

Don’t judge me.

Okay, so here’s what we’re going to do. We’re going to now add up the number of porcelain kitties in your collection [Becky] and the number of porcelain kitties in your collection [Sam]. And Becky, you’re not going to tell Sam how many. And Sam, you’re not going to tell Becky. And neither of you are going to tell me. And, even so, as a world-class researcher, I am going to be able to tell how many there are in the world without knowing either of those things.

And that’s one definition of homomorphic encryption, which is the ability to add up or multiply or divide or subtract or be able do some math without ever actually revealing any individual number.

So, the way that we are going to do that is we’re going to pretend this is my homomorphic encryption specialist device.

It’s actually my calculator on my phone here.

And as an example, what I’m going to do first is type in a number that is only visible to me, the researcher. And to you, the audience, only. So just let’s keep it between us. 

And now, I’m going to pass this to Becky. Add to whatever number I sent you. I want you to type it in and add the number of porcelain kitties that are in your collection.

Now you’re going to pass that to Sam.

Sam, I want you to add how many are in your collection.

Ok, now you’re going to pass it back to me.

And just to be clear, Becky, do you know how many porcelain kitties Sam has?

[Becky] No idea.

[Sam] Do you know how many porcelain kitties Becky has? (shakes head)

And, I don’t know how many they have either individually but I do know that together we have 24 is my guess. But is that true? That’s what I have in my calculator. Let’s see.

Becky, how many were in your collection actually? 

[Becky] 8.

And how many were in your collection?

[Sam] 16.

So 8 and 16, I’m pretty sure is 24. So we got the number! Even though neither of you knew each other’s numbers and I didn’t know what your numbers were.

And, there’s a lot of things you can do together to continue to obfuscate and hide the original numbers.

And we’ll talk later about some use cases.

We have an upcoming piece just on a use case of homomorphic encryption and NFTs in gaming. So, we’ll look forward to sharing some code and why that may be useful next time.

But, here was a little bit of a theory of homomorphic encryption particularly applied to addition.

Thanks for watching!