МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ p>
САМАРСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ p>
ІНЖЕНЕРНО-ЕКОНОМІЧНИЙ p>
ФАКУЛЬТЕТ p>
КАФЕДРА "ВИЩА І p >
ПРИКЛАДНА МАТЕМАТИКА " p>
ЗАТВЕРДЖУЮ p>
Завідувач кафедрою p>
" Вища та прикладна математика " p>
«___»__________ 2001р.
випускної кваліфікаційної роботи студента Альперт ВОЛОДИМИРА ВОЛОДИМИРОВИЧА на тему: АНАЛІЗ криптостійкості МЕТОДІВ ЗАХИСТУ ІНФОРМАЦІЇ В ОПЕРАЦІЙНИХ p>
СИСТЕМАХ MICROSOFT WINDOW 9x p>
за спеціальністю 01.02.00 "Прикладна математика" p>
Науковий керівник: к. т. н. p>
ПОНОМАРЬОВ ВОЛОДИМИР ПЕТРОВИЧ p>
«___»________ 2001г.__________________ p>
Студент___________________ «___» ________2001г. p>
Дипломна робота захищена «___»________ 2001р. p>
Оценка_______________________________________ p>
Голова ГЕК_____________________________ p>
Самара p>
2001р . p>
ЗМІСТ p>
Стор.
ВСТУП 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
ВСТУП p>
Широке застосування комп'ютерних технологій та постійне збільшенняобсягу інформаційних потоків викликає постійне зростання інтересу докриптографії. Останнім часом збільшується роль програмних засобівзахисту інформації, просто модернізуються які не потребують великих фінансовихвитрат у порівнянні з апаратними криптосистемами. Сучасні методишифрування гарантують практично абсолютний захист даних, але завждизалишається проблема надійності їх реалізації. p>
Іншою важливою проблемою застосування криптографії є протиріччяміж бажанням громадян захистити свою інформацію і прагненнямдержавних спецслужб мати можливість доступу до певної інформаціїдля припинення незаконної діяльності. Надзвичайно важко знайти незаперечнооптимальне рішення цієї проблеми. Як оцінити співвідношення втратзаконослухняних громадян і організацій від незаконного використання їхінформації та збитків держави від неможливості отримання доступу дозахищеної інформації окремих груп, що приховують свою незаконнудіяльність? Чи можна гарантовано не допустити незаконне використаннякриптоалгоритмів особами, які порушують і інші закони? Крім того,завжди існують способи прихованого збереження і передачі інформації. p>
Хоча стримування відкритих досліджень в області криптографії такриптоаналізу є найпростішим шляхом, але це принесе значнийнегативний ефект. Застосування ненадійних коштів не захиститькористувачів, але викличе розповсюдження комп'ютерних злочинів,навпаки, виявлення своєчасне виявлення помилок у системах захистуінформації дозволить запобігти збитку. p>
В даний час особливо актуальною стала оцінка вже використовуютьсякриптоалгоритмів. Задача визначення ефективності засобів захисту найчастішебільш трудомістка, ніж їх розробка, вимагає наявності спеціальних знань і,як правило, більш високої кваліфікації, ніж задача розробки. Цеобставини призводять до того, що на ринку з'являється безліч засобівкриптографічного захисту інформації, про які ніхто не може сказатинічого конкретного. При цьому розробники тримають криптоалгоритм (якпоказує практика, часто нестійкий) в секреті. Однак завдання точноговизначення даного криптоалгоритму не може бути гарантовано складноїхоча б тому, що він відомий розробникам. Крім того, якщо порушникзнайшов спосіб подолання захисту, то не в його інтересах про це заявляти.
Тому суспільству має бути вигідно відкрите обговорення безпекисистем захисту інформації масового застосування, а приховування розробникамикриптоалгоритму повинно бути неприпустимим. p>
На сьогоднішній день існують добре відомі та апробованікриптоалгоритми (як з симетричними, так і несиметричними ключами),крипостійкість яких або доведена математично, або заснована нанеобхідності вирішення математично складного завдання (факторизації,дискретного логарифмування і т.п.). p>
З іншого боку, у комп'ютерному і в світі весь час з'являєтьсяінформація про помилки або "дірки" в тій чи іншій програмі (в т.ч.застосовує криптоалгоритми), або про те, що вона була зламана. Це створюєнедовіру, як до конкретних програм, так і до можливості взагалі захиститищо-небудь криптографічними методами не тільки від спецслужб, а й відпростих хакерів. Тому знання атак і дірок в криптосистемах, а такожрозуміння причин, через які вони мали місце, є одним з необхіднихумов розробки захищених систем і їх використання. p>
p>
Рис. 1. Чому криптосистеми ненадійні.
У даній роботі проведено аналіз криптостійкості методів захистуінформації в операційних системах сімейства Microsoft Windows 9x, крімтого, було проведено дослідження з пошуку необхідної довжини ключа іпароля, а також розглядаються проблеми криптоаналізу потокового шифру наприкладі популярного алгоритму RC4. Розроблена програма по дослідженню
PWL-файлів дозволить відновлювати забуті паролі і порядок наявнімережеві ресурси. p>
1.Теоретіческіе основи криптоаналізу p>
1.1 Методи криптоаналізу p>
Криптология ділиться на дві частини: криптографію і криптоаналіз.
Криптограф намагається знайти методи забезпечення секретності і (або)автентичності повідомлень. Криптоаналітика намагається виконати зворотну задачу,розкриваючи шифр або, підроблюючи кодовані сигнали таким чином, щобвони були прийняті як справжні. 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 Потокові шифри p>
Розглянутий нами криптоалгоритм RC4 відноситься до класу потоковихшифрів, які останнім часом стали популярними завдяки високійшвидкості роботи. Потокові шифри перетворюють відкритий текст в шіфротекст поодному біту за операцію. Генератор потоку ключів (іноді званийгенератором з біжать ключем) видає потік бітів: k1, k2, k3, ..., ki. Цейпотік ключів і потік бітів відкритого тексту, p1, p2, p3, ..., pi,піддаються операції "виключає або", і в результаті виходить потікбітів шіфротекста. ci = pi ^ ki p>
При дешифруванні операція XOR виконується над бітами шіфротекста ітим же самим потоком ключів для відновлення бітів відкритого тексту. pi = ci ^ ki p>
Безпека системи повністю залежить від властивостей генератора потокуключів. Генератор потоку ключів створює бітовий потік, який схожий навипадковий, але насправді детермінований і може бути безпомилкововідтворений при дешифруванні. Чим ближче вихід генератора потоку ключівдо випадкового, тим більше часу буде потрібно для злому шифру. p>
Рис. 2. Потоковий шифр.
Для всіх потокових шифрів використовуються ключі. Вихід генератора потокуключів являєся функцією ключа. Тепер, якщо отримати пару відкритийтекст/шіфротекст, то можна читати тільки ті повідомлення, які зашифрованітим же ключем. Потокові шифри особливо корисні для шифрування нескінченнихпотоків комунікаційного трафіку, наприклад, каналу Т1, що зв'язує двікомп'ютера. p>
Генератор потоку ключів складається з трьох основних частин. Внутрішнєстан описує поточний стан генератора потоку ключів. Двагенератора потоку ключів, з однаковим ключем і однаковим внутрішнімстаном, видають однакові потоки ключів. Функція виходу з внутрішньогостаном генерує біт потоку ключів. Функція наступного стану завнутрішньому стану генерує нове внутрішній стан. p>
Рис. 3. Пристрій генератора потоку ключів. P>
Криптоалгоритм RC4 відноситься до так званих самосінхронізірующімсяшифрів. У самосінхронізірующіхся потокових шифри кожен біт потоку ключівє функцією фіксованого числа попередніх бітів шіфротекста.
Військові називають цей шифр автоключом шіфротекста. P>
Самосінхронізірующійся потоковий шифр показаний на малюнку. Внутрішнєстан є функцією попередніх n бітів шіфротекста.
Криптографічно складною є вихідна функція, яка використовуєвнутрішній стан для генерації біта потоку ключів. p>
Рис. 4. Самосінхронізірующійся генератор потоку ключів. P>
Так як внутрішній стан повністю залежить від попередніх nшіфротекста, дешіфрірующій генератор потоку ключів автоматичносинхронізується з шифрувальним генератором потоку ключів, прийнявши n бітівшіфротекста. В інтелектуальних реалізаціях цього режиму кожне повідомленняпочинається випадковим заголовком довжиною n бітів. Цей заголовок шифрується,передається і потім розшифровується. Розшифровка буде неправильною, алепісля цих n бітів обидва генератора потоку ключів будуть синхронізовані. p>
Слабкою стороною самосінхронізірующегося потокового шифру єпоширення помилки. Для кожного біта шіфротекста, зіпсованого припередачі, дешіфрірующій генератор потоку ключів видає n неправильних бітівпотоку ключів. Отже, кожному неправильного биту шіфротекставідповідають n помилок у відкритому тексті, поки зіпсований біт НЕперестане впливати на внутрішній стан. p>
1.3 Алгоритм RC4 і його криптоаналіз p>
Суттєве підвищення продуктивності мікропроцесорів в 1980-іроки викликало в криптографії посилення інтересу до програмних методівреалізації криптоалгоритмів як можливу альтернативу апаратним схемами нарегістрах зсуву. Одним з самих перших подібних криптоалгоритмів,що отримав широке поширення, став RC4. Алгоритм RC4 - це потоковийшифр зі змінною довжиною ключа, розроблений в 1987 році Рональдом
Райвістом для компанії RSA Data Security. Він має наступнівластивостями: p>
• адаптивністю для апаратних засобів і програмного забезпечення, що означає використання у ньому тільки примітивних обчислювальних операцій, зазвичай присутніх на типових мікропроцесорах. p>
• алгоритм швидкий, тобто в базисних обчислювальних операціях оператори працюють на повних словах даних. p>
• адаптивністю на процесори різних довжин слова. p>
• компактністю в термінах розміру коду, і особливо зручний для процесорів з побайтно-орієнтованої обробкою . p>
• низьким вимогою до пам'яті, що дозволяє реалізовувати алгоритм на пристроях з обмеженою пам'яттю; p>
• використанням циклічних зрушень, залежних від даних, з p>
"змінним "числом. p>
• простотою і легкістю виконання. p>
Протягом семи років цей алгоритм був фірмовим секретом і деталі про йогоконструкції надавалися тільки після підписання договору пронерозголошення, але у вересні 1994 року хтось анонімно розповсюдиввихідний код алгоритму через Internet. Користувачі Мережі, що мають легальнікріптосредства фірми RSA, що реалізують RC4, підтвердили сумісність коду зкріптопрограммой. В даний час алгоритм RC4 реалізований у десяткахкомерційних криптографічних продуктів, включаючи Lotus Notes, Apple
Computer's AOCE, Oracle Secure SQL, а також є частиною специфікаціїстандарту стільникового зв'язку CDPD. p>
Кріптогенератор функціонує незалежно від відкритого тексту.
Генератор має таблиць (S-бокс 8 х 8): S0, S1,. . ., S255.
Входами генератора є замінені по підстановці числа від 0 до 255, іця підстановка є функцією від ключа змінної довжини. Генератормає два лічильника i і j, ініціалізіруемих нульовим значенням. p>
Для генерації випадкового байти гами виконуються наступні операції: i = (i +1) mod 256 j = (j + Si) mod 256 swap (Si, Sj ) t = (Si + Sj) mod 256 p>
K = St p>
Байт K складається операцією XOR з відкритим текстом для виробленняшіфротекста, або з шіфротекстом для отримання байти відкритого тексту.
Шифрування відбувається досить швидко - приблизно в 10 разів швидше DES -алгоритму. Ініціалізація S-боксу настільки ж проста. На першому кроці вінзаповнюється лінійно: p>
S0 = 0, S1 = 1,. . ., S255 = 255. P>
Потім ще один 256-байтним масив повністю заповнюється ключем, длячого ключ повторюється відповідне число разів залежно від довжини: K0,
K1,. . ., K255. Індекс j обнуляється. Потім: for i = 0 to 255 j = (j + Si + Ki) mod 256 swap (Si, Sj) p>
Схема показує, що RC4 може приймати приблизно 21700 (256! * 2562)можливих станів. S-бох повільно змінюється в процесі роботи: параметрi забезпечує зміну кожного елементу, а j відповідає за те, щоб ціелементи змінювалися випадковим чином. Фактично, RC4 являє собоюсімейство алгоритмів, що задаються параметром n, який єпозитивним цілим з рекомендованим типовим значенням n = 8. p>
Внутрішній стан генератора RC4 в момент часу t складається зтаблиці St = (St (L)) t = 0n2 -1, яка містить 2n n-бітових слів і з двох n-бітовихслів-покажчиків it і jt. Таким чином, розмір внутрішньої пам'яті становить
M = n2n + 2n біт. Нехай вихідна n-бітне слово генератора в момент tпозначається як Zt. p>
Нехай початкові значення i0 = j0 = 0. Тоді функція наступногостану і функція виходу RC4 для кожного t? 1 задається наступнимиспіввідношеннями: it = it-1 + 1 jt = jt-1 + St-1 (it) p>
St (it) = St-1 (jt) p>
St (jt) = St-1 (it) p>
Zt = St (St (it) + St (jt)), де всі складання виконуються за модулем 2n. Мається на увазі, що всіслова, крім піддаються перестановці, залишаються тими ж самими. Вихіднапослідовність n-бітових слів позначається як Zt = (Zt) t = 1 (. Початковатаблиця S0 задається в термінах ключовою послідовності p>
K = (KL) t = 02n -1 p>
з використанням тієї ж самої функції наступного стану, починаючи відтаблиці одиничною підстановки (L) 2n L = 02n -1. Більш строго, нехай j0 = 0 ідля кожного 1? t? 2n обчислюється jt = (jt - 1 + St-1 (t-1) + Kt-1) mod 2n, а потім переставляються місцями St-1 (t-1) і St-1 (jt). p>
На останньому кроці породжується таблиця, яка представляє S0. Ключовапослідовність K складається з секретного ключа, можливоповторюється, і випадкового ключа, що передається у відкритому вигляді з метоюресінхронізаціі. p>
До останнього часу у відкритій літературі практично не булопублікацій з криптоаналіз алгоритму RC4. Компанія RSA Data Securityоголосила, що шифр має імунітет до методів лінійного тадиференціального криптоаналізу, високо не лине і не схоже, щоб у ньогобули короткі цикли. Зазвичай цитується закінчення закритої роботикриптограф RSA Labs Метта Робшоу: "Не є відомих слабких ключів і,хоча немає докази для нижньої межі періодів послідовностей
RC4, проведений теоретичний аналіз показує, що період в переважнійбільшості випадків перевищує 10100. Ретельний і всеосяжний аналізстійкості RC4 не виявив жодних підстав ставити під сумнів стійкість,забезпечуємо генератором RC4 ". p>
Першої відкритої публікацією можна вважати роботу Йована Голіча,представлену на конференції Eurocrypt '96. У ній зазначається, що дляпослідовностей, що генеруються RC4, не підходять методи статистичногоаналізу. Але, з іншого боку, як показано в роботах, для блоків, розміряких перевищує M (розмір внутрішньої пам'яті генератора), завждиіснує лінійна статистична слабкість або так звана "лінійнамодель ". Таку модель можна ефективно визначати за допомогою методуапроксимації лінійної послідовною схемою. Лінійна статистичнаслабкість - це лінійне співвідношення між бітами гами, яке виконуєтьсяз імовірністю, що відрізняється від 1/2. p>
Головна мета роботи Голіча - за допомогою методу АЛПС вивести лінійнімоделі для RC4. Метод АЛПС полягає в знаходженні і вирішенніпослідовної лінійної схеми, яка апроксимуються генератор гами іпризводить до лінійних моделям з відносно великим кореляційнихкоефіцієнтом c, де ймовірність відповідного лінійного співвідношенняміж бітами гами становить (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. p>
Результати комп'ютерних експериментів узгоджуються з теоретичнимипрогнозами. Оскільки результуючий коефіцієнт кореляції істотноперевищує величину 2M/2, то встановлену лінійну модель слідрозглядати як статистичну слабкість генератора, по крайней мере втеоретичному аспекті. p>
У 1997 році опублікована велика робота Йована Голіча, присвяченакриптоаналіз узагальненої схеми комбінує вузла з довільним розміромпам'яті. Досліджено кореляційні властивості таких вузлів, обгрунтовані новіконструктивні критерії, що пред'являються до схем подібного типу. Розробленоефективний метод апроксимації лінійної послідовною схемою дляпобудови лінійних функцій від входу і виходу з порівняно великимкоефіцієнтом взаємної кореляції. Це практична процедура, що дозволяє звисокою ймовірністю знаходити пари взаємно корельованих лінійних функцій
(від найбільше M + 1 послідовних вихідних біт і найбільше M + 1послідовних векторів входу) з порівняно великими коефіцієнтамикореляції. Метод АЛПС полягає в завданні і вирішенні лінійноїпослідовної схеми (ЛПС), яка апроксимуються комбінує вузол зпам'яттю. Ця ЛПС має додаткові незбалансовані входи і заснована налінійних апроксимація функції виходу і всіх компонент функції наступногостану. Лінійна апроксимація булевої функції - це будь-яка лінійнафункція, з якою визначена булева функція скоррелірована. Описаний методзастосуємо до довільним комбінує вузлів з пам'яттю без обмежень нафункції виходу і наступного стану. p>
Спочатку відшукуються лінійні апроксимації функції виходу f і кожнійз функцій-компонент функції наступного стану F. Це еквівалентновисловом кожної з цих M +1 функцій у вигляді суми лінійної функції інезбалансованої функції. Якщо підлягає декомпозиції функція вженезбалансована, то можна вибрати константної-нульову лінійну функцію.
Якщо підлягає декомпозиції функція статистично незалежна від деякогопідмножини змінних, то кожна лінійна апроксимація з необхідністюповинна задіяти принаймні одну з змінних цього підмножини.
Основна вимога - щоб відповідні кореляційні коефіцієнтивідрізнялися від нуля. Також бажано, щоб вибиралися лінійніапроксимації з кореляційними коефіцієнтами, абсолютні значення якихблизькі до максимальних. Кореляційні коефіцієнти можна визначати здопомогою техніки перетворення Уолша. p>
На наступному кроці, отримавши лінійні апроксимації, в матричній формізаписують базові рівняння комбінує вузла з пам'яттю p>
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, в якостівхідних послідовностей, так що останні рівняння виявляютьсязадають неавтономних лінійну машину з кінцевим числом станів або ЛПС,іменовану АЛПС комбінує вузла з пам'яттю. Тоді можна вирішувати цю ЛПС звикористанням техніки виробляють функцій (D-перетворень). УЗокрема, нехай S, X, (, (, y позначають виробляють функції відзмінної z для послідовностей (St), (Xt), ((Xt, St)), ((Xt, St)),yt), відповідно. Тоді рівняння зводяться до виду p>
Рішення має вигляд p>
де I - одинична матриця, det (zA - I) = ((z), ((0) = 1, - многочлен,зворотний до характеристичного многочленів матриці переходів A ступеня, неперевищує ранг A (? M); а елементи (приєднаної) матриці adj (zA - I) --це поліноми від z мірою не більш M-1. Обчислювальна складність длявідшукання такого рішення становить O (M3 (N +1)). В іншому вигляді рішення можнапереписати як p>
де xi і (j позначають виробляють функції для (xit) і ((j (Xt, St)),а ступеня поліномів gi (z) і hj (z) найбільше рівні M і M-1, 1? i? N,
1? J? M, відповідно. Вважаючи рішення можна перетворити до вигляду: де мається на увазі, що вектор стану St-k - це функція від (Xt-k-
1M-k, S t-M) для кожного 0? K? M-1. Лінійні функції входу і виходу в (2)скорреліровани тоді і тільки тоді, коли функція шуму e незбалансована.
Коефіцієнт кореляції не залежить від часу, якщо функція наступногостану збалансована. Якщо ця умова не задовольняється, токореляційний коефіцієнт може залежати від часу, оскільки від St більшене потрібно збалансованість для кожного t? 0. Функція шуму e в (3)визначена як сума індивідуальних шумових функцій, якінезбалансовані за умови, що збалансована функція наступногостану. Оскільки від індивідуальних шумових функцій не потрібно бутинезалежними, в принципі не можна виключати можливість, що коефіцієнткореляції e з константної нульової функцією дорівнює нулю або дуже близький доцього значення. p>
У даному випадку індивідуальні шумові функції можнатрактувати як булеві функції від n = MN + N + M змінних в (XM 1 t, St
-M). Отже, за винятком деяких особливих випадків, в загальному випадкуможна з високою вірогідністю очікувати, що загальний кореляційний коефіцієнтдуже близький до твору індивідуальних і, таким чином, відрізняється віднуля. Відповідно, метод АПЛС не лише з високою ймовірністю даєвзаємно корельовані лінійні функції від входу і виходу, але такождозволяє оцінити значення відповідного кореляційного коефіцієнта,використовуючи незалежність або інші ймовірні припущення. Оскільки відеальному випадку хотілося б отримати такі АЛПС, в яких кореляційнікоефіцієнти за абсолютним значенням близькі до максимуму, то індивідуальнікореляційні коефіцієнти повинні бути великими за розміром, а кількістьшумових членів у (3) повинно бути маленьким. Звичайно, ці вимоги можутьсуперечити одне одному. Тому хорошим підходом буде повторенняпроцедури АЛПС кілька разів, починаючи з найкращих лінійних апроксимаційдля функції виходу і компонент функції наступного стану. Ця процедураможе також виконуватися для всіх можливих лінійних апроксимацій, щопредставляється єдиним систематичним способом перевірити всікореляції, виявлені в процесі застосування методу АЛПС. У загальному випадкує найбільше (M +1) 2M + N таких лінійних апроксимацій. Однак, впринципі завжди можна перевірити всі можливі лінійні апроксимації навітьпри великому M, оскільки в практичних реалізаціях функції виходу інаступного стану залежать від порівняно невеликої кількостізмінних або ж складені з таких бульових функцій. p>
З практичної точки зору дана лінійна модель може бутивикористана для виділення по шіфротексту генератора RC4 серед іншихкриптосистем, а також для відновлення параметра n. У 2000 році булаопубліковано статтю Скотта Флюера і Девіда Мак-Грі присвяченастатістістіческому аналізу потокового генератора RC4, в якій буливикористані результати роботи Голіча для знаходження значення компонент S -боксу. Приблизна тривалість роботи цього методу складає 26n, де n --порція бітів у вихідному потоці, довжина вихідної послідовності,необхідна для виявлення статистичної слабкості, близька до 230. Полученнийрезультат вказує на суттєву слабкість генератора і можливістьвідновити параметри i та n. S-бокс може приймати 2nk, де nk - числобітів ключа. p>
2. Захист інформації в операційних системах Microsoft Windows 9x p>
2.1 Аутентифікація, безпека і доступ до ресурсів в операційних системах сімейства Microsoft Windows 9x p>
В операційних системах Microsoft Windows 9x для аутентифікаціїкористувача використовується ім'я користувача, а для підтвердження введеногоімені - процедура аутентифікації, що використовує символьний паролькористувача. Алгоритм цієї процедури, яка викликається з бібліотеки
MSPWL32.DLL, складається з наступних кроків: p>
Крок 1. Користувач вводить своє ім'я і пароль у форматі Unicode. P>
Крок 2. Ім'я і пароль перетворюється у формат ASCII, причому рядковілітери перетворюються в великі. p>
Крок 3. Здійснюється перетворення пароля за допомогою з алгоритмухешування RC4. p>
Крок 4. Результат порівнюється з даними, які обчислюються шляхомдешифрування даних, що зберігаються в PWL-файлі, на початку завантаження операційноїсистеми. p>
Крок 5. У разі успішної перевірки на кроці 4 користувач одержуєдоступ до системних ресурсів. p>
Управління доступом до мережевих ресурсів в операційних системах Windows
9x здійснюється за допомогою механізму профілів. Для цього створюються профілікористувачів. Профіль користувача в зберігається у файлі user.dat, якиймістить обліковий запис користувача. Всі профілі системи містяться в цьомуфайлі. Власник комп'ютера, тобто системний адміністратор, може присвоїтитому чи іншому користувачеві так званий переміщуваний профіль, тобто виможе призвести налаштування профілів локально чи через мережу. Налагодження таустановка профілів користувачів здійснюється через вкладку "Налаштуваннякористувача ", звернутися до якої можна за допомогою подвійного клацанняклавішею миші на піктограмі "Користувачі". p>
Для створення нового профілю, потрібно звернутися до відповідногомайстру натисканням кнопки "Додати". Після чого система просить ввестипароль. Після того, створення нових профілів і налаштування відповіднихпараметрів, Windows 9x при кожному завантаженні буде виводити діалогове вікнореєстрації, в якому необхідно ввести своє ім'я та встановлений пароль. p>
Концепція безпеки комп'ютера на увазі захист всіх йогокомпонентів - апаратні засоби і додатки - від несанкціонованогодоступу з локальної мережі або Internet. У Windows 9x будь-який користувачвашого комп'ютера може зареєструватися в системі. При цьому ім'якористувача і пароль можуть бути такими ж, як і при вході в мережу. p>
Концепція безпеки в Windows 9x дуже примітивна. У цій системіадміністратор, не можете створити групу користувачів, завести обліковийзапис користувача, змінити права користувача. Замість просунутого
"Диспетчера користувачів" ця система пропонує досить простенькедіалогове вікно властивостей "Паролі". Windows 9x не забезпечує достатньоїрівня безпеки. p>
Механізм безпеки в Windows 9x реалізований тільки на рівніреєстрації користувача, тобто