Encrypted computations






Web-based applications and web-based desktops are a promising future. A problem will be the user data confidentiality.

You get maximum security by using a computer that contains all the data and software needed, with no connection to the outer world and enclosed in a high-frequency shielded Faraday cage. Yet web-based applications have several practical advantages upon this. It depends on the actual way they work:
An interesting solution could be to have the provider only act on encrypted data. The data keeps encrypted.

This is easy to perform for example for mail. Let's assume this quite secure solution: the users have each a laptop that contains the necessary browser and encryption/decryption software. When a user sends a mail using his webmail interface, the data leaves his laptop encrypted. The provider does not have the decryption keys. When the laptop of the recipient mail gets the encrypted mail, its browser decrypts the text to displays it.

More difficult will be a text editor where the text keeps in the provider's server. Suppose the server has to make a search on the text. If the word being searched is "hello" and "hello" encrypts to "AZf6UF8GvKah82dLOEc657bQ", the laptop asks the server to search for occurrences of "AZf6UF8GvKah82dLOEc657bQ". The server will never know what the user is actually searching for anyway it will yield the correct response. This imposes conditions on the way the text is encrypted and lowers the encryption strength. The ability to use wildcards or search parts of words will decrease the encryption strength too much.

Even more difficult is a spreadsheet. Let's keep to the basic four arithmetic operations. You can think it is enough to encrypt the numbers a way that keeps computable. For example if 3 encodes to FRFzG78, 2 encodes to GERA48sO and 5 encodes to 78GERo846, the computation of FRFzG78 + GERA48sO yields 78GERo846, without the server knowing it were 3, 2 and 5. The problem is the server just has to compute FRFzG78 / FRFzG78 to know how you encode 1. From there on it can decode all other numbers. There are ways to cope with this but the ones I imagine imply gigantic amounts of memory, bandwidth and computer power. Not worth the game...

The only practical solution I imagine would be to have three separate devices:
  1. The provider's server keeps your data, always encrypted.

  2. Somewhere, at your home or in a vault, a processor contains the encryption and decryption keys for your data and will perform all computations. One can imagine the processor is encased a way that it destroys the keys on any attempt to open it.

  3. You travel with a lightweight laptop that just encrypts and decrypts data and has a display and input devices like a keyboard.
Why have your processor separate from your laptop?
Why have your data encrypted and entrusted to a provider? Sure in lots of cases your data can be stored together with your processor. Anyway there are practical advantages to entrust your data to a provider. For example he can backup it in many places, possibly even on the Moon. One never knows... The destruction of your processors is not a big problem. Only the data is precious.



Eric Brasseur  -  July 30 2006       [ Homepage | eric.brasseur@gmail.com ]