Nonce

Простыми словами

Nonce помогает отличать одну операцию от другой. Это не дополнительный секретный пароль: во многих протоколах он передаётся открыто. Критично выполнить требования механизма, а не просто добавить случайное число.

Как применяется

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

Пример применения

Два процесса шифруют сообщения одним ключом и начинают счётчик с нуля. Получаются повторяющиеся nonce, хотя каждый процесс по отдельности ведёт счёт правильно. Разработчики меняют схему распределения значений или разделяют ключи, а после перезапуска сохраняют требуемую уникальность.

Не путать с

  • СольИспользуется, например, при вычислении производного значения пароля; имеет другую задачу и жизненный цикл.
  • IVНачальное значение конкретного режима шифрования; требования могут пересекаться, но не одинаковы для всех схем.
  • КлючСекретный параметр защиты; публичность nonce не делает ключ публичным.

Как это работает

  1. Проверить схемуИз спецификации получают длину nonce и требования к повторению и случайности.
  2. Организовать выдачуВыбирают подходящий счётчик или источник случайности с учётом параллельных отправителей.
  3. Связать с операциейПередают значение криптографической библиотеке и сохраняют нужные параметры сообщения.
  4. Предотвратить повторПроверяют перезапуск, смену ключей и состояние нескольких экземпляров приложения.

Связанные термины

Частые вопросы

Nonce обязательно случайный?

Нет. Требования зависят от схемы; в некоторых допустим или предпочтителен уникальный счётчик.

Можно передавать nonce открыто?

Часто да. Его секретность обычно не является основой стойкости, но условия протокола обязательны.

Достаточно большого случайного значения?

Нужно также оценить число операций, вероятность совпадений и требования конкретной схемы.

Nonce — значение, используемое для отдельной операции или обмена в криптографическом механизме. Требования к его уникальности, непредсказуемости и длине задаёт конкретная схема. Например, для многих AEAD-схем нельзя повторять nonce с одним и тем же ключом.