4 ms·
No, you can. Any control flow program can be converted into a matrix multiplication. Obviously, the matrix size is exponential to the number of if conditions -
by heavenlyblue 7y ago
No, you can. Any control flow program can be converted into a matrix multiplication. Obviously, the matrix size is exponential to the number of if conditions - but that is a pre-requisite for homomorphic encryption anyway, otherwise you would be able to tell which branch was taken.
- dragonwriter 7y ago> Any control flow program can be converted into a matrix multiplication. Any control flow program, on a set of inputs for which it terminates[0], can be, but it's not true that any control flow program, with unspecified inputs, can be, even with variables for the inputs, since the shape of the multiplication as well as the value of elements in the matrices may depend on the inputs (also, whether it's even a terminating program can obviously depend on the inputs.) [0] and any program which always terminates can also be, though the general form may be more complex than is necessary for some inputs.
- api 7y agoI guess then that my hypothetical fully homomorphic C-64 would be huge and would have a limited run-time?
- lazersharkman 7y agoYes. No recursion. Essentially what could be fabbed as a circuit
- api 7y agoI get it. I think I had the misconception that you could branch in FHE, but as I think about it this would by its nature reveal quite a lot of information about the plaintext. Would it perhaps be possible to create a weaker form of homomorphic encryption that could branch? It would not be strong enough for the most serious security use cases (authentication, financial, etc.) but would perhaps be usable for cases where you just want to protect data confidentiality e.g. processing PII. The processor could probably infer the structure of the running program but not necessarily its data if appropriate constant-time comparisons and other constructions were used.
- heavenlyblue 7y agoIf you can branch then you can always run a program that compares the encrypted value to a constant, then iterate over the whole space of possible values for the constant and that way decrypt the value
- heavenlyblue 7y agoCPUs are a circuit. What are you on about? Ergo, you can model anything CPUs do as a matrix.
- dang 7y agoWe've asked you before to edit the swipes out of your comments here. If you keep doing it, like here and https://news.ycombinator.com/item?id=22847040 https://news.ycombinator.com/item?id=22847040 from yesterday, we're going to have to ban you. I don't want to do that, so would you please just make your substantive points thoughtfully? If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html and sticking to the rules when posting here, we'd be grateful.
- heavenlyblue 7y agoNo, any program can be converted into a matrix form. Non-terminating programs are modelled as infinitely-sized matrixes, which are obviously not computable; but neither are non-terminating programs computable in the real sense.
- KenoFischer 7y agoYes, of course you can do if conversion. The exponential increase in execution time is the wrench I was talking about ;).
- heavenlyblue 7y agoNot if you can properly model sparse matrices.