Установка FractionalEncoder в SEAL 2.3.1 - PullRequest
0 голосов
/ 05 октября 2018

Я использую этот параметр:

parms.set_poly_modulus("1x^2048 + 1"); // n = 2048
parms.set_coeff_modulus(coeff_modulus_128(2048)); // q = 54-bit prime
parms.set_plain_modulus(1 << 8); // t = 256

С этим кодером FractionalEncoder encoder(context.plain_modulus(), context.poly_modulus(), A, B, C);, используя A=512, B=128 и C=2

Если я правильно понял, тогда значение A и B зависят от размера n , что означает, что A + B <= 2048 должно выполняться, верно? </p>

Какое общее правилопри определении размера A и B с использованием вышеуказанных настроек poly_modulus , coeff_modulis и plain_modulus ?Так как при выборе небольших значений не используйте весь потенциал размера открытого текста.Я предполагаю, что A следует увеличить, потому что B только для точности дробной части.

1 Ответ

0 голосов
/ 07 октября 2018

A и B зависят от того, насколько вам нужна точность и насколько сложны вычисления: большие A и B сделают шифрование более точным, а также уменьшат допустимую глубину мультипликации.Последнее является одной из причин того, что дробный кодер не работает очень хорошо.В зависимости от вашей задачи вы можете захотеть оставаться в курсе и использовать следующий выпуск (SEAL 3.0), который содержит новый метод кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...