МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ p>
САМАРСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ b> p>
ІНЖЕНЕРНО-ЕКОНОМІЧНИЙ p>
ФАКУЛЬТЕТ p>
КАФЕДРА "ВИЩА І p>
ПРИКЛАДНА МАТЕМАТИКА " p>
випускної кваліфікаційної роботи p>
студента Альперт ВОЛОДИМИРА ВОЛОДИМИРОВИЧА p>
на тему: АНАЛІЗ криптостійкості МЕТОДІВ ЗАХИСТУ ІНФОРМАЦІЇ В ОПЕРАЦІЙНИХ СИСТЕМАХ MICROSOFT WINDOW 9x p>
за спеціальністю 01.02.00 "Прикладна математика" p>
Науковий керівник: к. т. н. p>
ПОНОМАРЬОВ ВОЛОДИМИР ПЕТРОВИЧ p>
«___»________ 2001г.__________________ p>
Студент___________________ «___»________ 2001р. p>
Дипломна робота захищена «___»________ 2001р. p>
Оценка_______________________________________
Голова ГЕК_____________________________ p>
Самара p>
2001р. p>
ЗМІСТ b> p>
ВВЕДЕНІЕ___________________________________________________________________ 3 p>
1.Теоретіческіе основи кріптоаналіза_____________________________________________ 7 p>
1.1 Методи кріптоаналіза______________________________________________________ 7 p>
1.2 Потокові шіфри_________________________________________________________ 12 p>
1.3 Алгоритм RC4 і його кріптоаналіз___________________________________________ 15 p>
2. Захист інформації в операційних системах Microsoft Windows 9x__________________ 24 p>
2.1 Аутентифікація, безпека і доступ до ресурсів в операційних системах сімейства Microsoft Windows 9x__________________________________________________________________ 24 p>
2.2 Структура PWL-файлов____________________________________________________ 27 p>
3. Програма аналізу PWL-файлов________________________________________________ 31 p>
3.1 Оцінка надійності криптоалгоритмів в залежності від довжини ключа____________ 31 p>
3.2 Розробка программи_____________________________________________________ 36 p>
3.3 Опції программи_______________________________________________________ 40 p>
ЗАКЛЮЧЕНІЕ______________________________________________________________ 42 p>
БІБЛІОГРАФІЧНИЙ СПІСОК____________________________________________ 43 p>
ПРІЛОЖЕНІЕ______________________________________________________________ 45 p>
ВСТУП
Широке застосування комп'ютерних технологій та постійне збільшення обсягу інформаційних потоків викликає постійне зростання
інтересу до криптографії. Останнім часом збільшується роль програмних засобів захисту інформації, просто модернізуються що не вимагають великих
фінансових витрат у порівнянні з апаратними криптосистемами. Сучасні методи шифрування гарантують практично абсолютний захист даних, але завжди залишається
проблема надійності їх реалізації. p>
Іншою важливою проблемою застосування криптографії є протиріччя між бажанням громадян захистити свою інформацію і
прагненням державних спецслужб мати можливість доступу до певної інформації для припинення незаконної діяльності. Надзвичайно важко знайти
незаперечно оптимальне рішення цієї проблеми. Як оцінити співвідношення втрат законослухняних громадян і організацій від незаконного використання їх
інформації та збитків держави від неможливості отримання доступу до захищеної інформації окремих груп, що приховують свою незаконну діяльність? Чи можна
гарантовано не допустити незаконне використання криптоалгоритмів особами, які порушують і інші закони? Крім того, завжди існують способи прихованого
збереження і передачі інформації. p>
Хоча стримування відкритих досліджень в області криптографії та криптоаналізу є найпростішим шляхом, але це принесе
значний негативний ефект. Застосування ненадійних коштів не захистить користувачів, але викличе розповсюдження комп'ютерних злочинів, навпаки,
виявлення своєчасне виявлення помилок у системах захисту інформації дозволить запобігти збитку. p>
В даний час особливо актуальною стала оцінка вже використовуються криптоалгоритмів. Задача визначення ефективності засобів захисту
найчастіше більш трудомістка, ніж їх розробка, вимагає наявності спеціальних знань і, як правило, більш високої кваліфікації, ніж задача розробки. Це
обставини призводять до того, що на ринку з'являється безліч засобів криптографічного захисту інформації, про які ніхто не може сказати нічого
визначеного. При цьому розробники тримають криптоалгоритм (як показує практика, часто нестійкий) в секреті. Однак завдання точного визначення даного
криптоалгоритму не може бути гарантовано складної хоча б тому, що він відомий розробникам. Крім того, якщо порушник знайшов спосіб подолання
захисту, то не в його інтересах про це заявляти. Тому суспільству має бути вигідно відкрите обговорення безпеки систем захисту інформації масового застосування,
а приховування розробниками криптоалгоритму повинно бути неприпустимим. p>
На сьогоднішній день існують добре відомі та апробовані криптоалгоритми (як з симетричними, так і несиметричними
ключами), крипостійкість яких або доведена математично, або заснована на необхідності вирішення математично складного завдання (факторизації, дискретного
логарифмування і т.п.). p>
З іншого боку, у комп'ютерному і в світі весь час з'являється інформація про помилки або "дірки" в тій чи іншій програмі
(в т.ч. застосовує криптоалгоритми), або про те, що вона була зламана. Це створює недовіру, як до конкретних програм, так і до можливості взагалі
захистити що-небудь криптографічними методами не тільки від спецслужб, але і від простих хакерів. Тому знання атак і дірок в криптосистемах, а також розуміння
причин, через які вони мали місце, є однією з необхідних умов розробки захищених систем і їх використання. p>
p>
Рис. 1. Чому криптосистеми ненадійні. P>
У даній роботі проведено аналіз криптостійкості методів захисту інформації в операційних системах
сімейства Microsoft Windows 9x, крім того, було проведено дослідження з пошуку необхідної довжини ключа і пароля, а також розглядаються проблеми
криптоаналізу потокового шифру на прикладі популярного алгоритму RC4. Розроблена програма по дослідженню PWL-файлів дозволить відновлювати
забуті паролі і порядок наявні мережеві ресурси. p>
1.Теоретіческіе основи криптоаналізу
1.1 Методи криптоаналізу
Криптология ділиться на дві частини: криптографію і криптоаналіз. Криптограф намагається знайти методи забезпечення секретності і (або)
автентичності повідомлень. Криптоаналітика намагається виконати зворотну задачу, розкриваючи шифр або, підроблюючи кодовані сигнали таким чином, щоб вони
були прийняті як справжні. p>
Загальноприйняте допущення в криптографії полягає в тому, що криптоаналітика має повний текст криптограми. Крім того, передбачається
за правилом, сформульованим Керкхоффом, що стійкість шифру повинна визначатися тільки секретністю ключа. Якщо криптоаналітика відомий тільки
текст і алгоритм шифру, то він застосовує аналіз на основі шифрованого тексту. Якщо криптоаналітика зможе дістати кілька уривків відкритого тексту і
відповідного йому шифрованого тексту, то застосовується аналіз на основі відкритого тексту. p>
Важливою особливістю системи та засоби криптографічного захисту інформації (СКЗІ) є те, що для них не
існує простих і однозначних тестів перевірки їх надійності. Крім того, ефективність СКЗІ і просто їх наявність ніяк не зв'язуються на працездатності
основної системи. Тому завдання ефективності СКЗІ не може бути вирішена звичайним тестуванням. P>
криптоалгоритмом будемо називати власне алгоритм шифрування, імітозащіти, та інших криптографічних функцій. Криптографічним
протоколом будемо називати набір правил і процедур, що визначає використання криптоалгоритму. Криптосистема являє собою сукупність кріптосхеми,
протоколів і процедур управління ключами, включаючи виготовлення і розповсюдження. Так, хеш-функція y = F (z, x) + x, де F - криптоперетворень з відомим
ключем z, може розглядатися і як самостійний криптоалгоритм, і як протокол, який використовує перетворення F. p>
Прийнято розрізняти криптоалгоритми за ступенем доказовою їх безпеки. Існують безумовно стійкі, доказовою стійкі
і імовірно стійкі криптоалгоритми. p>
Безпека безумовно стійких криптоалгоритмів заснована на доведених теореми про неможливість розкриття ключа. Прикладом
безумовно стійкого криптоалгоритму є система з разовим використанням ключів (шифр Вернама) або система квантової криптографії, заснована на
квантово-механічному принципі невизначеності, але стійкі криптосистеми незручні на практиці. p>
Стійкість доказовою стійких криптоалгоритмів визначається складністю розв'язання добре відомої математичної задачі, яку
намагалися вирішити багато математиків і яка є загальновизнано складною. Прикладом можуть служити системи Діффі-Хеллмана або Рівестом-Шаміра-Адельмана, засновані
на складнощі відповідно дискретного логарифмування і розкладання цілого числа на множники. Перевагою доказовою стійких алгоритмів є хороша
вивченість завдань, покладених в їх основу. Недоліком їх є неможливість оперативної доопрацювання криптоалгоритмів у разі появи такої
необхідності. p>
Імовірно стійкі криптоалгоритми засновані на складнощі вирішення приватної математичної задачі, яка не зводиться до добре
відомим завданням, і яку намагалися вирішити одне або кілька людей. Прикладом такого завдання може бути розглянутий нами алгоритм RC4. Імовірно
стійкі криптоалгоритми характеризуються порівняно малої вивченістю математичної задачі, але володіють великою гнучкістю, що дозволяє не
відмовлятися від алгоритмів, у яких виявлені слабкі місця, а проводити їх доопрацювання. p>
Криптографічні алгоритми зазвичай будуються з використанням простих і швидко виконуваних операторів декількох типів.
Безліч оборотних операторів, що перетворюють текст довжиною n біт в текст довжиною n біт, є елементами групи оборотних операторів по множенню
(підстановок n-розрядних слів). Нехай f, g, h - оборотні оператори, тобто існують f -1, g -1, h -1. Тому hgf --
послідовне виконання операторів f, g, h - теж оборотний оператор (оператори виконуються справа наліво) з зворотним оператором до цього
твору f -1, g -1, h -1. Тому дешифратор виконує ті ж операції, що і шифратори, але у зворотному порядку, і
кожен оператор дешифрування є зворотним до відповідного оператору шифрування. Деякі оператори є взаємно зворотними, тобто виконання
підряд два рази деякої операції над текстом дає вихідний текст. У термінах теорії груп це записується рівнянням f 2 = e, де e - одиничний
оператор. Такий оператор називається інволюцією. Можна сказати, що інволюція являє собою корінь з одиниці. Прикладом інволюції є додавання по
модулю два тексти з ключем. p>
Існує ще одне важливе застосування одноключевой криптографії. Це здійснення вичіслімого в один бік перетворення
інформації. Таке перетворення називається хеш-функцією. Особливість цього перетворення полягає в тому, що пряме перетворення y = h (x) обчислюється
легко, а зворотне x = h-1 (y) - важко. Взагалі кажучи, зворотне перетворення не є функцією, тому правильніше говорити про знаходження
одного з прообразів для даного значення хеш-функції. У цьому випадку ключа, що розуміється як деяка конфіденційна інформація, немає. Однак стійкі
хеш-функції, для яких прообраз за даним значенням функції важко знайти, реалізуються криптографічними методами і вимагають для обгрунтування стійкості
проведення криптографічних досліджень. Типове застосування хеш-функції - створення стисненого образу для вихідного тексту такого, що знайти інший текст,
що володіє таким же чином, обчислювально неможливо. Завдання створення стійкої хеш-функції виникає, наприклад, при цифрового підпису текстів. P>
Здатність криптосистеми протистояти атакам називається стійкістю. Кількісно стійкість вимірюється як складність найкращого
алгоритму, що приводить криптоаналітика до успіху з прийнятною вірогідністю. В залежності від цілей і можливостей криптоаналітика змінюється і стійкість.
Розрізняють стійкість ключа (складність розкриття ключа найкращим відомим алгоритмом), стійкість Безключове читання, імітостойкость (складність
нав'язування хибної інформації найкращим відомим алгоритмом) і ймовірність нав'язування хибної інформації. p>
Рівень стійкості залежить від можливостей криптоаналітика і від користувача. Так, розрізняють криптоаналіз на основі тільки
шифрованого тексту, коли криптоаналітика має в своєму розпорядженні тільки набором шифрограму і не знає відкритих текстів, і криптоаналіз на основі відкритого тексту, коли
криптоаналітика знає відкриті і відповідні шифровані тексти. Оскільки криптоалгоритм повинен бути універсальним, природним представляється
вимога, щоб стійкість ключа не залежала від розподілу ймовірностей джерела повідомлень. У загальному випадку джерело повідомлень може виробляти "зручні"
для порушника повідомлення, які можуть стати йому відомими. У цьому випадку говорять про криптоаналіз на основі спеціально обраних відкритих текстів.
Очевидно, що стійкість ключа по відношенню до аналізу на основі вибраних текстів не може перевищувати стійкості по відношенню до аналізу на основі відкритих
текстів, а вона не може перевищувати стійкості по відношенню до аналізу на основі шифрованих текстів. p>
Зазвичай криптоалгоритми розробляють так, щоб вони були стійкими по відношенню до криптоаналіз на основі спеціально обраних
відкритих текстів. p>
Створення нових ефективних методів розкриття ключа або іншого методу ослаблення криптоалгоритму може давати обізнаним особам
великі можливості з нанесення шкоди користувачам, даний криптоалгоритм. Публікація або замовчування цих відомостей визначаються ступенем
відкритості суспільства. Рядовий користувач системи безсилий перешкодити порушнику у розкритті його ключів. З розвитком математики та засобів обчислювальної техніки
стійкість криптоалгоритму може тільки зменшуватися. Для зменшення можливого збитку, викликаного несвоєчасною заміною криптоалгоритму, який втратив свою
стійкість, бажана періодична повторна перевірка стійкості криптоалгоритму. p>
З розглянутого вище випливає, що поняття стійкості криптосистеми багатогранно. Стійкість залежить не тільки від розробника, але й від
особливостей використання даного криптоалгоритму в системі управління або зв'язку, від фізичної реалізації криптоалгоритму, а також від майбутніх успіхів
математики та обчислювальної техніки. Адже криптосистема може експлуатуватися багато років, а необхідність зберігати в секреті протягом тривалого часу
передану раніше по відкритих каналах зв'язку інформацію може зробити необхідним прогнозувати розвиток науки і техніки на десятиліття. p>
Останні десятиліття характеризується різким збільшенням числа відкритих робіт з усіх питань криптології, а криптоаналіз
стає однією з найбільш активно розвиваються областей досліджень. Багато криптосистеми, стійкість яких не викликала особливих сумнівів, виявилися
успішно розкритими. При цьому розроблений великий арсенал математичних методів, що представляють прямий інтерес для криптоаналітика. P>
Кожен новий метод криптоаналізу призводить до перегляду безпеки шифрів, до яких він застосуємо. Якщо метою криптоаналітика є
розкриття можливо більшого числа шифрів (незалежно від того, чи хоче він цим завдати шкоди суспільству, попередити його про можливу небезпеку або просто отримати
популярність), то для нього найкращою стратегією є розробка універсальних методів аналізу. Але це завдання є також і найбільш складною.
Стандарти шифрування періодично змінюються, а секретна інформація часто має властивість старіти, тобто не представляє великого інтересу для порушника
через якийсь час після її передачі по каналах зв'язку в зашифрованому вигляді. p>
1.2 Потокові шифри
Розглянутий нами криптоалгоритм RC4 відноситься до класу потокових шифрів, які останнім
часом стали популярними завдяки високій швидкості роботи. Потокові шифри перетворюють відкритий текст в шіфротекст по одному біту за операцію. Генератор потоку ключів
(іноді званий генератором з біжать ключем) видає потік бітів: k1, k2, k3, ..., ki. Цей потік ключів і потік
бітів відкритого тексту, p1, p2, p3, ..., pi, піддаються операції "виключає або", і в результаті виходить потік бітів
шіфротекста. p>
ci = pi ^ ki p>
При дешифруванні операція XOR виконується над бітами шіфротекста і тим же самим потоком ключів для відновлення бітів відкритого тексту. p>
pi = ci ^ ki p>