Множественное шифрование
Множественное шифрование — это процесс шифрования уже зашифрованного сообщения один или несколько раз с использованием того же или другого алгоритма. Он также известен как каскадное шифрование , каскадное шифрование , множественное шифрование и супершифрование . Супершифрование относится к шифрованию внешнего уровня множественного шифрования.
Некоторые криптографы, такие как Мэтью Грин из Университета Джонса Хопкинса, говорят, что множественное шифрование решает проблему, которой в большинстве случаев не существует: современные шифры редко ломаются... Вероятность того, что вас поразит вредоносное ПО или ошибка реализации, гораздо выше, чем вы сами. подвергнуться катастрофической атаке на AES . [1] .... и в этой цитате кроется причина многократного шифрования, а именно плохая реализация. Использование двух разных криптомодулей и процессов шифрования от двух разных поставщиков требует, чтобы оборудование обоих поставщиков было скомпрометировано, чтобы безопасность полностью не сработала.
Независимые клавиши
[ редактировать ]Выбрав любые два шифра , если используемый ключ один и тот же для обоих, второй шифр может частично или полностью отменить первый шифр. Это справедливо для шифров, где процесс дешифрования точно такой же, как и процесс шифрования ( взаимный шифр ) — второй шифр полностью отменит первый. Если злоумышленник восстановит ключ посредством криптоанализа первого уровня шифрования, он, возможно, сможет расшифровать все оставшиеся уровни, предполагая, что для всех уровней используется один и тот же ключ.
Чтобы предотвратить этот риск, можно использовать ключи, которые статистически независимы для каждого уровня (например, независимые ГСЧ ).
В идеале каждый ключ должен иметь отдельные и разные процессы генерации, совместного использования и управления.
Независимые векторы инициализации
[ редактировать ]Для процессов шифрования/дешифрования, которые требуют совместного использования вектора инициализации (IV)/ nonce, они обычно открыто передаются или доводятся до сведения получателя (и всех остальных). Это хорошая политика безопасности: никогда не предоставлять одни и те же данные как в открытом, так и в зашифрованном виде при использовании одного и того же ключа и IV. Поэтому рекомендуется (хотя на данный момент без конкретных доказательств) использовать отдельные IV для каждого уровня шифрования.
Важность первого слоя
[ редактировать ]За исключением одноразового блокнота , ни один шифр не оказался теоретически неуязвимым. можно обнаружить некоторые повторяющиеся свойства Более того, в зашифрованных текстах, сгенерированных первым шифром, . Поскольку эти зашифрованные тексты являются открытыми текстами, используемыми вторым шифром, второй шифр может оказаться уязвимым для атак, основанных на известных свойствах открытого текста (см. ссылки ниже).
Это тот случай, когда первый уровень представляет собой программу P, которая всегда добавляет одну и ту же строку S символов в начале (или конце) всех зашифрованных текстов (обычно называемую магическим числом ). Найденная в файле строка S позволяет операционной системе узнать, что для расшифровки файла необходимо запустить программу P. Эту строку следует удалить перед добавлением второго слоя.
Чтобы предотвратить такого рода атаки, можно использовать метод Брюса Шнайера : [2]
- Создайте случайный блокнот R того же размера, что и открытый текст.
- Зашифруйте R, используя первый шифр и ключ.
- Выполните XOR открытого текста с помощью блока, затем зашифруйте результат, используя второй шифр и другой (!) Ключ.
- Объедините оба зашифрованных текста, чтобы создать окончательный зашифрованный текст.
Криптоаналитик должен взломать оба шифра, чтобы получить какую-либо информацию. Однако это будет иметь тот недостаток, что зашифрованный текст будет вдвое длиннее исходного открытого текста.
Однако обратите внимание, что слабый первый шифр может просто сделать второй шифр, уязвимый для атаки с выбранным открытым текстом, также уязвимым для атаки с известным открытым текстом . Однако, , блочный шифр чтобы считаться безопасным не должен быть уязвимым для выбранной атаки открытого текста. Следовательно, второй шифр, описанный выше, также не является безопасным согласно этому определению. Следовательно, оба шифра все равно необходимо взломать. Эта атака иллюстрирует, почему делаются серьезные предположения о безопасных блочных шифрах и о том, что шифры, которые даже частично взломаны, никогда не должны использоваться.
Правило двух
[ редактировать ]« Правило двух» — это принцип безопасности данных, разработанный АНБ «Коммерческие решения для секретной программы» (CSfC). [3] Он определяет два полностью независимых уровня криптографии для защиты данных. Например, данные могут быть защищены как с помощью аппаратного шифрования на самом низком уровне, так и с помощью программного шифрования на уровне приложений. Это может означать использование двух проверенных FIPS программных криптомодулей от разных поставщиков для шифрования/расшифровки данных.
Важность разнообразия поставщиков и/или моделей между уровнями компонентов сосредоточена на устранении возможности того, что производители или модели будут иметь общую уязвимость. Таким образом, если один из компонентов будет скомпрометирован, все равно останется целый уровень шифрования, защищающий хранящуюся или передаваемую информацию. Программа CSfC предлагает решения для достижения разнообразия двумя способами. «Первый — реализовать каждый уровень с использованием компонентов, произведенных разными производителями. Второй — использовать компоненты одного и того же производителя, где этоПроизводитель предоставил АНБ достаточные доказательства того, что реализации двух компонентов независимы друг от друга». [4]
Этот принцип реализован в защищенном мобильном телефоне АНБ под названием Fishbowl. [5] В телефонах используются два уровня протоколов шифрования: IPsec и безопасный транспортный протокол реального времени (SRTP) для защиты голосовой связи. Samsung Galaxy S9 Tactical Edition также является одобренным компонентом CSfC.
Примеры
[ редактировать ]На рисунке изнутри и снаружи показан процесс формирования зашифрованной капсулы в контексте протокола Echo, используемого программным приложением GoldBug Messenger. [6] GoldBug внедрил гибридную систему аутентификации и конфиденциальности. [5]
Первый уровень шифрования: Зашифрованный текст исходного читаемого сообщения хешируется, а затем симметричные ключи шифруются с помощью асимметричного ключа, например, с использованием алгоритма RSA.На промежуточном этапе зашифрованный текст и хеш-дайджест зашифрованного текста объединяются в капсулу и упаковываются вместе.Это следует подходу: зашифровать-затем-MAC . Чтобы получатель мог убедиться, что зашифрованный текст не был подделан, перед расшифровкой зашифрованного текста вычисляется дайджест.
Второй уровень шифрования: Поэтому при желании все еще возможно зашифровать капсулу первого уровня дополнительно с помощью AES-256 , что сравнимо с широко используемым 32-значным симметричным паролем. Гибридное шифрование затем добавляется к множественному шифрованию. [ нужна ссылка ]
Третий уровень шифрования: Затем эта капсула передается через защищенное соединение SSL/TLS партнеру по связи.
Ссылки
[ редактировать ]- ^ Грин, Мэтью (2 февраля 2012 г.). «Множественное шифрование» .
- ^ Шнайер, Брюс (30 марта 2015 г.). Прикладная криптография, второе издание: протоколы, алгоритмы и исходный код на C. Компьютерное издательство Wiley. п. 368. ИСБН 9781119096726 .
- ^ «Коммерческие решения для секретной программы» . Агентство национальной безопасности США. Архивировано из оригинала 25 декабря 2015 года . Проверено 24 декабря 2015 г.
- ^ «Пакет возможностей мобильного доступа» . Агентство национальной безопасности США . Проверено 28 февраля 2020 г. .
- ^ Jump up to: а б Адамс, Дэвид / Майер, Анн-Катрин (2016): Исследование BIG SEVEN, крипто-мессенджеры с открытым исходным кодом для сравнения - или: Комплексный обзор конфиденциальности и аудит 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)
- ^ «GoldBug — безопасный клиент электронной почты и мгновенный обмен сообщениями» .
Дальнейшее чтение
[ редактировать ]- «Множественное шифрование» в «Криптоглоссарии и словаре технической криптографии Риттера»
- Конфиденциальность посредством мультишифрования, в: Адамс, Дэвид / Майер, Анн-Катрин (2016): Исследование BIG SEVEN, сравниваемые крипто-мессенджеры с открытым исходным кодом - или: Комплексный анализ конфиденциальности и аудит GoldBug, Encrypting E-Mail-Client & 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.