Приведу в своем маленьком бложике свои наивные рассуждения о криптоанализе.
Итак, почему же криптоаналитик печальный? А вот представьте, сидит криптоаналитик на работе, никого не трогает и вообще, примус починяет для разнообразия. А тут ему раз, начальство такое и подсовывает зашифрованный файлик для работы. То есть для его дешифрования.
И ладно бы файлик был зашифрован каким-нибудь простым шифром, типа замены символов. Но так уже давно никто не делает, поэтому успешный статистический анализ не возможен. И вот тут криптоаналитик становится очень печален. Ведь у него есть один шифротекст и всё! Он не знает ни ключ, ни алгоритм шифрования.
В этой ситуации криптоаналитик подобен беспомощному котенку. И помочь ему могут только крепкие, бравые парни-разведчики. Проведя сложную и опасную операцию они стырили у объекта слежки алгоритм шифрования.
А чего его тырить? Чего бы объекту не использовать стандартный? Можно, и даже нужно использовать, если шифруемые данные не слишком уж конфиденциальны. В противном случае выгодней использовать нестандартный алгоритм шифрования. Неочевидная выгода здесь в том, что к стандартному алгоритму шифрования у криптоаналитика может иметься готовый (и, естественно, не опубликованный) метод взлома. Использование индивидуального алгоритма несколько усложнит задачу криптоаналитика, заставив его понервничать. Благо реализация простенького симметричного алгоритма шифрования доступна практически любому студенту-программисту.
Ну так вот, смотрит криптоаналитик этот алгоритм, и видит там банальный ЛКГ. Уже ведь смешно, правда? В каждой википедии написано, что ЛКГ не криптостоек и ломается левой пяткой. Я вот прочитал и тоже подумал так себе, и в самом деле, очень простой, наверное, и правда легко вскрывается.
А потом решил найти готовое решение или подробный алгоритм. И что-то не нашел ничего. Как обычно, наверное, плохо искал.
На поверхности лежит лишь тот факт, что зная последовательность, сгенерированную ЛКГ, можно легко восстановить параметры генератора, и, соответственно, легко вскрыть шифр.
Но у нашего аналитика кроме одного шифрованного файла больше ничего нет. Как же он вскроет шифр?
Похоже, в этой ситуации другого пути, кроме грубой силы нет.
Вы можете мне возразить, что, так как ЛКГ очень прост, то он легко взламывается прямым перебором. Отчасти это так. Но есть у этой простоты и другая сторона. Так как ЛКГ очень прост, то можно очень легко увеличить его разрядность, лишь слегка замедлив процесс шифрации. В то время как взлом грубой силой при этом замедлиться катастрофически.
Когда же криптоаналитик с таким простым шифром станет счастливым? Лишь тогда, когда бравые разведчики добудут ему не только алгоритм, но и пару файлов: открытого текста и соответствующего ему шифротекста.
Вот тогда аналитик вскроет шифр в самом деле практически мгновенно.
Впрочем, радость его будет не долгой. Небольшие изменения в процесс шифрации сделают его работу трудновыполнимой. Но об этом в следующий раз.
А пока расскажите мне, может, я где-то ошибся в своих рассуждениях?
Конечно всегда есть вероятность что враг знает уязвимость в алгоритме и молчит, поэтому существует в России, как я понимаю, используют ГОСТ, а не полагаются на AES :) Но все таки алгоритм должен быть открытым и известым (принцип Керкгоффса). Проще сразу отделить мух от котлет, секретный ключ от алгоритма чем трястись над обоими, да к тому же ключ передать/поменять в разы проще чем алгоритм.
ОтветитьУдалитьВ современном мире я бы не то что писать свой, но даже реализовывать или компилировать существующий алгоритм постарался избегать, так как с современным оптимизирующими компиляторами это далеко не так просто написать код не подверженный timing attack.
Timing attack - правда не особо в тему про дешифровку статического сообщения :)
УдалитьОтвет большой получился, поэтому отдельным постом...
Удалить