2

При шифровании конфиденциальной информации с использованием библиотеки .NET AesCryptoServiceProvider я генерирую уникальный вектор инициализации (IV) для каждого зашифрованного значения. В записи базы данных, где я сохраняю зашифрованные данные, у меня есть поле с именем «IV», которое хранит вектор инициализации для использования в дальнейшем расшифровке.Сохранение вектора инициализации - отдельное поле?

Есть ли другой способ, с помощью которого вектор инициализации может храниться вместе с шифротекстом? Возможно, добавив IV в текст шифрования? Если да, существует ли стандартный подход?

ответ

3

Есть ли другой способ, с помощью которого вектор инициализации может храниться вместе с шифротекстом? Возможно, добавив IV в текст шифрования?

Да, вы можете сделать именно это. Работа над зашифрованным текстом работает.

Если да, есть ли стандартный подход?

Нет, стандарт. A общий Способ состоит в том, чтобы добавить IV. Если вы применяете стандарт криптографических сообщений (CMS), то есть немного о том, как хранится IV. RFC3370

+0

Thanks! Интересно, было ли распространено разделение текста IV и Cipher на дефис '-' или какой-то другой« стандартный »символ. – webworm

+2

Никогда не видел. IV обычно имеет предопределенную длину. Для режима CBC он всегда совпадает с размером блока. Для режима CFB это то же самое, что и размер сегмента, а для режима CTR обычно составляет от 64 до 96 бит. Если вы разрешаете переменные CTR IVs (технически nonces), вы можете добавить байт к IV, который обозначает длину IV. –

+0

В области PHP Laravel JSON кодирует IV, зашифрованный текст и MAC отдельно (как один массив). –

Смежные вопросы