Лекция
доцента кафедры ИВТ Гродненского госуниверситета
канд. техн. наук Ливак Елены Николаевны
Надежность криптографической защиты
При реализации механизмов криптозащиты особое внимание уделяется выбору и секретности ключа.
Фундаментальным допущением криптоанализа является правило Киркхоффса (Dutchman A. Kerckhoffs): секретность сообщения должна определяться только секретностью ключа.
Криптографичекий алгоритм считается вычислительно стойким, если не может быть взломан с помощью доступных (как сейчас, так и в будущем) вычислительных ресурсов. «Стойкость криптосистем оценивают количественно в виде числа компьютерных операций W, необходимых криптоаналитику для вскрытия ключа (или исходного текста)».
Вычислительная сложность алгоритма выражается через символ O и указание порядка величины вычислительной сложности.
В настоящее время оценки сложности (криптостойкости) получены для всех известных криптографических систем. Согласно теории сложности, симметричные криптосистемы относятся к классу экспоненциальных алгоритмов: стойкость DES-криптосистемы оценивается как O(256), стойкость алгоритма TDEA - O(2168), криптосистемы IDEA – O(2128).
Системами, обладающими наибольшей стойкостью, сегодня считаются криптосистемы с открытым ключом (при достаточной длине ключа). Однако, методы шифрования с открытым ключом принципиально уязвимы, так как все без исключения математические методы, лежащие в их основе, базируются на так называемых NP-полных задачах, которые являются условно неразрешимыми. Кроме того, для многих NP-полных задач строятся эффективные приближенные алгоритмы (например, симплексметод в задаче линейного программирования), которые дают точные решения в течение реального времени. Более того, все NP-полные задачи сводимы одна к другой, то есть, если будет найдено непереборное решение хотя бы одной их них, то решенным окажется весь класс.
Однако следует заметить, что вычислительные мощности компьютеров постоянно растут, для решения многих криптоаналитических задач успешно применяются параллельные компьютеры и технологии распределенных вычислений. «В силу этих причин объявление алгоритма надежным только потому, что его нелегко взломать с помощью современной технологии, в лучшем случае спорно. Поэтому при создании хороших, устойчивых к взлому криптосистем, принимаются в расчет перспективы развития вычислительных средств на много лет вперед».
Безусловно стойким методом шифрования Брюс Шнайер (B.Schneier), независимый консультант и признанный специалист в области криптологии, называет только единственный метод – метод одноразового блокнота. «Теория информации утверждает возможность взлома всех криптографических алгоритмов (кроме одноразовых блокнотов)».
На практике используются следующие механизмы защиты программ, основанные на шифровании:
· шифрование кода программы (в открытом виде код программы находится только во время выполнения программы);
· шифрование фрагмента (участка) программы (чаще выбирают критический участок программы);
· шифрование данных (сильной реализацией специалистами признается шифрование данных прямо в исходном тексте программы).
На практике применяется как статическое, так и динамическое шифрование. При статическом шифровании весь код (фрагмент кода) один раз шифруется/расшифровывается. В зашифрованном виде код постоянно хранится на внешнем носителе, в открытом виде присутствует в оперативной памяти. При динамическом шифровании последовательно шифруются/расшифровываются отдельные фрагменты или критические участки программы.
Криптографическая защита реализуется на практике с помощью программных или программно-аппаратных средств. При использовании программно-аппаратных средств криптографические операции выполняются с помощью специального вычислительного устройства. Аппаратная реализация отличается существенной стоимостью, однако, увеличивает производительность и надежность криптосистемы. Программная реализация является универсальной, гибкой и простой в использовании и обновлении. Однако она является низкоскоростной и допускает простоту модификации (манипулирования) алгоритма.
Для усиления защиты, основанной на шифровании, используются следующие приемы.
По поводу эффективности криптографической защиты приведем мнение Криса Касперски, известного специалиста в области защиты компьютерной информации, автора книг «Техника и философия хакерских атак» [21], «Техника сетевых атак» [22], «Образ мышления дизассемблер IDA» [23] и многих других. «Эти защиты выглядят неломаемыми. «Выглядят» потому, что разработчики не учитывают разницу между теоретическими моделями и практической реализацией... очень многие используемые криптосистемы ненадежны, и практически все в той или иной степени уязвимы» [Касперски, 21, с. 30].
Специалистами достаточно изучены вопросы ненадежности криптографических систем защиты. Среди основных причин исследователи называют ограничения по применению стойких криптоалгоритмов, неправильную реализацию и применение криптоалгоритмов, а также человеческий фактор.
Ограничивают применение стойких криптоалгоритмов их малая скорость; экспортные ограничения (например, из США запрещен экспорт криптоалгоритмов с длиной ключа более 40 бит); использование разработчиками систем защиты собственных криптоалгоритмов, которые, как правило, не обладают достаточной криптостокостью.
Помимо ошибок в программной реализации и наличия люков (которые умышленно или специально оставлены разработчиками системы защиты), примерами неправильной реализации являются следующие ошибки.
Особую роль в применении криптографических систем защиты играет человеческий фактор. В любой системе ошибки пользователя являются самыми распространенными, но здесь корректная работа пользователя с системой защиты приобретает большое значение. Так, например, выбор пользователем короткого или осмысленного пароля криптостойкий алгоритм сведет к нулю.
На сегодняшний день разработаны и успешно реализовываются математические методы криптоанализа. Выработаны основные принципы, использующиеся при решении задач криптоанализа, определены типы криптоатак, дана классификация методов криптоанализа.
Атакой на криптосистему принято называть попытку криптоанализа. Известны четыре основных типа криптоаналитических атак:
1) Атака на основе только шифртекста.
Известно: С1 = Ek(P1), С2 = Ek(P2), ..., Сi = Ek(Pi).
Определить: либо P1, P2,..., Pi, K, либо алгоритм восстановления Pi+1 из Сi+1 = Ek(Pi+1).
2) Атака на основе открытого текста.
Известно: P1 ,С1 = Ek(P1), P2 ,С2 = Ek(P2), ..., Pi , Сi = Ek(Pi).
Определить: либо K, либо алгоритм восстановления Pi+1 из Сi+1 = Ek(pi+1).
3) Атака на основе подобранного открытого текста.
Известно: P1 ,С1 = Ek(P1), P2 ,С2 = Ek(P2), ..., Pi , Сi = Ek(Pi),
причем криптоаналитик может выбирать P1, P2,..., Pi.
Определить: либо K, либо алгоритм восстановления Pi+1 из Сi+1 = Ek(Pi+1).
4) Атака на основе адаптивно подобранного открытого текста.
Это особый случай атаки с использованием подобранного открытого текста. Криптоаналитик может не только выбирать шифруемый текст, но также уточнять свой последующий выбор на основе полученных ранее результатов шифрования.
Для криптоатаки асимметричных криптосистем применяется также
- атака на основе подобранного шифртекста:
Известно: С1 , P1 = Dk(C1), С2 , P2 = Dk(C2),..., Сi , Pi= Dk(Ci).
Определить: K.
Анализ используемых на практике криптоаналитических атак для дешифрования компьютерных программ показывает, что зашифрованные исходные коды программ, а также исполняемые коды программ являются особенно уязвимыми по отношению к атакам с использованием известного открытого текста и подобранного открытого текста. Криптоаналитку достаточно произвести данные типы атаки на основе предположения, что в исходном тексте программы используются известные ключевые слова и стандартные идентификаторы, известные строковые сообщения, а исполняемые коды программ содержат известные коды команд, вызовы функций и многое-многое другое.
Радикальным способом атаки на криптосистему является метод полного перебора ключей шифрования. Время, необходимое для полного перебора, зависит от двух параметров: числа тестируемых ключей и продолжительности каждого теста. Временная сложность метода полного перебора равна O(2n), где n – длина ключа.
Следует заметить, что еще несколько лет назад мощность компьютеров делала возможными заявления авторов систем защиты о том, что полный перебор ключей шифрования невозможен по причине огромного количества возможных ключей. Еще и сейчас для демонстрации эффективности системы защиты приводят мощность множества ключей (паролей), а надежность подтверждают длиной ключа. Но современные мощности компьютеров и новейшие технологии вычислений позволяют осуществлять полный перебор даже достаточно длинных ключей в течение приемлемого промежутка времени.
Кроме того, для увеличения скорости перебора уже предложены и могут быть усовершенствованы эффективные алгоритмы поиска и сравнения (как правило, основанные на формальной логике и использующие теорию множеств, теорию вероятностей и другие области математики). Задача полного перебора решается с помощью параллельных процессоров. Каждый процессор тестирует особое подмножество пространства ключей. При этом существенно то, что нет необходимости в обмене сообщениями между процессорами, достаточно одного единственного сообщения об успехе; не требуется и совместный доступ к памяти. В особых случаях возможно использование специализированного оборудования, выполняющего функции перебора.
Разновидностью метода полного перебора ключей является метод, с помощью которого вскрывают осмысленный пароль, так называемая атака по словарю. Программы, осуществляющие атаку по словарю, достаточно быстро работают, так как реализовывают эффективные алгоритмы поиска и сравнения. Многие из них даже не содержат базу слов, а пользуются словарями, встроенными в распространенные текстовые редакторы.
Для увеличения надежности криптографической защиты в настоящее время разрабатываются новые методики, основанные на фундаментальных законах физики. Так, в настоящее время развиваются квантовые системы шифрования. Квантовая система генерирует код, созданный из наборов отдельных фотонов с различной поляризацией и другими свойствами. Направление, в котором происходят колебания электрического поля фотона, соответствует нулям и единицам. Квантовое шифрование также имеет свои недостатки, поэтому в настоящее время многие ученые ставят под сомнение факт обеспечения высокого уровня защиты информации с помощью этого метода (особенно при передаче на большие расстояния).