A group of IBM researchers has released a Github project that implements a homomorphic encryption system – a way to work on encrypted data in a file without first decrypting the whole file.
Why would anyone want to do that? Partly because if you have to decrypt the file to work on it, it's going to exist as plaintext somewhere. IBM has other ideas about this as well: leaving the encrypted file encrypted would keep data protected in the cloud while still letting users work on it. Big Blue even envisages such schemes as offering truly private Internet search.
The Github project is called HElib – the homomorphic encryption library. Its authors describe it as “an implementation of the Brakerski-Gentry-Vaikuntanathan (BGV) scheme, along with many optimizations to make homomorphic evaluation runs faster, focusing mostly on effective use of the Smart-Vercauteren ciphertext packing techniques and the Gentry-Halevi-Smart optimizations.”
The challenge is getting it to run efficiently, something described by IBM's Craig Gentry in 2009, and improved upon in later work.
In addition to algorithms for key generation, encryption, and decryption, the homomorphic scheme adds an “Evaluate” function.
The encrypted file – if The Register understands the paper correctly – embeds actions that are permitted on that file (for example, the ability to read and write to parts or all of the file. The Evaluate function is able to use the combination of the public key and permitted actions (described as circuits) to operate on the file without decrypting it. ®