Множественное шифрование - Multiple encryption

Множественное шифрование это процесс шифрование уже зашифрованное сообщение один или несколько раз, используя тот же или другой алгоритм. Он также известен как каскадное шифрование, каскадное шифрование, множественное шифрование, и супершифрование. Супершифрование относится к шифрованию на внешнем уровне множественного шифрования.

Некоторые криптографы, такие как Мэтью Грин из Университета Джона Хопкинса, говорят, что множественное шифрование решает проблему, которой в большинстве случаев не существует: Современные шифры редко ломаются ... У вас гораздо больше шансов получить удар от вредоносного ПО или ошибки реализации, чем от катастрофической атаки на AES.[1] .... и в этой цитате кроется причина множественного шифрования, а именно плохая реализация. Использование двух разных криптомодулей и процессов ввода ключей от двух разных поставщиков требует, чтобы оборудование обоих поставщиков было скомпрометировано для обеспечения безопасности.

Независимые ключи

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

Чтобы предотвратить этот риск, можно использовать ключи, которые статистически независимый для каждого слоя (например, независимые ГСЧ ).

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

Независимые векторы инициализации

Для процессов шифрования / дешифрования, требующих совместного использования Вектор инициализации (IV) / nonce они, как правило, являются общедоступными или доводятся до сведения получателя (и всех остальных). Его хорошая политика безопасности - никогда не предоставлять одни и те же данные как в открытом, так и в зашифрованном виде при использовании одного и того же ключа и IV. Поэтому рекомендуется (хотя на данный момент без конкретных доказательств) использовать отдельные IV для каждого уровня шифрования.

Важность первого слоя

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

Это тот случай, когда первый уровень представляет собой программу P, которая всегда добавляет одну и ту же строку S символов в начало (или конец) всех зашифрованных текстов (обычно известных как магическое число ). При обнаружении в файле строка S позволяет Операционная система чтобы знать, что программа P должна быть запущена, чтобы расшифровать файл. Эту строку следует удалить перед добавлением второго слоя.

Чтобы предотвратить такую ​​атаку, можно использовать метод, предоставленный Брюс Шнайер[2]:

  • Сгенерируйте случайный блокнот R того же размера, что и открытый текст.
  • Зашифруйте R, используя первый шифр и ключ.
  • XOR открытый текст с помощью блокнота, затем зашифруйте результат, используя второй шифр и другой (!) ключ.
  • Объединить оба зашифрованных текста, чтобы построить окончательный зашифрованный текст.

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

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

Правило двух

В Правило двух это принцип безопасности данных от АНБ Коммерческие решения для секретной программы (CSfC).[3] Он определяет два полностью независимых уровня криптографии для защиты данных. Например, данные могут быть защищены как аппаратным шифрованием на самом низком уровне, так и программным шифрованием на уровне приложений. Это может означать использование двух FIPS -проверенные программные криптомодули от разных производителей для шифрования / дешифрования данных.

Важность разнообразия поставщиков и / или моделей между уровнями компонентов сосредоточена вокруг исключения возможности того, что производители или модели будут иметь общую уязвимость. Таким образом, если один из компонентов будет скомпрометирован, все равно останется целый уровень шифрования, защищающий информацию в состоянии покоя или при передаче. Программа CSfC предлагает решения для достижения разнообразия двумя способами. «Первый - реализовать каждый уровень с использованием компонентов, произведенных разными производителями. Второй - использовать компоненты одного и того же производителя, если этот производитель предоставил NSA достаточные доказательства того, что реализации этих двух компонентов независимы друг от друга».[4]

Этот принцип реализован в защищенном мобильном телефоне АНБ под названием Fishbowl.[5] В телефонах используются два уровня протоколов шифрования, IPsec и Безопасный транспортный протокол в реальном времени (SRTP) для защиты голосовой связи. Самсунг Galaxy S9 Tactical Edition также является одобренным компонентом CSfC.

Пример множественного шифрования

На рисунке изнутри и снаружи показан процесс формирования зашифрованной капсулы в контексте Echo Protocol, используемого программным приложением GoldBug Messenger.[6] GoldBug внедрил гибридную систему аутентичности и конфиденциальности.[5]

Рисунок 02 GoldBug - Формат зашифрованного сообщения в Echo-Protocol.png

Первый уровень шифрования: Шифрованный текст исходного читаемого сообщения хешируется, и впоследствии симметричные ключи шифруются с помощью асимметричного ключа, например развертывание алгоритма RSA. На промежуточном этапе зашифрованный текст и хеш-дайджест зашифрованного текста объединяются в капсулу и упаковываются вместе. Это следует подходу: Шифрование, затем MAC. Чтобы получатель мог убедиться, что зашифрованный текст не был изменен, дайджест вычисляется до того, как зашифрованный текст будет расшифрован.

Второй уровень шифрования:По желанию, это все еще возможно, поэтому капсулу первого слоя дополнительно можно зашифровать. AES-256, - сравнимо с обычным симметричным паролем длиной 32 символа. Затем к множественному шифрованию добавляется гибридное шифрование.

Третий уровень шифрования:Затем эта капсула передается по защищенному SSL / TLS подключение к партнеру по коммуникации

Рекомендации

  1. ^ Грин, Мэтью (2 февраля 2012 г.). «Множественное шифрование».
  2. ^ Шнайер, Брюс (30 марта 2015 г.). Прикладная криптография, второе издание: протоколы, алгоритмы и исходный код на C. Wiley Computer Publishing. п. 368. ISBN  9781119096726.
  3. ^ «Коммерческие решения для секретной программы». Агентство национальной безопасности США. Архивировано из оригинал 25 декабря 2015 г.. Получено 24 декабря 2015.
  4. ^ «Пакет возможностей мобильного доступа». Агентство национальной безопасности США. Получено 28 февраля 2020.
  5. ^ а б Адамс, Дэвид / Майер, Анн-Катрин (2016): БОЛЬШОЕ СЕМЬ исследование, сравнение криптографических мессенджеров с открытым исходным кодом - или: Комплексный обзор конфиденциальности и аудит GoldBug, шифрование клиента электронной почты и безопасный обмен мгновенными сообщениями, описания, тесты и аналитические обзоры 20 функций приложения GoldBug на основе основных полей и методов оценки 8 основных международных руководств по аудиту для расследований ИТ-безопасности, включая 38 рисунков и 87 таблиц. URL: https://sf.net/projects/ goldbug / files / bigseven-crypto-audit.pdf - английский / немецкий язык, версия 1.1, 305 страниц, июнь 2016 г. (ISBN: DNB 110368003X - 2016B14779)
  6. ^ http://goldbug.sf.net

дальнейшее чтение

  • «Множественное шифрование» в «Криптоглоссарий и словарь технической криптографии Риттера»
  • Конфиденциальность посредством множественного шифрования, в: Адамс, Дэвид / Майер, Анн-Катрин (2016): исследование BIG SEVEN, сравнение криптографических мессенджеров с открытым исходным кодом - или: Комплексный обзор конфиденциальности и аудит GoldBug, шифрование почтового клиента & Secure Instant Messenger, описания, тесты и аналитические обзоры 20 функций приложения GoldBug на основе основных полей и методов оценки 8 основных международных руководств по аудиту для расследований ИТ-безопасности, включая 38 рисунков и 87 таблиц. URL: https://sf.net/projects/goldbug/files/bigseven-crypto-audit.pdf - Английский / немецкий язык, версия 1.1, 305 страниц, июнь 2016 г. (ISBN: DNB 110368003X - 2016B14779).
  • «Способ объединения нескольких блочных алгоритмов», так что «криптоаналитик должен сломать оба алгоритма» в §15.8 Прикладная криптография, второе издание: протоколы, алгоритмы и исходный код на C пользователя Брюс Шнайер. Wiley Computer Publishing, John Wiley & Sons, Inc.
  • С. Эвен, О. Гольдрайх, О мощности каскадных шифров, Транзакции ACM в компьютерных системах, т. 3. С. 108–116, 1985.
  • М. Маурер и Дж. Л. Мэсси, Каскадные шифры: важность быть первым, Журнал криптологии, вып. 6, вып. 1. С. 55–61, 1993.