22.04.2014 Views

a590003

a590003

a590003

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Contents<br />

1 The BGV Homomorphic Encryption Scheme 1<br />

1.1 Plaintext Slots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

1.2 Our Modulus Chain and Double-CRT Representation . . . . . . . . . . . . . . . . . 2<br />

1.3 Modules in our Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2 The Math Layers 3<br />

2.1 The timing module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2.2 NumbTh: Miscellaneous Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2.3 bluestein and Cmodulus: Polynomials in FFT Representation . . . . . . . . . . . . . . 4<br />

2.4 PAlgebra: The Structure of Z ∗ m and Z ∗ m/ 〈2〉 . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.5 PAlgebraModTwo/PAlgebraMod2r: Plaintext Slots . . . . . . . . . . . . . . . . . . . . 6<br />

2.6 IndexSet and IndexMap: Sets and Indexes . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.6.1 The IndexSet class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.6.2 The IndexMap class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.7 FHEcontext: Keeping the parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.8 DoubleCRT: Efficient Polynomial Arithmetic . . . . . . . . . . . . . . . . . . . . . . . 10<br />

3 The Crypto Layer 13<br />

3.1 The Ctxt module: Ciphertexts and homomorphic operations . . . . . . . . . . . . . . 13<br />

3.1.1 The SKHandle class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

3.1.2 The CtxtPart class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

3.1.3 The Ctxt class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

3.1.4 Noise estimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

3.1.5 Modulus-switching operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

3.1.6 Key-switching/re-linearization . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

3.1.7 Native arithmetic operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

3.1.8 More Ctxt methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

3.2 The FHE module: Keys and key-switching matrices . . . . . . . . . . . . . . . . . . . 24<br />

3.2.1 The KeySwitch class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

3.2.2 The FHEPubKey class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

3.2.3 The FHESecKey class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

3.3 The KeySwitching module: What matrices to generate . . . . . . . . . . . . . . . . . 28<br />

4 The Data-Movement Layer 29<br />

4.1 The classes EncryptedArray and EncryptedArrayMod2r . . . . . . . . . . . . . . . . . . 29<br />

5 Using the Library 33<br />

5.1 Homomorphic Operations over GF (2 8 ) . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

5.2 Homomorphic Operations over Z 2 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

A Proof of noise-estimate 37<br />

16. Design and Implementation of a Homomorphic-Encryption Library

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!