There’s an interesting article in this month’s MIT Technology Review about ‘homomorphic encryption’. It has been around in principle for some 30 years but is seemingly back in vogue thanks to cloud computing.

The simple run down:

- You want to use a cloud service to perform some computation (add numbers together)
- You don’t want to give the cloud compute provider your original data (numbers) though
- You take your original data (1 and 2), encrypt it locally (33 and 54), then upload it
- The cloud service performs the computation on the encrypted data (33 + 54 = 87)
- You download the encrypted result (87) and decrypt it locally to find the answer (3)

Obviously the complexity sky rockets when you start talking about something like full text indexing, document parsing, etc … and may not even be possible without influencing the encryption process to the point that it becomes predictable … but it’s a fascinating idea none-the-less.

I can see this being useful with something like table storage. If someone like MSR could scale the algorithms sufficiently to handle clustered + non-clustered indexes – you could have Azure table storage with client side encryption and all the algorithms magically buried away by the fabric. How cool would that be?

The article: http://www.technologyreview.com/computing/37197/