Live data from Hacker News

A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

github.com

21–30 of 41 posts

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#21
post #3
post #2

What would you use this for?

Compressing images into jpeg without anyone else ever seeing them. I personally would prefer something like Homomorphic encryption for say sql queries on a database that the server can never read.

About the encrypted DB: https://people.csail.mit.edu/nickolai/papers/popa-cryptdb-tr...

All I remember is that this didn't end up becoming practical because of some limitations, which were maybe discussed in the paper. Something about leaking row counts.

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#22
If you are curious about what use case there is of it: imagine that instead of JPEG compression, we are running an LLM. You send your prompt encrypted, server homomorphically executes the model and sends the encrypted output, which you then decrypt. As a result, you get LLM output, but the server operators never learn anything about the contents of the query or response.

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#24
post #3
post #2

What would you use this for?

Compressing images into jpeg without anyone else ever seeing them. I personally would prefer something like Homomorphic encryption for say sql queries on a database that the server can never read.

There's such thing, at least in prototype stage. Like cryptDB, which, afaik is homomorphic with a nice property of preserving the order of encrypted keys. It leaks some information, but you can apply predicates different than equality, like `where a between 100 and 200`. In that case, the query passed to server will look like `where a between encrypted(100) and encrypted(200)` and server will be able to apply it, without knowing real values of the range limits or data stored in `a` column. With encryption function which don't preserve order, the data would need to be filtered client-side, so whole projection would be dumped to client and it would be the client who first decrypts the data, and then filters-out unnecessary rows.

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#25

Earlier quoted context omitted.

As a technological demonstration of homomorphic encryption and its benefit.

I'm having a hard time wrapping my head around how you'd do homomorphic encryption securely (particularly FHE). Like, for example, let's say I want to farm out word counts to the cloud. Wouldn't the information required to identify what a "word" is require the running software to be able to see breaks/periods/etc? Doesn't that leak information about the cyphertext? How does it stop someone from writing software that,…

These are good questions! FHE appears nonintuitive at first glance, but hopefully with a smaller example it can be made clear.

> Wouldn't the information required to identify what a "word" is require the running software to be able to see breaks/periods/etc?

Yes. But that information can be encrypted and still computed on. You might suppose that since encrypted data is essentially gibberish, then multiplying or adding different blocks of it together will only generate gibberish. The insight is that it is not entirely gibberish- or else how would we be able to decrypt it? The information to identify a word still there, and you can write a program that sees breaks/periods/etc, but you won't know when it sees a break/period until decryption of the result.

> Doesn't that leak information about the cyphertext?

This question seems to be encoding an assumption that the cloud in your example is able to see the result of the search query. The key insight here is that the cloud is only able to compute the encrypted result. It can only return the encrypted result to the requester who has the private key, and can decrypt the result, and see how many words were counted.

> How does it stop someone from writing software that, for example, maps out the position of all the a's, then b's, then c's, etc in a cyphertext and MITMing it?

I'm a bit confused by the attack here. I think it is also assuming that the untrusted computing party is able to read the plaintext result of the operation.

Here's an illustrative example. Suppose my encryption scheme is Enc(key, m) = key*m = c. Suppose my decryption scheme is Dec(key, c) = c/key = m. This scheme is not secure, but pretend that it is, and that separating out key and m from c is difficult.

I want the untrusted cloud to compute m1 * m2.

I can perform Enc(key, m1) = c1, Enc(key, m2) = c2 and send c1 and c2 to the cloud to multiply.

The cloud receives c1 and c2 which are really key*m1 and key*m2, but we are assuming that the cloud can't separate these factors from the products.

The cloud returns c1*c2, which we know equals key*m1*key*m2 = key^2 * (m1*m2).

If we divide c1*c2 by (key^2) - note: this is just running our decryption algorithm with a modified key - we will get m1*m2, which is what we wanted!

For a more formal example using ElGamal Encryption (apologies for spelling ElGamal wrong in the paper) I wrote this up: https://github.com/lsnow99/elgamal/blob/main/elgamal.pdf

Credit to https://www.cs.cmu.edu/~goyal/15356/lecture_notes.pdf for definitions

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#27

Can the submitter, or anyone else, please explain what this is? There is zero information on the submitted page besides what's in the title, and this is a six-year-old GitHub repository with no activity in years. What are we looking at? What is the significance of this repo? Did it invent this idea? Does it have any practical uses? Is there any broader context at all?

I feel similarly with the occasional Wikipedia articles that get posted here with no context. Okay, yes, what about it?

Someone posts "Tomasulo's algorithm" or "Newton's method" and then the comments are all just random anecdotes about a time someone encountered the topic. It is like playing a word association game.

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#28
post #22

If you are curious about what use case there is of it: imagine that instead of JPEG compression, we are running an LLM. You send your prompt encrypted, server homomorphically executes the model and sends the encrypted output, which you then decrypt. As a result, you get LLM output, but the server operators never learn anything about the contents of the query or response.

I wonder if FHE would ever be practical for an LLM. FHE necessitates calculating over the entire data, an extreme requirement for many workloads but routine for LLM inference.

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#29

Earlier quoted context omitted.

I'm having a hard time wrapping my head around how you'd do homomorphic encryption securely (particularly FHE). Like, for example, let's say I want to farm out word counts to the cloud. Wouldn't the information required to identify what a "word" is require the running software to be able to see breaks/periods/etc? Doesn't that leak information about the cyphertext? How does it stop someone from writing software that,…

These are good questions! FHE appears nonintuitive at first glance, but hopefully with a smaller example it can be made clear. > Wouldn't the information required to identify what a "word" is require the running software to be able to see breaks/periods/etc? Yes. But that information can be encrypted and still computed on. You might suppose that since encrypted data is essentially gibberish, then multiplying or addin…

Great explanation, thank you.

In your example you decryped by key^2. The decryption requiring a different or derivative key a general feature of the algorithm or just a quirk of your example?

Re: A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)

#30

Can the submitter, or anyone else, please explain what this is? There is zero information on the submitted page besides what's in the title, and this is a six-year-old GitHub repository with no activity in years. What are we looking at? What is the significance of this repo? Did it invent this idea? Does it have any practical uses? Is there any broader context at all?

Not the poster or repo author, but:

Homomorphic encryption is a way of applying logic transformations on encrypted data without having to decrypt it first. A simple example would be multiplying a number field in an encrypted blob by 2.

The repo title is JPEG compression (a file format used for photograph-like images that uses lossy compression to reduce filesize).

The repo links to another project which converts bitmap images (an array of pixel colors… basically the completely uncompressed representation of an image) to JPEG compressed format.

Post reply on HN