Thought I would share something that I have been reading about recently. Homomorphic Encryption
Wiki description: Homomorphic encryption is a form of encryption that allows computations to be carried out on ciphertext, thus generating an encrypted result which, when decrypted, matches the result of operations performed on the plaintext.
Lets assume we have a homomorphic encryption algorithm X which takes some integer and outputs an encrypted integer.
X(1) outputs “AAABBB===” (the encrypted ciphertext)
X(2) outputs “BBBBAAA==”
The encryption algorithm would have additive properties such that when we add “AAABBB===” and “BBBBAAA==” you get lets say “CCCCCC==”. Which when decrypted using X, would give the following:
X(“CCCCCC==”) = 3.
This is a simple example, and having an encryption algorithm which only does addition is not that useful. The idea of a fully-homomorphic algorithm is that it would support any computation function, meaning full encrypted data could pass through some complex function (for example, data analysis).
The big deal about this is that it would open up the possibility of outsourcing the computation to third parties (AWS etc) without having to ever decrypt your data on their servers.