Рейтинг:1

Шифрование с сохранением свойства номера

флаг de
CCS

Существует ли функция шифрования, сохраняющая свойства введенных в нее чисел?

Например, существует ли функция шифрования, которая при вводе в эту функцию двух чисел, например, 2 и 4, и эти числа зашифрованы с использованием одного и того же ключа шифрования, необработанный зашифрованный вывод 2 всегда составляет половину необработанного зашифрованного вывода 4?

kelalaka avatar
флаг in
Проверьте [Format Preserving Encryption](https://en.wikipedia.org/wiki/Format-preserving_encryption), и это [уже проект стандарта NIST](https://csrc.nist.gov/publications/detail/ сп/800-38г/об-1/осадка)
Maarten Bodewes avatar
флаг in
@kelalaka Разве FPS в основном не является перестановкой, использующей ту же базу, что и входные значения? Я не думаю, что у него есть это свойство. И я думаю, что мы потеряем гораздо больше, чем просто IND_CPA на этом. Я имею в виду, что если вы знаете шифрование 4, то вы просто уменьшите его вдвое, чтобы получить шифрование 2. Без рандомизации вам не пришлось бы расшифровывать, не зная значений, даже если у вас есть только одна пара открытый текст / зашифрованный текст.
kelalaka avatar
флаг in
@MaartenBodewes Если требуется Ind-CPA (как кажется), над этим ведется работа, например [Новый метод шифрования с сохранением формата] (https://ieeexplore.ieee.org/abstract/document/8966348)
Maarten Bodewes avatar
флаг in
Спасибо за информацию - это полезно для меня. Однако я думаю, что этот вопрос требует ** большего количества операций **, а не большей безопасности. Зашифрованный текст напрямую приведет к утечке информации, а не только $x$, если $x$ повторяется (как можно было бы ожидать от PFS). Пожалуйста, перечитайте его.
CCS avatar
флаг de
CCS
В моем случае не имеет значения, если безопасность шифрования скомпрометирована тем фактом, что числа сохраняют свои свойства (хотя это все равно должно быть очень сильное шифрование), однако основная цель - просто зашифровать 2 математически связанных числа. таким образом, что 2 необработанных выхода также будут математически связаны таким же образом.
Рейтинг:4
флаг cn

Что касается вашего последнего комментария, вы не можете сделать и то, и другое; это два противоречащих друг другу ограничения.

  • Если бы математические отношения сохранились, как вы описываете, любой может обмануть вас, отправив скажем $a \cdot \text{Шифр}[X]$ и получатель поверит ему, что $a.X$ был отправлен к нему

Это очень простое свойство, как в главе 1 в Stallings, но я сожалею, что не могу вспомнить, как оно называется, так как последний раз читал курс 10 лет назад.

CCS avatar
флаг de
CCS
Будет ли этот метод работать? (ENCRYPTED_TEXT_NUMBER = зашифровать (номер_данных, секретный_ключ), ENCRYPTED_TEXT_2 = зашифровать(2, секретный_ключ_1), ENCRYPTED_TEXT_4 = зашифровать(4, секретный_ключ_1), ENCRYPTED_TEXT_4 / ENCRYPTED_TEXT_2 = 2 ) Таким образом, если кто-то захочет получить два исходных числа, которые были зашифрованы, ему также понадобится соответствующий секретный ключ, а без соответствующего секретного ключа он не сможет угадать зашифрованные числа, но обязательно ли этот метод будет работать?
ShAr avatar
флаг cn
Криптоанализ зависит от возможности существования известных пар простых шифров. Например если после Cipher[X] противник не знал, что Алиса переводит или даже обменивает X единиц денег, то в нашем случае он мог просто отправить 2*C[X]. Получение информации из известных и просочившихся пар простых шифров называется дифференциальными атаками. Если вам не нужен тяжелый материал или поиск, поищите Enigma или посмотрите фильм «Игра в имитацию», он получил пары простых шифров для общих зашифрованных предложений, таких как доброе утро, прогноз погоды, ... Затем все сломал.
Рейтинг:4
флаг us

Это было бы крайне небезопасно. В частности, если вы получили шифрование $1$, обозначенный $C_1$, то вы могли бы расшифровать любой зашифрованный текст $С$ найдя $м$ такой, что $m \cdot C_1 = C$. Что-то, что было сделано близко к тому, о чем вы говорите, это «шифрование с сохранением порядка». Он имеет то свойство, что если $m_1 < m_2$ тогда $Enc_K(m_1) < Enc_K(m_2)$. Этого достаточно, чтобы разрешить многие операции над зашифрованными текстами без расшифровки. Однако это также очень небезопасно (хотя и намного лучше, чем знание точного соотношения между открытыми текстами). Хорошее место, чтобы прочитать о безопасности этого документа Что еще раскрывает шифрование, раскрывающее порядок? Дурак, ДюБюиссон и Кэш из ACM CCS 2016.

CCS avatar
флаг de
CCS
Будет ли это по-прежнему небезопасно, даже если используются дополнительные параметры, такие как секретные ключи? Потому что, если это так, то не означает ли это, что злоумышленник не сможет просто расшифровать зашифрованный текст C, найдя m так, чтобы m * C1, поскольку ему также потребуется соответствующий секретный ключ для получения правильного расшифрованного вывода?
Yehuda Lindell avatar
флаг us
Любое шифрование должно использовать секретные ключи. Атака, которую я написал, работает без знания ключа. Если шифрование 4 в два раза больше, чем шифрование 2, и так далее, то шифрование $m$ равно $m$, умноженному на шифрование 1. Таким образом, простым делением можно найти $m$, учитывая $ C=Enc_K(m)$ и задано $C_1 = Enc_K(1)$ (где злоумышленник знает, что $C_1$ шифрует 1).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.