Сравнить два шифртекста с помощью печати MS?

Не могли бы вы сообщить мне, как сравнить два зашифрованных текста с помощью библиотеки SEAL?

У меня есть два зашифрованных текста, C1 и C2, которые были закодированы с помощью дробного кодировщика, а затем зашифрованы.

Есть ли способ сравнить C1 и C2 на равенство? (C1 == C2, который возвращает логическое значение).

Я проверил файл ciphertext.h и не смог найти подпрограммы сравнения.

Что-то мне подсказывает, что я могу сравнить два зашифрованных текста, кодируя их с помощью BinaryEncoder и сравнивая побитно.

Как я мог это реализовать?

Добро пожаловать в Stack Overflow! Другие пользователи отметили ваш вопрос как низкое качество и необходимость улучшения. Я переформулировал / отформатировал ваш ввод, чтобы его было легче читать / понимать. Просмотрите мои изменения, чтобы убедиться, что они отражают ваши намерения. Не стесняйтесь писать мне комментарий, если у вас есть дополнительные вопросы или отзывы для меня.

GhostCat 06.09.2018 13:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
359
1

Ответы 1

Есть несколько вариантов. Во-первых, вы действительно можете зашифровать свое сообщение побитно и написать схему сравнения; это может быть очень неэффективно как с точки зрения времени выполнения, так и с точки зрения расширения сообщений. Это функциональность более высокого уровня, поэтому она не реализована как часть SEAL.

Другой возможный подход - зашифровать ваши числа как обычно и гомоморфно вычислить их разницу. Результатом будет либо 0 (совпадение), либо ненулевое значение (нет совпадения). Однако это может быть бесполезно для ваших нужд. В этом случае вы также можете использовать пакетную обработку, чтобы в амортизированной настройке вы могли получить хорошее расширение сообщений и производительность.

Вы, кажется, также немного сбиты с толку BinaryEncoder; он не делает ничего похожего на побитовое кодирование, если это то, что вам нужно. Вам следует взглянуть на руководство SEAL на http://sealcrypto.org и прочитать раздел о кодировщиках.

Не хочу показаться воинственным, но важно отметить, что вычитание двух зашифрованных текстов приведет к зашифрованному 0 или зашифрованному ненулевому значению. Таким образом, сама система не сможет увидеть, равны ли два зашифрованных текста или нет. Скорее, необходимо реализовать дополнительную логику на основе того, равен ли результат 0 или ненулевой. И я не думаю, что ОП имела в виду именно это.

kebab-case 08.06.2019 22:34

Другие вопросы по теме