News for hackers. Stuff that matters.
Re:Blacksmith – Rowhammer bit flips on all DRAM devices toda... by tsimionescu on Tuesday November 16, 2021 @01:47AM (#29237641)
HE is designed for running a secret algorithm with secret input data and obtaining secret output data, all on an untrusted computer.

It works a little bit like this: you write your algorithm using only HE computing primitives, then you encrypt it and the input data and send those to the HE runtime, who you don't trust, and who DOESN'T have any way to decrypt your message. The HE runtime executes your encrypted program and sends back the still encrypted output. Once you receive your output, you decrypt it using the key you have kept secret.

Re:Blacksmith – Rowhammer bit flips on all DRAM devices toda... by astrange on Tuesday November 16, 2021 @04:30AM (#29238601)
That's not how it works, that's what it does. I provided an example of how it could work, but it had better be more efficient than that or it's a silly idea.
Re:Blacksmith – Rowhammer bit flips on all DRAM devices toda... by tsimionescu on Tuesday November 16, 2021 @12:07PM (#29243103)
One note, first of all: I made one mistake, the algorithm is not secret in HE (the HE runtime has to know it). Only the input data is guaranteed to be secret.

I'm not sure what you mean. This is how HE works, at a high level. The whole point is that you're doing public operations on secret data on a machine that can never know what the data was, nor what response it gave you. Furthermore, the point of HE is also that you know that your data remained secret regardless of how the HE runtime was implemented, as you just send it encrypted information.

Making it more efficient by giving it access to the decrypted data would defeat the whole point. Making it more efficient by optimizing based on the actual data would allow your data to leak through timing side-channels, again defeating the whole point.

Basically, HE refers to computing schemes where DECRYPT(ALGORITHM(ENCRYPT(X)) == ALGORITHM(X). You send [ALGORITHM, ENCRYPT(X)] to the runtime, and it gives you Y. DECRYPT(Y) is then the result of your computation.

As far as we know, this is indeed hopelessly slow, and there is no guarantee that we will ever find fast secure HE primitives.