Docsity
Docsity

Подготовься к экзаменам
Подготовься к экзаменам

Учись благодаря многочисленным ресурсам, которые есть на Docsity


Получи баллы для скачивания
Получи баллы для скачивания

Заработай баллы, помогая другим студентам, или приобретай их по тарифом Премиум


Руководства и советы
Руководства и советы

Анализ криптостойкости методов защиты информации в операционных системах Microsoft Window 9x реферат по информатике , Сочинения из Информатика

Анализ криптостойкости методов защиты информации в операционных системах Microsoft Window 9x реферат по информатике

Вид: Сочинения

2016/2017

Загружен 11.04.2017

refbank13217
refbank13217 🇷🇺

10 документы

1 / 46

Toggle sidebar

Сопутствующие документы


Частичный предварительный просмотр текста

Скачай Анализ криптостойкости методов защиты информации в операционных системах Microsoft Window 9x реферат по информатике и еще Сочинения в формате PDF Информатика только на Docsity! МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ САМАРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИНЖЕНЕРНО-ЭКОНОМИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА “ВЫСШАЯ И ПРИКЛАДНАЯ МАТЕМАТИКА” УТВЕРЖДАЮ Заведующий кафедрой “Высшая и прикладная математика” «___»__________2001г. ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА студента АЛЬПЕРТА ВЛАДИМИРА ВЛАДИМИРОВИЧА на тему: АНАЛИЗ КРИПТОСТОЙКОСТИ МЕТОДОВ ЗАЩИТЫ ИНФОРМАЦИИ В ОПЕРАЦИОННЫХ СИСТЕМАХ MICROSOFT WINDOW 9x по специальности 01.02.00 “Прикладная математика” Научный руководитель: к. т. н. ПОНОМАРЕВ ВЛАДИМИР ПЕТРОВИЧ «___»________2001г.__________________ Студент___________________ «___»________2001г. Дипломная работа защищена «___»________2001г. Оценка_______________________________________ Председатель ГЭК_____________________________ Самара 2001г. СОДЕРЖАНИЕ Стр. ВВЕДЕНИЕ__________________________________________________________________3 1.Теоретические основы криптоанализа_____________________________________7 1.1 Методы криптоанализа________________________________________________7 1.2 Потоковые шифры____________________________________________________12 1.3 Алгоритм RC4 и его криптоанализ____________________________________15 2. Защита информации в операционных системах Microsoft Windows 9x__24 2.1 Аутентификация, безопасность и доступ к ресурсам в операционных системах семейства Microsoft Windows 9x________________________________24 2.2 Структура PWL–файлов_______________________________________________27 3. Программа анализа PWL-файлов_________________________________________31 3.1 Оценка надежности криптоалгоритмов в зависимости от длины ключа_____________________________________________________________________31 3.2 Разработка программы________________________________________________36 3.3 Функции программы__________________________________________________40 ЗАКЛЮЧЕНИЕ_____________________________________________________________42 БИБЛИОГРАФИЧЕСКИЙ СПИСОК__________________________________________43 ПРИЛОЖЕНИЕ_____________________________________________________________45 2 Почему криптосистемы ненадежны = и Нестойкие Стойкие Человеческий фактор криптоалгоритмы криптоалгоритмы Неправильное Ошибки в Малая применение реализации скорость Уменьшение Зиспортные Малая ограничения длына крмиостойхо хлюча сти при 2енерации ключа Неправильный выбор алгоритма Использование собственных алгоритмов Одуиствие проверки на слабые ключи Повторное наложение гаммы Озноутетвие защиты от РИС шифра Хранение ключа вместе © Занными Наличие зависимости во времени обработки ключей Недостатки деч Программные ошибки „Малый период сч Наличие люков Неправильная иныуиализация дСЧ Плохой разброс лОЧ Рис. 1. Почему криптосистемы ненадежны. В настоящей работе проведен анализ криптостойкости методов защиты информации в операционных системах семейства Microsoft Windows 9x, кроме того, было проведено исследование по поиску необходимой длины ключа и пароля, а также рассматриваются проблемы криптоанализа потокового шифра на примере популярного алгоритма RC4. Разработанная программа по исследованию PWL-файлов позволит восстанавливать забытые пароли и упорядочить имеющиеся сетевые ресурсы. 6 1.Теоретические основы криптоанализа 1.1 Методы криптоанализа Криптология делится на две части: криптографию и криптоанализ. Криптограф пытается найти методы обеспечения секретности и (или) аутентичности сообщений. Криптоаналитик пытается выполнить обратную задачу, раскрывая шифр или, подделывая кодированные сигналы таким образом, чтобы они были приняты как подлинные. Общепринятое допущение в криптографии состоит в том, что криптоаналитик имеет полный текст криптограммы. Кроме того, предполагается по правилу, сформулированным Керкхоффом, что стойкость шифра должна определяться только секретностью ключа. Если криптоаналитику известен только текст и алгоритм шифра, то он применяет анализ на основе шифрованного текста. Если криптоаналитик сможет достать несколько отрывков открытого текста и соответствующего ему шифрованного текста, то применяется анализ на основе открытого текста. Важной особенностью системы и средства криптографической защиты информации (СКЗИ) является то, что для них не существует простых и однозначных тестов проверки их надежности. Кроме того, эффективность СКЗИ и просто их наличие никак не связываются на работоспособности основной системы. Поэтому задача эффективности СКЗИ не может быть решена обычным тестированием. Криптоалгоритмом будем называть собственно алгоритм шифрования, имитозащиты, и других криптографических функций. Криптографическим протоколом будем называть набор правил и процедур, определяющий использование криптоалгоритма. Криптосистема представляет собой совокупность криптосхемы, протоколов и процедур управления ключами, включая изготовление и распространение. Так, хэш-функция y = F(z, x) + x, где 7 вычислительно невозможно. Задача создания стойкой хэш-функции возникает, например, при цифровой подписи текстов. Способность криптосистемы противостоять атакам называется стойкостью. Количественно стойкость измеряется как сложность наилучшего алгоритма, приводящего криптоаналитика к успеху с приемлемой вероятностью. В зависимости от целей и возможностей криптоаналитика меняется и стойкость. Различают стойкость ключа (сложность раскрытия ключа наилучшим известным алгоритмом), стойкость бесключевого чтения, имитостойкость (сложность навязывания ложной информации наилучшим известным алгоритмом) и вероятность навязывания ложной информации. Уровень стойкости зависит от возможностей криптоаналитика и от пользователя. Так, различают криптоанализ на основе только шифрованного текста, когда криптоаналитик располагает только набором шифрограмм и не знает открытых текстов, и криптоанализ на основе открытого текста, когда криптоаналитик знает открытые и соответствующие шифрованные тексты. Поскольку криптоалгоритм должен быть универсальным, естественным представляется требование, чтобы стойкость ключа не зависела от распределения вероятностей источника сообщений. В общем случае источник сообщений может вырабатывать “удобные” для нарушителя сообщения, которые могут стать ему известными. В этом случае говорят о криптоанализе на основе специально выбранных открытых текстов. Очевидно, что стойкость ключа по отношению к анализу на основе выбранных текстов не может превышать стойкости по отношению к анализу на основе открытых текстов, а она не может превышать стойкости по отношению к анализу на основе шифрованных текстов. Обычно криптоалгоритмы разрабатывают так, чтобы они были стойкими по отношению к криптоанализу на основе специально выбранных открытых текстов. Создание новых эффективных методов раскрытия ключа или иного метода ослабления криптоалгоритма может давать осведомленным лицам 10 большие возможности по нанесению ущерба пользователям, применяющим данный криптоалгоритм. Публикация или замалчивание этих сведений определяются степенью открытости общества. Рядовой пользователь системы бессилен помешать нарушителю в раскрытии его ключей. С развитием математики и средств вычислительной техники стойкость криптоалгоритма может только уменьшаться. Для уменьшения возможного ущерба, вызванного несвоевременной заменой криптоалгоритма, потерявшего свою стойкость, желательна периодическая перепроверка стойкости криптоалгоритма. Из рассмотренного выше следует, что понятие стойкости криптосистемы многогранно. Стойкость зависит не только от разработчика, но и от особенностей использования данного криптоалгоритма в системе управления или связи, от физической реализации криптоалгоритма, а также от будущих успехов математики и вычислительной техники. Ведь криптосистема может эксплуатироваться много лет, а необходимость сохранять в секрете в течение длительного времени переданную ранее по открытым каналам связи информацию может сделать необходимым прогнозировать развитие науки и техники на десятилетия. Последние десятилетие характеризуется резким увеличением числа открытых работ по всем вопросам криптологии, а криптоанализ становится одной из наиболее активно развивающихся областей исследований. Многие криптосистемы, стойкость которых не вызывала особых сомнений, оказались успешно раскрытыми. При этом разработан большой арсенал математических методов, представляющих прямой интерес для криптоаналитика. Каждый новый метод криптоанализа приводит к пересмотру безопасности шифров, к которым он применим. Если целью криптоаналитика является раскрытие возможно большего числа шифров (независимо от того, хочет ли он этим нанести ущерб обществу, предупредить его о возможной опасности или просто получить известность), то для него наилучшей стратегией является разработка универсальных методов анализа. Но эта задача является также и наиболее сложной. Стандарты шифрования периодически 11 меняются, а секретная информация часто имеет свойство стареть, то есть не представляет большого интереса для нарушителя спустя какое-то время после ее передачи по каналам связи в зашифрованном виде. 12 Криптографически сложной является выходная функция, которая использует внутреннее состояние для генерации бита потока ключей. Рис. 4. Самосинхронизирующийся генератор потока ключей. Так как внутреннее состояние полностью зависит от предыдущих n шифротекста, дешифрирующий генератор потока ключей автоматически синхронизируется с шифрующим генератором потока ключей, приняв n битов шифротекста. В интеллектуальных реализациях этого режима каждое сообщение начинается случайным заголовком длиной n битов. Этот заголовок шифруется, передается и затем расшифровывается. Расшифровка будет неправильной, но после этих n битов оба генератора потока ключей будут синхронизированы. Слабой стороной самосинхронизирующегося потокового шифра является распространение ошибки. Для каждого бита шифротекста, испорченного при передаче, дешифрирующий генератор потока ключей выдает n неправильных битов потока ключей. Следовательно, каждому неправильному биту шифротекста соответствуют n ошибок в открытом тексте, пока испорченный бит не перестанет влиять на внутреннее состояние. 15 1.3 Алгоритм RC4 и его криптоанализ Существенное повышение производительности микропроцессоров в 1980-е годы вызвало в криптографии усиление интереса к программным методам реализации криптоалгоритмов как возможной альтернативе аппаратным схемам на регистрах сдвига. Одним из самых первых подобных криптоалгоритмов, получившим широкое распространение, стал RC4. Алгоритм RC4 - это потоковый шифр с переменной длиной ключа, разработанный в 1987 году Рональдом Райвистом для компании RSA Data Security. Он обладает следующими свойствами: • адаптивностью для аппаратных средств и программного обеспечения, что означает использование в нем только примитивных вычислительных операций, обычно присутствующих на типичных микропроцессорах. • алгоритм быстрый, т.е. в базисных вычислительных операциях операторы работают на полных словах данных. • адаптивностью на процессоры различных длин слова. • компактностью в терминах размера кода, и особо удобен для процессоров с побайтно-ориентированной обработкой. • низким требованием к памяти, что позволяет реализовывать алгоритм на устройствах с ограниченной памятью; • использованием циклических сдвигов, зависимых от данных, с "переменным" числом. • простотой и легкостью выполнения. В течение семи лет этот алгоритм был фирменным секретом и детали о его конструкции предоставлялись только после подписания договора о неразглашении, но в сентябре 1994 года кто-то анонимно распространил исходный код алгоритма через Internet. Пользователи Сети, имеющие легальные криптосредства фирмы RSA, реализующие RC4, подтвердили совместимость 16 кода с криптопрограммой. В настоящее время алгоритм RC4 реализован в десятках коммерческих криптографических продуктов, включая Lotus Notes, Apple Computer's AOCE, Oracle Secure SQL, а также является частью спецификации стандарта сотовой связи CDPD. Криптогенератор функционирует независимо от открытого текста. Генератор имеет подстановочную таблицу (S-бокс 8 х 8): S0, S1, . . ., S255. Входами генератора являются замененные по подстановке числа от 0 до 255, и эта подстановка является функцией от ключа изменяемой длины. Генератор имеет два счетчика i и j, инициализируемых нулевым значением. Для генерации случайного байта гаммы выполняются следующие операции: i = (i+1) mod 256 j = (j+Si) mod 256 swap (Si, Sj) t = (Si+Sj) mod 256 K = St Байт K складывается операцией XOR с открытым текстом для выработки шифротекста, либо с шифротекстом для получения байта открытого текста. Шифрование происходит весьма быстро - примерно в 10 раз быстрее DES- алгоритма. Инициализация S-бокса столь же проста. На первом шаге он заполняется линейно: S0 = 0, S1 = 1, . . ., S255 = 255. Затем еще один 256-байтный массив полностью заполняется ключом, для чего ключ повторяется соответствующее число раз в зависимости от длины: K0, K1, . . ., K255. Индекс j обнуляется. Затем: for i=0 to 255 j = (j+Si+Ki) mod 256 swap (Si , Sj) Схема показывает, что RC4 может принимать примерно 21700 (256! * 2562) возможных состояний. S-бох медленно изменяется в процессе работы: параметр 17 между битами гаммы составляет (1+ c)/2. При анализе использовалась техника двоичных производных. Пусть Z = (Zt)t=1 обозначает последовательность самых младших бит слов выхода RC4, и пусть Z/=( Z/t = Zt+ Zt+1) t=1 и Z//=( Z//t = Zt+ Zt+2) t=1  обозначают ее первую и вторую двоичные производные, соответственно. Показано, что Z/ не коррелирует ни с 1, ни с 0, но Z// коррелирует с 1 с корреляционным коэффициентом, близким к 15*2-3n при больших 2n, где n – длина ключа. Поскольку длина выходной последовательности, требуемая для выявления статистической слабости с корреляционным коэффициентом c, составляет O(c-2), то эта длина равна примерно 64n /225. Например, если n = 8, как рекомендуется в большинстве приложений, то требуемая длина близка к 240. Результаты компьютерных экспериментов согласуются с теоретическими предсказаниями. Поскольку результирующий коэффициент корреляции существенно превышает величину 2M/2, то установленную линейную модель следует рассматривать как статистическую слабость генератора, по крайней мере в теоретическом аспекте. В 1997 году опубликована большая работа Йована Голича, посвященная криптоанализу обобщенной схемы комбинирующего узла с произвольным размером памяти. Исследованы корреляционные свойства таких узлов, обоснованы новые конструктивные критерии, предъявляемые к схемам подобного типа. Разработан эффективный метод аппроксимации линейной последовательной схемой для построения линейных функций от входа и выхода со сравнительно большим коэффициентом взаимной корреляции. Это практичная процедура, позволяющая с высокой вероятностью находить пары взаимно коррелированных линейных функций (от самое большее M + 1 последовательных выходных бит и самое большее M + 1 последовательных векторов входа) со сравнительно большими коэффициентами корреляции. Метод АЛПС состоит в задании и решении линейной последовательной схемы (ЛПС), которая аппроксимирует комбинирующий узел с памятью. Эта ЛПС имеет добавочные несбалансированные входы и основана на линейных аппроксимациях функции выхода и всех компонент функции следующего 20 состояния. Линейная аппроксимация булевой функции - это любая линейная функция, с которой заданная булева функция скоррелирована. Описанный метод применим к произвольным комбинирующим узлам с памятью без ограничений на функции выхода и следующего состояния. Сначала отыскиваются линейные аппроксимации функции выхода f и каждой из функций-компонент функции следующего состояния F. Это эквивалентно выражению каждой из этих M+1 функций в виде суммы линейной функции и несбалансированной функции. Если подлежащая декомпозиции функция уже несбалансированна, то можно выбрать константно-нулевую линейную функцию. Если подлежащая декомпозиции функция статистически независима от некоторого подмножества переменных, то каждая линейная аппроксимация с необходимостью должна задействовать по крайней мере одну из переменных этого подмножества. Основное требование – чтобы соответствующие корреляционные коэффициенты отличались от нуля. Также желательно, чтобы выбирались линейные аппроксимации с корреляционными коэффициентами, абсолютные значения которых близки к максимальным. Корреляционные коэффициенты можно определять с помощью техники преобразования Уолша. На следующем шаге, получив линейные аппроксимации, в матричной форме записывают базовые уравнения комбинирующего узла с памятью St+1 = ASt + BXt + (Xt, St), t≥0, yt = CSt + DXt + (Xt, St), t ≥0, где векторы рассматриваются как матрицы-столбцы; A, B, C, D - двоичные матрицы; а  и каждый компонент в D = (d1, . . . , dM) – несбалансированные булевы функции, именуемые функциями шума. Основная идея состоит в том, чтобы рассматривать {(Xt ,St)}t=0 и {(Xt ,St)}t=0 , 1≤i≤M, в качестве входных последовательностей, так что последние уравнения оказываются задающими неавтономную линейную машину с конечным числом состояний или ЛПС, именуемую АЛПС комбинирующего узла с памятью. Тогда 21 можно решать эту ЛПС с использованием техники производящих функций (D- преобразований). В частности, пусть S, X, , , y обозначают производящие функции от переменной z для последовательностей {St}, {Xt}, (Xt, St)},  (Xt, St)}, yt}, соответственно. Тогда уравнения сводятся к виду Решение имеет вид где I - единичная матрица, det(zA - I) = (z), (0) = 1, - многочлен, обратный к характеристическому многочлену матрицы переходов A степени, не превышающей ранг A (≤M); а элементы (присоединенной) матрицы adj(zA - I) - это полиномы от z степени не более M-1. Вычислительная сложность для отыскания такого решения составляет O(M3(N+1)). В другом виде решение можно переписать как где xi и j обозначают производящие функции для {xit} и {j(Xt, St)}, а степени полиномов gi(z) и hj(z) самое большее равны M и M-1, 1≤i≤N, 1≤j≤M, соответственно. Полагая решение можно преобразовать к виду: 22 2. Защита информации в операционных системах Microsoft Windows 9x 2.1 Аутентификация, безопасность и доступ к ресурсам в операционных системах семейства Microsoft Windows 9x В операционных системах Microsoft Windows 9x для аутентификации пользователя используется имя пользователя, а для подтверждения введенного имени – процедура аутентификации, использующая символьный пароль пользователя. Алгоритм этой процедуры, которая вызывается из библиотеки MSPWL32.DLL, состоит из следующих шагов: Шаг 1. Пользователь вводит свое имя и пароль в формате Unicode. Шаг 2. Имя и пароль преобразуется в формат ASCII, причем строчные буквы преобразуются в прописные. Шаг 3. Осуществляется преобразование пароля с помощью с алгоритма хэширования RC4. Шаг 4. Результат сравнивается с данными, которые вычисляются путем дешифрования данных, хранящихся в PWL-файле, в начале загрузки операционной системы. Шаг 5. В случае успешной проверки на шаге 4 пользователь получает доступ к системным ресурсам. Управление доступом к сетевым ресурсам в операционных системах Windows 9x осуществляется с помощью механизма профилей. Для этого создаются профили пользователей. Профиль пользователя в хранится в файле user.dat, который содержит учетную запись пользователя. Все профили системы содержатся в этом файле. Владелец компьютера, т. е. системный администратор, может присвоить тому или иному пользователю так называемый перемещаемый 25 профиль, т. е. вы может произвести настройки профилей локально или через сеть. Настройка и установка профилей пользователей осуществляется через вкладку “Настройка пользователя”, обратиться к которой можно посредством двойного щелчка клавишей мыши на пиктограмме “Пользователи”. Для создания нового профиля, требуется обратится к соответствующему мастеру нажатием кнопки “Добавить“. После чего система просит ввести пароль. После того создания новых профилей и настройки соответствующих параметров, Windows 9x при каждой загрузке будет выводить диалоговое окно регистрации, в котором необходимо ввести свое имя и установленный пароль. Концепция безопасности компьютера подразумевает защиту всех его компонентов - аппаратные средства и приложения - от несанкционированного доступа из локальной сети или Internet. В Windows 9x любой пользователь вашего компьютера может зарегистрироваться в системе. При этом имя пользователя и пароль могут быть такими же, как и при входе в сеть. Концепция безопасности в Windows 9x весьма примитивна. В этой системе администратор, не можете создать группу пользователей, завести учетную запись пользователя, изменить права пользователя. Вместо продвинутого “Диспетчера пользователей” эта система предлагает довольно простенькое диалоговое окно свойств “Пароли”. Windows 9x не обеспечивает достаточного уровня безопасности. Механизм безопасности в Windows 9x реализован только на уровне регистрации пользователя, т.е. так называемая унифицированная регистрация. Однажды введенный пароль и имя пользователя в окне регистрации при загрузке системы используется для доступа ко всем службам, приложениям и аппаратным ресурсам компьютера, поэтому хорошо подобранный пароль способен защитить вашу систему от проникновения. Никогда не следует записывать свой пароль на бумаге, пользоваться очевидными паролями (имена, названия городов), отправлять свой пароль по электронной почте, но следует использовать разумное количество символов при составлении пароля, иначе его можно просто забыть. 26 С помощью вкладки “Смена” паролей“ диалогового окна свойств “Пароли” изменяются параметры унифицированной регистрации всех ресурсов компьютера посредством задания нового пароля пользователя. Задать новый пароль можно через вкладку “Настройка пользователя“. Для установки защиты на конкретный ресурс компьютера необходимо сделать его разделяемым. Windows 9x позволяет управлять ресурсами компьютера пользователям, имеющим удаленный доступ к системе. Для чего требуется добавить соответствующую службу с помощью вкладки “Сеть” и после этого в диалоговом окне свойств “Пароли” появится новая вкладка “Удаленное управление”. Таким образом проведя оценку системы безопасности Windows 9x, мы сделали вывод о ее недостаточной надежности. Стандартный набор офисного программного обеспечения Microsoft Office также недостаточно надежен, но поскольку эффективные средства его криптоанализа уже разработаны, то в данной работе эта тема не рассматривается. 27 хеш-функция (необратимое преобразование) пароля, но, в то же время нелепо реализованным. Ведь поскольку имя пользователя известно заранее, то первые 20 байт гаммы тривиально вычисляются. Но, т.к. эта же гамма накладывается на каждый ресурс (отсутствие смены гаммы при шифровании разных полей - это основная ошибка применения алгоритма RC4 в данном случае), то можно дешифровать и первые 20 байт каждого ресурса! PWL-файл имеет избыточную информацию - есть указатели на начала ресурсов, но есть и длины записей в ресурсах и из одного можно вычислять другое. Если в ресурсах не более одной записи, то длина ресурса есть первое слово ресурса плюс два (длина первой записи ресурса плюс длина нулевого слова). Определяя по началу и длине данного ресурса начало следующего, рассчитывается вся таблица указателей на начала ресурсов. Если в ресурсах более одной записи, то начало следующего ресурса все равно можно найти. Это сводит прочность системы шифрования к нулю (под прочностью системы шифрования понимается количество вариантов, которые необходимо перебрать для ее гарантированного вскрытия). Алгоритм генерации ключа по паролю Имеем ключ (двойное слово) и пароль до 20-и символов. 1) Обнулить ключ. 2) Привести пароль к верхнему регистру. 3) Для каждого символа пароля, начиная с первого: а) прибавить код символа к ключу б) повернуть ключ влево 7 раз. Алгоритм сопоставления ключа паролю слаб тем, что при выбранной длине ключа в двойное слово, множество различных ключей 232 оказывается неизмеримо меньше множества различных паролей. Это означает, что существуют пароли, которые Windows 95 не отличает друг от друга. Это делает совершенно бессмысленными допускаемые в Windows 95 длинные пароли и эффективная длина пароля соответствует только пяти символам! Правда, это не означает, что для каждого пароля найдется эквивалент из пяти символов, т.к. множество паролей отображается на множество ключей неравномерно. 30 Между тем, достаточно было накладывать гамму на ресурсы, не используя первых засвеченных ее байт, что и было реализовано в следующих версиях. Таким образом, в механизме безопасности операционной системы Microsoft Windows 95 обнаружена существенная ошибка. Для ее исправления необходимо модернизация операционной системы. Кроме того, в новых версиях длина пароля ограничена не 32 байтами, а 128. 31 3. Программа анализа PWL-файлов 3.1 Оценка надежности криптоалгоритмов в зависимости от длины ключа Любую секретную информацию можно получить путем перебора всех возможных ключей, поэтому проведем оценку возможности подбора ключей. Проблема поиска ключей симметричной криптосистемы путем перебора всех возможных ключей относится к классу задач, допускающих распараллеливание, поэтому применение распределенных вычислений для организации перебора таких ключей позволяет эффективно решать трудоемкие задачи в этой области. Экспоненциальная динамика роста с течением времени производительности вычислительных систем оказывает еще более существенное влияние на рост производительности системы в целом. Таким образом, прогресс в этой области возможен за счет: 1. использования достижений научно-технического прогресса и применения технологических новинок для увеличения производительности отдельного устройства; 2. увеличения количества процессоров в системе. С физической точки зрения транзистор, который является основой современной интегральной схемы, может быть уменьшен еще примерно в 10 раз, до размера 0,03 микрон. За этой гранью процесс включения/выключения микроскопических переключателей станет практически невозможным. Таким образом максимальное быстродействие составит - 1016 операций/секунду, а предел роста наступит приблизительно в 2030 г. Попробуем проанализировать предельные значения двух указанных тенденций. Оценим максимальную производительности вычислительного устройства связана с определением максимального быстродействия на основе физических закономерностей нашего мира. Максимальная скорость передачи 32 Таблица 2.2 Время, необходимое для полного перебора ключей Наименование машины Мощность (FLOPS) 56 бит 7.2*Е16 64 бита 1.8*E19 80 бит 1.2*Е24 100 бит 1.26*Е30 128 бит 3.4*E38 Intel ASCI Red 1.333*Е12 14 часов 5 мес. 28460 лет 3.01*Е10 8.09*Е18 Hitachi/Tsukuba CP-PACS 3.68*Е11 52 часа 18 мес. 102676 года 1.09*Е11 2.93*Е19 SGI/Cray T3E 2.65*Е11 69 часов 51 мес. 143256 года 1.51*Е11 4.07*Е19 Fujitsu Numerical Wind Tunnel 2.3*Е11 171 час 60 мес. 164592 года 1.74*Е11 4.69*Е19 Hitachi SR2201 2.2*Е11 178 часов 61 мес. 172720 лет 1.82*Е11 4.9*Е19 Таким образом с помощью указанной рабочей модели можно оценивать надежность проектируемых и эксплуатируемых систем шифрования. Алгоритм ГОСТ 28147-89 использует таблицу подстановок размером 512 бит. Общее число возможных таблиц составляет 1.33*Е36 и полное время перебора составляет 3.162*Е16 лет. Для алгоритма IDEA длина ключа составляет 128 бит и полное время перебора составляет 8.09*Е18 лет. Даже если будет использован суперкомпьютер состоящий из ста тысяч процессоров с максимально возможной скоростью в 1016 операций/секунду для расшифровывания ГОСТа понадобится 4.21*Е7 лет, а для IDEA - 1.08*Е10 лет. Очевидно, что даже применение нескольких сотен суперкомпьютеров Intel ASCI Red, стоимостью по 55 миллионов долларов каждый, не в стоянии кардинально улучшить ситуацию. Анализируя предельные значения второй тенденции, можно отметить, что увеличению количества процессоров в системе тоже есть свой предел. Для нашей планеты естественным пределом является площадь земной поверхности. Если выразить поверхность земного шара (считая океаны, пустыни, Арктику с Антарктикой) в квадратных миллиметрах, и на каждый миллиметр поместить по миллиону таких процессоров, то в год мощность такого вычислительного устройства составит 5.1 * 1052 операций, что эквивалентно длине в 175-176 бит. Если исходить из предположения, что стойкость шифра должна составлять 100 лет, то за указанный период такая 35 система сможет перебрать 5 *1054 ключей, что составит 181-182 бита. И это притом, что никакие вычислительные ресурсы процессоров не тратятся на согласование их взаимной работы в системе, на решение задачи дешифрования и т.д. Таблица 2.3 Варианты перебора ключа раскладок клавиатуры Раскладка Символы Варианты Минимальная длина пароля 0123456789ABCDEFGHIJKLMNOP QRSTUVWXYZАБВГДЕЖЗИЙКЛМ НОПРСТУФХЦЧШЩЪЫЬЭЮЯ 68 2.11*Е18 10 ABCDEFGHIJKLMNOPQRSTUVWX YZ АБВГДЕЖЗИЙКЛМНОПРСТУФХ ЦЧШЩЪЫЬЭЮЯ 58 2.49*Е19 11 0123456789АБВГДЕЖЗИЙКЛМНО ПРСТУФХЦЧШЩЪЫЬЭЮЯ 42 3.01*Е19 12 0123456789ABCDEFGHIJKLMNOP QRSTUVWXYZ 36 4.74*Е18 12 АБВГДЕЖЗИЙКЛМНОПРСТУФХ ЦЧШЩЪЫЬЭЮЯ 32 3.67*Е19 13 ABCDEFGHIJKLMNOPQRSTUVW XYZ 26 6.45*Е19 14 0123456789 10 1*Е19 19 Из проведенного нами исследования можно сделать вывод, что для обеспечения надежности достаточно использовать алгоритмы с длиной ключа не менее 64 битов, а применять и разрабатывать алгоритмы с длиной ключа более 128 бит экономически не выгодно. Однако, как правило, для генерации ключа используется пароль, который в свою очередь часто содержит лишь символы латинского алфавита. В таком случае для обеспечения необходимой защиты требуется использовать пароль не короче 12 символов, что соответствует 56-битному ключу. 16-символьный гарант пароль соответствует 75-битному ключу и гарантирует достаточную защиту от прямой атаки. 36 3.2 Разработка программы На текущий момент имеется несколько языков программирования высокого уровня, позволяющих создавать полноценные программы, предназначенные для работы в среде Microsoft Windows 9x. Мы выбрали хорошо известный язык C++, который обладает следующими достоинствами: во-первых, C++ обладает универсальностью и может быть использован для создания программ любого уровня сложности, а во-вторых, эффективный машинный код обеспечивает высокую скорость работы программы, что особенно немаловажно. Применяемые библиотеки и разработанные программные функции описаны ниже: Таблица 3.1 Использованные библиотеки Stdio.h Работа с файлами String.h Работа со строками Stdlib.h Вспомогательные процедуры Time.h Время Dos.h Прерывания Таблица 3.2 Программные процедуры Init_xor_table Инициализация S-бокса Use_xor_table Гаммирование данных через S-бокс SwaBits Перестановка Init_hash Инициализация хэширования Calc_hash Хэширование Add_hash Сложение данных в хэше Flush_hash Очистка буффера хэша Make_cryption_table Работа S-бокса Error Декларация об ошибке LookUp Возврат номера символа в строке UpStr Перекодировка пароля LnTrim Обрезка строки после Read_pwl_file Чтение PWL-файла Dump_pwl_file Просмотр ресурсов PWL-файла Enum_hdl Прерывание программы Voc_pwl_file Работа со словарем Try_pwl_file Подбор пароля Main Главная процедура 37 ( Начало программы ) / Ввод и ключей Продолжение М Просмотр Рис. сессии ключа файла С Загрузка _ Ввод пароля параметров | Взлом файла сессии по ключу Просмотр ресурсов Параметр ы взлома Подстановка по словарю Перебор по алфавиту Конец программы Блок-схема основной программы. 40 3.3 Функции программы Разработанная программа запускается из командной строки с ниже перечисленными ключами: /BF[:S] [ИмяPwlФайла] [ИмяПользователя] - для выполнения взлома PWL-файла перебором. Пароли последовательно будут изменяться и проверяться на корректность совпадения. /EN: [ИмяСекцииПеребора] - добавьте это к ключу /BRUTEFORCE для того, чтобы выбрать желаемую секцию перебора из .CFG файла. Секция перебора по умолчанию описана в конфигурационном файле. /F: [СтартоваяДлина] - добавьте это к ключу /BRUTEFORCE для определения желаемой длины начального пароля с которого начнется процесс перебора. По умолчанию длинна равна нулю. /IN: [НачальныйПароль] - добавьте это к ключу /BRUTEFORCE для выбора начального пароля. Перебор начнется с значения представленного данным ключем. Этот ключ несовместим с ключем /FROM. /D: [ПарольОстановки] - добавьте это к ключу /BRUTEFORCE для выбора пароля остановки. Перебор завершится при достижении данного пароля. Этот ключ несовместим с ключем /NUMBER. /NUM: [КоличествоИтераций] - добавьте это к ключу /BRUTEFORCE для выбора количества попыток перебора. Программа будет остановлена после совершения данного количества переборов паролей. Этот ключ несовместим с ключем /DONE. /VOC [:S] [ИмяPwlФайла] [ИмяПользователя] [МаскаСловарей] - для обнаружения пароля PWL-файла с помощью словаря. 41 /CON [:S] [ИмяФайлаСессии] - для возобновления прерванной сессии. /PROT [:ИмяФайлаПротокола] - добавление этого ключа к некоторым ключам позволит сохранять результаты работы в файле Протокола. /ABOUT /HELP, /?, /LIST и /SPY, /GRAB не допускают применение данного ключа. /L [:E] [ИмяPwlфайла] [ИмяПользователя] [ПарольПользователя] - для просмотра указанного PWL-файла с соответствующими параметрами, используйте атрибут 'E' для отображения технической информации. /GR [ИмяПротоколаБазы] - для просмотра секции [Password Lists] файла SYSTEM.ini. Эта секция описывает зарегистрированные PWL-файлы на данной машине. /TM [ОценочнаяСкорость] - для оценки времени работы сплошного перебора. Можно использовать ключ /ENUM для выбора секции символов перебора. Скорость указывается в pps (что обозначает паролей в секунду). /H [ИмяФайлаСправки] - для сохранения справки в текстовом файле. /? - для отображения этой краткой справки на терминале. Используйте атрибут 'S' с вышеперечисленными ключами для защиты данных от нестабильности электропитания. Применение атрибута вызовет периодическое сохранение результатов работы текущей сессии. Нажатие Ctrl+Break приводит к остановке процесса перебора и записи текущей сессии в соответствующем .BRK файле. 42 12.Спесивцев А. В. Защита информации в персональных ЭВМ. М.: Мир, 1992. 278 с. 13.Ростовцев А.Г., Матвеев В.А. Защита информации в компьютерных системах. Элементы криптологии. Под редакцией П.Д. Зегжды. СПб.: ГТУ, 1993. 365 с. 14.Fluhrer S.R., McGrew D.A. Statistical analysis of the alleged RC4 keystream generator. Fast Software Encryption, Cambridge Security Workshop Proceedings, 2000. p. 127-139. 15.Golic J.Dj. Linear models for keystream generators. IEEE Transactions on Computers, Vol. 45. January 1996. p. 41-49. 16.Menezes A.J., Oorschot P.C., Vanstone S.A. Handbook of Applied Cryptography. N.Y.: CRC-Press, 1996. 780 p. 17.Rivest R. L. The RC4 Encryption Algorithm. Dr. Dobb’s Journal. January 1995. p. 146 – 148. 18.Schneier B. Applied Cryptography. N. Y.: John Wiley & Sons Inc., 1996. 757 p. 45 ПРИЛОЖЕНИЕ ТЕКСТ ПРОГРАММЫ ДЛЯ АНАЛИЗА PWL-ФАЙЛОВ 46
Docsity logo