Microsoft SEAL: Обязательные отрицательные значения в результате после вычитания двух зашифрованных текстов PolyCRT - PullRequest
0 голосов
/ 03 апреля 2019

Предположим, у меня есть два вектора x = [1,2,3,4] and y = [5,1,2,6].

Я скомпоновал и зашифровал два массива с помощью PolyCRTBuilder (Ciphertextx и Ciphertexty).

Если вычесть два шифротекста (Ciphertextx MINUS Ciphertexty), я должен получить Result = [-4, 1, 1, -2], но после гомоморфного вычитания я получу ResultDecrypted = [40957, 1, 1, 40959].

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

1 Ответ

0 голосов
/ 05 апреля 2019

Вы используете довольно старую версию SEAL, если она все еще имеет PolyCRTBuilder;в более новых версиях библиотеки она была переименована в BatchEncoder и поддерживает кодирование в / из std::vector<std::int64_t>, что, я полагаю, именно то, что вам нужно.

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