Spec-Zone.ru › Web APIs

AesCtrParams

Словарь AesCtrParams API Web Crypto API представляет собой объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey() или SubtleCrypto.unwrapKey() при использовании алгоритма AES-CTR.

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

Значение данного блока счётчика не должно использоваться более одного раза с одним и тем же ключом:

  • Для сообщения длиной в n блоков должен использоваться другой блок счётчика для каждого блока.
  • Если один и тот же ключ используется для шифрования более чем одного сообщения, для всех блоков всех сообщений должен использоваться другой блок счётчика.

Обычно это достигается путём разделения начального значения блока счётчика на две конкатенированные части:

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

По сути: инициализирующая последовательность должна гарантировать, что блоки счётчика не будут повторно использованы из одного сообщения в другое, а счётчик — что блоки счётчика не будут повторно использованы в пределах одного сообщения.

Примечание: Более подробную информацию см. в приложении B стандарта NIST SP800-38A.

Свойства экземпляра

name

Строка. Должна быть установлена в AES-CTR.

counter

ArrayBuffer, TypedArray или DataView — начальное значение блока счётчика. Оно должно иметь длину 16 байт (размер блока AES). Правые length бита этого блока используются для счётчика, а остальные — для инициализирующей последовательности. Например, если length установлено в 64, то первая половина counter — это инициализирующая последовательность, а вторая половина используется для счётчика.

length

Number — количество битов в блоке счётчика, используемых для фактического счётчика. Счётчик должен быть достаточно большим, чтобы не переполняться: если сообщение состоит из n блоков, а счётчик имеет длину m битов, то должно выполняться следующее условие: n <= 2^m. Стандарт NIST SP800-38A, определяющий режим CTR, предполагает, что счётчик должен занимать половину блока счётчика (см. приложение B.2), поэтому для AES это будет 64.

Примеры

См. примеры для SubtleCrypto.encrypt() и SubtleCrypto.decrypt().

Спецификации

Спецификация
Web Cryptography API
# dfn-AesCtrParams

Совместимость с браузерами

См. также

  • Режим CTR определён в разделе 6.5 стандарта NIST SP800-38A.
  • SubtleCrypto.encrypt().
  • SubtleCrypto.decrypt().
  • SubtleCrypto.wrapKey().
  • SubtleCrypto.unwrapKey().

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AesCtrParams

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API