Не могли бы вы сообщить мне, как сравнить два зашифрованных текста с помощью библиотеки SEAL?
У меня есть два зашифрованных текста, C1 и C2, которые были закодированы с помощью дробного кодировщика, а затем зашифрованы.
Есть ли способ сравнить C1 и C2 на равенство? (C1 == C2, который возвращает логическое значение).
Я проверил файл ciphertext.h и не смог найти подпрограммы сравнения.
Что-то мне подсказывает, что я могу сравнить два зашифрованных текста, кодируя их с помощью BinaryEncoder и сравнивая побитно.
Как я мог это реализовать?
Есть несколько вариантов. Во-первых, вы действительно можете зашифровать свое сообщение побитно и написать схему сравнения; это может быть очень неэффективно как с точки зрения времени выполнения, так и с точки зрения расширения сообщений. Это функциональность более высокого уровня, поэтому она не реализована как часть SEAL.
Другой возможный подход - зашифровать ваши числа как обычно и гомоморфно вычислить их разницу. Результатом будет либо 0 (совпадение), либо ненулевое значение (нет совпадения). Однако это может быть бесполезно для ваших нужд. В этом случае вы также можете использовать пакетную обработку, чтобы в амортизированной настройке вы могли получить хорошее расширение сообщений и производительность.
Вы, кажется, также немного сбиты с толку BinaryEncoder; он не делает ничего похожего на побитовое кодирование, если это то, что вам нужно. Вам следует взглянуть на руководство SEAL на http://sealcrypto.org и прочитать раздел о кодировщиках.
Не хочу показаться воинственным, но важно отметить, что вычитание двух зашифрованных текстов приведет к зашифрованному 0 или зашифрованному ненулевому значению. Таким образом, сама система не сможет увидеть, равны ли два зашифрованных текста или нет. Скорее, необходимо реализовать дополнительную логику на основе того, равен ли результат 0 или ненулевой. И я не думаю, что ОП имела в виду именно это.
Добро пожаловать в Stack Overflow! Другие пользователи отметили ваш вопрос как низкое качество и необходимость улучшения. Я переформулировал / отформатировал ваш ввод, чтобы его было легче читать / понимать. Просмотрите мои изменения, чтобы убедиться, что они отражают ваши намерения. Не стесняйтесь писать мне комментарий, если у вас есть дополнительные вопросы или отзывы для меня.