Рейтинг:2

В чем разница между режимом AES-CCM8 и режимом AES-CCM?

флаг id

Я знаю AES-GCM и AES-CCM, но в чем разница между режимом AES-CCM8 и режимом AES-CCM? Это длина шифра?

Рейтинг:3
флаг cn

8 — длина тега (в байтах).

CCM — это семейство алгоритмов AEAD (аутентифицированное шифрование со связанными данными), которые параметризуются:

  • алгоритм блочного шифрования (например, AES-128, AES-192, AES-256, Camellia-128, …) с размером блока 128 бит;
  • функция генерации счетчика;
  • функция форматирования для первого блока;
  • длина тега.

СКК определяется НИСТ СП 800-30С.

На практике все используют генерацию счетчика и функцию форматирования указано в NIST SP 800-30C, приложение A. Спецификация функции форматирования фактически представляет собой семейство функций с одним параметром: длиной поля AEAD. Таким образом, «AES-CCM» оставляет неоднозначными три параметра: длину ключа AES, длину д поля AEAD и длины т тега.

Значение д не имеет прямого влияния на безопасность. Он ограничивает размер AEAD, который может быть передан, и ограничивает размер одноразового номера. Значение т влияет на безопасность: слишком короткий тег может быть взломан методом грубой силы. Длина тега может составлять всего 4 байта, что легко подобрать. Такие короткие теги используются в коммуникационных протоколах, где перебор тега является активной атакой, а вероятность успешной активной атаки считается приемлемо низкой.

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

Обратите внимание, что д и т являются входными данными для расчета тега. Поэтому значение тега зависит от этих параметров. В частности, для данного сообщения н-байтовый тег CCM не является усечением 16-байтового тега для н байт. (Это отличается от GCM, где GCM с более коротким тегом — это просто GCM с усеченным полноразмерным тегом.)

Если это не указано явно, длина тега обычно является максимально возможной и составляет один блок (128 бит = 16 байт). Это также может быть написано «AES-CCM-16» (или типографскими вариантами). «AES-CCM-8» означает AES-CCM с 64-битным = 8-байтовым тегом и т. д.

Например, в TLS 1.2 наборы шифров CCM определяются RFC 6655 (и другие RFC для Camellia и ARIA), со ссылкой на RFC 5116 §5.3 и §5.4. RFC 6655 §3 указывает 12-байтовый одноразовый номер, что эквивалентно тому, что д = 3. xxx_CCM наборы шифров используют тег максимальной длины (т = 16), тогда как xxx_CCM_8 наборы шифров используют тег половинной длины (т = 8).

8-байтовый (64-битный) тег будет неудобно мал в ситуациях, когда злоумышленник может подобрать все возможные теги методом грубой силы. Однако, когда тег используется для связи TLS, если злоумышленник сделает неверный выбор для тега, получатель немедленно закроет соединение, поэтому для каждого предположения требуется новое соединение. Это делает грубую силу очень дорогой. С DTLS получатель будет принимать несколько поврежденных пакетов, поэтому злоумышленник может сделать несколько предположений для каждого соединения, но атака по-прежнему является активной атакой на текущее соединение, и для злоумышленника часто нецелесообразно пробовать незначительное количество пакетов. догадки, не перегружая полосу пропускания приемника и не запуская защиту от переполнения.

dawklrw avatar
флаг id
так что aes-ccm безопаснее, чем aes-ccm8?
Achim Kraus avatar
флаг ph
Существует разница между прохождением проверки тега и внедрением данных в зашифрованное сообщение, что приводит к «предполагаемому» расшифрованному значению. Прохождение только MAC может считаться более простым. Но это по-прежнему приводит к «случайной полезной нагрузке» расшифрованного сообщения. Если это повредит или будет обнаружено следующим уровнем протокола, обычно неясно. Дело, по-видимому, в том, что общая экономия 8-байтового тега по сравнению с 16-байтовым тегом может не стоить большего риска.
Achim Kraus avatar
флаг ph
«В частности, для данного сообщения n-байтовый тег CCM не является усечением 16-байтового тега до n байтов». тогда есть сломанные реализации, это именно то, что делается по моему опыту, ccm8 просто усекает ccm16.
Gilles 'SO- stop being evil' avatar
флаг cn
@AchimKraus [RFC 6655] (https://datatracker.ietf.org/doc/html/rfc6655#section-6.1) утверждает: «Зашифрованный текст AEAD_AES_128_CCM_8 состоит из (…) 8-октетного вывода тега аутентификации Операция шифрования CCM обратите внимание, что она _не_ говорит, что это усечение тега до 16 байтов. RFC 6655 ссылается на [RFC 5116] (https://datatracker.ietf.org/doc/html/rfc5116#section-5.3), в котором говорится: «Функция форматирования и генерации счетчика указана в Приложении A [SP 800]. -38С].
Gilles 'SO- stop being evil' avatar
флаг cn
В OpenSSL [CCM-8 передает `taglen=8` в `EVP_CTRL_AEAD_SET_TAG](https://github.com/openssl/openssl/blob/openssl-3.0/ssl/t1_enc.c#L410), [`aes_ccm_ctrl` сохраняет 8 в `cctx->M`](https://github.com/openssl/openssl/blob/openssl-3.0/crypto/evp/e_aes.c#L3350), [`aes_ccm_init_key` передает это в `CRYPTO_ccm128_init`] (https://github.com/openssl/openssl/blob/openssl-3.0/crypto/evp/e_aes.c#L3395), который [кодирует `M=8` в начальном блоке](https://github.com /openssl/openssl/blob/openssl-3.0/crypto/modes/ccm128.c#L31). Реализация, несовместимая с OpenSSL, будет считаться неисправной.
Achim Kraus avatar
флаг ph
Да, ты прав! Я ошибаюсь, я запомнил только часть с копированием тега. Но материал инициализации также отличается.
Рейтинг:1
флаг ru

Как определено в раздел 6.1 RFC6655, AES-CCM8 отличается тем, что размер тега аутентификации составляет 8 байтов (т. е. 64 бита), а не 16 байтов (т. е. 128 битов) для AES-CCM. НИСТ Спецификация CCM в SP800-38C, раздел 6.1 допускает диапазон возможных длин тегов аутентификации. Более короткие теги можно рассматривать как старшие значащие биты более длинных тегов. Нет никакой разницы в зашифрованных полезных нагрузках.

Gilles 'SO- stop being evil' avatar
флаг cn
Для CCM более короткие теги не являются усечениями полноразмерного тега: длина тега является входом для расчета тега.

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

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