Теперь мы уже понимаем, что чаще всего для защиты своей
информации законные пользователи вынуждены применять неабсолютно стойкие
шифры. Такие шифры, по крайней мере теоретически, могут быть вскрыты.
Вопрос только в том, хватит ли у противника сил, средств и времени для
разработки и реализации соответствующих алгоритмов.
Обычно эту мысль выражают так: противник с неограниченными ресурсами может вскрыть любой неабсолютно стойкий шифр.
Как же должен действовать в этой ситуации законный
пользователь, выбирая для себя шифр? Лучше всего, конечно, было бы
доказать, что никакой противник не может вскрыть выбранный шифр, скажем,
за 10 лет и тем самым получить теоретическую оценку стойкости. К
сожалению, математическая теория еще не дает нужных теорем — они
относятся к нерешенной проблеме нижних оценок сложности задач.
Поэтому у пользователя остается единственный путь —
получение практических оценок стойкости. Этот путь состоит из следующих
этапов:
— понять и четко сформулировать, от какого противника мы
собираемся защищать информацию; необходимо уяснить, что именно
противник знает или сможет узнать о системе шифра, какие силы и средства
он сможет применить для его вскрытия;
— мысленно стать в положение противника и пытаться с его
позиций атаковать шифр, т.е. разрабатывать различные алгоритмы вскрытия
шифра; при этом необходимо в максимальной мере обеспечить моделирование
сил, средств и возможностей противника;
— наилучший из разработанных алгоритмов использовать для практической оценки стойкости шифра.
Здесь полезно для иллюстрации упомянуть о двух
простейших методах вскрытия шифра: случайного угадывания ключа (он
срабатывает с маленькой вероятностью, зато имеет маленькую сложность) и
перебора всех подряд ключей вплоть до нахождения истинного (он
срабатывает всегда, зато имеет очень большую сложность). |