ПРОБЛЕМЫ ОЦЕНКИ КРИПТОЗАЩИЩЁННОСТИ ИНФОРМАЦИОННЫХ СИСТЕМ
С.М. Авдошин,
профессор, руководитель отделения программной инженерии, заведующий кафедрой управления разработкой программного обеспечения Государственного университета — Высшей школы экономики, академик Всемирной академии наук комплексной безопасности, член-корр. Международной академии информатизации, Россия savdoshin@hse.ru А.А. Савельева,
преподаватель кафедры управления разработкой программного обеспечения отделения программной инженерии факультекта бизнес-информатики Государственного унивеститета-высшей школы экономики. asavelieva@hse.ru
Рассмотрено построение классификаций криптографических средств, криптоаналитических атак и злоумышленников, действия которых направлены на взлом криптосистем. Построена модель угроз безопасности в конкретной компьютерной системе, как композиция модели злоумышленника, модели атак и модели криптосистемы.
^ л
Введение
Разработка новых подходов для анализа защищённости информационных систем — актуальная задача в области информационной безопасности. Особое место занимает проблема оценки криптографических средств защиты на предмет их соответствия потребностям организации.
Задача определения эффективности системы защиты информации (СЗИ) при использовании криптографических методов защиты зачастую более трудоёмкая, чем их разработка, требует наличия специальных знаний и более высокой квалификации [Ростовцев, 98]. Анализ криптостойкости шифра — научная, а не инженерная задача. Эффективность одной и той же криптосистемы в разных контекстах использования может существенно отличаться. Использование СЗИ, обеспечивающей устойчивость к взлому ниже некоторой «фоновой» вероятности экономически неоправданно [11]. Например, если вероятность выхода компании из бизнеса менее чем один из миллиона, нет смысла в защите информации, могущей нанести компании ущерб, сопоставимый с кризисом рынка, и использовать алгоритм, вероятность вскрытия которого за приемлемое время составляет 2-200.
При разработке подходов к анализу криптогра-
фической защищённости информационной системы необходимо учитывать, каким угрозам подвергнется система со стороны злоумышленников. В первом разделе приведены результаты систематизации криптографических средств защиты и анализа их функциональных возможностей. Во втором разделе описана классификация существующих типов криптоатак с учётом различных критериев. Последний раздел посвящён построению модели злоумышленника, заданной с помощью ряда параметров. Разработанные классификации позволяют определить зависимость атак, которым может подвергаться криптосистема, от области её использования.
Классификация криптографических средств
Существуют несколько способов, в соответствии с которыми могут классифицироваться криптографические системы. В классификационную схему, предлагаемую в данной работе, включены критерии, важные с точки зрения оценки практической эффективности криптосистемы. Разработанная классификация позволяет определить подверженность криптосистемы тем или иным типам атак со стороны злоумышленника, идентифицируя её в соответствии с особенностями реализации. Криптографические средства различают по:
♦ доступности информации о криптоалгоритме: ^ криптосистемы ограниченного использования;
^ криптосистемы общего использования;
♦ количеству ключей:
^ бесключевые;
^ одноключевые;
^ двухключевые;
^ многоключевые;
♦ стойкости криптоалгоритма:
^ безусловно стойкие;
^ доказуемо стойкие;
^ предположительно стойкие;
♦ используемым средствам шифрования:
^ программные;
^ аппаратные;
^ программно-аппаратные;
♦ наличию сертификата:
^ сертифицированные;
^ несертифицированные.
Классификация по доступности информации о криптоалгоритме
В работе [24] описана следующая классификация криптосистем:
♦ криптосистемы ограниченного использования;
♦ криптосистемы общего использования.
Криптографическая система называется криптосистемой ограниченного использования, если её стойкость основывается на сохранении в секрете самого характера алгоритмов шифрования и дешифрования. Простейший пример такой системы — шифр Цезаря, в котором преобразование информации сводится к простой замене каждого символа открытого текста третьим следующим за ним символом алфавита. Секретность алгоритма не является большим препятствием, например, для определения типа программно реализованного криптографического алгоритма требуется лишь несколько дней инженерного анализа исполняемого кода.
Стойкость криптосистемы общего использования в соответствии со сформулированным Крик-хоффсом фундаментальным допущением криптоанализа основывается не на секретности алгоритмов шифрования и дешифрования, а на секретности некоторого значения, называемою её ключом. Такой ключ должен вырабатываться конкретными пользователями таким образом, чтобы даже разработчик криптосистемы не мог раскрыть её, не имея доступа к ключу. Для некоторых применений (в военных, дипломатических и разведывательных ведомствах) у разработчика общей криптосистемы нет причин
открытым образом описывать характер её алгоритмов. Сохраняя информацию об алгоритме в тайне, можно обеспечить дополнительную безопасность. Однако решающим обстоятельством, позволяющим полагаться на такую секретность, это не является, поскольку ничего нельзя сказать о том, когда она может быть скомпрометирована. По этой причине исследования надёжности таких систем всегда должны проводиться в предположении, что потенциальному противнику о криптосистеме известно всё, за исключением используемого ключа.
Как показывает Брюс Шнайер в своей статье [25], нежелание разработчиков открыто обсуждать криптоалгоритмы — это сигнал, что их продуктам нельзя доверять. Показателен приведённый в [26] пример программы eBook Pro. Она преподносилась разработчиками как «единственный программный продукт во вселенной, способный обеспечить Вашей информации практически 100% защиту от взлома». При анализе надёжности оказалось, что защита заключается в наложении при помощи операции XOR на каждый байт защищаемых данных последовательно всех байтов строки «encrypted», что эквивалентно наложению однобайтовой константы и обеспечивает возможность извлечения защищённой информации без подбора ключа или иных длительных операций.
Классификация по количеству ключей
По классификационной схеме, описанной в [14], криптосистемы подразделяются на:
♦ бесключевые, не использующие каких-либо ключей в процессе криптографических преобразований;
♦ одноключевые, использующие в своих вычислениях некий секретный ключ;
♦ двухключевые, в которых на различных этапах вычислений применяются два вида ключей: секретные и открытые.
В двухключевых криптосистемах для зашифрования и расшифрования используются различные функции. Асимметричные алгоритмы основаны на ряде математических проблем, на которых и базируется их стойкость. Пока не найден полиномиальный алгоритм решения этих проблем, данные алгоритмы будут стойкими.
Наиболее известные асимметричные криптосистемы:
♦ рюкзачная криптосистема (Knapsack Cryptosystem) [16];
♦ криптосистема RSA;
♦ криптосистема Эль-Гамаля — EGCS (El Gamal Cryptosystem);
♦ криптосистема, основанная на свойствах эллиптических кривых — ECCS (Elliptic Curve Cryptosystems).
Применение алгоритмов шифрования с открытым ключом позволяет:
♦ избавиться от необходимости секретных каналов связи для предварительного обмена ключами;
♦ свести проблему взлома шифра к решению трудной математической задачи, т.е. принципиально по-другому подойти к обоснованию стойкости криптосистемы;
♦ решать средствами криптографии задачи, отличные от шифрования, например, задачу обеспечения юридической значимости электронных документов.
Общепризнано подразделение одноключевых (симметричных) криптографических алгоритмов на следующие основные категории:
♦ блочные шифры;
♦ поточные шифры.
Идея, лежащая в основе большинства итерационных блочных шифров, состоит в построении криптографически стойкой системы последовательным применением относительно простых криптографических преобразований. Принцип многоразового шифрования с помощью простых криптографических преобразований впервые предложен Шенноном в работе [15]: он использовал с этой целью преобразования перестановки и подстановки. Первое из этих преобразований переставляет отдельные символы преобразуемого информационного блока, а второе заменяет каждый символ (или группу символов) из преобразуемого информационного блока другим символом из того же алфавита (соответственно группой символов того же размера и из того же алфавита). Узлы, реализующие эти преобразования, называются соответственно P-блоками (P-box, permutation box) и S-блоками (S-box, substitution box). В качестве примера приведём отечественный стандарт шифрования «Алгоритм криптографического преобразования ГОСТ 28147-89». Стандарт принят в СССР в 1989 г. Если охарактеризовать алгоритм ГОСТ в самом общем виде, — это блочный шифр, построенный по схеме Фейстеля с 32 циклами шифрования. Длина информационного блока — 64 бита, длина ключа — 256 бит. В текущем стандарте США на симметричную криптографию — шифре AES [20] — определена длина блока, равная 128 битам. Криптоалгоритм
имеет переменную длин у блоков и различные длины ключей. Длина ключа и длина блока могут быть равны, независимо друг от друга, 128, 192 или 256 битам.
Поточные шифры почти всегда работают быстрее и требуют для своей реализации гораздо меньше программного кода, чем блочные шифры. Наиболее известный поточный шифр ЯС4 разработан Р. Ривестом; характеризуется переменным размером ключа и байт-ориентированными операциями. На один байт требуется от 8 до 16 действий, программная реализация шифра выполняется очень быстро. Независимые аналитики исследовали шифр. Он считается защищённым. ЯС4 используется для шифрования файлов в таких изделиях, как ЯБЛ БееигРС. Он применяется для защиты коммуникаций, например, для шифрования потока данных в Интернет-соединениях, использующих протокол SSL. Современная тенденция — использование блочных шифров в режиме поточного шифрования (например, поточное шифрование обеспечивают режимы CBF и OFB для алгоритма DES или режим гаммирования для алгоритма ГОСТ 28147-89).
К бесключевым криптосистемам относятся хеш-функции и генераторы псевдослучайных чисел. Хеш-функции — это математические или иные функции, принимающие на входе строку переменной длины (называемую прообразом) и преобразующие её в выводную сроку фиксированной (обычно меньшей) длины, называемую значением хеш-функции или сверткой [28]. Более формально определение представлено в [6]. Хеш-функции используются для контроля целостности сообщений, передаваемых по каналу связи, и генерации ЭЦП. Пусть ^:{0,1}''—>{0,1}г^п^ — функция, вычислимая за полиномиальное от п время, д(п) — некоторый полином. Такая функция называется генератором. Генератор g псевдослучаен [23], если порождаемые им последовательности неотличимы никаким полиномиальным вероятностным алгоритмом от случайных последовательностей той же длины д(п). Качественный ключ, для использования в рамках симметричной криптосистемы, представляет собой случайный двоичный набор. Если требуется ключ разрядностью п, в процессе его генерации с одинаковой вероятностью должен получаться любой из 2'' возможных вариантов. Генерация ключей для асимметричных криптосистем — процедура более сложная, т.к. ключи, применяемые в таких системах, должны обладать определёнными математическими свойствами. Например, в случае системы ЯБЛ модуль шифрования представляет собой произведение двух больших простых чисел.
Классификация по стойкости криптоалгоритма
Способность криптосистемы противостоять атакам криптоаналитика называется стойкостью. Количественно стойкость измеряется как сложность наилучшего алгоритма, приводящего криптоаналитика к успеху с приемлемой вероятностью. Универсальный метод прямого перебора множества всех возможных ключей позволяет получить оценку сверху для стойкости алгоритма шифрования. Проблема всей современной криптографии — это отсутствие нижней границы стойкости; длина ключа задаёт лишь общий объём пространства ключей, но всегда есть вероятность, ткнув пальцем в небо, угадать решение. Относительное ожидаемое безопасное время определяется как полупроизведение числа открытых ключей и времени, необходимого криптоаналитику, чтобы испытывать каждый ключ [13]. В зависимости от целей и возможностей криптоаналитика меняется и стойкость. Различают стойкость ключа (сложность раскрытия ключа наилучшим известным алгоритмом), стойкость бесключевого чтения, имитостой-кость (сложность навязывания ложной информации наилучшим известным алгоритмом) и вероятность навязывания ложной информации. Аналогично можно различать стойкость собственно криптоалгоритма, стойкость протокола, стойкость алгоритма генерации и распространения ключей [2].
В зависимости от сложности взлома алгоритмы обеспечивают различные степени защиты. Во главу угла ставится принципиальная возможность получения по перехвату некоторой информации об открытом тексте или использованном ключе. Существуют безусловно стойкие (или теоретически стойкие), доказуемо стойкие и предположительно стойкие криптоалгоритмы.
Теоретически стойкие системы создают шифр-тексты, с недостаточным количеством информации для однозначного определения соответствующих им текстов (или ключей). В лучшем случае открытый текст может быть локализован в достаточно большом подмножестве множества всех открытых текстов, и его можно лишь «угадать» с ничтожно малой вероятностью. Для совершенного шифра открытый текст «локализуется» во всём множестве открытых текстов. Тем самым, для него сама задача расшифрования становится бессмысленной. Никакой метод криптоанализа, включая полный перебор ключей, не позволяет определить ключ или открытый текст и получить некоторую информацию о них. Алгоритм, безусловно, стоек, если восстановление открытого текста невозможно при любом объёме шифртекста, полученного криптоаналитиком. Безопасность безусловно стойких криптоалгоритмов
основана на доказанных теоремах о невозможности раскрытия ключа. Принципиально не раскрываемые шифры (например, совершенно секретные системы Клода Шеннона, в которых ключ не может использоваться повторно, а его размер больше либо равен объёму текста) неудобны на практике (симметричные криптосистемы с разовым использованием ключа требуют большой защищённой памяти для хранения ключей, системы квантовой криптографии требуют волоконно-оптических каналов связи и дороги, а доказательство их безопасности уходит из области математики в область физики [2]). В силу своей непрактичности и высокой ресурсозатрат-ности абсолютно стойкие шифры применяются только в сетях связи с небольшим объёмом передаваемой информации, когда можно обеспечить всех абонентов достаточным запасом случайных ключей и исключить возможность их повторного применения: обычно это сети для передачи особо важной государственной информации.
Стойкость доказуемо стойких криптоалгоритмов определяется сложностью решения хорошо известной математической задачи, которую пытались решить многие математики и которая считается общепризнанно сложной. В качестве примера можно привести системы DH (Диффи-Хеллмана) [21] и RSA (Ривеста-Шамира-Адельмана) [181, 19], основанные на сложностях дискретного логарифмирования и разложения целого числа на множители соответственно. Достоинство доказуемо стойких алгоритмов — хорошая изученность задач, положенных в их основу, а недостаток — невозможность в случае необходимости оперативной доработки криптоалгоритмов, т.е. отсутствие гибкости. Повышение стойкости достигается увеличением размера математической задачи или её заменой, что влечёт цепь изменений в аппаратуре, используемой для шифрования.
Предположительно стойкие криптоалгоритмы основаны на сложности решения частной математической задачи, которая не сводится к хорошо известным задачам. Примерами могут служить шифры ГОСТ 28147-89 [21], AES [20], FEAL [17]. Предположительно стойкие криптоалгоритмы характеризует сравнительно малая изученность математических задач, на которых базируется их стойкость. Такие шифры обладают большой гибкостью, что позволяет при обнаружении слабых мест не отказываться от алгоритмов, а дорабатывать их.
Получение оценок стойкости — довольно сложная задача [38]. Стойкость шифра рассматривается как разработчиком, так и критиком (криптоаналитиком). Оценки, заявленные разработчиком, могут быть опровергнуты, если кто-либо укажет способ
криптоанализа, для которого вычислительная сложность меньше заявленной.
Классификация по используемым средствам
Рассмотрим эту классификацию в применении к генераторам псевдослучайных чисел. Для генерации ключевой информации, предназначенной для использования в рамках симметричной криптосистемы, используются следующие методы (в порядке возрастания качества) [27]:
♦ программная генерация, предполагающая вычисление очередного псевдослучайного числа как функции текущего времени, последовательности символов, введённых пользователем, особенностей его клавиатурного почерка и т.д.;
♦ программная генерация, основанная на моделировании качественного псевдослучайного генератора с равномерным законом распределения;
♦ аппаратная генерация с использованием качественного псевдослучайного генератора;
♦ аппаратная генерация с использованием генераторов случайных последовательностей, построенных на основе физических генераторов шума и качественных псевдослучайных генераторов.
Лучший способ генерации множества случайных битов — извлечение их из естественно случайных событий реального мира [28]. Часто такой метод требует наличия специальной аппаратуры, но можно реализовать его и на компьютерах. Дж. Б. Эгнью предложил генератор случайных битов, который можно встроить в СБИС [31]. Это конденсатор металл-изо-лятор-полупроводник. Два таких конденсатора помещаются рядом друг с другом, а случайный бит определяется разностью зарядов этих конденсаторов. Другой генератор случайных битов генерирует поток случайных битов, используя нестабильность частоты свободно колеблющегося осциллятора [32. Коммерческая микросхема фирмы AT&T генерирует случайные числа, опираясь на это явление [30], а генератор М. Гьюда [29] собирает случайные числа из физических явлений (например, радиоактивного распада). В качестве случайных величин можно также рассматривать интервалы между нажатиями клавиш клавиатуры. Главный недостаток подобных систем — возможные закономерности в генерируемой последовательности. Используемые физические процессы могут быть случайными, однако использование измерительных инструментов может привести к появлению проблем: смещения, отклонения или корреляции между битами. Обойти эти недостатки можно, используя не один, а несколько случайных источников. В качестве случайных событий Брюс Шнайер предлагает
рассматривать, например [28: нажатия на клавиши; команды мыши; номер сектора, время дня и задержку поиска для каждой дисковой операции; фактическое положение мыши; номер текущей строки развёртки монитора; содержимое текущего выводимого на экран изображения; содержимое таблиц файловой системы FAT; загрузку процессора; время поступления сетевых пакетов и т.д. Counterpane опубликовала новый класс атак на генераторы случайных чисел [Counterpane_], основанный на работе компании над коммерческими моделями. Одна из самых неожиданных находок — определённые генераторы случайных чисел могут быть надёжными при использовании с одной целью, но ненадёжными для другой; обобщение анализа надёжности опасно.
Классификация по наличию сертификата
Согласно действующему на территории России законодательству, если организация использует не-сертифицированные в России криптографические алгоритмы шифрования и ЭЦП данных, она не может вести обмен документами с государственными учреждениями. Обеспечить юридическую значимость электронных документов при обмене ими между пользователями позволит использование сертифицированных ФАПСИ криптоалгоритмов.
Классификация криптоаналитических атак
Современная криптография — соревнование методов шифрования и криптоанализа. Криптоанализом (от греч. kryptos — «скрытый» и analyein — «ослаблять» или «избавлять») называют науку восстановления (дешифрования) открытого текста без доступа к ключу. Попытка криптоанализа называется атакой. Разработанная и описанная ниже классификация позволяет различать криптоаналитические атаки и их последствия одновременно по нескольким параметрам:
♦ по доступу к открытому и зашифрованному тексту на основе:
^ только шифртекста;
^ открытого текста;
^ подобранного открытого текста;
^ адаптивно подобранного открытого текста; ^ информации из побочных каналов;
♦ по контролю над процессом:
^ пассивные;
^ активные;
❖ имитация сообщения;
❖ подмена сообщения;
❖ по исходу атаки:
^ полный взлом;
^ глобальная дедукция;
^ частичная дедукция;
информационная дедукция;
♦ по критическим ресурсам:
^ память;
^ время;
^ данные;
♦ по степени применимости к различным шифрам:
^ универсальные;
^ для определенной категории шифров;
^ для конкретного криптоалгоритма;
♦ по используемым средствам:
^ математические методы;
^ устройства-перехватчики физических параметров процесса шифрования;
^ эволюционное программирование;
^ квантовые компьютеры;
♦ по последствиям:
^ нарушение конфиденциальности;
^ нарушение целостности;
^ нарушение доступности;
♦ по возможности распараллеливания:
^ распределённые;
^ не распределённые.
Классификация по доступу к открытому и зашифрованному тексту
Прежде чем классифицировать атаки, введём ряд обозначений: открытый текст обозначим буквой х, шифртекст — буквой у (в качестве х может выступать любая последовательность битов: текстовый файл, оцифрованный звук, точечный рисунок и т.д.). Пусть для зашифрования и расшифрования используются ключи к и к' соответственно (в симметричной криптографии к = к' ); обозначим функцию зашифрования Ек, расшифрования — Бк. Тогда выполняются соотношения Ек(х) = у, Бк-(у) = х.
До недавнего времени по критерию доступа к открытому и зашифрованному тексту выделялось четыре основных типа криптоаналитических атак. В последнее время одним из самых актуальных направлений криптоанализа стало осуществление атак, использующих особенности реализации и рабочей среды. Атаки по сторонним (или побочным, каналам) — это вид криптографических атак, использующих информацию, полученную по сторонним или побочным каналам [Жуков_]. В каждом случае предполагается (согласно фундаментальному допущению Кирхгоффа), что криптоаналитик знает используемый алгоритм шифрования.
♦ Атака на основе только шифртекста. Криптоаналитик располагает шифртекстами у1,...,ут, полученными из неизвестных открытых текстов х1,...хт различных сообщений. Требуется
найти хотя бы один из xi, i = 1,m (или соответствующий ключ k), исходя из достаточного числа m криптограмм, или убедиться в своей неспособности сделать это. В качестве частных случаев возможно совпадение ключей: k1 =...= km или совпадение открытых текстов:
x1 =...= xm.
♦ Атака на основе открытого текста. Криптоаналитик располагает парами (xi,yi),...,(xm,ym) открытых и соответствующим им зашифрованных текстов. Требуется определить ключ ki для хотя бы одной из пар. В частном случае, когда k1 =...=km = k, требуется определить ключ k или, убедившись в своей неспособности сделать это, определить открытый текст xm+1 ещё одной криптограммы ym+i, зашифрованной на том же ключе.
♦ Атака на основе подобранного открытого текста отличается от предыдущей лишь тем, что криптоаналитик имеет возможность выбора открытых текстов x1,...,xm. Цель атаки та же, что и предыдущей. Подобная атака возможна, например, в случае, когда криптоаналитик имеет доступ к шифратору передающей стороны.
♦ Атака на основе адаптивно подобранного открытого текста. Это частный случай вышеописанной атаки с использованием подобранного открытого текста. Криптоаналитик может выбирать используемый шифруемый текст и уточнять свой последующий выбор на основе полученных ранее результатов шифрования.
♦ Атака на основе информации из побочных каналов. Криптоаналитик располагает информацией, которая может быть получена с устройства шифрования и не является при этом ни открытым текстом, ни шифротекстом.
Атаки по побочным каналам классифицируются [Жуков_]:
♦ по контролю над вычислительным процессом: пассивные и активные;
♦ по способу доступа к модулю: агрессивные (invasive), полуагрессивные (semi-invasive) и неагрессивные (non-invasive);
♦ по методу, применяемому в процессе анализа: простые — simple side channel attack (SSCA) и разностные — differential side channel attack (DSCA);
♦ по виду используемого побочного канала:
^ атаки по времени исполнения (Timing Attacks); ^ атаки по энергопотреблению (Power Analysis Attacks);
^ атаки по ошибкам вычислений (Fault Attacks); ^ атаки по электромагнитному излучению (ElectroMagnetic Analysis);
^ атаки по ошибкам в канале связи (Error Message Attacks);
^ атаки по кэш-памяти (Cache-based Attacks); ^ акустические атаки (Acoustic Attacks);
^ атаки по световому излучению (Visible Light Attacks).
Атаки с использованием известного или подобранного открытого текста встречаются чаще, чем можно подумать. Необходимое требование к хорошему криптоалгоритму — способность противостоять таким атакам. Это означает, что рассекречивание некоторой информации, передававшейся по каналу связи в зашифрованном виде, не должно приводить к рассекречиванию другой информации, зашифрованной на этом ключе. Указанное требование учитывает особенности эксплуатации аппаратуры и допускает некоторые вольности со стороны оператора или лиц, имеющих доступ к формированию засекреченной информации. В среде криптоаналитиков нельзя назвать неслыханными факты добычи открытого текста шифрованного сообщения или подкупа лица, которое должно будет зашифровать избранное сообщение. Применяются и «косвенные» методы осуществления атаки на основе подобранного шифротекста. Злоумышленник может убедить обладателя секретного ключа переслать некое сообщение, но в зашифрованной форме. В [36] описан приём, использованный командованием военно-морского флота США во время Второй мировой Войны перед битвой на Мидвее. Чтобы убедиться в правильности результатов работы по взлому японского военного шифра, криптоаналитики США попросили американский гарнизон, дислоцировавшийся на Мидвее, сообщить по открытому незащищённому каналу о нехватке пресной воды. Спустя два дня было перехвачено секретное сообщение, в котором японцы, осуществлявшие мониторинг использованного канала, сообщали о проблемах с водой в некоем «AF». Благодаря этому американцы узнали: «AF» — кодовое обозначение Мидвея в шифрограммах противника. Атаки на основе подобранных текстов считаются наиболее опасными.
Классификация по контролю над процессом шифрования
К классу пассивных атак [8] относят действия противника, который «пассивно изучает» шифрованные сообщения, может их перехватить и подвергнуть криптоанализу с целью получения информации об открытом тексте или ключе.
Современные технические средства позволяют потенциальному противнику «активно» вмешиваться в процесс передачи сообщения. Различают два типа активных атак: имитация и подмена сообщения.
Атака имитации: противник «вставляет» в канал связи сфабрикованное им «шифрованное сообщение», которое на самом деле не передавалось от законного отправителя к получателю. Противник рассчитывает, что получатель воспримет это сообщение как подлинное (аутентичное).
Атака подмены: противник, наблюдая передаваемое по каналу связи подлинное сообщение отправителя, «изымает» его и заменяет поддельным. Различные шифры могут быть более или менее уязвимыми к активным атакам.
Способность самого шифра (без использования дополнительных средств) противостоять активным атакам обычно называют имитостойкостью шифра. Количественной мерой имитостойкости шифра служат вероятности успеха имитации и подмены соответственно. Эти вероятности определяют шансы противника на успех при навязывании получателю ложного сообщения.
Классификация по исходу атаки
Криптоанализ ставит своей задачей в разных условиях получить дополнительные сведения о ключе шифрования, чтобы уменьшить диапазон вероятных ключей. Результаты криптоанализа могут варьироваться по степени практической применимости. Взлом шифра совсем не обязательно подразумевает обнаружение способа, применимого на практике для восстановления открытого текста по перехваченному зашифрованному сообщению. В научной криптологии другие правила [3]. Шифр считается взломанным, если в системе обнаружено слабое место, которое может быть использовано для более эффективного взлома, чем метод полного перебора ключей (‘brute-force approach’). Допустим, для дешифрования текста методом полного перебора требуется перебрать 2128 возможных ключей; тогда изобретение способа, требующего для дешифрования 2110 операций по подбору ключа, будет считаться взломом. Такие способы могут требовать нереалистично больших объёмов подобранного открытого текста или памяти ЭВМ. Под взломом понимается лишь подтверждение уязвимости криптоалгоритма, свидетельствующее о том, что свойства надёжности шифра не соответствуют заявленным характеристикам. Как правило, криптоанализ начинается с попыток взлома упрощённой модификации алгоритма, после чего результаты распространяются на полноценную версию: прежде чем браться за взлом, например,
16-раундовой версии DES, естественно для начала попытаться взломать шифр с меньшим количеством раундов, чем указано в его спецификации (например, 8-раундовую версию шифра).
Криптограф Ларс Кнудсен [7] предлагает следующую классификацию успешных исходов криптоанализа блочных шифров в зависимости от объёма и качества секретной информации, которую удалось получить:
♦ полный взлом — криптоаналитик извлекает секретный ключ;
♦ глобальная дедукция — криптоаналитик разрабатывает функциональный эквивалент исследуемого алгоритма, позволяющий зашифровывать и расшифровывать информацию без знания ключа;
♦ частичная дедукция — криптоаналитику удаётся расшифровать или зашифровать некоторые сообщения;
♦ информационная дедукция — криптоаналитик получает некоторую информацию об открытом тексте или ключе.
Классификация по объёму необходимых ресурсов
Атаки можно классифицировать по объёму ресурсов, необходимых для их осуществления:
♦ память — объём памяти, требуемый для реализации атаки;
♦ время — количество элементарных операций, необходимых выполнить;
♦ данные — необходимый объём открытых и соответствующим им зашифрованных текстов.
В некоторых случаях эти параметры взаимозависимы: например, за счёт увеличения памяти можно сократить время атаки.
Классификация по степени применимости к различным шифрам
Если цель криптоаналитика — раскрытие возможно большего числа шифров (независимо от того, хочет ли он этим нанести ущерб обществу, предупредить его о возможной опасности или просто получить известность), то наилучшая стратегия — разработка универсальных методов анализа [2, 6]. Эта задача наиболее сложная.
Любую задачу отыскания способа раскрытия некоторой конкретной криптосистемы можно переформулировать как привлекательную математическую задачу, при решении которой удаётся использовать многие методы той же теории сложности, теории чисел и алгебры. Это привело к появлению методов криптоанализа, применимых к различным классам
шифров. Например, можно выделить группу методов, применимых для раскрытия асимметричных криптосистем. Эти методы, можно разделить по критерию эффективности их использования для взлома систем шифрования, основанных на сложности задачи дискретного логарифмирования или факторизации, и т.д.
Наконец, существуют атаки, использующие уязвимость при проектировании или реализации конкретного шифра. Эти атаки не могут быть в общем случае перенесены на целый класс шифров, однако могут эффективно применяться для взлома определённого криптоалгоритма. К этому классу атак относятся, например, атаки по побочным каналам.
Классификация по используемым средствам
Почти все осуществлённые на практике удачные атаки на криптосистемы используют слабости в реализации и размещении механизмов криптоалгоритма. Такие атаки основаны на корреляции между значениями физических параметров, измеряемых в разные моменты во время вычислений (потребление энергии, время вычислений, электромагнитное излучение и т.п.), и внутренним состоянием вычислительного устройства, имеющим отношение к секретному ключу. На практике атаки по побочным каналам на много порядков эффективнее, чем традиционные атаки, основанные только на математическом анализе. Атаки по побочным каналам используют особенности реализации (поэтому их иногда называют также атаками на реализацию — implementation attacks) для извлечения секретных параметров, задействованных в вычислениях. Такой подход менее обобщённый, поскольку привязан к конкретной реализации, но зачастую мощнее классического криптоанализа.
На данный момент методы, основанные на использовании новых информационных технологий (эволюционного программирования и квантовых компьютеров) в криптоанализе, не привели к сколько-нибудь серьёзным прорывам во взломе шифров и представляют в большей степени академический, чем практический интерес. Тем не менее, эти методы заслуживают внимания из-за своей оригинальности; не исключено, что со временем их значение в криптологии возрастёт.
Криптосистему можно рассматривать как «чёрный ящик», т.е. устройство или программу, чья структура не известна, но подавая сигналы команды или данные на её вход, можно получить реакцию на выходе. Задача криптоанализа — идентификация этой системы, т.е. определение её структуры на основе сигналов, поступающих на вход и получаемых на выходе. Инструментом решения этой задачи могут быть нейронные сети; её теория изложена в [35].
Брюс Шнайер в книге «Прикладная криптография» [28] склоняется к пессимизму в отношении применимости нейронных сетей в криптоанализе: «Процесс взлома не оставляет места обучению: вы либо раскрываете ключ, либо нет. (По крайней мере, это верно при вскрытии любого надёжного алгоритма). Нейронные сети хорошо работают в структурированных средах, допускающих обучение, но не в высокоэнтропийном, предположительно случайном мире криптографии». Тем не менее, исследования в этом направлении продолжаются.
Генетические алгоритмы успешно применяются в криптоанализе перестановочных и подстановочных шифров [4]. В статье [3] предлагается метод криптоанализа шифров на основе алгоритма укладки ранца, базирующийся на использовании генетических алгоритмов. Отличительная особенность такого подхода — его универсальность, т.е. возможность применения к любой версии «рюкзачной» криптосистемы, а также простота работы.
Главным достижением в области квантовых вычислительных алгоритмов стал алгоритм Шора разложения чисел на множители. На сегодняшний день есть конкретные результаты. Так, ІВМ продемонстрировала использование созданного в лабораториях компании семикубитового квантового компьютера для факторизации чисел по алгоритму Шора. Хотя решённая им задача вряд ли способна поразить воображение (компьютер верно определил, что делителями числа 15 являются числа 5 и 3), это самое сложное вычисление за всю историю квантовых компьютеров. В настоящее время не существует технических средств, позволяющих за полиномиальное время разложить достаточно большое число на множители. Таким образом, самым важным вопросом остаётся создание квантового компьютера. Алгоритм Шора чрезвычайно прост и довольствуется гораздо более скромным аппаратным обеспечением, чем то, которое понадобилось бы для универсального квантового компьютера. Вероятно, что квантовое устройство для разложения на множители будет построено задолго до того, как весь диапазон квантовых вычислений станет технологически осуществимым.
Классификация по последствиям атаки
Возможные последствия реализации атаки рассмотрим с точки зрения нарушения свойств информации — конфиденциальности, целостности и доступности. Выделим три стратегии действий, которые может предпринять нарушитель в случае успешной реализации атаки:
♦ перехват информации, передаваемой по каналам связи;
♦ модификация информации, передаваемой по каналам связи (подмена, ложные сообщения, блокирование передачи и т.д.);
♦ работа от чужого имени (обход средств аутентификации участников информационного взаимодействия по каналам связи).
К лассификация по возможности распараллеливания
Распараллеливанию поддаются не все алгоритмы криптоанализа, однако оно позволяет значительно ускорить нахождение ключа. При оценке эффективности метода криптоанализа необходимо учитывать не только его временную и ёмкостную сложность, но и возможность распараллеливания на многопроцессорной системе. Так, алгоритм Полларда [Ростовцев 98] имеет сложность 0(4п), однако не поддаётся распараллеливанию. В то же время, метод полного перебора, который на однопроцессорной машине уступает по эффективности методу Полларда, — простой пример метода криптоанализа, допускающего распараллеливание.
Известно два направления в организации параллельного вычисления ключа [Амамия_].
Во-первых, построение конвейера. Представим алгоритм соотношения Ек(х) = у в виде детерминированной цепочки простейших действий (операций): 0!,02,...,0^.
Возьмем N процессоров А1,А2,...,ЛЛг, зададим их порядок и положим, что г-ый процессор выполняет три одинаковые по времени операции:
1) приём данных от (г—1)-го процессора;
2) выполнение операции 0г;
3) передача данных следующему (г+1)-му процессору.
Тогда конвейер из N последовательно соединенных, параллельно и синхронно работающих процессоров работает со скоростью у/3, где V — скорость выполнения одной операции процессором.
Второе направление распараллеливания в том, что множество К разбивается на непересекающиеся подмножества К\,К2,...,К^д. Система из машин перебирает ключи так, что г-ая машина осуществляет перебор ключей из множества Кг, ; = 1,^. Система прекращает работу, если одна из машин нашла ключ. Самая большая сложностью в изложенном подходе — организация деления ключевого множества. Однако если организовать поиск ключа так, чтобы при каждом очередном опробовании каждый из N процессоров стартует со случайной точки, время опробования увеличится, но схема значительно упростится. Как показано в работе [Грушо_], среднее число шагов опробования N процессорами (машинами) ключей из множества К в этом случае составляет |К \/N.
Реализация такого параллелизма предполагает различные решения. Самое очевидное решение — создание компьютерного вируса для распространения программы-взломщика в глобальной сети. Идея впервые опубликована в [34]. Вирус должен использовать периоды простоя компьютера (по данным исследований, компьютер простаивает 70—90% времени) для осуществления перебора по множеству ключей. Рано или поздно один из заражённых компьютеров обнаружит искомый ключ (необходимо предусмотреть механизм оповещения злоумышленника); с ростом производительности компьютеров и скорости распространения вирусов угроза успешного исхода такой атаки растёт.
В [12] описаны более оригинальные идеи распараллеливания вычислений: «Китайская лотерея», создание «криптоаналитических» водорослей и животных. Китайская лотерея предполагает: в каждый радиоприёмник и телевизор встроена микросхема, запрограммированная на автоматическую проверку различных множеств ключей после получения по эфиру пары открытый текст/шифртекст. Использование биотехнологий сделает возможным осуществление более эффективных атак. Рассмотрим вымышленное животное под названием «DESозавр». Оно состоит из оптически прозрачных биологических клеток, умеющих тестировать возможные ключи. По какому-то широковещательному оптическому каналу в клетки передаются пары открытый текст/шифртекст. Решения переносятся к органам речи DESозавра специальными клетками, путешествующими по кровеносной системе животного. В доисторические времена средний динозавр состоял примерно из 1014 клеток (без микробов). Если каждая клетка может выполнять миллион шифрований в секунду, вскрытие 56-битового ключа займет 7-10-4 сек, а 64-битового — не более
0,2 сек. Другой биологический подход — создание методами генной инженерии криптоаналитических водорослей, умеющих вскрывать криптографические алгоритмы методом полного перебора. Водоросли могут покрывать большие пространства, что теоретически позволит создать некое подобие распределённого компьютера с огромным числом процессоров.
Классификация взломщиков криптосистем
При оценке стойкости криптосистемы необходимо учитывать возможности потенциального злоумышленника, который может осуществить атаки на систему. Иначе говоря, необходимо предварительно воссоздать собирательный образ (модель) нарушителя. Такая модель должна указывать [39]:
♦ категории лиц, в числе которых может оказаться нарушитель;
♦ предположения о квалификации нарушителя и его технической оснащённости;
♦ возможные цели нарушителя и ожидаемый характер его действий.
За основу для разработки классификационной схемы принята модель нарушителя, предложенная в [37]. Модель предназначалась для описания широкого класса нарушителей безопасности компьютерных систем, поэтому в параметры схемы внесены изменения с учётом того, что объект атак — криптосистема. Предложенная классификация позволяет при построении модели взломщика криптосистемы учитывать различные параметры и, тем самым, установить зависимость возможных сценариев атак от характеристик злоумышленников, со стороны которых система подвержена нападениям. В разработанной нами классификации злоумышленников можно различать по нижеперечисленным параметрам:
♦ по технической оснащённости:
^ персональный компьютер;
^ сеть ЭВМ;
^ суперкомпьютер;
♦ по конечной цели:
^ обнаружение слабости в алгоритме;
^ полный взлом алгоритма;
♦ по доступу к шифрующим средствам:
^ «внутренний» нарушитель;
^ «внешний» нарушитель;
♦ по уровню подготовки:
^ взаимодействие с компьютером на уровне пользователя;
^ математический аппарат;
^ программирование;
^ электротехника и физика;
^ социальная инженерия;
♦ по первичной информации о средстве шифрования:
^ пользователь;
^ криптограф;
^ «клептограф»;
♦ по возможности кооперации:
^ «одиночка»;
^ коллектив.
Классификация по технической оснащенности
Арсенал доступных средств для взлома шифров и конечные цели у хакера-любителя, коммерческой организации и учёного-криптоаналитика существенно различаются.
Крупной компании с большими вычислительными сетями под силу методом перебора вскрыть
ключ длиной 64—80 бит. Подтверждение тому — вскрытие ЯС5-64 (блочного шифра компании Я^А, использующего 64-битный ключ. Стартовавший в 1997 г. на сайте www.distributed.net проект «распределённого взлома», в котором на добровольной основе приняли участие более 300 тысяч пользователей глобальной сети, успешно завершён за пять лет (1757 дней) — за это время перебрано 85% всего пространства ключей [http://www.distributed.net/rc5/_].
Для решения задач криптоанализа можно использовать и суперкомпьютеры. В статье [43] приведён список организаций, обладающих самыми мощными суперкомпьютерами и способных заниматься перехватом и дешифрованием информации; описана зависимость роста мощности суперкомпьютеров от времени, исходя из которой можно определить предположительную стойкость криптоалгоритмов.
Классификация по конечной цели
Действия хакеров связаны с целенаправленным преодолением (взломом) программно-аппаратных средств защиты для получения или модификации вполне определённых данных [39]. В основе их действий обычно корыстная мотивация, реже — желание прославиться, нанести моральный ущерб законному владельцу зашифрованной информации или иные причины.
Цель специалиста-криптоаналитика — создание новых и повышение эффективности существующих методов анализа стойкости криптографических средств. Каждый новый метод криптоанализа приводит к пересмотру безопасности шифров, к которым он применим.
Классификация по доступу к шифрующим средствам
Нарушителем может быть не только постороннее лицо, но и законный пользователь системы, а также лицо из числа обслуживающего персонала [39]. Если в качестве взломщиков выступают ненадёжные сотрудники компании, возможностей для осуществления атак существенно больше, чем у любых других взломщиков.
Классификация по уровню подготовки
Квалификация взломщика определяется наличием релевантных знаний, умений и навыков. Выделяют следующие основные области, освоение которых может быть полезным нарушителю для осуществления атаки на криптосистему:
♦ взаимодействие с компьютером на уровне пользователя — для осуществления атак с использованием доступных инструментальных средств;
♦ математический аппарат — для создания
новых методов криптоанализа и повышение эффективности существующих методов;
♦ программирование — для разработки инструментальных средств, реализующих алгоритмы криптоанализа; создания вирусов для распараллеливания поисков ключа и т.п.;
♦ электротехника и физика — для реализации криптоатак по побочным каналам с использованием информации, которую можно извлечь из шифрующего устройства. Например, взломщик может отслеживать энергию, потребляемую смарт-картой, когда она выполняет операции с закрытым ключом, такие, как расшифрование или генерация подписи. Противник может замерять время, затрачиваемое на выполнение криптографической операции, или анализировать поведение криптографического устройства при возникновении определённых ошибок [9];
♦ социальная инженерия — мощное оружие взломщика, позволяющее обойти защиту самых стойких криптосистем, воспользовавшись доверчивостью пользователей.
Градация злоумышленников по их квалификации может быть различной. Например, может быть выделено три класса злоумышленников [41]:
♦ высококвалифицированный злоумышлен -ник-профессионал;
♦ квалифицированный злоумышленник — не профессионал;
♦ неквалифицированный злоумышленник — не профессионал.
Классификация по первичной информации о средстве шифрования
Нарушителю может быть известна информация (в том числе секретная) о принципах функционирования криптосистемы. Так, одна из причин ненадёжности криптосистем, согласно [27], — использование слабых ключей. Слабый ключ — это ключ, не обеспечивающий достаточного уровня защиты или использующий в шифровании закономерности, которые могут быть взломаны. Это означает: если для генерации ключей используется криптографический слабый алгоритм, независимо от используемого шифра вся система будет нестойкой [28]. Генераторы случайных чисел — место, в котором часто ломаются криптографические системы. Зная принцип извлечения случайных чисел, злоумышленник может значительно сократить область перебора возможных ключей системы.
Особого внимания заслуживает технология, описанная в работе [45] под названием «клептография».
Разработчик может встроить в криптосистему лазейки, позволяющие получать доступ к зашифрованной информации без знания секретного ключа. Через «чёрный ход» информированный человек может легко преодолеть защиту. Если механизм действия шифра держится в секрете, вероятность наличия подобной «лазейки» повышается.
Классификация по возможности кооперации
В последнее время в связи с развитием сетей (в частности, Интернета), стало возможно эффективно использовать метод «грубой силы» (перебора) путём распараллеливания операций. Нередко профессиональные хакеры объединяются в преступные группировки, стремящиеся к наживе и выполняющие хищение конфиденциальной информации по заказам конкурирующих фирм и даже иностранных спецслужб [39. Альтернативный вариант — создание вируса, незаметно для пользователя устанавливающего на подключённый к сети компьютер программу, способную осуществлять дешифрование сообщения путём перебора ключей. Сценарий такой коллективной атаки прост и описан в [44]. После запуска программа подключается к серверу, получает от него набор ключей для перебора и после окончания работы возвращает результат. Программа может работать в фоновом режиме, в качестве скринсейвера или активироваться по ночам. Такой подход применим не только для взлома шифров, но и для подбора двух текстов, имеющих одинаковое значение хэш-функции, вычисленной указанным алгоритмом.
Заключение
Оценка эффективности криптографических средств защиты информации — сложная научнотехническая задача. При выборе криптосистемы необходимо проводить анализ угроз безопасности в конкретной компьютерной системе, предусматривающий оценку его стойкости к достаточно разнообразным типам криптоаналитических нападений. Для различных по назначению и принципам построения криптосистем, а также в зависимости от вида и ценности защищаемой информации, наиболее опасная модель поведения потенциального нарушителя может быть различной. Более важная информация обычно становится объектом нападения более квалифицированного и осведомлённого нарушителя.
Модель угроз можно рассматривать как композицию модели злоумышленника, модели атак и модели криптосистемы. Эти модели могут быть построены на основе классификаций, предложенных в данной работе. Они обладают свойствами расширяемости, формализуемости, простоты и многофакторности. Применение построенных классификаций для оценки эффективности используемых криптографических средств позволяет провести всесторонний анализ угроз, которым может подвергаться конкретная система в определённых обстоятельствах. Такой подход отличается гибкостью и позволяет в полной мере учитывать особенности криптографических средств и области их использования. ■
Литература
1. Амамия М., Танака Ю. Архитектура ЭВМ и искусственный интеллект. М.: Мир, 1993.
2. Ростовцев А.Г., Михайлова Н.В. Методы криптоанализа классических шифров // 1998. Опубликовано: http://crypto.hotbox.ru/down-load/cryptoan.zip
3. Spillman R. Cryptanalysis of knapsack ciphers using genetic algorithms // Cryptologia, 17(1), 1993.
4. Spillman R., Janssen M., Nelson B., Kepner M. Use of a Genetic Algorithm in the Cryptanalysis of Simple Substitution Ciphers // Cryptologia. 17(1), 1993. P. 31-44.
5. Matthews R. The use of genetic algorithms in cryptanalysts // Cryptologia. 17(2), 1993. P. 187-201.
6. Грушо А.А., Применко Э.А., Тимонина Е.Е. Анализ и синтез криптоалгоритмов. Курс лекций. М.: 2000.
7. Knudsen L.R. Block Ciphers - Analysis, Design, Applicatons // Ph.D. dissertation, Aarhus Unversity, Nov 1994.
8. Зубов А.Ю. Криптографические методы защиты информации. Совершенные шифры: Учебное пособие. М.: Гелиос АРВ, 2005.
9. Жуков А.Е. Криптоанализ по побочным каналам (Side Channel Attacks). // Материалы конференции РусКрипто - 2006.
10. Kerckhoffs A. La cryptographie militaire // Journal des sciences militaires, vol. IX. P. 5-38, Jan. 1883, (P. 161-191, Feb. 1883).
11. Баричев С. Основной вопрос криптографии // Chief Inforamtion Officer - руководитель информационной службы. #5 (37), 2005, c. 93-95.
12. Quisquarter J.-J., Desmedt Y.G. Chinese Lotto as an Exhaustive Code-Breaking Machine // Computer, v.24, n.11, Nov 1991. P. 14-22.
13. Осипян В.О., Осипян К.В. Криптография в задачах и упражнениях. М.: Гелиос АРВ, 2004.
14. Oppliger R. Contemporary Cryptography. Artech House Publishers , 2005, 510 p.
15. Шеннон К.Э. Работы по теории информации и кибернетике. М.: И.Л., 1963.
16. Merkle R.C., Hellman M.E. Hiding Information and Signatures in Trapdoor Knapsacks // IEEE transactions on Information Theory. V. 24, n. 5, Sep 1978. P. 525-530.
17. Shimizu R., Miyaguchi S. Fast Data Encipherment Algorithm FEAL // Transactions of IEICE of Japan, v. J70-D, n. 7, Jul 87. P. 1413-1423.
18. Rivest R.L., Shamir A., Adleman L.M. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems // Communications of the ACM, v.21, n.2, Feb 1978. P. 120-126.
19. Rivest R.L., Shamir A., Adleman L.M. On Digital Signatures and Public Key Cryptosystems // MIT Laboratory for Computer Science, Technical Report, MIT/LCS/TR-212, Jan1979.
20. RIJNDAEL description. Submission to NIST by Joan Daemen, Vincent Rijmen // Available via http://csrc.nist.gov/encryption/aes/round1/docs.htm
21. Diffie W., Hellman M. New directions in cryptography // IEEE Trans. Inform. Theory, 22 (1976). P. 644-654.
22. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.
23. Введение в криптографию / Под общей ред. В.В. Ященко. СПб.: Питер, 2001
24. Brassard J. Modern Criptolog. Springer-Verlag, Berlin - Heidelberg, 1988. - 107 p. (Русский перевод: Брассар Ж. Современная криптология. Полимед, 1999. 176 стр.)
25. Shneier B. Snake Oil, Crypto-Gram // February, 1999. Available via http://www.counterpane.com/Crypto-Gram.html
26. Скляров Д.В.Искусство защиты и взлома информации. БХВ-Петербург 2004, 271с.
27. Иванов М.А. криптографические методы защиты информации в компьютерных системах и сетях // М.: КУДИЦ-ОБРАЗ, 2001.
28. Schneier B. Applied Cryptography Second Edition: protocols, algorithms and source code in C. John Wiley & Sons Inc., 1996. (Русский перевод: Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: ТРИУМФ, 2002.)
29. Gude M. Concept for a high-Performance Random Number Generator Based on Physical Random Phenomena // Frequenz, v. 39, 1985. P. 187-190.
30. AT&T. T7001 Random Number Generator // Data Sheet, Aug 1986
31. Agnew G.B. Random Sources for Cryptographic Systems // Advances in Cryptology - EUROCRYPT’87 Proceedings, Springler-Verlag, 1988. P. 77-81.
32. Fairfield R.C., Mrotenson R.L., Koulthart K.B. An LSI Random Number Generator (RNG) // Advances in Cryptology: Proceedings of CRYPTO 84, Springler-Verlag, 1985. P. 115-143.
33. Kelsey J., Schneier B., Wagner D., Hall C. Cryptanalytic Attacks on Pseudorandom Number Generators // Fast Software Encryption, Fifth International Workshop Proceedings (March 1998), Springer-Verlag, 1998, pp. 168-188. Available via: http://www.counterpane.com/pseudorandom_number.html
34. White S.R. Covert Distributed Processing with Computer Viruses. // Advances in Cryptology - CRYPTO’89 Proceedings, Springler-Verlag, 1990. P. 616-619.
35. Галушкин А. Теория нейронных сетей. М.:ИПРЖР, 2000.
36. Kahn D. The Codebreakers: The Story of Secret Writing. MacMillan, New York, 1967.
37. Степашкин М.В., Котенко И.В., Богданов В.С. Оценка защищенности компьютерных сетей на основе анализа графов атак // Пятая Общероссийская Конференция «Математика и безопасность информационных технологий» (МаБИТ-06). Москва, МГУ, 2006.
38. Молдовян Н. Каким быть новому стандарту шифрования? //»Компьютерра» №2 от 18.01.2000.
39. Дорошенко А.Н., Ткачев Л.Л. Информационная безопасность. Методы и средства защиты информации в компьютерных системах. Учебное пособие. М.: МГУПИ, 2006. - 143 с.
40. RIJNDAEL description. Submission to NIST by Joan Daemen, Vincent Rijmen. Available via: http://csrc.nist.gov/encryption/aes/round1/docs.htm
41. Корнюшин П.Н., Костерин А.С. Информационная безопасность: Учебное пособие. - Владивосток: ТИДОТ ДВГУ, 2003. - 154 с
42. [http://www.distributed.net/rc5ZJ http://www.distributed.net/rc5/
43. http://www.ssl.stu.neva.ru/psw/crypto/Pudov21.html
44. Тульчинский А. Взлом криптоалгоритмов: мифы и реалии // «Компьютерра» №12 от 19 мая 2003 г.
45. Жуков А.Е. Криптография и клептография Криптосистемы со встроенными лазейками // Опубликовано: http://www.ruscrypto.ru/netcat_files/File/seminar.005.zip, 25.05.2004.