расшифровка
может быть этот вопрос достаточно простой, но все равно его задам :)
Допустим есть какое-то сообщение зашифрованное одним из блочных шифров, например AES-128 (не важно каким). Допустим оно попало к злоумышленнику и он с помощью специальной программы пытается его расшифровать методом полного перебора или по словарю. Структура исходного открытого сообщения злоумышленнику не известна. Его программа берет слово из словаря и пробует его в качестве ключа для дешифрования сообщения. Если ключ не совпал с тем, которым было зашифровано сообщение – на выходе получается абракадабра. А если совпал – исходное открытое сообщение. Правильно?
А теперь вопрос – как программа злоумышленника может узнавать, что расшифровка успешно удалась и перед нами исходный текст? Как она отличит абракадабру от правильного исходного текста? Как вообще такие программы работают?
комментариев: 98 документов: 8 редакций: 10
комментариев: 9796 документов: 488 редакций: 5664
Конечно будет проблема со сжатыми файлами (архивами, mp3 и т.д.), но мы считаем, что противник знает все детали системы кроме ключа (а если не знает, то легко догадается).
Кстати, в пакет unix-bin-utils входит strings:
Как она точно работает не знаю (наверное какой-то статистическо-эвристический алгоритм), но строки, похожие на текст из любых файлов выдирает идеально и очень быстро. Достаточно натравить её на случайный файл или для сравнения на бинарник или библиотеку.
Кроме того, взлому может подвергается, например, VPN соединение, где заголовки исходного текста известны. Достаточно обнаружить их в потоке расшифрованных данных и не нужно различать открытый текст.
Конечно, с малой вероятностью могут выпасть ключи, которые дадут что-то похожее на открытый текст (т.н. консистентные ключи), но достаточно проверить их на другом участке шифртекста и решить: являются ли они истинными или их надо отбросить.
Существую и методы усиления криптостойкости, основанные на усложнении задачи распознавания открытого текста. Например подмешивание случайных данных в половину каждого блока с последующим их отбрасыванием при расшифровке. Внесение ложных и статистически скорректированных открытых текстов и т.д.
Но они как правило ресурсоёмки и на практике не применяются, т.к. всё строится на стойкости базового шифра и других атомарных примитивов и как можно более простых и рациональных использующихся протоколов.
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 9796 документов: 488 редакций: 5664
Это несколько из иной области применения. Задача таких систем не в затруднении определения открытого текста после дешифровки, а затруднение взлома на этапе поиска передаваемого в гибридной системе симметричного ключа – например передаётся один и тот же ключ или разные?
Хотя было бы интересно представить гибридные системы где и ассиметричная и симметричная часть недетрминированы.
Пока это направление так и считается "перспективным" как 'дцать лет тому назад. То есть на практике не применяется. Если будут какие-то проблемы с RSA и др., тогда возможно будут разрабатывать альтернативные алгоритмы.