Рейтинг:0

Почему нам нужно использовать PRG для генерации случайных чисел для одноразового блокнота?

флаг fr

Я рассматриваю следующую идею использования симметричного ключа для шифрования нескольких сообщений (обратная связь между Алисой и Бобом). Его можно резюмировать следующим образом:

  • Обе стороны соглашаются на ключ
  • Обе стороны генерируют $2^n$ биты с использованием PRG (который, как я полагаю, содержит ключ). Поскольку PRG детерминированы, обе стороны имеют одинаковые $2^n$ биты.
  • Когда одна сторона хочет зашифровать сообщение, она выбирает к случайные индексы, где к это длина сообщения и xor сообщение с битами в тех к индексы. Они передают сообщение и индексы.
    • Злоумышленник не знает базовых битов, поэтому индексы бесполезны.
  • Другая сторона получает индексы/сообщения и выполняет обратный процесс, как указано выше.

визуализация схемы

Что меня смущает, так это необходимость PRG вообще. Например: Почему бы обеим сторонам просто не согласиться повторить ключ (который является секретным от злоумышленника) для $\фракция{2^n}{к}$ времена, когда к это длина ключа.

Учитывая, что злоумышленник не знает ключа, это все равно должно быть безопасным, не так ли?

Теоретически: обе стороны могут просто согласиться на {1, 2, 3, 4... $2^n$} «случайные» биты, поскольку, если у них есть возможность согласовать общий секретный ключ, у них также должна быть возможность согласовать способ создания буфера, верно?

kelalaka avatar
флаг in
На самом деле это не одноразовый блокнот, где ключ является однородным случайным. На самом деле, биты $2^n$ являются выходными данными PRG для сокращения связи. Мне не понравилась эта идея, вместо этого у них может быть потоковый шифр, а индекс — IV, а ключ фиксирован, так что нет необходимости хранить вывод PRG. Ваш вопрос по сути является обманом [Воспользоваться повторным использованием одноразового ключа?] (https://crypto.stackexchange.com/q/59/18298)
Рейтинг:2
флаг ru

Он называется One Time Pad по той причине, что вы должны использовать его только один раз. Если вы повторяете один и тот же ключ в двух разных частях открытого текста, это фактически равносильно повторному использованию ключа, что приводит к проблемам. Точнее, если у вас два сообщения $m_1$ и $m_2$ зашифрованы тем же ключом $к$ как $m_1\oплюс k$ и $m_2\oплюс k$, злоумышленник может выполнить XOR этих двух шифровок вместе, чтобы аннулировать ключ и получить $m_1\oплюс m_2$, который, хотя и не раскрывает $m_1$ ни $m_2$ напрямую, достаточно узнать кое-что об этих значениях.

Альтернативой является не повторное использование ключа, а использование ключа, длина которого равна длине сообщения. Однако это было бы очень дорого, поэтому мы используем PRG, чтобы иметь возможность «загрузить» более короткий ключ в новый ключ, который неотличим от случайного и одновременно такой же длины, как сообщение.

fgrieu avatar
флаг ng
Дополнение: и когда мы используем PRG «для генерации случайных чисел для одноразового блокнота», это уже не настоящий одноразовый блокнот. Он становится потоковым шифром и больше не является информационно-теоретически безопасным.

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

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