Установка FractionalEncoder в SEAL 2.3.1

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

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

Если я правильно понял, то установка а также В зависит от размера N что означает, что A + B <= 2048 должен держать, правильно?

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

0

Решение

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]