Хранение вектора инициализации - отдельное поле?

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

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


person webworm    schedule 24.03.2016    source источник


Ответы (1)


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

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

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

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

person Artjom B.    schedule 24.03.2016
comment
Спасибо! Было интересно, принято ли разделять IV и текст шифра дефисом - или каким-либо другим стандартным символом. - person webworm; 25.03.2016
comment
Никогда не видел. IV обычно имеет предопределенную длину. Для режима CBC он всегда равен размеру блока. Для режима CFB это то же самое, что и размер сегмента, а для режима CTR он обычно составляет от 64 до 96 бит. Если вы разрешаете CTR IV переменного размера (технически nonces), то вы можете добавить байт к IV, который обозначает длину IV. - person Artjom B.; 25.03.2016
comment
В PHP Laravel JSON кодирует IV, зашифрованный текст и MAC отдельно (как один массив). - person Scott Arciszewski; 25.03.2016
comment
@ Скотт Я видел это и нахожу это смешным, потому что весь зашифрованный текст должен присутствовать в памяти, чтобы это работало. Расточительство большое с этим. - person Artjom B.; 25.03.2016
comment
Я не говорил, что это хороший дизайн. :) Я просто хотел поделиться тем, что люди делают такие вещи. - person Scott Arciszewski; 25.03.2016