stringtranslate.com

Криптографический одноразовый номер

Типичная связь клиент-сервер во время процесса аутентификации на основе одноразового кода, включая одноразовый номер сервера и одноразовый номер клиента.

В криптографии nonce это произвольное число, которое можно использовать только один раз в криптографической связи. [1] Часто это случайное или псевдослучайное число, которое выдается в протоколе аутентификации, чтобы гарантировать, что старые сообщения не могут быть повторно использованы в атаках с повторным воспроизведением . Они также могут быть полезны в качестве векторов инициализации и в криптографических хэш-функциях .

Определение

Nonce — это произвольное число, используемое только один раз в криптографической связи, в духе nonce-слова . Часто это случайные или псевдослучайные числа. Многие одноразовые номера также включают метку времени для обеспечения точной своевременности, хотя для этого требуется синхронизация часов между организациями. Добавление клиентского nonce (« cnonce ») помогает улучшить безопасность в некотором смысле, как это реализовано в дайджест-аутентификации доступа . Чтобы гарантировать, что одноразовый номер используется только один раз, он должен быть изменяющимся во времени (включая достаточно детализированную временную метку в своем значении) или генерироваться с достаточным количеством случайных битов, чтобы гарантировать незначительно низкую вероятность повторения ранее сгенерированного значения. Некоторые авторы определяют псевдослучайность (или непредсказуемость) как требование для nonce. [2]

Nonce — это слово, восходящее к среднеанглийскому языку и обозначающее что-то, используемое только один раз или временно (часто с конструкцией «для nonce»). Оно происходит от конструкции «тогда анес» («единственный [цель]»). [3] Ложная этимология , утверждающая, что это слово означает «число, использованное один раз», неверна [4] . В Великобритании этого термина можно избегать, поскольку «nonce» в современном британском английском означает педофил. [3]

Применение

Аутентификация

Протоколы аутентификации могут использовать одноразовые номера, чтобы гарантировать невозможность повторного использования старых сообщений в атаках с повторным воспроизведением . Например, одноразовые номера используются при аутентификации доступа к дайджесту HTTP для расчета дайджеста пароля MD5 . Одноразовые номера меняются каждый раз, когда представляется код ответа на запрос аутентификации 401, что делает атаки повторного воспроизведения практически невозможными. Сценарий заказа продуктов через Интернет может служить примером полезности одноразовых номеров при атаках с повторным воспроизведением. Злоумышленник может получить зашифрованную информацию и — без необходимости расшифровки — продолжить отправку определенного заказа поставщику, тем самым снова и снова заказывая продукты под одним и тем же именем и информацией о покупке. Nonce используется для придания «оригинальности» данному сообщению, поэтому, если компания получит какие-либо другие заказы от того же человека с тем же nonce, она отбросит их как недействительные заказы.

Одноразовый номер может использоваться для обеспечения безопасности потокового шифра . Когда один и тот же ключ используется для более чем одного сообщения, а затем используется другой одноразовый номер, чтобы гарантировать, что поток ключей различен для разных сообщений, зашифрованных с помощью этого ключа; часто используется номер сообщения.

Секретные значения nonce используются схемой подписи Лампорта в качестве секрета подписывающей стороны, который может выборочно раскрываться для сравнения с общедоступными хэшами для создания и проверки подписи.

Векторы инициализации

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

Хеширование

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

Аналогичным образом, алгоритм хеширования блокчейна биткойнов можно настроить на произвольную сложность, изменив требуемое минимальное/максимальное значение хеша, чтобы количество биткойнов, присуждаемых за новые блоки, не увеличивалось линейно с увеличением вычислительной мощности сети по мере присоединения новых пользователей. Это также достигается путем принуждения майнеров биткойнов добавлять значения nonce к хэшируемому значению, чтобы изменить выходные данные алгоритма хеширования. Поскольку криптографические алгоритмы хэширования не могут быть легко предсказаны на основе их входных данных, это делает процесс хеширования блокчейна и возможность получения биткойнов чем-то вроде лотереи, где первый «майнер», который найдет одноразовый номер, обеспечивающий желаемый хэш, получает биткойны. .

Смотрите также

Рекомендации

  1. ^ "nonce - Глоссарий | CSRC" . csrc.nist.gov . Национальный институт стандартов и технологий . Проверено 24 октября 2021 г.
  2. ^ Рогауэй, П. (2004). «Симметричное шифрование на основе Nonce» (PDF) . В Бимале Рое; Вилли Мейер (ред.). Быстрое программное шифрование . Конспекты лекций по информатике. Том. 3017. С. 348–358. дои : 10.1007/978-3-540-25937-4_22. ISBN 978-3-540-25937-4.
  3. ^ ab Оксфордский словарь английского языка [версия, включенная в macOS] . Издательство Оксфордского университета. 2021. Среднеанглийский: от then anes 'единственный (цель') (отсюда устаревшая косая форма + anes 'один' + -s), изменено неправильным разделением.
  4. ^ Нидхэм, Роджер М.; Шредер, Майкл Д. (1 декабря 1978 г.). «Использование шифрования для аутентификации в больших компьютерных сетях». Коммуникации АКМ . 21 (12): 993–999. дои : 10.1145/359657.359659. ISSN  0001-0782.

Внешние ссылки