|
@@ -39,33 +39,33 @@ You can also look at the tests in the `test` folder.
|
|
|
|
|
|
## Default parameters
|
|
|
|
|
|
-$$N$$ indicates the degree of the BFV polynomials. Default is 4096.
|
|
|
+*N* indicates the degree of the BFV polynomials. Default is 4096.
|
|
|
|
|
|
-$$t$$ indicates the plaintext modulus, but we specify $$logt$$ instead. Default is 20.
|
|
|
+*t* indicates the plaintext modulus, but we specify *log t* instead. Default is 20.
|
|
|
|
|
|
-Each BFV ciphertext can encrypt $$\log{t}\cdot N \approx 10 KB$$ bits of information.
|
|
|
+Each BFV ciphertext can encrypt log t * N, which is approximately 10 KB bits of information.
|
|
|
|
|
|
This means that if your database has, say, 1 KB elements, then you can pack 10
|
|
|
such elements into a single BFV plaintext.
|
|
|
On the other hand, if your database has, say, 20 KB elements, then you will
|
|
|
need two BFV plaintexts to represent each of your elements.
|
|
|
|
|
|
-$$d$$ represents the recursion level. When the number of BFV plaintexts needed
|
|
|
+*d* represents the recursion level. When the number of BFV plaintexts needed
|
|
|
to represent your database (see above for how to map the number of database
|
|
|
elements of a given size to the number of BFV plaintexts) is smaller than N,
|
|
|
-then setting $$d = 1$$ minimizes communication costs. However, you can also set
|
|
|
-$$d = 2$$ which doubles the size of the query and increases the size of the
|
|
|
+then setting *d = 1* minimizes communication costs. However, you can also set
|
|
|
+*d = 2* which doubles the size of the query and increases the size of the
|
|
|
response by roughly a factor of 4, but in some cases might reduce computational
|
|
|
costs a little bit (because the oblivious expansion procedure is cheaper).
|
|
|
|
|
|
-When the number of BFV plaintexts is much greater than N, then $$d = 2$$
|
|
|
-minimizes communication costs. You can read the paper to understand how $$d$$
|
|
|
-affects communication costs. In general, the query consists of $$d$$ BFV
|
|
|
-ciphertexts and can index a database with $$N^d$$ BFV plaintexts; the response
|
|
|
-consists of $$F^{d-1}$$ ciphertexts, where $$F$$ is the ciphertext
|
|
|
+When the number of BFV plaintexts is much greater than N, then *d = 2*
|
|
|
+minimizes communication costs. You can read the paper to understand how *d*
|
|
|
+affects communication costs. In general, the query consists of *d* BFV
|
|
|
+ciphertexts and can index a database with *N^d* BFV plaintexts; the response
|
|
|
+consists of *F^(d-1)* ciphertexts, where *F* is the ciphertext
|
|
|
expansion factor. In the current implementation which uses recursive
|
|
|
-modulo swithcing, $$F$$ is around 4. We have not identified any setting where
|
|
|
-$$d > 2$$ is beneficial.
|
|
|
+modulo swithcing, *F* is around 4. We have not identified any setting where
|
|
|
+*d > 2* is beneficial.
|
|
|
|
|
|
|
|
|
# Changelog
|