4 ms·
A JPEG Image Compression Service Using Part Homomorphic Encryption (2019)
- pogue 2y agoWhat would you use this for?
- 77pt77 2y agoCompressing 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.
- tgv 2y agoThere's no information in the repo, but I suppose this means jpeg compression of an encrypted image without decryption, right?
- mystified5016 2y agoYes. Homomorphic encryption means that you can do math to the encrypted file to produce a new encrypted file. The operator doing the math cannot read either version, but the owner of the original file can.
- pogue 2y agoWithout anyone ever seeing them?
- hot_gril 2y agoAbout the encrypted DB: https://people.csail.mit.edu/nickolai/papers/popa-cryptdb-tr.pdf 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.
- dzidol 2y agoThere'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.
- perching_aix 2y agoAs a technological demonstration of homomorphic encryption and its benefit.
- cogman10 2y agoI'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, for example, maps out the position of all the a's, then b's, then c's, etc in a cyphertext and MITMing it?
- perching_aix 2y agoI think the idea is that you would never get to know the answer to those individual questions, or any questions really; you'd be producing an encrypted blob of a response that supposedly has the answer and then just pass that onward. Unfortunately the mathematical details escape me as well. Maybe one day I'll set aside some time to look into it.
- fragmede 2y agoThat wouldn't be FHE, for the reason you identified. Outside of a tiny number of algorithms, homomorphic encryption doesn't usefully generalize to something as generic as word counting of arbitrary text like that. Production use of FHE is really limited. Probably the most well known application is by Apple for phone number lookup, where they're able to get the caller id for a phone number without knowing the phone number, basically.
- uniq7 2y agoI have only read Craig Gentry, 2009 [1] (the first proposed FHE scheme), but the main idea is that an untrusted agent can perform operations on the encrypted data (i.e., addition and multiplication) and obtain an encrypted result. The untrusted agent cannot understand the result, but they can send it to the user, and the user can decrypt it. Since the scheme is asymmetric, the untrusted agent can also encrypt new data with the public key, meaning that they can do things like: `return encrypt(x) + encrypted_data_from_user * encrypt(y)` This alone doesn't let the untrusted agent evaluate a boolean condition or run an algorithm like the one you proposed, but they can at least run encrypted data through a neural network and send the encrypted output to the user. [1] https://www.cs.cmu.edu/~odonnell/hits09/gentry-homomorphic-encryption.pdf https://www.cs.cmu.edu/~odonnell/hits09/gentry-homomorphic-e...
- alberth 2y ago"Compression" and "Encryption" seem like two words I wouldn't expect in the same sentence. Wouldn't you compress the file independently ... regardless of anytype of encryption (homomorphic or not).
- Almondsetat 2y agoThis is image compression, which uses visual tricks, not simple binary file compression
- alberth 2y agoIsn't a JPEG already compressed. I'm confused.
- Almondsetat 2y agoThe service is taking an encrypted image and compressing it without decrypting it
- hot_gril 2y agoPresumably the input isn't a jpeg but something uncompressed. Or a jpeg that you want to compress more? Idk, there's no readme.
- whatdoinghere 2y ago[flagged]
- cyanydeez 2y ago[flagged]
- deleted 2y ago[deleted]
- crazygringo 2y agoCan 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?
- milesrout 2y agoI 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.
- thephyber 2y agoNot 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.
- daniellaigz 2y agoPls take a look at Lattica’s FHE survey, it shouldn't take more than ten minutes to complete and we’d appreciate your response https://forms.gle/XfKBUmDwpVHZkeTv7 https://forms.gle/XfKBUmDwpVHZkeTv7. Thank you!
- stayclassyhn 2y agoLiterally got flagged off this comment thread for saying the same thing...
- 2y ago
- xyzzyz 2y agoIf 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.
- HeatrayEnjoyer 2y agoI 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.
- totetsu 2y agoBut.. if the LLM uses something like a MOE architecture, then surely some information about the prompt would leak just by observing what parts of the model are pulled into memory?
- palata 2y agoI think if you want full homomorphic encryption, you have to go for the worst case. So you always pull all the model? That's usually why FHE is not practical.
- yoelhacks 2y agoI was also unclear what this actually did. Not sure how much this helped, but it is a nice visualization of what's happening: https://eraser.io/git-diagrammer?diagramId=ysiiD14zhpPemvoJOjf4 https://eraser.io/git-diagrammer?diagramId=ysiiD14zhpPemvoJO...
- deleted 2y ago[deleted]
- daniellaigz 2y agoPls take a look at Lattica’s FHE survey, it shouldn't take more than ten minutes to complete and we’d appreciate your response https://forms.gle/XfKBUmDwpVHZkeTv7 https://forms.gle/XfKBUmDwpVHZkeTv7. Thank you!