Запутался, как использовать AES и HMAC

Я немного запутался, как использовать AES и HMAC (на основе SHA -256 )надлежащим образом при передаче зашифрованного сообщения с сервера на клиент или наоборот

Поправьте меня, пожалуйста, если следующий метод неверен:

  1. Возьмите ключ безопасности из файла ключей (например, мы предлагаем использовать AES -256, и у нас уже есть действующий ключ длиной 256 бит.)
  2. Сгенерируйте случайный IV для AES -256, чтобы убедиться, что один и тот же обычный текст будет иметь разные выходные данные шифрования.
  3. Вычислите HMAC -SHA -256, используя обычный текст и ключ безопасности. (Первый вопрос :следует ли использовать IV для вычисления HMAC? Например, добавить к ключу безопасности?)
  4. Зашифровать обычный текст с помощью AES -256.
  5. Составьте сообщение для клиента следующим образом :HMAC + IV+ ЗАШИФРОВАНО _СООБЩЕНИЕ

Самый большой вопрос :возможно ли каким-то образом не отправлять IV клиенту, а вместо этого сгенерировать его таким же образом и все еще быть крипто безопасный? Или можно и IV отправить?

Я остановился на случайном генерировании IV, потому что необходимо, чтобы один и тот же открытый текст заканчивался в разных результатах шифрования.

12
задан skaffman 23 April 2012 в 11:10
поделиться