[Cryptography] Advances in homomorphic encryption

Hayden Stainsby crypto at caffeineconcepts.com
Fri Jan 10 15:03:52 EST 2014


On 10/01/2014, at 07:42 , Eric Mill <eric at konklone.com> wrote:

> For anyone interested in the subject, I've found some more and better resources.
> 
> Craig Gentry's original 2009 PhD thesis that theoretically solved fully homomorphic encryption: http://crypto.stanford.edu/craig/craig-thesis.pdf
> 
> Bruce Schneier's analysis of Gentry's 2009 work, covering both its extreme value and its then-current impracticality: https://www.schneier.com/blog/archives/2009/07/homomorphic_enc.html
> 
> A second paper by Gentry, and Shai Halevi, from 2011 that outlines major performance improvements: http://eprint.iacr.org/2010/520.pdf
> 
> IBM's very excited Dec 2013 announcement that they have a patent on the work: http://www-03.ibm.com/press/us/en/pressrelease/42808.wss
> 
> It's neat that Gentry was able to keep the entropic noise level of repeated homomorphic operations below a key threshold by running the decryption algorithm itself in a homomorphic way against the ciphertext - a sort of intermittent self-referential "refresh" operation to hold down the noise. Pretty cool.
> 
> Also, I notice that this is premised on lattice-based cryptography, and so the public keys are much larger than with the kind of cryptography used on the web, in the order of many megabytes. That's an interesting twist when thinking of web-scale deployment.
> 
> -- Eric
> 

Gentry's scheme has also been modified to work over the integers by van Dijk, Gentry, Halevi, and Vaikuntanathan:
http://eprint.iacr.org/2009/616.pdf

And for anyone who wants a simple, analogy filled, introduction to fully homomorphic encryption:
http://crypto.stanford.edu/craig/easy-fhe.pdf

--
Hayden

#!/usr/bin/perl
chop($_=<>);@s=split/ /;foreach$m(@s){if($m=='*'){$z=pop at t;$x=
pop at t;$a=eval"$x$m$z";push at t,$a;}else{push at t,$m;}}print"$a\n";


#!/usr/bin/perl
chop($_=<>);@s=split/ /;foreach$m(@s){if($m=='*'){$z=pop at t;$x=
pop at t;$a=eval"$x$m$z";push at t,$a;}else{push at t,$m;}}print"$a\n";
# http://voo-du.net/



More information about the cryptography mailing list