ЗАМЕЧАНИЕ
Атрибуты безопасности объектов и уровни доступа субъектов могут быть закодированы цифрами для удобства хранения и сравнения.
4.4 Реализовать программный модуль, создающий мандатную модель политики безопасности. Реализация данного модуля подразумевает следующее:
4.4.1 Выбрать идентификаторы пользователей-субъектов, которые будут использоваться при их входе в компьютерную систему (по одному идентификатору для каждого пользователя, количество пользователей-субъектов задано для Вашего варианта). Например, множество из 3 идентификаторов пользователей {Ivan, Sergey, Boris}.
4.4.2 Заполнить вектор OV, задающий уровни конфиденциальности объектов, случайным образом. Множество атрибутов безопасности A представлено выше.
4.4.3 Заполнить вектор UV, задающий уровни допуска пользователей, случайным образом. Множество атрибутов безопасности A представлено выше.
4.4.4 Распечатать на экране вектора OV и UV, определяющие уровни конфиденциальности объектов и уровни допуска пользователей. Вывод можно осуществить, например, следующим образом:
Уровни конфиденциальности объектов (OV):
Объект_1: Открытые данные
Объект_2: Секретно
Объект_3: Совершенно секретно
Объект_4: Открытые данные
Уровни допуска пользователей (UV)
Ivan: Совершенно секретно
Sergey: Секретно
Boris: Открытые данные
4.5 Реализовать программный модуль, демонстрирующий работу системы в мандатной модели политики безопасности. Данный модуль должен выполнять следующие функции:
4.5.1 Выполнять идентификацию пользователя при входе в систему. При успешной идентификации пользователя должен осуществляться вход в систему. При неуспешной – выводиться соответствующее сообщение.
4.5.2 При входе в систему после успешной идентификации пользователя, на экране должен распечатываться список тех объектов системы, к которым у вошедшего пользователя есть доступ. Вывод можно осуществить, например, следующим образом:
User: Boris
Идентификация прошла успешно, добро пожаловать в систему
Перечень доступных объектов: Объект_1, Объект_4.
Жду ваших указаний >
4.5.3 После вывода на экран перечня доступных объектов, программа должна ждать указаний пользователя на осуществление действий над объектами в компьютерной системе (команда request). После получения команды request от пользователя, на экран должно выводиться сообщение об успешности либо не успешности операции. Должна поддерживаться операция выхода из системы (quit), после которой должен запрашиваться другой идентификатор пользователя. Диалог можно организовать, например, следующим образом:
Жду ваших указаний > request
К какому объекту хотите осуществить доступ? 1
Операция прошла успешно
Жду ваших указаний > request
К какому объекту хотите осуществить доступ? 2
Отказ в выполнении операции. Недостаточно прав.
Жду ваших указаний > quit
Работа пользователя Boris завершена. До свидания.
User:
4.6 Прогнать реализованную программу, продемонстрировав реализованную модель мандатной политики безопасности преподавателю.
4.7 Оформить в тетради отчет по лабораторной работе.
5 Ответьте на контрольные вопросы:
5.1 В чем заключается модель мандатной политики безопасности в компьютерной системе?
5.2 Перечислить группу аксиом, определяющих мандатную модель политики безопасности.
5.3 Какой уровень допуска должен иметь администратор компьютерной системы?
6 Содержание отчета:
Заголовок лабораторной работы (название и цель работы).
Задание к лабораторной работе.
Постановка задачи Вашего варианта.
Приложение 1
Мандатная модель политики безопасности предполагает нормативное управление доступом субъектов к объектам с использованием меток безопасности.
В данной модели каждому субъекту приписывается уровень допуска (форма допуска), а каждому объекту – уровень конфиденциальности (гриф секретности).
Мандатную модель можно определить следующей группой аксиом:
Имеется множество атрибутов безопасности. В качестве таких атрибутов достаточно часто используется следующее множество: {«Совершенно секретно», «Секретно», «Открытые данные»}.
Каждому объекту компьютерной системы присваивается определенный атрибут безопасности, который соответствует его ценности.
Каждому субъекту присваивается определенный атрибут безопасности, который определяет уровень его допуска. Он равен максимальному из атрибутов безопасности объектов, к которому субъект будет иметь доступ.
Если субъект UiU имеет атрибут Ai, то он будет иметь доступ ко всем объектам, у которых уровень секретности (атрибут безопасности) будет меньше, либо равен Ai.
При реализации мандатной модели политики безопасности, как правило, существует два вектора
Вектор [pic] , задающий уровни конфиденциальности для всех объектов компьютерной системы (n – количество объектов).
Вектор [pic] , задающий уровни допуска для всех субъектов в компьютерной системе (m – число субъектов).
Модуль защиты при осуществлении доступа субъекта к объекту сравнивает уровень допуска субъекта с уровнем конфиденциальности объекта и по результатам сравнения разрешает либо запрещает данный доступ. Доступ разрешается, если уровень допуска субъекта больше либо равен уровня конфиденциальности объекта. В ином случае, доступ запрещается.
ЛАБОРАТОРНАЯ РАБОТА 9,10
Антивирусные программы
1 Цель работы: целью лабораторной работы является освоение программных продуктов AVP( «Антивирус Касперского »), Dr. Web, ADinf, а так же пополнение информации о существующих вирусах.
2 Оборудование и программное обеспечение: персональный компьютер, программа AVP( «Антивирус Касперского »), Dr. Web, ADinf.
3 Подготовка к работе:
3.1 Изучить виды антивирусных программ.
4 Порядок выполнения работы:
4.1 Основной практической части является ознакомление с программными продуктами AVP, Dr. Web, ADinf.
4.2 Попытка обнаружения вируса BackDoor.Rain.1 являющийся вирусом типа «Worm», в том числе и иных вирусов.Для запуска программ требуется зайти в меню «Пуск» - > «Программы» - > а далее запустить одну из нескольких описанных выше программ и проверить терминал на присутствие вируса.
4.3. Составить отчет.
5 Ответьте на контрольные вопросы:
5.1 Какие антивирусные программы на ваш взгляд являются самыми эффективными? (Обоснуйте свой ответ).
6 Содержание отчета:
6.1 Заголовок лабораторной работы (название и цель работы).
6.2 Задание к лабораторной работе.
Приложение 1
Компьютерным вирусом называется программа (некоторая совокупность выполняемого кода/инструкций), которая способна создавать свои копии (не обязательно полностью совпадающие с оригиналом) и внедрять их в различные объекты/ресурсы компьютерных систем, сетей и т.д. без ведома пользователя. При этом копии сохраняют способность дальнейшего распространения.
Вирусы можно разделить на классы по следующим признакам:
а) по среде обитания вируса;
б) по способу заражения среды обитания;
в) по деструктивным возможностям;
г) по особенностям алгоритма вируса.
а) по среде обитания вирусы можно разделить на сетевые, файловые и загрузочные. Сетевые вирусы распространяются по компьютерной сети, файловые внедряются в выполняемые файлы, загрузочные - в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий системный загрузчик винчестера (Master Boot Record). Существуют сочетания - например, файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора дисков.
б) способы заражения делятся на резидентный и нерезидентный. Резидентный вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращение операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
в) По деструктивным возможностям вирусы можно разделить на:
1)безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
2)неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и пр. эффектами;
3)опасные вирусы, которые могут привести к серьезным сбоям в работе
4)очень опасные, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти.
г) По особенностям алгоритма можно выделить следующие группы вирусов:
- компаньон-вирусы (companion) - это вирусы, не изменяющие файлы. Алгоритм работы этих вирусов состоит в том, что они создают для EXE-файлов файлы-спутники, имеющие то же самое имя, но с расширением .COM, например, для файла XCOPY.EXE создается файл XCOPY.COM. Вирус записывается в COM-файл и никак не изменяет EXE-файл. При запуске такого файла DOS первым обнаружит и выполнит COM-файл, т.е. вирус, который затем запустит и EXE-файл.
- вирусы-“черви” (worm) - вирусы, которые распространяются в компьютерной сети и, так же как и компаньон-вирусы, не изменяют файлы или сектора на дисках. Они проникают в память компьютера из компьютерной сети, вычисляют сетевые адреса других компьютеров и рассылают по этим адресам свои копии. Такие вирусы иногда создают рабочие файлы на дисках системы, но могут вообще не обращаться к ресурсам компьютера (за исключением оперативной памяти). К счастью, в вычислительных сетях IBM-компьютеров такие вирусы пока не завелись.
- “паразитические” - все вирусы, которые при распространении своих копий обязательно изменяют содержимое дисковых секторов или файлов. В эту группу относятся все вирусы, которые не являются “червями” или “компаньон”.
- “студенческие” - крайне примитивные вирусы, часто нерезидентные и содержащие большое число ошибок;
- “стелс”-вирусы (вирусы-невидимки, stealth), представляющие собой весьма совершенные программы, которые перехватывают обращения DOS к пораженным файлам или секторам дисков и “подставляют” вместо себя незараженные участки информации. Кроме этого, такие вирусы при обращении к файлам используют достаточно оригинальные алгоритмы, позволяющие “обманывать” резидентные антивирусные мониторы.
- “полиморфик”-вирусы (самошифрующиеся или вирусы-призраки, polymorphic) - достаточно труднообнаруживаемые вирусы, не имеющие сигнатур, т.е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика.
- “макро-вирусы” - вирусы этого семейства используют возможности макро-языков, встроенных в системы обработки данных (текстовые редакторы, электронные таблицы и т.д.). В настоящее время наиболее распространены макро-вирусы заражающие текстовые документы редактора Microsoft Word.
Возможные симптомы вирусного поражения
Основные симптомы вирусного поражения следующие:
Замедление работы некоторых программ.
Увеличение размеров файлов (особенно выполняемых).
Появление не существовавших ранее “странных” файлов.
Уменьшение объема доступной оперативной памяти (по сравнению с обычным режимом работы).
Внезапно возникающие разнообразные видео и звуковые эффекты.
При всех перечисленных выше симптомах, а также при других “странных” проявлениях в работе системы (неустойчивая работа, частые “самостоятельные” перезагрузки и прочее) мы настоятельно рекомендуем Вам, немедленно произвести проверку Вашей системы на наличие вирусов с помощью Антивируса Касперского. При этом лучше, если программа будет самой последней версии и с самыми свежими обновлениями антивирусных баз.
ЛАБОРАТОРНАЯ РАБОТА 11
Защита информации с помощью пароля
1 Цель работы: Целью работы является исследование защиты с применением пароля, а также исследование методов противодействия атакам на пароль.
2 Оборудование и программное обеспечение: персональный компьютер, программа Advanced ZIP Password Recovery.
3 Подготовка к работе:
3.1. Знать понятия пароля и последствия атак на него.
4 Порядок выполнения работы:
4.1.Проведение атаки перебором (bruteforce attack):
4.1.1 Используя программу для вскрытия паролей произвести атаку на зашифрованный файл try_me.rar (try_me.arj, try_me.zip – в зависимости от варианта). Область перебора – все печатаемые символы, длина пароля от 1 до 4 символов. Время выполнения на компьютере класса Pentium примерно 3-4 минуты. На компьютере класса Pentium II – 50 секунд. Проверить правильность определенного пароля, распаковав файл и ознакомившись с его содержимым.
4.1.2 Выполнив пункт 1, сократить область перебора до фактически используемого (например если пароль 6D1A – то выбрать прописные английские буквы и цифры). Провести повторное вскрытие. Сравнить затраченное время.
4.2.Проведение атаки по словарю (dictionary attack)
4.2.1 Сжать какой-либо небольшой файл, выбрав в качестве пароля английское слово длиной до 5 символов (например love, god, table, admin и т.д.). Провести атаку по словарю. Для этого выбрать вид атаки и в закладке Словарь выбрать файл English.dic. Он содержит набор английских слов и наборы символов, наиболее часто использующиеся в качестве паролей.
4.2.2 Попытаться определить пароль методом прямого перебора. Сравнить затраченное время.
5 Ответьте на контрольные вопросы:
5.1 Какие виды атак на пароль Вы знаете?
5.2 Что такое плохой пароль?
5.3 Как можно противостоять атаке полным перебором?
5.4 Как длина пароля влияет на вероятность раскрытия пароля?
5.5 Какие рекомендации по составлению паролей Вы можете дать?
6 Содержание отчета:
6.1 Наименование и цель работы.
6.2 Описание порядка выполнения работы.
6.3 Ответы на контрольные вопросы.
6.4 Выводы по работе.
Приложение 1
На сегодняшний день пароль является наиболее приемлемым и потому наиболее часто используемым средством установления подлинности, основанным на знаниях субъектов доступа.
В любой критической системе ошибки человека-оператора являются чуть ли не самыми дорогостоящими и распространенными. В случае криптосистем, непрофессиональные действия пользователя сводят на нет самый стойкий криптоалгоритм и самую корректную его реализацию и применение.
В первую очередь это связано с выбором паролей. Очевидно, что короткие или осмысленные пароли легко запоминаются человеком, но они гораздо проще для вскрытия. Использование длинных и бессмысленных паролей безусловно лучше с точки зрения криптостойкости, но человек обычно не может их запомнить и записывает на бумажке, которая потом либо теряется, либо попадает в руки злоумышленнику. Именно из того, что неискушенные пользователи обычно выбирают либо короткие, либо осмысленные пароли, существуют два метода их вскрытия: атака полным перебором и атака по словарю.
Защищенность пароля при его подборе зависит, в общем случае, от скорости проверки паролей и от размера полного множества возможных паролей, которое, в свою очередь, зависит от длины пароля и размера применяемого алфавита символов. Кроме того, на защищенность сильно влияет реализация парольной защиты.
В связи с резким ростом вычислительных мощностей атаки полным перебором имеют гораздо больше шансов на успех, чем раньше. Кроме того, активно используются распределенные вычисления, т.е. равномерное распределение задачи на большое количество машин, работающих параллельно. Это позволяет многократно сократить время взлома.
Однако вернемся на несколько лет назад, когда вычислительной мощности для полного перебора всех паролей не хватало. Тем не менее, хакерами был придуман остроумный метод, основанный на том, что в качестве пароля человеком выбирается существующее слово или какая-либо информация о себе или своих знакомых (имя, дата рождения и т.п.). Ну, а поскольку в любом языке не более 100000 слов, то их перебор займет весьма небольшое время, и от 40 до 80% существующих паролей может быть угадано с помощью простой схемы, называемой “атакой по словарю”. Кстати, до 80% этих паролей может быть угадано с использованием словаря размером всего 1000 слов!
Пусть сегодня пользователи уже понимают, что выбирать такие пароли нельзя, но, видимо, никогда эксперты по компьютерной безопасности не дождутся использования таких простых и радующих душу паролей, как 34jХs5U@bТа!6;). Поэтому даже искушенный пользователь хитрит и выбирает такие пароли, как hоре1, user1997, рАsSwOrD, toor, roottoor, раго1, gfhjkm, asхz. Видно, что все они, как правило, базируются на осмысленном слове и некотором простом правиле его преобразования: прибавить цифру, прибавить год, перевести через букву в другой регистр, записать слово наоборот, прибавить записанное наоборот слово, записать русское слово латинскими буквами, набрать русское слово на клавиатуре с латинской раскладкой, составить пароль из рядом расположенных на клавиатуре клавиш и т.п.
Поэтому не надо удивляться, если такой “хитрый” пароль будет вскрыт хакерами — они не глупее самих пользователей, и уже вставили в свои программы те правила, по которым может идти преобразование слов. В самых "продвинутых" программах (John The Ripper, Password Cracking library) эти правила могут быть программируемыми и задаваться с помощью специального языка самим хакером.
Приведем пример эффективности такой стратегии перебора. Во многих книгах по безопасности предлагается выбирать в качестве надежного пароля два осмысленных слова, разделенных некоторым знаком (например, good!password). Подсчитаем, за сколько времени в среднем будут сломаны такие пароли, если такое правило включено в набор программы-взломщика (пусть словарь 10000 слов, разделительными знаками могут быть 10 цифр и 32 знака препинания и специальных символа, машина класса Pentium со скоростью 15000 паролей/сек):
10000*(32+10)*10000/15000*2=140000 секунд или менее 1.5 дня!
Чем больше длина пароля, тем большую безопасность будет обеспечивать система, так как потребуются большие усилия для его отгадывания. Это обстоятельство можно представить в терминах ожидаемого времени раскрытия пароля или ожидаемого безопасного времени. Ожидаемое безопасное время (Тб) — половина произведения числа возможных паролей и времени, требуемого для того, чтобы попробовать каждый пароль из последовательности запросов. Представим это в виде формулы:
[pic] (1)
где t— время, требуемое на попытку введения пароля, равное E/R;
E — число символов в передаваемом сообщении при попытке получить доступ (включая пароль и служебные символы);
R — скорость передачи (символы/мин) в линии связи;
S — длина пароля;
А — число символов в алфавите, из которых составляется пароль. Если после каждой неудачной попытки подбора автоматически предусматривается десятисекундная задержка, то безопасное время резко увеличивается.
Поэтому при использовании аутентификации на основе паролей защищенной системой должны соблюдаться следующие правила:
а) не позволяются пароли меньше 6–8 символов;
б) пароли должны проверяться соответствующими контроллерами;
в) символы пароля при их вводе не должны появляться в явном виде;
г) после ввода правильного пароля выдается информация о последнем входе в систему;
д) ограничивается количество попыток ввода пароля;
е) вводится задержка времени при неправильном пароле;
ж) при передаче по каналам связи пароли должны шифроваться;
з) пароли должны храниться в памяти только в зашифрованном виде в файлах, недоступных пользователям;
и) пользователь должен иметь возможность самому менять пароль;
к) администратор не должен знать пароли пользователей, хотя может их менять;
л) пароли должны периодически меняться;
м) устанавливаются сроки действия паролей, по истечении которых надо связаться с администратором.
Проблема выбора пароля
Выбор длины пароля в значительной степени определяется развитием технических средств, их элементной базы и ее быстродействием. В настоящее время широко применяются многосимвольные пароли, где S>10. В связи с этим возникают вопросы: как и где его хранить и как связать его с аутентификацией личности пользователя? На эти вопросы отвечает комбинированная система паролей, в которой код пароля состоит из двух частей. Первая часть состоит из 3–4-х десятичных знаков, если код цифровой, и более 3–4-х, если код буквенный, которые легко запомнить человеку. Вторая часть содержит количество знаков, определяемое требованиями к защите и возможностями технической реализации системы, она помещается на физическом носителе и определяет ключ-пароль, расчет длины кода которого ведется по указанной выше методике. В этом случае часть пароля будет недоступна для нарушителя.
Однако при расчете длины кода пароля не следует забывать о том, что при увеличении длины пароля нельзя увеличивать периодичность его смены. Коды паролей необходимо менять обязательно, так как за большой период времени увеличивается вероятность их перехвата путем прямого хищения носителя, снятия его копии, принуждения человека. Выбор периодичности необходимо определять из конкретных условий работы системы, но не реже одного раза в год. Причем желательно, чтобы дата замены и периодичность должны носить случайный характер.
Для проверки уязвимости паролей используются специальные контроллеры паролей. Например, известный контроллер Кляйна, осуществляет попытки взлома пароля путем проверки использования в качестве пароля входного имени пользователя, его инициалов и их комбинаций, проверки использования в качестве пароля слов из различных словарей, начиная от наиболее употребительных в качестве пароля, проверки различных перестановок слов, а также проверки слов на языке пользователя–иностранца. Проверка паролей в вычислительных сетях с помощью контроллера Кляйна показала довольно высокие результаты — большинство пользователей используют простые пароли. Показателен пример, когда контроллер Кляйна позволил определить 100 паролей из 5 символов, 350 паролей из 6 символов, 250 паролей из 7 символов и 230 паролей из 8 символов.
Приведенный анализ позволяет сформулировать следующие правила снижения уязвимости паролей и направленные на противодействие известным атакам на них:
– расширяйте применяемый в пароле алфавит — используйте прописные и строчные буквы латинского и русского алфавитов, цифры и знаки;
– не используйте в пароле осмысленные слова;
– не используйте повторяющиеся группы символов;
– не применяйте пароли длиной менее 6–8 символов, так как запомнить их не представляет большого труда, а пароль именно нужно запоминать, а не записывать. По той же причине не имеет смысла требовать длину неосмысленного пароля более 15 символов, так как запомнить его нормальному человеку практически невозможно;
– не используйте один и тот же пароль в различных системах, так как при компрометации одного пароля пострадают все системы;
– проверяйте пароли перед их использованием контроллерами паролей.
Для составления пароля можно дать рекомендации, которыми пользоваться надо очень осторожно:
– выберите несколько строк из песни или поэмы (только не те, которые Вы повторяете первому встречному) и используйте первую (или вторую) букву каждого слова — при этом пароль должен иметь большую длину (более 15 символов), иначе нужно менять регистры букв, применять латинские буквы вместо русских или наоборот, можно вставлять цифры и знаки;
– замените в слове из семи–восьми букв одну согласную и одну или две гласных на знаки или цифры. Это даст вам слово-абракадабру, которое обычно произносимо и поэтому легко запоминается. Подведем итог:
Что такое плохой пароль:
Что такое хороший пароль:
Работа с программами взлома на примере AZPR
Программа AZPR используется для восстановления забытых паролей ZIP-архивов. На сегодняшний день существует два способа вскрытия паролей: перебор (brute force) и атака по словарю (dictionary-based attack).
Панель управления (рисунок 1):
кнопки Открыть и Сохранить позволяют работать с проектом, в котором указан вскрываемый файл, набор символов, последний протестированный пароль. Это позволяет приостанавливать и возобновлять вскрытие.
. [pic]
Рисунок 1 – Внешний вид программы
Рассмотрим возможности программы:
Выбирается архив для вскрытия и тип атаки ( рисунок 2).
[pic]
Рисунок 2 – Выбор архива
Выбираются параметры работы:
Программа позволяет выбрать область перебора (набор символов). Это значительно сокращает время перебора. Можно использовать набор пользователя, заданный с помощью кнопки Набор. Можно ограничить количество тестируемых паролей, задав начальный пароль. В случае если известна часть пароля, очень эффективна атака по маске. Нужно выбрать соответствующий тип атаки, после этого станет доступным поле маска. В нем нужно ввести известную часть пароля в виде P?s?W?r? , где на месте неизвестных символов нужно поставить знак вопроса. Можно использовать любой другой символ, введя его в поле символ маски.
[pic]
Рисунок 3 – Закладка «Длина»
Позволяет выбрать длину пароля.
Позволяет выбрать файл-словарь. Выбирайте файл English.dic, он содержит набор английских слов и наборы символов, наиболее часто использующиеся в качестве паролей.
Можно выбрать имя файла для сохранения результатов работы и интервал автосохранения.
Выбирается приоритет работы (фоновый или высокий), интервал обновления информации о тестируемом в данный момент пароле. Увеличение интервала повышает быстродействие, но снижает информативность. Также можно установить режим ведения протокола работы и возможность минимизации программы в tray (маленькая иконка рядом с часами).
ЛАБОРАТОРНАЯ РАБОТА 12, 13
Криптографические методы защиты информации
1 Цель работы: Ознакомиться с теорией методов современной криптографии на примере программирования одного из предложенных алгоритмов
2 Оборудование и программное обеспечение: персональный компьютер, программа С++, Delphi.
3 Подготовка к работе:
3.1 Знать языки программирования С++ и Delphi.
3.2 Изучить понятия защиты информации
4 Порядок выполнения работы:
4.1 Выбрать язык программирования.
4.2 Изучить материал в приложении.
4.3 Запрограммировать один из предложенных алгоритмов:
4.3.1 Волновой метод;
4.3.2 RSA;
4.3.3 TEA.
5 Ответьте на контрольные вопросы:
5.1 Что представляет собой волновой метод?
5.2 Что представляет собой RSA?
5.3 Что представляет собой TEA?
6 Содержание отчета:
6.1 Наименование и цель работы.
6.2. Описание порядка выполнения работы.
6.3. Ответы на контрольные вопросы.
6.4. Выводы по работе.
Приложение 1
Волновой метод криптографии
Поставленная цель достигается тем, что изменяем стандартный способ шифрования на новый. Рисунок 4. Путем использования периодических функций типа у =cos(х) и уравнения «волны» типа y=сos(x+dx).
Предложенная совокупность признаков обладает новизной и существенными отличиями.Впервые для защиты информации используется периодическая функция и уравнение волны.В отличии от прототипа объем исходного текста равен объему шифровки.
Ha криптостойкость так же не влияет объем исходного текста и его содержание (он может состоять из одной буквы). Также на криптостойкость не влияет знание алгоритма зашифрования, так как нельзя имея на руках исходный текст и шифровку поставить перед машинными средствами задачу по расшифрованию.Сущность способа пояснена ниже :
Существует огромное количество периодических функций, имеющих постоянную амплитуду, которые определены и непрерывны на всем промежутке
x (“-“ бесконечность; “+” бесконечность).
[pic]
Рисунок 4 – Волновой метод
На графике представлена функция y=cos(x). Особенность периодической функции в том, что, к максимальному значению у = 0,5 соответствует бесконечное количество значений х.
Применяя уравнение волны y=cos( х+N*dx), где N - любое целое число, a dx->0, получаем, что при у=0,5х может принимать любые значения от ”- бесконечности до ”+”бесконечности. (рисунок 5).
[pic]
Рисунок 5
Предложенный способ осуществляется следующим образом. Создается компьютерная программа. По оси х расставляют и номеруют те символы, которые нужно зашифровать, а по оси у те, которые будут использованы в шифровке. Зашифрование идет по линейной функции у=х, которая перемещается по осям координат. Перемещение линейной функции у=х происходит по уравнению волны.
Пример реализации способа:
По координатньм осям X и Y расставляются компьютерные символы в любом порядке. Всего используется в компьютере 256 символов. Они все расставляются по оси X в любом порядке, по оси Y расставляем те же самые символы в любом порядке. Три линейные функции 1,2,3 описываются как: Yl, Y2, Y3,
Y1=X + 256*[cos(z + N*dx)] + 256
Y2 =Х + 256 * [cos (z + N* dx ) ]
Y3 -X + 256 * [ cos ( z + N * dx ) ] -256
Где: X - тот байт (знак), который нужно зашифровать;
Z - любое число.
N-номер по счету шифруемого знака в исходном тексте;
dx- любое число.
Для гримера зашифруем исходный текст состоящий из пяти букв А.
АААА А - исходный текст (рисунок 6).
[pic]
•' У
Рисунок 6
Для примера порядок расстановки знаков по осям X и Y одинаковый. Например, знак А занимает промежуток (0-1) по оси X, знак Б-(1-2); В-(2-3)…Я-(255-256). То же самое по оси Y, Имея три формулы, подставляем значение 0,5 - середину промежутка (0-1) - буква А.
Пусть: Z = 0 (для удобства);
N = 1 (т.к. шифруется первый по счету знак из исходного текста, потом 2,3,4,5);
dx = 32.
Подставляем эти цифры в формулу
Yl=0,5 + 256*[cos(z + 1 * 32)] + 256=437,6
Y2 =0,5 + 256 *[ cos(z + 1 * 32)] =217,6
Y3=0,5 + 256*[cos(z+ 1*32)] -256 = -38,39
Из трех значений Y I, Y2 , Y3 выбираем Y2, так как оно попало в промежуток то 0 до 256 и округляем значение Y2 до большего целого Y2=218.
Шифруем второй знак исходного текста:
Y1 =0,5 + 256 *[ cos ( Z + 2 * 32) ] + 256 = 368,7
Y2 = 0,5 + 256 *[ cos (Z + 2 * 32) ] =112,7
Y3 =0,5 + 256*[ cos (Z + 2 * 32) ] - 256 = -143,28
В шифровку, соответственно, записываем Y2=113.
Соответственно получаем третий, четвертый и пятый знаки шифровки:
Третий знак - 230
Четвертый знак- 99
Пятый знак- 16
В итоге из числового ряда 0,5; 0,5; О,5; 0,5; 0,5 - исходный текст А А А А А получили числовой ряд 218; 113; 230; 99; 16 -шифровка.
Для расиифровки применяют те же самые формулы.
XI = Y - 256 *[ cos (z + N *dx)]- 256
X2=Y-256*[cos(z + N*dx)]
X3=Y-256*[cos(z + N*dx)]+256
Подставляя уже известные значения получаем:
XI = 217,5 - 256 * [COS ( 0 + 1 * 32 ) ] - 256 = -255,6
Х2 = 217,5 - 256 * [COS (0 + 1 * 32 ) ] =0,4
ХЗ = 217,5 - 256* [COS (0 + 1 * 32 ) ] + 256 = 265,4
X=0,4
Подставляя следующие значения получаем остальные значения: 0,3;0,7; O,6; 0,56; все эти значения попали в промежуток (0-1), соответственно получили текст
А А А А А.
В данном частном случае использовалась всего одна переменная dx, а их можно использовать неограниченное количество. Кроме того, исходный текст можно зашифровать не один раз , а несколоко. Теоретически возможно зашифровать стихи Пучкина стихами Лермонтова или наоборот.
Криптосистема RSA
Несмотря на довольно большое число различных СОК, наиболее популярна -криптосистема RSA, разработанная в 1977 году и получившая название в честь ее создателей: Рона Ривеста [pic] , Ади Шамира и Леонарда Эйдельмана.Они воспользовались тем фактом, что нахождение больших простых чисел в вычислительном отношении осуществляется легко, но разложение на множители
произведения двух таких чисел практически невыполнимо. Доказано (теорема Ра-бина), что раскрытие шифра RSA эквивалентно такому разложению. Поэтому для любой длины ключа «южно дать нижнюю оценку числа операций для раскрытия шифра, а с учетом производительности современных компьютеров оценить, и не-ииХодимис на зто время.
Возможность гарантированно оценить защищенность алгоритма RSA стала одной из причин популярности этой СОК на фоне десятков других схем. Поэтому алгоритм RSA используется в банковских компьютерных сетях, особенно для работы с удаленными клиентами (обслуживание кредитных карточек).
В настоящее время алгоритм RSA используется во многих стандартах, среди которых SSL, S-HHT.P, S-MME, SWAN, STT и РСТ.
Рассмотрим математические результаты, положенные в основу этого алгоритма.
Теорема 1. (Малая теорема Ферма)
Еcли p - простое число, то
x [pic] =1(mod p) (1)
для любого x, простого относительно p, и
x [pic] =x(mod p) (2)
для любого х.
Доказательство. Достаточно доказать справедливость уравнений (1) и (2) лля X [pic] . Проведем доказательство методом индукции.
Очевидно, что уравнение (8.2.2) выполняется при х=0 и 1. Далее:
x [pic] =(x-1+1) [pic] = [pic]
0<=j<=p
так как C(p,j)=0(mod p) при 0<j<p. С учетом этого неравенства и предложений метода доказательства по индукции теорема доказана.
Определение. Функцией Эйлера [pic] (n) называется число положительных целых, меньших п и простых относительно п.
n 2
3
4
5
6
7
8
9
10
11
12
[pic] (n)
1
2
2
3
2
6
4
6
4
10
4
Теорема 2. Если n=pq, (p и q- отличные друг от друга простые числа), то
(n)=(p-1)(q-1).
Теорема 3. Если n=pq, (p и q - отличные друг от друга простые числа) их- простое относительно р и q, то [pic] =l (mod n).
Следствие . Если n=pq, (р и q - отличные друг от друга простые числа) и E простое относительно [pic] (n), то отображение E [pic] [pic] : X— >x [pic] (mod n)
является взаимно однозначным на Z [pic] .
Очевиден и тот факт, что если е - простое относительно [pic] (n), то существует целое d, такое, что
ed = 1 (mod (n)) (3)
На этих математических фактах и основан популярный алгоритм RSА.
Пусть n=pq, где р и q - различные простые числа. Если cud удовлетворяют уравнению (8.2.3), то отображения E [pic] [pic] и E [pic] являются инверсиями на Zn. Как E [pic] [pic] так и E [pic] легко рассчитываются, когда известны е, d,p, q. Если известны е и n, но р и q неизвестны, то E [pic] представляет собой одностороннюю функцию; нахождение E [pic] по заданному n равносильно разложению n. Если р и q -достаточно большие простые, то разложение n практически не осуществимо. Это и заложено в основу системы шифрования RSA.
Пользователь i выбирает пару различных простых p [pic] и q [pic] и рассчитывает пару целых (e [pic] ,d [pic] ), которые являются простыми относительно [pic] (n [pic] ), где
n=p [pic] q [pic] .Справочная таблица содержит публичные ключи {(e [pic] ,d [pic] )}.
X=(x [pic] , x [pic] ,…,x [pic] ),
x [pic] Z [pic] ,0<=i<n
сначала представлен по основанию n [pic] :
n=c [pic] +c [pic] n [pic] +…
Пользователь i зашифровывает текст при передаче его пользователю j, применяя к n отображение E [pic] , [pic] :
N [pic] E [pic] , [pic] n=n’.
Пользователь j производит дешифрование n’, применяя Ee [pic] ,n [pic] :
N’ [pic] Ee [pic] ,n [pic] n’ = Ee [pic] ,n [pic] E [pic] , [pic] n=n.
Очевидно, для того чтобы найти инверсию E [pic] , [pic] по отношению к Ee [pic] ,n [pic] ,требуется знание множителей n=p [pic] q [pic] . Время выполнения наилучших из известных алгоритмов разложения при n=10 [pic] на сегодняшний день выходит за пределы современных технологических возможностей.
Рассмотрим небольшой пример, иллюстрирующий применение алгоритма RSA.
Пример. Зашифруем сообщение "CAB". Для простоты будем использовать маленькие числа (на практике применяются гораздо большие).
Выберем p=3 и q=11.
Определим n=3*11=33.
Найдем (р-1)(q-1)=20. Следовательно, в качестве d, взаимно простое с 20, например, d=3.
Выберем число e. В качестве такого числа может быть взято любое число, для которого выполняется соотношение (е*3) mod 20 = 1, например 7.
Lg n Число операций
Примечания
50
1.4*1010
Раскрываем на суперкомпьютерах
100
2.3*1015
На пределе современных технологий
200
1.2*1023
За пределами современных технологий
400
2.7*1034 ,
Требует существенных изменений в технологии
800
1.3*1051
Не раскрываем
В конце 1995 года удалось практически реализовать раскрытие Шифра RSA для 500-значного ключа. Для этого с помощью сети Интернет было задействовано 1600 компьютеров.
Сами авторы RSА рекомендуют использовать следующие размеры модуля n:
- 768 бит – для частных лиц;
- 1024 бит - для коммерческой информации;
- 2048 бит - для особо секретной информации.5
Третий немаловажный аспект реализании RSA - вычислительный. Ведь приходится использовать аппарат длинной арифметики. Если используется ключ длиной k бит, то для операций по отбытому ключу требуется О(k [pic] ) операций, по закрытому ключу - O(k3) операций, а для генерации новых ключей требуется O(k4) операций.
Криптофафический пакет BSAFE 3.0 (RSA D.S.) на компьютере Pentium-90 осуществляет шифрование со скоростью 21. 6 Кбит/с для 512-битного ключа и со скоростью 7.4 Кбит/с для 1024 битного. Самая «быстрая» аппаратная реализация обеспечивает скорости в 60 раз больше.
По сравнению с тем же алгоритмом DES, RSA требует в тысячи и десятки
тысяч раз большее время.
Блочные шрифты (TEA)
Блочные шифры шифруют целые блоки инфоршции (от 4 до 32 байт) как единое целое - это значительно увеличивает стойкость преобразований к атаке персборм и позволяет использовать различные математические и
алгоритмические преобразования.
На сегодняшний день разработано достаточно много стойких блочных шифров. Практически все алгоритмы используют для преобразований определенный набор биективных ^обраигимых^ математичсскил преобразований
Характерной особенностью блочных криптоалгоритмов является тот факт, что б ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z=EnCrypt(X,Key) и X=DeCrypt(Z,Key)
Ключ Key является параметром блочного криптоалгоритма и представляет собой некоторый блок двоичной информации фиксированного размера. Исходный (X) и зашифрованный (Z) блоки данных также имеют фиксированную разрядность, равную между собой, но необязательно равную длине ключа.
Блочные шифры являются основой, на которой реализованы практически все криптосистемы.
Блочный шифр TEA
TEA (Tiny Encryption Algorithm) был разработан в Кембриджском университете, выдержал многолетние испытания на прочность, и до сих пор считается одним из самых простых в реализации стойких блочных шифров. Параметры шифра: длина блока - 64 бита, длина ключа - 128 бит, оптимизирован под 32-разрядные.процессоры.
В алгоритме использована сеть Фейштеля с двумя ветвями в 32 бита каждая.
Образующая функция F обратима, т.е. декодирование производится в Обратном направлении. Сеть Фейштеля несиммитрична из-за использования в качестве операции наложения не исключающего "ИЛИ", а арифметического сложения.
Сетью Фейштеля называется метод обратимых преобразований текста, при котором значение, вычисленное от одной из частей текста, накладывается на другие части. Часто структура сети выполняется таким образом, что для шифрования и дешифрования используется один и тот же алгоритм - различие состоит только в порядке использования материала ключа.
Схема работы алгоритма приведена на рисунке 6.
Шифруемый 64-разрядный блок помещается в х и z, 128-разрядный ключ в kO, kl, k2, k3, результат возвращается в переменных у и z. Немаловажная деталь: материал ключа используется в процедуре шифрования множество раз - это общее правило блочных шифров, именно с помощью него и достигается невосстановимость ключа по известным открытому и зашифрованному блокам.
Отличительной чертой криптоалгоритма TEA является его размер. Простота операций, отсутствие табличных подстановок и оптимизация под 32-разрядную архитектуру процессоров позволяет реализовать его на языке ASSEBLER в предельно малом объеме кода. Недостатком алгоритма является некоторая медлительность, вызванная необходимистью повторять цикл Фейштеля 32 tраза (это необходимо для тщательного "перемешивания данных" из-за отсутствия
табличных подстановок).
[pic]
+
С [pic] [pic] ложение X’=X+V
[pic]
И [pic]
+
[pic] [pic] сключающее ИЛИ X’=Х XOR V Арифметический сдвиг влево X'=X SHL V
[pic]
<<
>>
[pic] [pic] [pic] [pic] [pic] Арифметический сдвиг вправо Х’=Х SHR V
[pic] [pic] [pic] [pic]
Рисунок 6
Литература
Основная:
1. Ярочкин В. И. Информационная безопасность: учеб. для вузов / В. И. Ярочкин .- М. : Академический проект, 2005
2. Губенков А. А. Информационная безопасность : [учеб. пособие} / А. А. Губенков, В. Б. Байбурин .- М. : Новый издательский дом, 2005
Дополнительная:
3.Хорев П. Б. Методы и средства защиты информации в компьютерных системах: учеб. пособие для вузов , 2006
4.Степанов Е. А. Иформационная безопасность и защита информации : учеб. пособие : ИНФРА-М, 2001
5.Партыка Т. Л. Иформационная безопасность : учеб. пособие для студентов сред. Проф. Образования , Инфра-М, 2004
6 Низамутдинов М. Ф. Тактика защиты и нападения на Web-приложения/- СПб. : БХВ - Петербург, 2005- 4 экз
7. Мельников В. П. Информационная безопасность и защита информации : учеб. пособие для вузов / В. П. Мельников, С. А. Клейменов, А. М. Петраков .- 3-е изд., стереотип.- М. : Академия, 2008
8.Платонов В. В. Программно-аппаратные средства обеспечения информационной безопасности вычислительных сете: учеб. пособие для вузов / В. В. Платонов .- М. : Академия, 2006