Рейтинг:2

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

флаг dk

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

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

Рейтинг:2
флаг in

ChaCha20 является потоковым шифром и выводит поток $O_i$ для шифрования сообщений, чтобы получить зашифрованный текст $$C_i = M_i\oplus O_i$$ Ваше следующее шифрование будет $$C_i' = M_i\oplus O_i \oplus O_i'$$ где $O_i'$ является выходом второго ChaCha20 с другим ключом.

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

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

Удаление слоев здесь бесполезно, так как $$случайное \oplus сообщение = случайное$$ Так что никакой информации для проверки не будет.

Это не ваша настоящая проблема, вашей реальной проблемой будет управление ключами. Будьте осторожны, как вы их генерируете/извлекаете и как вы храните/извлекаете.

Использование одного ChaCha20 с 256-битным ключом достаточно, чтобы быть в безопасности от всех злоумышленников (классических или квантовых) с единым случайным ключом. Если вы действительно хотите использовать двойное шифрование, объедините его с другим алгоритмом шифрования, таким как AES-GCM.

Имейте в виду, что рассмотрение и анализ многократного (каскадного) шифрования начались с рассмотрения слабости DES. Ули М. Маурер и Джеймс Л. Мэсси в 1993 году показали в Каскадные шифры: как важно быть первым это;

  • Каскадная конструкция безопасна, так как первый шифр и дополнительная безопасность не гарантируются. На эту тему есть сообщение в блоге Мэтью Грина; Множественное шифрование как отметил ВОА Перегринус.

Для потоковых шифров результат другой (снова Маурер и Мэсси);

  • Следствие 2. Побитовый модуль $2$ сумма $n$ последовательности потока ключей, генерируемые устройствами с независимыми ключами, по меньшей мере так же сложно предсказать, как и наиболее трудно предсказуемую последовательность потока ключей.
SAI Peregrinus avatar
флаг si
Что касается последнего абзаца, вы можете отметить, что многократное шифрование столь же надежно, как и *первый* используемый шифр, но не обязательно сильнее. Он может быть сильнее, и для современных шифров обычно так и есть (хотя и бесполезно). Кроме того, если первый шифр защищен IND-CCA2, а внешние нет, могут быть некоторые атаки на внешнюю гибкость. https://blog.cryptographyengineering.com/2012/02/02/multiple-encryption/
Maarten Bodewes avatar
флаг in
Наличие отличительного признака, вероятно, является самым простым плодом, когда дело доходит до обнаружения уязвимостей криптографии. Для ChaCha20 этот плод все еще висит слишком высоко, но это следует учитывать. Кроме того, если к зашифрованному тексту добавляются какие-либо метаданные (например, неслучайный IV), то различитель присутствует, даже если сам зашифрованный текст его не предоставляет. Как сказал ВОА Перегринус, это *необязательно* намного лучше, чем одиночное шифрование, и, как сказал kelalaka: хорошее управление ключами, вероятно, важнее.
kelalaka avatar
флаг in
Ну, на самом деле, я не хотел погружаться в это. добавил некоторые. Я считаю, что одного шифрования достаточно. Я использовал неразличимость в том смысле, что злоумышленник не может проверить значения после того, как каким-то образом удалит один слой, поскольку все случайно. Существование метаданных помещается в какой-либо другой или оракул. Спасибо за комментарии.

Ответить или комментировать

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