Wednesday, June 29, 2011

PL nerds: learn cryptography instead

I've never studied cryptography. So when the paper Tahoe – The Least-Authority Filesystem fell in my lap, I was perplexed.

Using just two primitives, secret-key and public-key cryptography, they build an amazing solution to information storage. (Try to understand the two main diagrams in the paper. It's not hard, and it's amazing.)

Before encountering Tahoe-LAFS, cryptography was just a way to keep stuff secret to me. But cryptography also provides us with tools to design programs that wouldn't be possible otherwise.

3 comments:

dmbarbour said...

I would suggest reading 'Policing Online Games' from Peter Wayner, which provides several patterns involving cryptography.

You can also review the use of sealer/unsealer patterns in E language, including the Horton protocol. And I also remember some interesting essays from Nick Szabo.

There is a lot more that can be done leveraging the idea of cryptography than is done by Tahoe-LAFS.

Manuel Simoni said...

Thanks, I'll look into these.

There is a lot more that can be done leveraging the idea of cryptography than is done by Tahoe-LAFS.

I'm excitedly looking forward to your blog post on this topic! :)

Anonymous said...

Hi Manuel, I also first learned to appreciate cryptography after studying Tahoe-LAFS!

My favorite revelations, though, have come from Homomorphic Encryption and Secure Multiparty Computation. These are by far the most interesting areas in modern crypto.

The important result of HE is that you can offload arbitrary program to a cloud computer service, without the cloud service having access to your input data or the code itself (time/cost efficiency is pretty poor for the time being)
- http://en.wikipedia.org/wiki/Homomorphic_encryption
Also read anything by Craig Gentry, his thesis or the i-Hop paper

Secure Multiparty Computation:
Real life application of a Sugar Beet Auction between three large parties that don't trust each other http://fc09.ifca.ai/papers/15_Secure_MPC_goes_live.pdf
Important results:
It's possible for a group of N people to construct a keypair such that no individual knows the key, only a minimum M/N subset can sign messages with it.

I hope you find these avenues of thought as interesting as I have!