Вопрос о целесообразности использования блочных шифров
Добрый день.
О криптографии знаю не много.
Последние пару дней читал всевозможные форумы/FAQ-и.
И вот что бросаеться сразу в глаза:
почему используют болчные шифры, в то в ремя когда трудно обеспечить стойкий режим работы таких шифров? И почему именно 128 бит, а не более? Не лучше использовать длину блока скажем 1024 бит?
Да возмоджно связано с тем что такие алгоритмы часто реализуються на микросхемах...
Но все же...
[какой-то глюк с форумом, второй раз пишу, а ничего нет]
комментариев: 9796 документов: 488 редакций: 5664
Наоборот, ни одного потокового шифра, равного по доказуемой стойкости блочному, не создано. Нет нормальной теории потоковых шифров, у многих есть "различители", конкурс eCrypt на лучший потоковый шифр длится долго и результаты пока неубедительны.
Размер блока или размер ключа?
Блок 64 бита – даёт утечку открытого текста в некоторых режимах шифрования на примерно 8 гигабайтах, а 128 – на примерно 32000000000 гигабайтах.
размер ключа 64 бит может быть подобран современными компьютерными мощностями, 128 бит требует на подбор при минимальных затратах энергии (1 электронвольт, теоретический физический предел) столько, сколько её потребуется на то, чтобы растопить льды Антарктиды. Дальнейший рост симметричного ключа – только перестраховка от атак на несовершенство шифра, режима шифрования или протокола или изобретения квантовых компьютеров, а даже при росте мощностей обычных – основные проблемы возникают у асимметричных алгоритмов, которые и становятся слабым звеном.
необязательно. В дешёвых микросхемах (старые мобильники, WiFi) как раз используют дешёвые микросхемы для более скоростного потокового шифрования, а нормальный блочный шифр редко где встречается, нормально реализованный в бытовом или массовом железе.
комментариев: 9796 документов: 488 редакций: 5664
Чем больше длина блока, тем сложнее добиться правильной, с точки зрения криптостойкости, диффузии – распространения изменений вдоль блока.
Размеры S-блоков внутри шифра увеличить нельзя – резкий рост памяти, С другими нелинейными элементами тоже могут быть проблемы в дизайне. придётся увеличивать число раундов и возможно вводить ещё что-то, снижающее скорость и повышающее требование к ресурсам.
И шифр да, должен быть универсальным: какой-то сервер этим же шифром может обрабатывать сотни тысяч соединений и лишний килобайты и миллисекунды могут перемножиться в большие величины. И тот же шифр и на микросхемах должен работать с крошечным ОЗУ и слабыи процессором.
Специально конструируют шифры с большим блоком – для ядра хэш-функций и в попытках создать особо стойкое дисковое шифрование (где размер сектора например 4096 бит и хорошо бы его весь и перешифровывать при записи).
При ключе 128 бит =>2^128 стойкость шифра равна корень(2^128)=2^64.
log(2^64)=19,3.
Теперь 10^9( частота процессора)+ 10^3 (процессоров)+10^2 ( таких компов)+
+ 10^log( 60сек*60мин*24часа*31день)=10^20,4.
Соответственно с большой вероятностью взлом блочного шифра за месяц.
( +тут не учтены оптимизации, слабые места реализации и т.д.).
Вот этого я не понимаю.
Опыт жизни показывает – для конкретной цели нужен конкретный инструмент.
(есть легковушки, есть автобусы, есть грузовики и т.д., и ни у кого не возникает вопроса а зачем столько автомобилей?).
Вот для таких целей использовать современные блочные шифры, но
скажем мне нужно отправить письмо размером 3 Кб, то зачем мне простой шифр? Тут уже нужна надежность..
Домашний ПК: 2ГГцпроцессор,2Гб оперативка и т.д., этого мало для того чтобы отказаться от ЭС- блоков на 4 бита, и перейти на более крупные блоки?
комментариев: 9796 документов: 488 редакций: 5664
Только при специфических атаках. В том виде, как шифр реализован в программах шифрования его стойкость и остаётся 2128.
Потому что на шифрование нужен единый стандарт. И даже на его анализ уходят годы и усилия множества людей. И даже на стандарты не хватает усилия исследователей. Так, до сих пор не решены проблемы стандартизации режимов дискового шифрования, например. Нет доверяемого стандарта на режим шифрования с аутентификацией.
А с криптопримитивами (блочными шифрами, хэшами и пр.), если кто-то будет изобретать под каждую задачу – качественных работ по полному анализу не ждите.
Зоопарк шифров никто не будет поддерживать. Гораздо больше вероятности, что ошибка дизайна "сверхнадёжного" и "сверхтяжёлого" шифра останется незамеченной.
Если есть спрос (есть люди которые хотят шифровать надежными шифрами), то будет и товар, независимо от того что кто-то не хочеть это поддерживать.
И судя по моим поискам в гугле, таких(очень сложных) шифров практически нет.
комментариев: 9796 документов: 488 редакций: 5664
как простой потребитель может оценить, какой шифр надёжный?
Кто из серьёзных криптографов будет тратить своё время не на разработку и анализ стандарта шифрования, а распылять силы на шифры узкого применения? Криптопримитив – это не программа, которая должна просто работать. Для того, чтобы он обрёл репутацию, нужно внимание и изучение всего сообщества.
Плюс, сложный – не значит автоматически более стойкий. Можно специально придумать очень сложный с хитрой трудновыявляемой аналитической лазейкой.
Или случайно допустить трудновыявляемый дефект.
По поводу – "есть спрос – есть товар" – напоминает аналогию с лекарствами и рекламу фарма-индустрии, которая потакает некомпетентному спросу (хочу чтобы просто лечило и желательно от всего) и получает прибыли.
Шифры – это не товар. Это результат деятельности прикладных научных исследований. Они бесплатны (кроме практически никому не нужных исключений).
комментариев: 11558 документов: 1036 редакций: 4118
Есть каскадное шифрование несколькими различными шифрами с помощью независимых ключей.
При каскадном шифровании какие режимы посоветуете?
комментариев: 9796 документов: 488 редакций: 5664
А вот режимы, в которых отдельные шифры каскада связываются друг с другом по-отдельности, могут как повышать, так и снижать стойкость, поэтому к ним можно относится с подозрением.
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 9796 документов: 488 редакций: 5664
Для выработки нескольких условно независимых ключей из одного можно использовать KDF (Key Derivation Function) – криптостойкую функцию генерации производных ключей.
комментариев: 9796 документов: 488 редакций: 5664
Cryptanalysis of Multiple Modes of Operation
Cryptanalysis of Triple-Modes of Operation
Там рассмотрены и каскады из разных шифров и режимов, в частности случай:
А во многих случаях тупое смешивание в каскад (там на примере одного шифра – DES, но с разными шифрами и одним ключом скорее всего будет также):