Автор: Пользователь скрыл имя, 15 Января 2013 в 00:36, курсовая работа
Широкое применение компьютерных технологий и постоянное увеличение объема информационных потоков вызывает постоянный рост интереса к криптографии. В последнее время увеличивается роль программных средств защиты информации, просто модернизируемых не требующих крупных финансовых затрат в сравнении с аппаратными криптосистемами. Современные методы шифрования гарантируют практически абсолютную защиту данных, но всегда остается проблема надежности их реализации.
ВВЕДЕНИЕ
1.Теоретические основы криптоанализа 5
1.1 Методы криптоанализа 5
1.2 Потоковые шифры 11
1.3 Алгоритм RC4 и его криптоанализ 15
2. Защита информации в операционных системах Microsoft Windows 25
2.1 Аутентификация, безопасность и доступ к ресурсам в операционных системах семейства Microsoft Windows 25
2.2 Структура PWL–файлов 27
3. Программа анализа PWL-файлов 32
3.1 Оценка надежности криптоалгоритмов в зависимости от длины ключа 32
3.2 Разработка программы 37
3.3 Функции программы 43
ЗАКЛЮЧЕНИЕ
Список использованной литературы
где подразумевается, что вектор состояния St-k - это функция от (Xt-k-1M-k, S t-M) для каждого 0≤k≤M-1. Линейные функции входа и выхода в (2) скоррелированы тогда и только тогда, когда функция шума e несбалансирована. Коэффициент корреляции не зависит от времени, если функция следующего состояния сбалансирована. Если это условие не удовлетворяется, то корреляционный коэффициент может зависеть от времени, поскольку от St более не требуется сбалансированность для каждого t≥0. Функция шума e в (3) определена как сумма индивидуальных шумовых функций, которые несбалансированы при условии, что сбалансирована функция следующего состояния. Поскольку от индивидуальных шумовых функций не требуется быть независимыми, в принципе нельзя исключать возможность, что коэффициент корреляции e с константной нулевой функцией равен нулю или очень близок к этому значению.
В рассматриваемом случае индивидуальные шумовые функции можно трактовать как булевы функции от n = MN + N + M переменных в (XM+1t , St -M). Следовательно, за исключением некоторых особых случаев, в общем случае можно с высокой вероятностью ожидать, что общий корреляционный коэффициент очень близок к произведению индивидуальных и, таким образом, отличается от нуля. Соответственно, метод АПЛС не только с высокой вероятностью дает взаимно коррелированные линейные функции от входа и выхода, но также позволяет оценить значение соответствующего корреляционного коэффициента, используя независимость или другие вероятностные предположения. Поскольку в идеальном случае хотелось бы получить такие АЛПС, в которых корреляционные коэффициенты по абсолютному значению близки к максимуму, то индивидуальные корреляционные коэффициенты должны быть крупными по величине, а количество шумовых членов в (3) должно быть маленьким. Конечно, эти требования могут противоречить друг другу. Поэтому хорошим подходом будет повторение процедуры АЛПС несколько раз, начиная с наилучших линейных аппроксимаций для функции выхода и компонент функции следующего состояния. Эта процедура может также выполняться для всех возможных линейных аппроксимаций, что представляется единственным систематическим способом проверить все корреляции, выявленные в процессе применения метода АЛПС. В общем случае имеется самое большее (M+1)2M+N таких линейных аппроксимаций. Однако, в принципе всегда можно проверить все возможные линейные аппроксимации даже при большом M, поскольку в практических реализациях функции выхода и следующего состояния зависят от сравнительно небольшого количества переменных или же составлены из таких булевых функций.
С практической точки зрения данная линейная модель может быть использована для выделения по шифротексту генератора RC4 среди других криптосистем, а также для восстановления параметра n. В 2000 году была опубликована статья Скотта Флюера и Дэвида Мак-Гри посвященная статистистическому анализу потокового генератора RC4, в которой были использованы результаты работы Голича для нахождения значения компонент S-бокса. Приблизительное время работы этого метода составляет 26n, где n - порция битов в выходном потоке, длина выходной последовательности, требуемая для выявления статистической слабости, близка к 230. Полученный результат указывает на существенную слабость генератора и возможность восстановить параметры i и n. S-бокс может принимать 2nk, где nk - число битов ключа.
В операционных системах Microsoft Windows для аутентификации пользователя используется имя пользователя, а для подтверждения введенного имени - процедура аутентификации, использующая символьный пароль пользователя. Алгоритм этой процедуры, которая вызывается из библиотеки MSPWL32.DLL, состоит из следующих шагов:
Шаг 1. Пользователь вводит свое имя и пароль в формате Unicode.
Шаг 2. Имя и пароль преобразуется в формат ASCII, причем строчные буквы преобразуются в прописные.
Шаг 3. Осуществляется преобразование пароля с помощью с алгоритма хэширования RC4.
Шаг 4. Результат сравнивается с данными, которые вычисляются путем дешифрования данных, хранящихся в PWL-файле, в начале загрузки операционной системы.
Шаг 5. В случае успешной проверки на шаге 4 пользователь получает доступ к системным ресурсам.
Управление доступом к сетевым ресурсам в операционных системах Windows осуществляется с помощью механизма профилей. Для этого создаются профили пользователей. Профиль пользователя в хранится в файле user.dat, который содержит учетную запись пользователя. Все профили системы содержатся в этом файле. Владелец компьютера, т. е. системный администратор, может присвоить тому или иному пользователю так называемый перемещаемый профиль, т. е. вы может произвести настройки профилей локально или через сеть. Настройка и установка профилей пользователей осуществляется через вкладку “Настройка пользователя”, обратиться к которой можно посредством двойного щелчка клавишей мыши на пиктограмме “Пользователи”.
Для создания нового профиля, требуется обратится к соответствующему мастеру нажатием кнопки “Добавить“. После чего система просит ввести пароль. После того создания новых профилей и настройки соответствующих параметров, Windows при каждой загрузке будет выводить диалоговое окно регистрации, в котором необходимо ввести свое имя и установленный пароль.
Концепция безопасности компьютера подразумевает защиту всех его компонентов - аппаратные средства и приложения - от несанкционированного доступа из локальной сети или Internet. В Windows любой пользователь вашего компьютера может зарегистрироваться в системе. При этом имя пользователя и пароль могут быть такими же, как и при входе в сеть.
Концепция безопасности в Windows весьма примитивна. В этой системе администратор, не можете создать группу пользователей, завести учетную запись пользователя, изменить права пользователя. Вместо продвинутого “Диспетчера пользователей” эта система предлагает довольно простенькое диалоговое окно свойств “Пароли”. Windows не обеспечивает достаточного уровня безопасности.
Механизм безопасности в Windows реализован только на уровне регистрации пользователя, т.е. так называемая унифицированная регистрация. Однажды введенный пароль и имя пользователя в окне регистрации при загрузке системы используется для доступа ко всем службам, приложениям и аппаратным ресурсам компьютера, поэтому хорошо подобранный пароль способен защитить вашу систему от проникновения. Никогда не следует записывать свой пароль на бумаге, пользоваться очевидными паролями (имена, названия городов), отправлять свой пароль по электронной почте, но следует использовать разумное количество символов при составлении пароля, иначе его можно просто забыть.
С помощью вкладки “Смена” паролей“ диалогового окна свойств “Пароли” изменяются параметры унифицированной регистрации всех ресурсов компьютера посредством задания нового пароля пользователя.
Задать новый пароль можно через вкладку “Настройка пользователя“. Для установки защиты на конкретный ресурс компьютера необходимо сделать его разделяемым. Windows позволяет управлять ресурсами компьютера пользователям, имеющим удаленный доступ к системе. Для чего требуется добавить соответствующую службу с помощью вкладки “Сеть” и после этого в диалоговом окне свойств “Пароли” появится новая вкладка “Удаленное управление”. Таким образом проведя оценку системы безопасности Windows , мы сделали вывод о ее недостаточной надежности. Стандартный набор офисного программного обеспечения Microsoft Office также недостаточно надежен, но поскольку эффективные средства его криптоанализа уже разработаны, то в данной работе эта тема не рассматривается.
Для аутентификации в операционных системах Microsoft Windows используются, хранящиеся в директории операционной системы, файлы *.PWL, которые содержат кэшированную парольную информацию. Какая бы то ни было документация по их структуре отсутствует, поэтому нами было проведено исследование этих файлов и было выяснен их формат.
Смещение |
Windows 3.11, Windows 95 без Service Pack |
Windows 95 с Service Pack, Windows OSR2 и Windows 98 |
0000:0003 |
Сигнатура - B0 6 4D 4E ("MFN") |
Сигнатура - E3 82 85 96 ("yВЕЦ") |
0004:0007 |
Счетчик пользователя |
Счетчик пользователя |
0008:107 |
Resource Link Index |
Resource Link Index |
0108 |
Нулевой байт |
Нулевой байт |
0109:0207 |
Resource Key Entry |
Resource Key Entry |
0208:021B |
Имя пользователя |
|
0208:0250 |
Таблица указателей на начала ресурсов | |
021C:023D |
Таблица указателей на начала ресурсов |
|
023E:025E |
Ресурс 0 … ресурс F |
|
0251 |
Нулевой байт | |
052:02AF |
Ресурс 0 … ресурс F |
В одном ресурсе может быть несколько парольных записей, следующих одна за другой. Первое слово каждой записи представляет собой длину записи, включая и это слово. Признаком конца цепочки записей является нулевое слово. Таким образом пустой ресурс - это просто нулевое слово. Тогда ясно, что если PWL-файл в Windows95 имеет длину 606 байт, и соответственно 688 в Windows98, то все ресурсы в нем пустые. Каждый ресурс зашифрован гаммой, которая накладывается, начиная с его начала.
PWL-файл шифруется простым гаммированием, гамма генерируется алгоритмом RC4. При первой регистрации пользователя запрашивается пароль. Далее пароль приводится к верхнему регистру и сворачивается в ключ. Из этого ключа порождается гамма (псевдослучайная последовательность нулей и единиц). Эта гамма сложением по модулю два накладывается на каждый из ресурсов с его начала и зашифровывает их. Аналогично ресурсам зашифровывается имя пользователя и таблица указателей на начала ресурсов.
Полученный ключ используется для инициализации генератора псевдослучайных чисел по алгоритму RC4. Для каждого ключа RC4 порождает уникальную битовую последовательность (гамму).
Алгоритм сопоставления ключа паролю слаб тем, что при выбранной длине ключа в двойное слово, множество различных ключей 232 оказывается неизмеримо меньше множества различных паролей. Это означает, что существуют пароли, которые операционная система не различает.
При последующих регистрациях данным пользователем запрашивается пароль. Он приводится к верхнему регистру, опять сворачивается в ключ из которого опять порождается гамма. Если порождаемое этой гаммой имя пользователя дешифровывается правильно, то пароль считается введенным правильно. После этого дешифровываются таблица указателей на начала ресурсов и сами ресурсы. Дешифровка производится вторичным наложением гаммы сложением по модулю два. Если имя пользователя не дешифровывается правильно, то пароль считается неправильным. Таким образом проверка правильности введенного пароля производится по совпадению первых 20-и байт порожденной из него гаммы с первыми 20-ю байтами гаммы от правильного пароля. Этот алгоритм определения подлинности пароля является весьма оригинальным, т.к. нигде не сохраняется ни зашифрованный пароль, ни хеш-функция (необратимое преобразование) пароля, но, в то же время нелепо реализованным. Ведь поскольку имя пользователя известно заранее, то первые 20 байт гаммы тривиально вычисляются. Но, т.к. эта же гамма накладывается на каждый ресурс (отсутствие смены гаммы при шифровании разных полей - это основная ошибка применения алгоритма RC4 в данном случае), то можно дешифровать и первые 20 байт каждого ресурса! PWL-файл имеет избыточную информацию - есть указатели на начала ресурсов, но есть и длины записей в ресурсах и из одного можно вычислять другое. Если в ресурсах не более одной записи, то длина ресурса есть первое слово ресурса плюс два (длина первой записи ресурса плюс длина нулевого слова). Определяя по началу и длине данного ресурса начало следующего, рассчитывается вся таблица указателей на начала ресурсов. Если в ресурсах более одной записи, то начало следующего ресурса все равно можно найти. Это сводит прочность системы шифрования к нулю (под прочностью системы шифрования понимается количество вариантов, которые необходимо перебрать для ее гарантированного вскрытия).
Алгоритм генерации ключа по паролю
Имеем ключ (двойное слово) и пароль до 20-и символов.
1) Обнулить ключ.
2) Привести пароль к верхнему регистру.
3) Для каждого символа пароля, начиная с первого:
а) прибавить код символа к ключу
б) повернуть ключ влево 7 раз.
Алгоритм сопоставления ключа паролю слаб тем, что при выбранной длине ключа в двойное слово, множество различных ключей 232 оказывается неизмеримо меньше множества различных паролей. Это означает, что существуют пароли, которые Windows не отличает друг от друга. Это делает совершенно бессмысленными допускаемые в Windows длинные пароли и эффективная длина пароля соответствует только пяти символам! Правда, это не означает, что для каждого пароля найдется эквивалент из пяти символов, т.к. множество паролей отображается на множество ключей неравномерно.
Между тем, достаточно было накладывать гамму на ресурсы, не используя первых засвеченных ее байт, что и было реализовано в следующих версиях. Таким образом, в механизме безопасности операционной системы Microsoft Windows обнаружена существенная ошибка. Для ее исправления необходимо модернизация операционной системы. Кроме того, в новых версиях длина пароля ограничена не 32 байтами, а 128.
Любую секретную информацию можно получить путем перебора всех возможных ключей, поэтому проведем оценку возможности подбора ключей. Проблема поиска ключей симметричной криптосистемы путем перебора всех возможных ключей относится к классу задач, допускающих распараллеливание, поэтому применение распределенных вычислений для организации перебора таких ключей позволяет эффективно решать трудоемкие задачи в этой области. Экспоненциальная динамика роста с течением времени производительности вычислительных систем оказывает еще более существенное влияние на рост производительности системы в целом. Таким образом, прогресс в этой области возможен за счет:
1. использования достижений научно-технического прогресса и применения технологических новинок для увеличения производительности отдельного устройства;
2. увеличения количества процессоров в системе.
С физической точки зрения транзистор, который является основой современной интегральной схемы, может быть уменьшен еще примерно в 10 раз, до размера 0,03 микрон. За этой гранью процесс включения/выключения микроскопических переключателей станет практически невозможным. Таким образом максимальное быстродействие составит - 1016 операций/секунду, а предел роста наступит приблизительно в 2030 г.
Информация о работе Сравнительный анализ криптографических систем