Безопасно ли хранить параметры шифрования AES (размер блока / размер блока / размер ключа и т. Д.) В заголовке файла? - PullRequest
1 голос
/ 24 марта 2012

Безопасно ли хранить параметры шифра в (незашифрованном) заголовке зашифрованного файла?Есть ли что-нибудь (кроме ключа, конечно!), Которое не должно храниться / передаваться в открытом виде?

1 Ответ

1 голос
/ 24 марта 2012

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

Но все такие параметры в целом полезны для злоумышленников. Если файл не может быть легко связан с шифром и используемыми параметрами (или программным обеспечением соответственно), у злоумышленника будет значительно больше работы, и именно для этого в основном и используется шифрование. Шифр безопасен, хотя (и потому что) каждый может видеть, как он работает. Кроме того, попытка скрыть некоторую информацию также может повысить безопасность.

  • AES имеет фиксированный размер блока 128 битов, который сам по себе не является критической информацией, уже зная о самом AES. Так что этот файл не нужен внутри заголовка файла.

  • Размер ключа задается самим ключом, поэтому его также можно не указывать.

  • Блочный режим является оставшимся параметром. Просто никогда не используйте ЕЦБ. Постоянно используйте один блочный режим, такой как OCB, и вам не нужно сохранять его в файле.

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

Возможно, могут помочь следующие подходы, если вам все равно придется передавать параметры:

  • Передайте параметры в файле ключей, если вы сами хотите определить формат, и ключи были распределены для каждого файла.

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

...