AES256 CBC + HMAC SHA256, обеспечивающий конфиденциальность * и * аутентификацию?

Я думаю об использовании AES256 CBC + HMAC SHA-256 в качестве строительного блока для сообщений, который гарантирует как конфиденциальность, так и аутентификацию.

В частности, рассмотрите возможность использования этот сценарий:

  • Алиса владеет открытым ключом, принадлежащим Бобу (обмен ключами и алгоритм выходят за рамки этого вопроса). У Алисы есть идентификационный ключ K, также общий с Бобом, который она может использовать для идентификации. Только Алиса и Боб знают ключ K.
  • Алиса шифрует (nonce || K), используя открытый ключ Боба.
  • Боб расшифровывает пакет и теперь имеет K и одноразовый номер.
  • Боб использует SHA-256 с SHA256 (K || nonce), чтобы получить K (e) из 256 бит.
  • Боб использует SHA-256. с SHA256 (K || nonce + 1), чтобы получить K (s) из 256 бит.

Теперь для каждого пакета, который Боб хочет отправить Алисе, он выполняет следующее:

  • Создает новый случайный 128-битный IV
  • ] Шифрует сообщение, используя IV и K (e) в качестве ключа.
  • Создает SHA-256 HMAC с K (s) в качестве ключа и (IV || Зашифрованное сообщение) в качестве данных.
  • Наконец, отправляет (IV || HMAC || Шифрованный текст) Алисе

Алиса также вычислила K (e) и K (s) и следует следующей процедуре при получении данных от Боба:

  • Разделите сообщение на IV, зашифрованный текст и HMAC.
  • Вычислить HMAC, используя K (s), IV и зашифрованный текст.
  • Сравните HMAC с отправленным HMAC. Если это совпадает, Алиса считает это сообщение аутентифицированным как сообщение, отправленное Бобом, в противном случае оно отбрасывается.
  • Алиса расшифровывает сообщение с помощью K (e)

Гарантирует ли этот протокол, что Алиса расшифровывает только сообщения от Боба, предполагая, что никто, кроме Боб может прочитать зашифрованное сообщение, которое Алиса отправляет ему в зашифрованном виде с использованием его открытого ключа?

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

Примечание: если протокол требует, чтобы Боб отправлял несколько сообщений, эту схему необходимо немного изменить, чтобы избежать атак повторного воспроизведения.

PS Я знаю о AES-GCM / CCM, но эта схема будет работать с базовыми алгоритмами AES, SHA и HMAC, которые присутствуют в большинстве криптографических пакетов. Это решение также может быть медленнее, но это тоже выходит за рамки вопроса.

13
задан Nuoji 9 March 2011 в 12:53
поделиться