Before reading: "I bet they're using homomorphic encryption to expose patterns in the encrypted data" After reading: Yup. It makes sense, so long as your resulting model is run against similarly encrypted data, the same patterns will be there for the ML to identify. Which is, of course, one of the issues with homomorphic encryption.
Just to clarify, homomorphic encryption does not expose patterns. At every point in the computation the ciphertexts are computationally indistinguishable from random. The result of evaluating the ML model will be an encrypted prediction that you then need to send back to whoever encrypted the data (or more precisely whoever has the key - doesn't need to be the same person) so they can decrypt and use the prediction.
Machine Learning on Encrypted Data Without Decrypting It
11–20 of 122 posts
Re: Machine Learning on Encrypted Data Without Decrypting It
#12Earlier quoted context omitted.
Just to clarify, homomorphic encryption does not expose patterns. At every point in the computation the ciphertexts are computationally indistinguishable from random. The result of evaluating the ML model will be an encrypted prediction that you then need to send back to whoever encrypted the data (or more precisely whoever has the key - doesn't need to be the same person) so they can decrypt and use the prediction.
Do you have a reference somewhere that backs up your assertions, where I can read more on this topic? I'm super curious about it.
Re: Machine Learning on Encrypted Data Without Decrypting It
#13Earlier quoted context omitted.
Just to clarify, homomorphic encryption does not expose patterns. At every point in the computation the ciphertexts are computationally indistinguishable from random. The result of evaluating the ML model will be an encrypted prediction that you then need to send back to whoever encrypted the data (or more precisely whoever has the key - doesn't need to be the same person) so they can decrypt and use the prediction.
Do you have a reference somewhere that backs up your assertions, where I can read more on this topic? I'm super curious about it.
[1] https://eprint.iacr.org/2016/421.pdf
[2] https://eprint.iacr.org/2011/277.pdf
[3] https://juliacomputing.github.io/ToyFHE.jl/dev/man/backgroun...
[4] https://juliacomputing.github.io/ToyFHE.jl/dev/man/ckks/
Re: Machine Learning on Encrypted Data Without Decrypting It
#14Earlier quoted context omitted.
Do you have a reference somewhere that backs up your assertions, where I can read more on this topic? I'm super curious about it.
The CKKS paper that describes the crypto scheme I'm using is described here: [1]. The paper is decently readable, but frankly I feel that it doesn't really convey much intuition and it's a bit hard to follow if you don't have an algebraic number theory background. Probably the correct thing to do is to read the original BGV paper [2], which is still quite technical of course, but at least doesn't implicitly assume al…
Re: Machine Learning on Encrypted Data Without Decrypting It
#15Earlier quoted context omitted.
Do you have a reference somewhere that backs up your assertions, where I can read more on this topic? I'm super curious about it.
Good starting point: https://en.wikipedia.org/wiki/Homomorphic_encryption
Re: Machine Learning on Encrypted Data Without Decrypting It
#16Earlier quoted context omitted.
Just to clarify, homomorphic encryption does not expose patterns. At every point in the computation the ciphertexts are computationally indistinguishable from random. The result of evaluating the ML model will be an encrypted prediction that you then need to send back to whoever encrypted the data (or more precisely whoever has the key - doesn't need to be the same person) so they can decrypt and use the prediction.
Do you have a reference somewhere that backs up your assertions, where I can read more on this topic? I'm super curious about it.
The person you're responding to is correct. It's an explicit design goal that a fully homomorphic encryption system would not expose any distinguishable oracle about the underlying data. Otherwise there would be no point to it whatsoever, because you'd just be performing the same computations on the data dramatically less efficiently and without any benefit.
This follows the general imperative of cryptography, which is that the outputs of cryptographically secure primitives (hash functions, pseudorandom generators, pseudorandom permutations, etc) should be computationally indistinguishable from random up to 2^n queries, for some large n (such as 128).
Re: Machine Learning on Encrypted Data Without Decrypting It
#17Before reading: "I bet they're using homomorphic encryption to expose patterns in the encrypted data" After reading: Yup. It makes sense, so long as your resulting model is run against similarly encrypted data, the same patterns will be there for the ML to identify. Which is, of course, one of the issues with homomorphic encryption.
Re: Machine Learning on Encrypted Data Without Decrypting It
#18Earlier quoted context omitted.
Just to clarify, homomorphic encryption does not expose patterns. At every point in the computation the ciphertexts are computationally indistinguishable from random. The result of evaluating the ML model will be an encrypted prediction that you then need to send back to whoever encrypted the data (or more precisely whoever has the key - doesn't need to be the same person) so they can decrypt and use the prediction.
That seems nontrivial that the same key would be used to decrypt the result. Does this only work for some subset of ML models?
Re: Machine Learning on Encrypted Data Without Decrypting It
#19If you can infer information from encrypted data then it's not properly encrypted. Generally you would use a salt that would render this type of analyses useless.
Maybe i misunderstood something, but they are not really inferring information. The model is still encrypted, the outsider doesn't know what's going on. Wouldn't salt destroy the homomorphic property?
This is more like anonymization (effectively a one-way hash) than encryption. If you encrypt 2 different values with the same algorithm and key, you will get the same ciphertext which reveals information about the original value (i.e., that they are the same).
[1]: https://en.wikipedia.org/wiki/Malleability_(cryptography)
Re: Machine Learning on Encrypted Data Without Decrypting It
#20> It is hard to experiment with front end features like named dimensions, because it is painful to match them to back ends that expect calls to monolithic kernels with fixed layout. On the other hand, there is little incentive to build high quality back ends that support other features, because all the front ends currently work in terms of monolithic operators. An end-to-end tool chain for machine learning requires solutions from many specialist disciplines.
This is a fantastic example of getting around this problem using Flux.jl's interaction with the full Julia language. Here the author does some exceedingly cool stuff (doing machine learning on encrypted data!), and in order to get there he needed to write what many would think of as lower-level kernels that should be "provided by the library" (encrypted matrix multiplication, encrypted convolutions). To make the interface useful, he needed to use a mature interface that people are already using and make it something that can automatically switch over to encrypted implementations. And, because of the nature of fully homeomorphic encryption, the implementation has to be fast, otherwise it's dead in the water since FHE is expensive!
To me, this example showcases one way how Flux.jl's is helping machine learning get out of that "rut". The author adds dispatches to standard kernels which allow for his encrypted data types, which then allows standard Julia Flux.jl machine learning models to act on encrpyted data, and it uses type-inference + JIT compilation to make it fast enough to work. Not only that, but it's also not tied to some "sub-language" defined by a machine learning framework. That means the FHE framework not only works nicely with machine learning, it can be used by any other package in the Julia language (differential equation solvers, nonlinear optimization, macroeconomics models?). This allows composibility of tools and community: all tools from all fields can now use this same FHE implementation, so authors collaborate and mature this to a very good one. These knock-on effects give people doing research in Julia a lot of competitive advantages over other researchers, and it will be interesting to see how this effects not just the ML research community, but also everyone else!
https://dl.acm.org/citation.cfm?id=3321441
(Repost from the previous thread on this!)