Рейтинг:0

XChaCha20 с нулевым одноразовым номером?

флаг be

Мы знаем, что для ChaCha20 и XChaCha20 нельзя использовать один и тот же ключ с одним и тем же одноразовым номером. Но допустим, я каждый раз использую случайный 256-битный ключ... Тогда одноразовый номер может быть любым, потому что ключ всегда разный. Скажем, я установил одноразовый номер, чтобы все нули. Пока 256-битный ключ является случайным, эта настройка должна быть безопасной, поскольку 256-битный ключ достаточно велик, чтобы его нельзя было взломать или использовать повторно.

Теперь давайте работать в обратном порядке. Предположим, я использую Argon2 для получения ключей. Если я использую 256-битную соль с Argon2, то выходной ключ должен иметь 256-битную случайность, и если я подам этот ключ в XChaCha20, я теоретически никогда не должен сталкиваться с тем же ключом и, таким образом, могу использовать обнуленный одноразовый номер. .

У меня три вопроса:

  1. Есть ли что-то неправильное в использовании обнуленного одноразового номера, если ключ всегда случайный?
  2. В этом случае дает ли использование 192-битного одноразового номера для XChaCha20 какие-либо дополнительные преимущества?
  3. Безопасно ли использовать 256-битную соль для Argon2, когда рекомендуемая соль — 128-битная?

Контекст: шифрование файлов

kelalaka avatar
флаг in
[Вы должны быть осторожны при шифровании файлов с помощью (X)ChaCha](https://crypto.stackexchange.com/a/84440/18298)
Evan Su avatar
флаг be
Спасибо @kelalaka! Использование Argon2 со стандартной солью, а затем использование HKDF с 32-байтной солью для генерации ключа шифрования и одноразового номера для ChaCha20 идеально. Может быть, сделайте ответ с цитатой из этой ссылки, и я смогу ее принять?
kelalaka avatar
флаг in
Я не думаю, что нам нужен еще один ответ, я уверен, что ВОФК Перегринус сможет обновить ответ. Позвольте мне пропинговать их.
Рейтинг:1
флаг si
  1. Да. Спектакль будет ужасен.
  2. Нет, это только еще больше снижает производительность. Смысл XChaCha20 в том, чтобы иметь одноразовый номер, достаточно большой, чтобы иметь возможность выбрать его случайным образом, имея при этом 64-битный счетчик.
  3. Argon2 не использует одноразовый номер. Он использует соль. Это разные вещи: соль уникальна для каждого пользователя и должна оставаться неизменной между вызовами. Одноразовый номер уникален для каждого сообщения. Соль не предназначена для обеспечения секретной энтропии на выходе, она просто делает два идентичных пароля, используемых в качестве входных данных, имеющими разные выходные данные. Предполагается, что соль общественный ввод, и анализ безопасности Argon2 не показывает, что его нельзя найти из вывода (поскольку, например, он является непосредственной частью стандартной структуры вывода). Энтропия вывода Argon2 зависит от входной фразы-пароля, а не от соли. Использование соли в качестве источника ввода энтропии вместо фразы-пароля нарушает анализ безопасности, поэтому мы не можем сказать, что это безопасно.
  4. (из комментариев) «Использование Argon2 со стандартной солью (для каждого пользователя/учетной записи/аналогичной), а затем использование HKDF с 32-байтной солью (неуказанный источник) для генерации ключа шифрования и одноразового номера для ChaCha20 идеально». Это может работать, но не обязательно при использовании XChaCha20. Argon2 — это KDF, и его можно использовать для безопасного получения ключа из пароля. XChaCha20 позволяет использовать случайный одноразовый номер, поэтому вы можете просто использовать безопасный генератор случайных чисел вашей ОС. Если вы хотите использовать ChaCha20 (версия, отличная от X), то это может помочь в выборе одноразового номера. Обратите внимание, что соль должен быть исправлен для HKDF это Информация параметр, который необходимо изменить для безопасного получения уникальных значений nonce. Этот пост в блоге есть хорошее описание того, почему, короткая версия заключается в том, что HKDF имеет доказательство безопасности, которое зависит от наличия фиксированного соль значение, но разное Информация value для безопасного вывода независимых результатов.
kelalaka avatar
флаг in
Не могли бы вы обновить свой ответ предложением, которое _Эван Су_ нашел [идеальным для них] (https://crypto.stackexchange.com/questions/98259/xchacha20-with-a-zeroed-nonce?noredirect=1#comment212266_98259)?

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

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