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

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

САМАРСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ


ІНЖЕНЕРНО-ЕКОНОМІЧНИЙ

ФАКУЛЬТЕТ

КАФЕДРА "ВИЩА І

ПРИКЛАДНА МАТЕМАТИКА "

ЗАТВЕРДЖУЮ

Завідувач кафедрою

"Вища та прикладна

математика "

«___»__________ 2001р.


ВИПУСКНА КВАЛІФІКАЦІЙНА РОБОТА

студента Альперт ВОЛОДИМИРА ВОЛОДИМИРОВИЧА

на тему: АНАЛІЗ криптостійкості МЕТОДІВ ЗАХИСТУ ІНФОРМАЦІЇ В ОПЕРАЦІЙНИХ СИСТЕМАХ MICROSOFT WINDOW 9x


за спеціальністю 01.02.00 "Прикладна математика"

Науковий керівник: к. т. н.

ПОНОМАРЬОВ ВОЛОДИМИР ПЕТРОВИЧ


«___»________ 2001г.__________________

Студент___________________ «___»________ 2001р.

Дипломна робота захищена «___»________ 2001р.

Оценка_______________________________________

Голова ГЕК_____________________________


Самара

2001р.

ЗМІСТ

Стор.

ВСТУП 3

1.Теоретические основи криптоаналізу 7

1.1 Методи криптоаналізу 7

1.2 Потокові шифри 13

1.3 Алгоритм RC4 і його криптоаналіз 16

2. Захист інформації в операційних системах Microsoft Windows 9x 25

2.1 Аутентифікація, безпека та доступ до ресурсів в операційних системах сімейства Microsoft Windows 9x 25

2.2 Структура PWL-файлів 28

3. Програма аналізу PWL-файлів 32

3.1 Оцінка надійності криптоалгоритмів в залежності від довжини ключа 32

3.2 Розробка програми 37

3.3 Функції програми 41

ВИСНОВОК 43

СПИСОК 44

ДОДАТОК 46


ВСТУП

Широке застосування комп'ютерних технологій та постійне збільшення обсягу інформаційних потоків викликає постійне зростання інтересу до криптографії. Останнім часом збільшується роль програмних засобів захисту інформації, просто модернізованих не потребують великих фінансових витрат в порівнянні з апаратними криптосистемами. Сучасні методи шифрування гарантують практично абсолютний захист даних, але завжди залишається проблема надійності їх реалізації.

Іншою важливою проблемою застосування криптографії є ​​протиріччя між бажанням громадян захистити свою інформацію і прагненням державних спецслужб мати можливість доступу до деякої інформації для припинення незаконної діяльності. Надзвичайно важко знайти незаперечно оптимальне рішення цієї проблеми. Як оцінити співвідношення втрат законослухняних громадян і організацій від незаконного використання їх інформації і збитків держави від неможливості отримання доступу до захищеної інформації окремих груп, що приховують свою незаконну діяльність? Чи можна гарантовано не допустити незаконне використання криптоалгоритмів особами, які порушують і інші закони? Крім того, завжди існують способи прихованого зберігання і передачі інформації.

Хоча стримування відкритих досліджень в галузі криптографії і криптоаналізу є найпростішим шляхом, але це принесе значний негативний ефект. Застосування ненадійних коштів не захистить користувачів, але викличе розповсюдження комп'ютерних злочинів, навпаки, виявлення своєчасне виявлення помилок у системах захисту інформації дозволить запобігти збитку.

В даний час особливо актуальною стала оцінка вже використовуваних криптоалгоритмів. Завдання визначення ефективності засобів захисту найчастіше більш трудомістка, ніж їх розробка, вимагає наявності спеціальних знань і, як правило, більш високої кваліфікації, ніж завдання розробки. Це обставини призводять до того, що на ринку з'являється безліч засобів криптографічного захисту інформації, про які ніхто не може сказати нічого певного. При цьому розробники тримають криптоалгоритм (як показує практика, часто нестійкий) в секреті. Проте завдання точного визначення даного криптоалгоритму не може бути гарантовано складної хоча б тому, що він відомий розробникам. Крім того, якщо порушник знайшов спосіб подолання захисту, то не в його інтересах про це заявляти. Тому суспільству повинно бути вигідно відкрите обговорення безпеки систем захисту інформації масового застосування, а приховування розробниками криптоалгоритму повинно бути неприпустимим.

На сьогоднішній день існують добре відомі й апробовані криптоалгоритми (як з симетричними, так і несиметричними ключами), крипостійкість яких або доведена математично, або заснована на необхідності вирішення математично складного завдання (факторизації, дискретного логарифмування і т.п.).

З іншого боку, в комп'ютерному та світі весь час з'являється інформація про помилки або "дірки" в тій чи іншій програмі (у т.ч. застосовує криптоалгоритми), або про те, що вона була зламана. Це створює недовіру, як до конкретних програм, так і до можливості взагалі захистити що-небудь криптографічними методами не тільки від спецслужб, але і від простих хакерів. Тому знання атак і дірок у криптосистемах, а також розуміння причин, за якими вони мали місце, є одним з необхідних умов розробки захищених систем і їх використання.

Рис. 1. Чому криптосистеми ненадійні.

У даній роботі проведено аналіз криптостійкості методів захисту інформації в операційних системах сімейства Microsoft Windows 9x, крім того, було проведено дослідження з пошуку необхідної довжини ключа та пароля, а також розглядаються проблеми криптоаналізу потокового шифру на прикладі популярного алгоритму RC4. Розроблена програма по дослідженню PWL-файлів дозволить відновлювати забуті паролі та впорядкувати наявні мережеві ресурси.


1.Теоретические основи криптоаналізу

1.1 Методи криптоаналізу

Криптологія ділиться на дві частини: криптографію і криптоаналіз. Криптограф намагається знайти методи забезпечення секретності і (або) автентичності повідомлень. Криптоаналітик намагається виконати зворотну задачу, розкриваючи шифр або, підроблюючи кодовані сигнали таким чином, щоб вони були прийняті як справжні.

Загальноприйняте допущення в криптографії полягає в тому, що криптоаналітик має повний текст криптограми. Крім того, передбачається за правилом, сформульованим Керкхоффом, що стійкість шифру повинна визначатися тільки секретністю ключа. Якщо криптоаналітик відомий тільки текст і алгоритм шифру, то він застосовує аналіз на основі шифрованого тексту. Якщо криптоаналітик зможе дістати кілька уривків відкритого тексту і відповідного йому шифрованого тексту, то застосовується аналіз на основі відкритого тексту.

Важливою особливістю системи та засоби криптографічного захисту інформації (СКЗИ) є те, що для них не існує простих і однозначних тестів перевірки їх надійності. Крім того, ефективність СКЗИ і просто їх наявність ніяк не зв'язуються на працездатності основної системи. Тому завдання ефективності СКЗИ не може бути вирішена звичайним тестуванням.

Криптоалгоритмом будемо називати власне алгоритм шифрування, імітозащіти, та інших криптографічних функцій. Криптографічним протоколом будемо називати набір правил і процедур, що визначає використання криптоалгоритму. Криптосистема являє собою сукупність кріптосхеми, протоколів і процедур управління ключами, включаючи виготовлення і розповсюдження. Так, хеш-функція y = F (z, x) + x, де F - криптоперетворень з відомим ключем z, може розглядатися і як самостійний криптоалгоритм, і як протокол, що використовує перетворення F.

Прийнято розрізняти криптоалгоритми за ступенем доказовості їх безпеки. Існують безумовно стійкі, доказово стійкі та імовірно стійкі криптоалгоритми.

Безпека безумовно стійких криптоалгоритмів заснована на доведених теоремах про неможливість розкриття ключа. Прикладом безумовно стійкого криптоалгоритму є система з разовим використанням ключів (шифр Вернама) або система квантової криптографії, заснована на квантово-механічному принципі невизначеності, але стійкі криптосистеми незручні на практиці.

Стійкість доказово стійких криптоалгоритмів визначається складністю вирішення добре відомої математичної задачі, яку намагалися вирішити багато математиків і яка є загальновизнано складною. Прикладом можуть служити системи Діффі-Хеллмана або Ривеста-Шаміра-Адельмана, засновані на складнощах відповідно дискретного логарифмування і розкладання цілого числа на множники. Перевагою доказово стійких алгоритмів є хороша вивченість завдань, покладених в їх основу. Недоліком їх є неможливість оперативної доопрацювання криптоалгоритмів у разі появи такої необхідності.

Імовірно стійкі криптоалгоритми засновані на складності рішення приватної математичної задачі, яка не зводиться до добре відомим завданням, і яку намагалися вирішити одне або кілька осіб. Прикладом такого завдання може служити розглянутий нами алгоритм RC4. Імовірно стійкі криптоалгоритми характеризуються порівняно малої вивченістю математичної задачі, але мають велику гнучкість, що дозволяє не відмовлятися від алгоритмів, в яких виявлені слабкі місця, а проводити їх доопрацювання.

Криптографічні алгоритми зазвичай будуються з використанням простих і швидко виконуваних операторів декількох типів. Безліч оборотних операторів, що перетворюють текст довжиною 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 - одиничний оператор. Такий оператор називається інволюцією. Можна сказати, що інволюція є корінь з одиниці. Прикладом інволюції є додавання по модулю два тексти з ключем.

Існує ще одне важливе застосування одноключевой криптографії. Це здійснення обчислюваною в один бік перетворення інформації. Таке перетворення називається хеш-функцією. Особливість цього перетворення полягає в тому, що пряме перетворення y = h (x) обчислюється легко, а зворотне x = h -1 (y) - важко. Взагалі кажучи, зворотне перетворення не є функцією, тому правильніше говорити про знаходження одного з прообразів для даного значення хеш-функції. У цьому випадку ключа, що розуміється як деяка конфіденційна інформація, немає. Однак стійкі хеш-функції, для яких прообраз по даному значенню функції важко знайти, реалізуються криптографічними методами і вимагають для обгрунтування стійкості проведення криптографічних досліджень. Типове застосування хеш-функції - створення стисненого образу для вихідного тексту такого, що знайти інший текст, що володіє таким же чином, обчислювально неможливо. Завдання створення стійкої хеш-функції виникає, наприклад, при цифрового підпису текстів.

Здатність криптосистеми протистояти атакам називається стійкістю. Кількісно стійкість вимірюється як складність найкращого алгоритму, що приводить криптоаналітик до успіху з прийнятною вірогідністю. У залежності від цілей і можливостей криптоаналітик змінюється і стійкість. Розрізняють стійкість ключа (складність розкриття ключа найкращим відомим алгоритмом), стійкість безключового читання, імітостойкость (складність нав'язування хибної інформації найкращим відомим алгоритмом) і ймовірність нав'язування хибної інформації.

Рівень стійкості залежить від можливостей криптоаналітик і від користувача. Так, розрізняють криптоаналіз на основі тільки шифрованого тексту, коли криптоаналітик своєму розпорядженні тільки набором шифрограму і не знає відкритих текстів, і криптоаналіз на основі відкритого тексту, коли криптоаналітик знає відкриті і відповідні шифровані тексти. Оскільки криптоалгоритм повинен бути універсальним, природним представляється вимога, щоб стійкість ключа не залежала від розподілу ймовірностей джерела повідомлень. У загальному випадку джерело повідомлень може виробляти "зручні" для порушника повідомлення, які можуть стати йому відомими. У цьому випадку говорять про криптоаналіз на основі спеціально обраних відкритих текстів. Очевидно, що стійкість ключа по відношенню до аналізу на основі вибраних текстів не може перевищувати стійкості по відношенню до аналізу на основі відкритих текстів, а вона не може перевищувати стійкості по відношенню до аналізу на основі шифрованих текстів.

Зазвичай криптоалгоритми розробляють так, щоб вони були стійкими по відношенню до криптоаналізу на основі спеціально обраних відкритих текстів.

Створення нових ефективних методів розкриття ключа або іншого методу ослаблення криптоалгоритму може давати обізнаним особам великі можливості з нанесення шкоди користувачам, що застосовують даний криптоалгоритм. Публікація або замовчування цих відомостей визначаються ступенем відкритості суспільства. Рядовий користувач системи безсилий перешкодити порушнику у розкритті його ключів. З розвитком математики та засобів обчислювальної техніки стійкість криптоалгоритму може тільки зменшуватися. Для зменшення можливого збитку, викликаного несвоєчасної заміною криптоалгоритму, який втратив свою стійкість, бажана періодична перевірка стійкості криптоалгоритму.

З розглянутого вище випливає, що поняття стійкості криптосистеми багатогранно. Стійкість залежить не тільки від розробника, але і від особливостей використання даного криптоалгоритму в системі управління або зв'язку, від фізичної реалізації криптоалгоритму, а також від майбутніх успіхів математики і обчислювальної техніки. Адже криптосистема може експлуатуватися багато років, а необхідність зберігати в секреті протягом тривалого часу передану раніше по відкритих каналах зв'язку інформацію може зробити необхідним прогнозувати розвиток науки і техніки на десятиліття.

Останні десятиліття характеризується різким збільшенням числа відкритих робіт з усіх питань криптології, а криптоаналіз стає однією з найбільш активно розвиваються галузей досліджень. Багато криптосистеми, стійкість яких не викликала особливих сумнівів, виявилися успішно розкритими. При цьому розроблений великий арсенал математичних методів, які являють прямий інтерес для криптоаналітик.

Кожен новий метод криптоаналізу призводить до перегляду безпеки шифрів, до яких він застосовний. Якщо метою криптоаналітик є розкриття можливо більшого числа шифрів (незалежно від того, чи хоче він цим завдати шкоди суспільству, попередити його про можливу небезпеку або просто здобути популярність), то для нього найкращою стратегією є розробка універсальних методів аналізу. Але це завдання є також і найбільш складною. Стандарти шифрування періодично змінюються, а секретна інформація часто має властивість старіти, тобто не представляє великого інтересу для порушника через якийсь час після її передачі по каналах зв'язку в зашифрованому вигляді.

1.2 Потокові шифри

Розглянутий нами криптоалгоритм RC4 відноситься до класу потокових шифрів, які останнім часом стали популярними завдяки високій швидкості роботи. Потокові шифри перетворять відкритий текст в шифротекст по одному біту за операцію. Генератор потоку ключів (іноді званий генератором з біжучим ключем) видає потік бітів: k 1, k 2, k 3, ..., k i. Цей потік ключів і потік бітів відкритого тексту, p 1, p 2, p 3, ..., p i, піддаються операції "виключає або", і в результаті виходить потік бітів шіфротекста.

c i = p i ^ k i

При дешифруванні операція XOR виконується над бітами шіфротекста і тим же самим потоком ключів для відновлення бітів відкритого тексту.

p i = c i ^ k i

Б
езопасность системи повністю залежить від властивостей генератора потоку ключів. Генератор потоку ключів створює бітовий потік, який схожий на випадковий, але в дійсності детермінований і може бути безпомилково відтворено при дешифруванні. Чим ближче вихід генератора потоку ключів до випадкового, тим більше часу буде потрібно для злому шифру.

Рис. 2. Потоковий шифр.

Для всіх потокових шифрів використовуються ключі. Вихід генератора потоку ключів є функцією ключа. Тепер, якщо отримати пару відкритий текст / шифротекст, то можна читати тільки ті повідомлення, які зашифровані тим же ключем. Потокові шифри особливо корисні для шифрування нескінченних потоків комунікаційного трафіку, наприклад, каналу Т1, що зв'язує два комп'ютери.

Г
енератор потоку ключів складається з трьох основних частин. Внутрішній стан описує поточний стан генератора потоку ключів. Два генератора потоку ключів, з однаковим ключем і однаковим внутрішнім станом, видають однакові потоки ключів. Функція виходу за внутрішнім станом генерує біт потоку ключів. Функція наступного стану за внутрішнім станом генерує нове внутрішній стан.

Рис. 3. Пристрій генератора потоку ключів.

Криптоалгоритм RC4 відноситься до так званих самосинхронизирующийся шифрам. У самосинхронизирующийся потокових шифрах кожен біт потоку ключів є функцією фіксованого числа попередніх бітів шіфротекста. Військові називають цей шифр автоключом шіфротекста.

Самосинхронизирующийся потоковий шифр зображений на малюнку. Внутрішній стан є функцією попередніх n бітів шіфротекста. Криптографічно складною є вихідна функція, яка використовує внутрішній стан для генерації біта потоку ключів.

Р
ис. 4. Самосинхронизирующийся генератор потоку ключів.

Так як внутрішній стан повністю залежить від попередніх n шіфротекста, дешифрує генератор потоку ключів автоматично синхронізується з шифрувальним генератором потоку ключів, прийнявши n бітів шіфротекста. В інтелектуальних реалізаціях цього режиму кожне повідомлення починається випадковим заголовком довжиною n бітів. Цей заголовок шифрується, передається і потім розшифровується. Розшифровка буде неправильною, але після цих n бітів обидва генератора потоку ключів будуть синхронізовані.

Слабкою стороною самосинхронизирующийся потокового шифру є поширення помилки. Для кожного біта шіфротекста, зіпсованого при передачі, дешифрує генератор потоку ключів видає n неправильних бітів потоку ключів. Отже, кожному неправильного біту шіфротекста відповідають n помилок у відкритому тексті, поки зіпсований біт не перестане впливати на внутрішній стан.


1.3 Алгоритм RC4 і його криптоаналіз

Істотне підвищення продуктивності мікропроцесорів в 1980-ті роки викликало в криптографії посилення інтересу до програмних методів реалізації криптоалгоритмів як можливу альтернативу апаратним схемам на регістрах зсуву. Одним з найперших подібних криптоалгоритмів, мають широке поширення, став RC4. Алгоритм RC4 - це потоковий шифр зі змінною довжиною ключа, розроблений в 1987 році Рональдом Райвістом для компанії RSA Data Security. Він має такі властивості:

• адаптивністю для апаратних засобів і програмного забезпечення, що означає використання в ньому тільки примітивних обчислювальних операцій, зазвичай присутніх на типових мікропроцесорах.

• алгоритм швидкий, тобто в базисних обчислювальних операціях оператори працюють на повних словах даних.

• адаптивністю на процесори різних довжин слова.

• компактністю в термінах розміру коду, і особливо зручний для процесорів з побайтно-орієнтованої обробкою.

• низьким вимогою до пам'яті, що дозволяє реалізовувати алгоритм на пристроях з обмеженою пам'яттю;

• використанням циклічних зрушень, залежних від даних, з "змінним" числом.

• простотою і легкістю виконання.

Протягом семи років цей алгоритм був фірмовим секретом і деталі про його конструкції надавалися тільки після підписання договору про нерозголошення, але у вересні 1994 року хтось анонімно розповсюдив вихідний код алгоритму через Internet. Користувачі Мережі, що мають легальні кріптосредства фірми RSA, реалізують RC4, підтвердили сумісність коду з кріптопрограммой. В даний час алгоритм RC4 реалізований в десятках комерційних криптографічних продуктів, включаючи Lotus Notes, Apple Computer's AOCE, Oracle Secure SQL, а також є частиною специфікації стандарту стільникового зв'язку CDPD.

Кріптогенератор функціонує незалежно від відкритого тексту. Генератор має символи таблицю (S-бокс 8 х 8): S 0, S 1,. . ., S 255. Входами генератора є замінені по підстановці числа від 0 до 255, і ця підстановка є функцією від ключа змінної довжини. Генератор має два лічильники i і j, ініціалізіруемих нульовим значенням.

Для генерації випадкового байта гами виконуються наступні операції:

i = (i +1) mod 256

j = (j + S i) mod 256

swap (S i, S j)

t = (S i + S j) mod 256

K = S t

Байт K складається операцією XOR з відкритим текстом для вироблення шіфротекста, або з шифротекст для отримання байта відкритого тексту. Шифрування відбувається досить швидко - приблизно в 10 разів швидше DES-алгоритму. Ініціалізація S-боксу настільки ж проста. На першому кроці він заповнюється лінійно:

S 0 = 0, S 1 = 1,. . ., S 255 = 255.

Потім ще один 256-байтний масив повністю заповнюється ключем, для чого ключ повторюється відповідне число разів залежно від довжини: K 0, K 1,. . ., K 255. Індекс j обнуляється. Потім:

for i = 0 to 255

j = (j + S i + K i) mod 256

swap (S i, S j)

Схема показує, що RC4 може приймати приблизно 2 1700 (256! * 256 2) можливих станів. S-бох повільно змінюється в процесі роботи: параметр i забезпечує зміна кожного елемента, а j відповідає за те, щоб ці елементи змінювалися випадковим чином. Фактично, RC4 є сімейство алгоритмів, що задаються параметром n, який є позитивним цілим з рекомендованим типовим значенням n = 8.

Внутрішній стан генератора RC4 в момент часу t складається з таблиці S t = (S t (L)) t = 0 n2 -1, що містить 2 n n-бітових слів і з двох n-бітових слів-покажчиків i t і j t. Таким чином, розмір внутрішньої пам'яті становить M = n2 n + 2n біт. Нехай вихідна n-бітне слово генератора в момент t позначається як Z t.

Нехай початкові значення i 0 = j 0 = 0. Тоді функція наступного стану і функція виходу RC4 для кожного t ≥ 1 задається наступними співвідношеннями:

i t = i t-1 + 1

j t = j t-1 + S t-1 (i t)

S t (i t) = S t-1 (j t)

S t (j t) = S t-1 (i t)

Z t = S t (S t (i t) + S t (j t)),

де всі складання виконуються за модулем 2 n. Мається на увазі, що всі слова, крім піддаються перестановці, залишаються тими ж самими. Вихідна послідовність n-бітових слів позначається як Z t = (Z t) t = 1 . Початкова таблиця S 0 задається в термінах ключовою послідовності

K = (K L) t = 0 2n -1

з використанням тієї ж самої функції наступного стану, починаючи від таблиці одиничної підстановки (L) 2n L = 0 2n -1. Більш строго, нехай j 0 = 0 і для кожного 1 ≤ t ≤ 2 n обчислюється j t = (j t - 1 + S t-1 (t-1) + K t-1) mod 2 n, а потім переставляються місцями S t-1 (t-1) і S t-1 (j t).

На останньому кроці породжується таблиця, що представляє S 0. Ключова послідовність K складається із секретного ключа, можливо повторюваного, і випадкового ключа, переданого у відкритому вигляді з метою ресинхронізації.

До останнього часу у відкритій літературі практично не було публікацій з криптоаналіз алгоритму RC4. Компанія RSA Data Security оголосила, що шифр має імунітет до методів лінійного та диференційного криптоаналізу, високо не лине і не схоже, щоб у нього були короткі цикли. Зазвичай цитується висновок закритої роботи криптографа RSA Labs Метта Робшоу: "Не є відомих слабких ключів і, хоча немає докази для нижньої межі періодів послідовностей RC4, проведений теоретичний аналіз показує, що період в переважній більшості випадків перевищує 10 100. Ретельний і всеосяжний аналіз стійкості RC4 не виявив ніяких підстав брати під сумнів стійкість, забезпечуваний генератором RC4 ".

Першою відкритою публікацією можна вважати роботу Йована Голіча, представлену на конференції Eurocrypt '96. У ній наголошується, що для послідовностей, що генеруються RC4, не підходять методи статистичного аналізу. Але, з іншого боку, як показано в роботах, для блоків, розмір яких перевищує M (розмір внутрішньої пам'яті генератора), завжди існує лінійна статистична слабкість або так звана "лінійна модель". Таку модель можна ефективно визначати за допомогою методу апроксимації лінійної послідовною схемою. Лінійна статистична слабкість - це лінійне співвідношення між бітами гами, яке виконується з імовірністю, що відрізняється від 1 / 2.

Головна мета роботи Голіча - за допомогою методу АЛПС вивести лінійні моделі для RC4. Метод АЛПС полягає в знаходженні і вирішенні послідовної лінійної схеми, яка апроксимує генератор гами і призводить до лінійних моделей з відносно великим кореляційним коефіцієнтом c, де ймовірність відповідного лінійного співвідношення між бітами гами становить (1 + c) / 2. При аналізі використовувалася техніка двійкових похідних. Нехай Z = (Z t) t = 1 позначає послідовність наймолодших біт слів виходу RC4, і нехай Z / = (Z / t = Z t + Z t +1) t = 1 і Z / / = (Z / / t = Z t + Z t +2) t = 1 позначають її першу і другу виконавчі похідні, відповідно. Показано, що Z / не корелює ні з 1, ні з 0, але Z / / корелює з 1 з кореляційним коефіцієнтом, близьким до 15 * 2-3n при великих 2n, де n - довжина ключа. Оскільки довжина вихідний послідовності, необхідна для виявлення статистичної слабкості з кореляційним коефіцієнтом c, становить O (c -2), то ця довжина дорівнює приблизно 64 n / 225. Наприклад, якщо n = 8, як рекомендується в більшості додатків, то потрібна довжина близька до 2 40.

Результати комп'ютерних експериментів узгоджуються з теоретичними передбаченнями. Оскільки результуючий коефіцієнт кореляції істотно перевищує величину 2 M / 2, то встановлену лінійну модель слід розглядати як статистичну слабкість генератора, по крайней мере в теоретичному аспекті.

У 1997 році опублікована велика робота Йована Голіча, присвячена криптоанализу узагальненої схеми комбинирующего вузла з довільним розміром пам'яті. Досліджено кореляційні властивості таких вузлів, обгрунтовані нові конструктивні критерії, які пред'являються до схем подібного типу. Розроблено ефективний метод апроксимації лінійної послідовною схемою для побудови лінійних функцій від входу і виходу з порівняно великим коефіцієнтом взаємної кореляції. Це практична процедура, що дозволяє з високою вірогідністю знаходити пари взаємно корельованих лінійних функцій (від щонайбільше M + 1 послідовних вихідних біт і найбільше M + 1 послідовних векторів входу) з порівняно великими коефіцієнтами кореляції. Метод АЛПС полягає в завданні і вирішенні лінійної послідовної схеми (ЛПС), яка апроксимує комбінує вузол з пам'яттю. Ця ЛПС має додаткові незбалансовані входи і заснована на лінійна апроксимація функції виходу і всіх компонент функції наступного стану. Лінійна апроксимація булевої функції - це будь-яка лінійна функція, з якою задана булева функція скорельована. Описаний метод застосуємо до довільних комбінує вузлів з пам'яттю без обмежень на функції виходу і наступного стану.

Спочатку відшукуються лінійні апроксимації функції виходу f і кожної з функцій-компонент функції наступного стану F. Це еквівалентно висловом кожної з цих M +1 функцій у вигляді суми лінійної функції та незбалансованої функції. Якщо підлягає декомпозиції функція вже незбалансована, то можна вибрати константної-нульову лінійну функцію. Якщо підлягає декомпозиції функція статистично незалежна від деякого підмножини змінних, то кожна лінійна апроксимація з необхідністю повинна задіяти принаймні одну із змінних цього домену. Основна вимога - щоб відповідні кореляційні коефіцієнти відрізнялися від нуля. Також бажано, щоб вибиралися лінійні апроксимації за кореляційними коефіцієнтами, абсолютні значення яких близькі до максимальних. Кореляційні коефіцієнти можна визначати за допомогою техніки перетворення Уолша.

На наступному кроці, отримавши лінійні апроксимації, в матричній формі записують базові рівняння комбинирующего вузла з пам'яттю

S t +1 = A S t + B X t +  (X t, S t), t ≥ 0,

y t = C S t + D X t +  (X t, S t), t ≥ 0,

де вектори розглядаються як матриці-стовпці; A, B, C, D - виконавчі матриці; а  і кожен компонент в D = (d 1,..., d M) - незбалансовані булеві функції, іменовані функціями шуму. Основна ідея полягає в тому, щоб розглядати { (X t, S t)} t = 0 і { (X t, S t)} t = 0 , 1 ≤ i ≤ M, в якості вхідних послідовностей, так що останні рівняння виявляються задають неавтономних лінійну машину з кінцевим числом станів або ЛПС, іменовану АЛПС комбинирующего вузла з пам'яттю. Тоді можна вирішувати цю ЛПС із використанням техніки виробляють функцій (D-перетворень). Зокрема, нехай S, X, , , y позначають виробляють функції від змінної z для послідовностей {S t}, ​​{X t},  (X t, S t)},  (X t, S t)} , y t}, соответств
енно. Тоді рівняння зводяться до вигляду

Р
ешеніе має вигляд

де I - одинична матриця, det (z A - I) =  (z), (0) = 1, - многочлен, зворотний до характеристическому многочлену матриці переходів A ступеня, що не перевищує ранг A (≤ M); а елементи ( приєднаною) матриці adj (z A - I) - це поліномом z мірою не більш M-1. Обчислювальна складність для знаходження такого рішення становить O (M 3 (N +1)). В іншому вигляді рішення можна переписати як

г

де x i і j позначають виробляють функції для {x it} і { j (X t, S t)}, а ступеня поліномів g i (z) і h j (z) найбільше рівні M і M-1, 1 ≤ i ≤ N, 1 ≤ j ≤ M, відповідно. Вважаючи

рішення можна перетворити до вигляду:

г
де мається на увазі, що вектор стану S tk - це функція від (X tk-1 Mk, S tM) для кожного 0 ≤ k ≤ M-1. Лінійні функції входу і виходу в (2) скорреліровани тоді і тільки тоді, коли функція шуму e незбалансованою. Коефіцієнт кореляції не залежить від часу, якщо функція наступного стану збалансована. Якщо ця умова не задовольняється, то кореляційний коефіцієнт може залежати від часу, оскільки від S t вже не вимагають збалансованість для кожного t ≥ 0. Функція шуму e в (3) визначена як сума індивідуальних шумових функцій, які незбалансовані за умови, що збалансована функція наступного стану. Оскільки від індивідуальних шумових функцій не потрібно бути незалежними, в принципі не можна виключати можливість, що коефіцієнт кореляції e з константної нульової функцією дорівнює нулю або дуже близький до цього значення.

У даному випадку індивідуальні шумові функції можна трактувати як булеві функції від n = MN + N + M змінних в (X M +1 t, S t - M). Отже, за винятком деяких особливих випадків, в загальному випадку можна з високою ймовірністю очікувати, що загальний кореляційний коефіцієнт дуже близький до твору індивідуальних і, таким чином, відрізняється від нуля. Відповідно, метод АПЛС не тільки з високою ймовірністю дає взаємно корельовані лінійні функції від входу і виходу, але також дозволяє оцінити значення відповідного кореляційного коефіцієнта, використовуючи незалежність чи інші імовірнісні припущення. Оскільки в ідеальному випадку хотілося б отримати такі АЛПС, в яких кореляційні коефіцієнти за абсолютним значенням близькі до максимуму, то індивідуальні кореляційні коефіцієнти повинні бути великими за величиною, а кількість шумових членів в (3) повинно бути маленьким. Звичайно, ці вимоги можуть суперечити один одному. Тому гарним підходом буде повторення процедури АЛПС кілька разів, починаючи з найкращих лінійних апроксимацій для функції виходу і компонент функції наступного стану. Ця процедура може також виконуватися для всіх можливих лінійних апроксимацій, що представляється єдиним систематичним способом перевірити всі кореляції, виявлені в процесі застосування методу АЛПС. У загальному випадку є найбільше (M +1) 2 M + N таких лінійних апроксимацій. Однак, в принципі завжди можна перевірити всі можливі лінійні апроксимації навіть при великому M, оскільки в практичних реалізаціях функції виходу і наступного стану залежать від порівняно невеликої кількості змінних або ж складені з таких булевих функцій.

З практичної точки зору ця лінійна модель може бути використана для виділення по шифротекст генератора RC4 серед інших криптосистем, а також для відновлення параметра n. У 2000 році була опублікована стаття Скотта Флюгери і Девіда Мак-Грі присвячена статістістіческому аналізу потокового генератора RC4, в якій були використані результати роботи Голіча для знаходження значення компонент S-боксу. Приблизний час роботи цього методу складає 2 6n, де n - порція бітів у вихідному потоці, довжина вихідний послідовності, необхідна для виявлення статистичної слабкості, близька до 2 30. Отриманий результат вказує на суттєву слабкість генератора і можливість відновити параметри i і n. S-бокс може приймати 2 nk, де n k - число бітів ключа.

2. Захист інформації в операційних системах Microsoft Windows 9x

2.1 Аутентифікація, безпека та доступ до ресурсів в операційних системах сімейства Microsoft Windows 9x

В операційних системах Microsoft Windows 9x для аутентифікації користувача використовується ім'я користувача, а для підтвердження введеного імені - процедура аутентифікації, що використовує символьний пароль користувача. Алгоритм цієї процедури, яка викликається з бібліотеки MSPWL32.DLL, складається з наступних кроків:

Крок 1. Користувач вводить своє ім'я і пароль у форматі Unicode.

Крок 2. Ім'я та пароль перетворюється на формат ASCII, причому малі літери перетворюються в прописні.

Крок 3. Здійснюється перетворення пароля за допомогою з алгоритму хешування RC4.

Крок 4. Результат порівнюється з даними, які обчислюються шляхом дешифрування даних, що зберігаються в PWL-файлі, на початку завантаження операційної системи.

Крок 5. У разі успішної перевірки на кроці 4 користувач отримує доступ до системних ресурсів.

Управління доступом до мережних ресурсів в операційних системах Windows 9x здійснюється за допомогою механізму профілів. Для цього створюються профілі користувачів. Профіль користувача в зберігається у файлі user.dat, який містить обліковий запис користувача. Усі профілі системи містяться в цьому файлі. Власник комп'ютера, тобто системний адміністратор, може привласнити тому або іншому користувачеві так званий переміщуваний профіль, тобто ви може зробити настройки профілів локально або через мережу. Налагодження та установка профілів користувачів здійснюється через вкладку "Налаштування користувача", звернутися до якої можна за допомогою подвійного клацання клавішею миші на піктограмі "Користувачі".

Для створення нового профілю, потрібно звернеться до відповідного майстру натисканням кнопки "Додати". Після чого система просить ввести пароль. Після того створення нових профілів і налаштування відповідних параметрів, Windows 9x при кожному завантаженні буде виводити діалогове вікно реєстрації, в якому необхідно ввести своє ім'я та встановлений пароль.

Концепція безпеки комп'ютера на увазі захист всіх його компонентів - апаратні засоби і додатки - від несанкціонованого доступу з локальної мережі чи Internet. У Windows 9x будь-який користувач вашого комп'ютера може зареєструватися в системі. При цьому ім'я користувача і пароль можуть бути такими ж, як і при вході в мережу.

Концепція безпеки в Windows 9x дуже примітивна. У цій системі адміністратор, не можете створити групу користувачів, завести обліковий запис користувача, змінити права користувача. Замість просунутого "Диспетчера користувачів" ця система пропонує досить простеньке діалогове вікно властивостей "Паролі". Windows 9x не забезпечує достатнього рівня безпеки.

Механізм безпеки в Windows 9x реалізований тільки на рівні реєстрації користувача, тобто так звана уніфікована реєстрація. Одного разу введений пароль і ім'я користувача у вікні реєстрації при завантаженні системи використовується для доступу до всіх служб, додатків і апаратних ресурсів комп'ютера, тому добре підібраний пароль здатний захистити вашу систему від проникнення. Ніколи не слід записувати свій пароль на папері, користуватися очевидними паролями (імена, назви міст), відправляти свій пароль по електронній пошті, але слід використовувати розумну кількість символів при складанні пароля, інакше його можна просто забути.

За допомогою вкладки "Зміна" паролів "діалогового вікна властивостей" Паролі "змінюються параметри уніфікованої реєстрації всіх ресурсів комп'ютера за допомогою завдання нового пароля користувача.

Поставити новий пароль можна через вкладку "Налаштування користувача". Для встановлення захисту на конкретний ресурс комп'ютера необхідно зробити його розділяються. Windows 9x дозволяє управляти ресурсами комп'ютера користувачам, які мають віддалений доступ до системи. Для чого потрібно додати відповідну службу за допомогою вкладки "Мережа" і після цього в діалоговому вікні властивостей "Паролі" з'явиться нова вкладка "Віддалене керування". Таким чином провівши оцінку системи безпеки Windows 9x, ми дійшли висновку про її недостатню надійність. Стандартний набір офісного програмного забезпечення Microsoft Office також недостатньо надійний, але оскільки ефективні засоби його криптоаналізу вже розроблені, то в даній роботі ця тема не розглядається.


2.2 Структура PWL-файлів

Для аутентифікації в операційних системах Microsoft Windows 9x використовуються, зберігаються в директорії операційної системи, файли *. PWL, які містять кешовану парольну інформацію. Яка б то не було документація по їх структурі відсутній, тому нами було проведено дослідження цих файлів і було з'ясовано їх формат.

Таблиця 1.1
Структура PWL-файлу.

Зсув

Windows 3.11, Windows 95 без Service Pack

Windows 95 з Service Pack, Windows OSR2 і Windows 98

0000:0003

Сигнатура - B0 6 4D 4E ("MFN")

Сигнатура - E3 1982 85 96 ("yВЕЦ")

0004:0007

Лічильник користувача

Лічильник користувача

0008:107

Resource Link Index

Resource Link Index

0108

Нульовий байт

Нульовий байт

0109:0207

Resource Key Entry

Resource Key Entry

0208:021 B

Ім'я користувача


0208:0250


Таблиця покажчиків на початку ресурсів

021C: 023D

Таблиця покажчиків на початку ресурсів


023E: 025E

Ресурс 0 ... ресурс F


0251


Нульовий байт

052:02 AF


Ресурс 0 ... ресурс F

В одному ресурсі може бути кілька парольних записів, які йдуть одна за одною. Перше слово кожного запису являє собою довжину запису, включаючи і це слово. Ознакою кінця ланцюжка записів є нульовий слово. Таким чином порожній ресурс - це просто нульове слово. Тоді ясно, що якщо PWL-файл у Windows95 має довжину 606 байт, і відповідно 688 в Windows98, то всі ресурси в ньому порожні. Кожен ресурс зашифрований гамою, яка накладається, починаючи з його початку.

PWL-файл шифрується простим гаммированием, гамма генерується алгоритмом RC4. При першій реєстрації користувача запитується пароль. Далі пароль приводиться до верхнього регістру і згортається в ключ. З цього ключа породжується гамма (псевдослучайная послідовність нулів і одиниць). Ця гама складанням за модулем два накладається на кожний з ресурсів з його початку і зашифровує їх. Аналогічно ресурсів зашифровується і
ма користувача і таблиця покажчиків на початку ресурсів.

Рис. 5. Структура PWL-файлу

Отриманий ключ використовується для ініціалізації генератора псевдовипадкових чисел за алгоритмом RC4. Для кожного ключа RC4 породжує унікальну бітову послідовність (гаму).

Алгоритм зіставлення ключа паролю слабкий тим, що при вибраній довжині ключа в подвійне слово, безліч різних ключів лютого 1932 виявляється незмірно менше безлічі різних паролів. Це означає, що існують паролі, які операційна система не розрізняє.

При наступних реєстраціях даними користувачем запитується пароль. Він приводиться до верхнього регістру, знову згортається в ключ з якого знову породжується гама. Якщо породжується цієї гамою ім'я користувача дешіфровивается правильно, то пароль вважається введеним правильно. Після цього дешіфровиваются таблиця покажчиків на початку ресурсів і самі ресурси. Дешифрування здійснюється вторинним накладенням гами складанням по модулю два. Якщо ім'я користувача не дешіфровивается правильно, то пароль вважається неправильним. Таким чином перевірка правильності введеного пароля проводиться за збігом перших 20-й байт породженої з нього гами з першими 20-ма байтами гами від правильного пароля. Цей алгоритм визначення автентичності пароля є вельми оригінальним, тому що ніде не зберігається ні зашифрований пароль, ні хеш-функція (необоротне перетворення) пароля, але, в той же час безглуздо реалізованим. Адже оскільки ім'я користувача відомо заздалегідь, то перші 20 байт гами тривіально обчислюються. Але, оскільки ця ж гамма накладається на кожен ресурс (відсутність зміни гами при шифруванні різних полів - це основна помилка застосування алгоритму RC4 в даному випадку), то можна дешифрувати і перші 20 байт кожного ресурсу! PWL-файл має надлишкову інформацію - є покажчики на початку ресурсів, але є і довжини записів в ресурсах і з одного можна обчислювати інше. Якщо в ресурсах не більше одного запису, то довжина ресурсу є перше слово ресурсу плюс два (довжина першого запису ресурсу плюс довжина нульового слова). Визначаючи по початку й довжині даного ресурсу початок наступного, розраховується вся таблиця покажчиків на початку ресурсів. Якщо в ресурсах більше одного запису, то початок наступного ресурсу все одно можна знайти. Це зводить міцність системи шифрування до нуля (під міцністю системи шифрування розуміється кількість варіантів, які необхідно перебрати для її гарантованого розтину).

Алгоритм генерації ключа за паролем

Маємо ключ (подвійне слово) і пароль до 20-і символів.

1) Обнулити ключ.

2) Привести пароль до верхнього регістру.

3) Для кожного символу паролю, починаючи з першого:

а) додати код символу до ключа

б) повернути ключ вліво 7 разів.

Алгоритм зіставлення ключа паролю слабкий тим, що при вибраній довжині ключа в подвійне слово, безліч різних ключів лютого 1932 виявляється незмірно менше безлічі різних паролів. Це означає, що існують паролі, які Windows 95 не відрізняє одне від одного. Це робить абсолютно безглуздими допускаються в Windows 95 довгі паролі і ефективна довжина пароля відповідає тільки п'яти символів! Щоправда, це не означає, що для кожного пароля знайдеться еквівалент з п'яти символів, тому що безліч паролів відображається на безліч ключів нерівномірно.

Тим часом, досить було накладати гаму на ресурси, не використовуючи перший засвічених її байт, що і було реалізовано в наступних версіях. Таким чином, у механізмі безпеки операційної системи Microsoft Windows 95 виявлена ​​суттєва помилка. Для її виправлення необхідно модернізація операційної системи. Крім того, в нових версіях довжина пароля обмежена не 32 байтами, а 128.

3. Програма аналізу PWL-файлів

3.1 Оцінка надійності криптоалгоритмів в залежності від довжини ключа

Будь-яку секретну інформацію можна отримати шляхом перебору всіх можливих ключів, тому проведемо оцінку можливості підбору ключів. Проблема пошуку ключів симетричної криптосистеми шляхом перебору всіх можливих ключів відноситься до класу задач, які допускають розпаралелювання, тому застосування розподілених обчислень для організації перебору таких ключів дозволяє ефективно вирішувати трудомісткі завдання в цій галузі. Експоненціальна динаміка зростання з плином часу продуктивності обчислювальних систем робить ще більш істотний вплив на зростання продуктивності системи в цілому. Таким чином, прогрес у цій галузі можливе за рахунок:

1. використання досягнень науково-технічного прогресу та застосування технологічних новинок для збільшення продуктивності окремого пристрою;

2. збільшення кількості процесорів в системі.

З фізичної точки зору транзистор, який є основою сучасної інтегральної схеми, може бути зменшений ще приблизно в 10 разів, до розміру 0,03 мікрон. За цією межею процес включення / вимикання мікроскопічних перемикачів стане практично неможливим. Таким чином максимальну швидкодію складе - 10 16 операцій / секунду, а межа зростання настане приблизно в 2030 р.

Спробуємо проаналізувати граничні значення двох зазначених тенденцій. Оцінимо максимальну продуктивності обчислювального пристрою пов'язана з визначенням максимального швидкодії на основі фізичних закономірностей нашого світу. Максимальна швидкість передачі інформації в нашій всесвіту - швидкість світла, максимальна щільність запису інформації - біт на атом. Велика швидкість передачі інформації неможлива на підставі законів фізики, велика щільність запису неможлива через наявність співвідношення невизначеностей Гейзенберга.

Припустимо, що розмір процесора дорівнює розміру атома. Тоді в наших позначеннях швидкодію гіпотетичного процесора виразиться формулою F = V c / R a = 3 * 10 18 операцій в секунду, де V c = 3 * 10 8 м / с швидкість світла у вакуумі, а R a = 10 -10 м - розміри атомів. Стільки разів за 1 секунду світло пройде розміри атома. Оскільки період обертання Землі навколо Сонця становить 365,2564 діб або 31558153 секунд, то за один рік такий процесор виконає 94674459 * жовтень 1918  26 жовтня операцій. Більш швидкий процесор у нашого всесвіту неможливий у принципі.

Один такий процесор за швидкодією перевершує більше двох мільйонів найсучасніших суперкомп'ютерів Intel ASCI Red вартістю 55млн дол, що працюють одночасно, і складаються з 9152 процесорів Pentium кожен, точне значення - 2242 152,466. Продуктивність одного процесора в системі Intel ASCI Red - 1,456 * 10 8 операцій в секунду.

За 100 років безперервної роботи гіпотетичний процесор здійснить приблизно 10 28 операцій. За умови, що за один такт своєї роботи він перевіряє один ключ, а розшифровка повідомлення на знайденому ключі відбувається миттєво, то він зможе перебрати 28 жовтня ключів, тобто довжина ключа складе всього лише 93 біта! Очевидно, що створити ще більш швидкодіючу систему можливо тільки збільшуючи кількість процесорів в системі.

Отже швидкодію якісно змінює свій характер росту з експоненціального на лінійний, і обчислювальна потужність системи буде визначатися тільки кількістю процесорів.

Інших способів підвищення обчислювальної потужності немає. Таким чином, з точки зору захисту інформації криптографічними методами, аналіз потенційних можливостей методу розподілених обчислень представляє як для криптоаналітиків, так і для розробників криптографічних систем значний інтерес. Спробуємо, тому, проаналізувати граничні значення двох зазначених тенденцій.

Таблиця 2.1

Десять найпотужніших суперкомп'ютерів у світі.



Найменування машини

Країна-володар

Фірма-виробник

Процесори

Потужність (GFLOPS)

1

Intel ASCI Red

США

Intel

9125

1333

2

Hitachi / Tsukuba

CP-PACS

Японія

Hitachi / Tsukuba

2048

368

3

SGI / Cray T3E

Великобританія

Cray

696

265

4

Fujitsu Numerical Wind Tunnel

Японія

Fujitsu

167

230

5

Hitachi SR2201

Японія

Hitachi

1024

220

6

SGI / Cray T3E

Німеччина

Cray

512

176

7

SGI / Cray T3E

США

Cray

512

176

8

SGI / Cray T3E

Німеччина

Cray

512

176

9

SGI / Cray T3E

США

Cray (США)

512

176

10

SGI / Cray T3E

США

Cray (США)

512

176

Кількість установок суперкомп'ютерів зростає рік від року в геометричній прогресії, причому основний обсяг знову ж таки доводиться на США.

Припустимо, що розглядаються нами алгоритми шифрування ідеальні, тобто оптимальним методом їх злому буде прямий перебір всіх можливих ключів даного алгоритму. Очевидно, що в цьому випадку стійкість криптосистем буде визначатися довжиною ключа. При проведенні даного дослідження передбачалося, що криптоаналітик володіє всією інформацією щодо алгоритму шифрування, за винятком даних про секретний ключі, і йому доступний для аналізу шифрований текст повідомлення. За визначенням передбачається, що ідеальний алгоритм позбавлений будь-яких недоліків, що знижують його крипостійкість.

Припустимо також, що генерація ключа комп'ютером відбувається за один такт його роботи, а операція розшифрування миттєво. Визначивши відношення кількості ключів до швидкодії самого потужного комп'ютера, ми отримаємо нижню оцінку складності розшифрування повідомлення для ідеального алгоритму.


Таблиця 2.2
Час, необхідний для повного перебору ключів

Найменування

машини

Потужність (FLOPS)

56 біт

7.2 * Е16

64 біта

1.8 * E19

80 біт

1.2 * Е24

100 біт

1.26 * Е30

128 біт

3.4 * E38

Intel ASCI Red

1.333 * Е12

14 годин

5 міс.

28460 років

3.01 * Е10

8.09 * Е18

Hitachi / Tsukuba CP-PACS

3.68 * Е11

52 години

18 міс.

102676 року

1.09 * Е11

2.93 * Е19

SGI / Cray T3E

2.65 * Е11

69 годин

51 міс.

143256 року

1.51 * Е11

4.07 * Е19

Fujitsu Numerical Wind Tunnel

2.3 * Е11

171 годину

60 міс.

164592 року

1.74 * Е11

4.69 * Е19

Hitachi SR2201

2.2 * Е11

178 годин

61 міс.

172720 років

1.82 * Е11

4.9 * Е19

Таким чином за допомогою зазначеної робочої моделі можна оцінювати надійність проектованих і експлуатованих систем шифрування. Алгоритм ГОСТ 28147-89 використовує таблицю підстановок розміром 512 біт. Загальне число можливих таблиць складає 1.33 * Е36 і повний час перебору становить 3.162 * Е16 років. Для алгоритму IDEA довжина ключа становить 128 біт і повний час перебору складає 8.09 * Е18 років. Навіть якщо буде використаний суперкомп'ютер складається зі ста тисяч процесорів з максимально можливою швидкістю в 10 16 операцій / секунду для розшифрування ГОСТу знадобиться 4.21 * Е7 років, а для IDEA - 1.08 * Е10 років. Очевидно, що навіть застосування декількох сотень суперкомп'ютерів Intel ASCI Red, вартістю по 55 мільйонів доларів кожен, не в стоянні кардинально поліпшити ситуацію.

Аналізуючи граничні значення другого тенденції, можна відзначити, що збільшення кількості процесорів в системі теж є своя межа.

Для нашої планети природним межею є площа земної поверхні. Якщо виразити поверхню земної кулі (рахуючи океани, пустелі, Арктику з Антарктикою) у квадратних міліметрах, і на кожен міліметр помістити по мільйону таких процесорів, то в рік потужність такого обчислювального пристрою складе 5.1 * жовтня 1952 операцій, що еквівалентно довжині в 175-176 біт. Якщо виходити з припущення, що стійкість шифру повинна складати 100 років, то за вказаний період така система зможе перебрати 5 * жовтня 1954 ключів, що складе 181-182 біта. І це при тому, що ніякі обчислювальні ресурси процесорів не витрачаються на узгодження їх взаємної роботи в системі, на вирішення завдання дешифрування і т.д.

Таблиця 2.3

Варіанти перебору ключа розкладок клавіатури

Розкладка

Символи

Варіанти

Мінімальна довжина пароля

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

68

2.11 * Е18

10

ABCDEFGHIJKLMNOPQRSTUVWXYZ АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

58

2.49 * Е19

11

0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

42

3.01 * Е19

12

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ

36

4.74 * Е18

12

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

32

3.67 * Е19

13

ABCDEFGHIJKLMNOPQRSTUVWXYZ

26

6.45 * Е19

14

0123456789

10

1 * Е19

19

З проведеного нами дослідження можна зробити висновок, що для забезпечення надійності досить використовувати алгоритми з довжиною ключа не менше 64 бітів, а застосовувати та розробляти алгоритми з довжиною ключа більше 128 біт економічно не вигідно. Однак, як правило, для генерації ключа використовується пароль, який в свою чергу часто містить лише символи латинського алфавіту. У такому випадку для забезпечення необхідного захисту потрібно використовувати пароль не коротше 12 символів, що відповідає 56-бітному ключу. 16-символьний гарант пароль відповідає 75-бітному ключу і гарантує достатній захист від прямої атаки.


3.2 Розробка програми

На поточний момент є декілька мов програмування високого рівня, що дозволяють створювати повноцінні програми, призначені для роботи в середовищі Microsoft Windows 9x. Ми вибрали добре відомий мову C + +, який володіє наступними перевагами: по-перше, C + + володіє універсальністю і може бути використаний для створення програм будь-якого рівня складності, а по-друге, ефективний машинний код забезпечує високу швидкість роботи програми, що особливо важливо. Застосовувані бібліотеки та розроблені програмні функції описано нижче:

Таблиця 3.1

Використані бібліотеки

Stdio.h

Робота з файлами

String.h

Робота з рядками

Stdlib.h

Допоміжні процедури

Time.h

Час

Dos.h

Переривання

Таблиця 3.2

Програмні процедури

Init_xor_table

Ініціалізація S-боксу

Use_xor_table

Гаммирование даних через S-бокс

SwaBits

Перестановка

Init_hash

Ініціалізація хешування

Calc_hash

Хешування

Add_hash

Додавання даних в хеше

Flush_hash

Очищення буффера хеша

Make_cryption_table

Робота S-боксу

Error

Декларація про помилку

LookUp

Повернення номера символу в рядку

UpStr

Перекодування пароля

LnTrim

Обрізка рядка після

Read_pwl_file

Читання PWL-файлу

Dump_pwl_file

Перегляд ресурсів PWL-файлу

Enum_hdl

Переривання програми

Voc_pwl_file

Робота зі словником

Try_pwl_file

Підбір пароля

Main

Головна процедура


Розроблена програма проводить криптоаналіз на основі відкритого тексту. Оскільки ім'я користувача завжди відомо, то його можна використовувати для перевірки правильності розшифровки програма порівнює дешифровані ім'я користувача з введеним ім'ям. При запуску в залежності від ключів, заданих в командою рядку, програма викликає допоміжні функції, перераховані наступному параграфі.

Далі програма здійснює читання зашифрованого PWL-файлу, після чого або починає його розшифровку, або перегляд ресурсів. Для PWL-файлів, що створюються операційною системою Microsoft Windows 95, програма дозволяє визначити нестійкі паролі, що генеруються за нижче описаним алгоритмом.

Алгоритм генерації ключа по паролю в Microsoft Windows 95

Маємо ключ (подвійне слово) і пароль до 20-і символів.

1) Обнулити ключ.

2) Привести пароль до верхнього регістру.

3) Для кожного символу паролю, починаючи з першого:

а) додати код символу до ключа

б) повернути ключ вліво 7 разів.

Даний алгоритм слабкий тим, що при вибраній довжині ключа в подвійне слово, безліч різних ключів лютого 1932 виявляється незмірно менше безлічі різних паролів. Це означає, що існують паролі, які операційна система не розрізняє.

Для PWL-файлів, створюваних новими версіями в операційних системах Microsoft Windows OSR2 і 98, програма здійснює перебір ключів.

Алгоритм генерації ключа по паролю в Microsoft Windows OSR2 і 98

Маємо ключ (подвійне слово) і пароль до 128-і символів.

1) Обнулити ключ.

2) Привести пароль до верхнього регістру.

3) Для кожного символу паролю, починаючи з першого:

а) додати код символу до ключа

б) повернути ключ вліво 16 разів.

Далі програма перебирає паролі до тих пір, поки розшифроване ім'я користувача не співпаде з раніше введеним. При збігу робота закінчується.

Таблиця 3.3

Швидкість роботи програми

Використовувана машина

Швидкість роботи в секунду для Windows 3.11 і Windows 95 без Service Pack

Швидкість роботи в секунду для Windows 95 з Service Pack, OSR2 і 98

AMD K5 - 100

53000

29000

Intel Pentium - 120

61000

31000

Intel Pentium - 166

76000

39000

Pentium II -166

87000

45000

Intel Celeron - 400

153000

101000

Intel Celeron - 700

304000

192000




Продовження сесії

Перегляд файлу





Злом файлу по ключу




















Рис. 6. Блок-схема основної програми.


3.3 Функції програми

Розроблена програма запускається з командного рядка з нижче перерахованими ключами:

/ BF [: S] [ІмяPwlФайла] [ім'я користувача]

- Для виконання злому PWL-файлу перебором. Паролі послідовно будуть змінюватися і перевірятися на коректність збіги.

/ EN: [ІмяСекцііПеребора]

- Додайте це до ключа / BRUTEFORCE для того, щоб вибрати бажану секцію перебору з. CFG файлу. Секція перебору за замовчуванням описана в конфігураційному файлі.

/ F: [СтартоваяДліна]

- Додайте це до ключа / BRUTEFORCE для визначення бажаної довжини початкового пароля з якого почнеться процес перебору. За замовчуванням довжина дорівнює нулю.

/ IN: [НачальнийПароль]

- Додайте це до ключа / BRUTEFORCE для вибору початкового пароля. Перебір почнеться з значення представляла ключем. Цей ключ несумісний з ключем / FROM.

/ D: [ПарольОстановкі]

- Додайте це до ключа / BRUTEFORCE для вибору пароля зупинки. Перебір завершиться при досягненні даного пароля. Цей ключ несумісний з ключем / NUMBER.

/ NUM: [КолічествоІтерацій]

- Додайте це до ключа / BRUTEFORCE для вибору кількості спроб перебору. Програма буде зупинена після здійснення даної кількості переборів паролів. Цей ключ несумісний з ключем / DONE.

/ VOC [: S] [ІмяPwlФайла] [ім'я користувача] [МаскаСловарей]

- Для виявлення пароля PWL-файлу за допомогою словника.

/ CON [: S] [ІмяФайлаСессіі]

- Для відновлення перерваної сесії.

/ PROT [: ІмяФайлаПротокола]

- Додавання цього ключа до деяких ключам дозволить зберігати результати роботи у файлі Протоколу. / ABOUT / HELP, /?, / LIST та / SPY, / GRAB не допускають застосування даного ключа.

/ L [: E] [ІмяPwlфайла] [ім'я користувача] [ПарольПользователя]

- Для перегляду зазначеного PWL-файлу з відповідними параметрами, використовуйте атрибут 'E' для відображення технічної інформації.

/ GR [ІмяПротоколаБази]

- Для перегляду секції [Password Lists] файлу SYSTEM.ini. Ця секція описує зареєстровані PWL-файли на даній машині.

/ TM [ОценочнаяСкорость]

- Для оцінки часу роботи суцільного перебору. Можна використовувати ключ / ENUM для вибору секції символів перебору. Швидкість вказується в pps (що позначає паролів в секунду).

/ H [ІмяФайлаСправкі]

- Для збереження довідки в текстовому файлі.

/?

- Для відображення цієї короткої довідки на терміналі.


Використовуйте атрибут 'S' з перерахованими вище ключами для захисту даних від нестабільності електроживлення. Застосування атрибуту викличе періодичне збереження результатів роботи поточної сесії. Натискання Ctrl + Break призводить до зупинки процесу перебору і записи поточної сесії у відповідному. BRK файлі.

ВИСНОВОК

Проаналізувавши сьогоднішню ситуацію з реальними криптографічними продуктами, ми прийшли до висновку, що криптографія, представлена ​​на комерційному ринку, не надає достатнього рівня безпеки. Сьогодні в комп'ютерну безпеку вкладаються мільярди доларів, і більшість грошей витрачається на нестійкі продукти. У даній роботі було проведено дослідження криптографічних методів захисту інформації, застосовуваних популярних операційних системах сімейства Microsoft Windows 9x, і була написана програма загальним обсягом близько тисячі рядків програмного коду для аналізу сі. Розглянутий алгоритм RC4 використовується в більш ніж двадцяти програмних продуктах і результати даної роботи відносяться до великого числа програмних продуктів, що використовуються в різних областях.

У ході роботи був зроблені наступні висновки:

  • Необхідна обов'язкова оцінка загроз безпеки для всієї наявної інформації і застосовуваних криптографічних методів.

  • На комп'ютерах з операційною системою Microsoft Windows 95 необхідно модернізувати операційну систему. Оскільки перехід на програмне забезпечення інших фірм викличе значні складності, то достатньо обмежитися новими версіями OSR2 і Windows 98.

  • Використання парольного захисту комп'ютерів має стати нормою, незалежно від того чи мають доступ до комп'ютера сторонні особи чи ні, оскільки повністю обмежити доступ до комп'ютера неможливо.

  • Продукти, які використовують криптоалгоритм RC4, потенційно схильні до злому і застосовувати їх для захисту інформації на тривалі терміни недоцільно.

СПИСОК

  1. Андрєєв М.М. Про деякі напрямки досліджень в галузі захисту інформації. / / Міжнародна конференція "Безпека інформації". Збірник матеріалів, М., 1997, c. 94-97

  2. Баpічев С.С., Гончаров В.В., Сєров Р.Є. Основи сучасної кpіптогpафіі. М.: Світ, 1997. 176 с.

  3. Болскі М.І. Мова програмування Сі. М.: Радіо і зв'язок, 1988. 96 с.

  4. Буза М.К. Операційне середовище Windows 95 і її застосування. М.: ДіаСофт, 1996. 266 с.

  5. Єлманова Н.З., Кошель С.П. "Введення в Borland C + + Builder". М.: Діалог-МІФІ, 1998. 675 с.

  6. Груша А.А. Тімоніна Є.Є. Теоретичні основи захисту інформації М.: Яхтсмен, 1996. 31 с.

  7. Домашев А. В., Попов В.О., Правик Д.І., Прокоф'єв І.В., Щербаков А.Ю. Програмування алгоритмів захисту інформації. М.: Нолидж, 2000. 288 с.

  8. Варфоломєєв А.А., Жуков А.Є., Мельников О.Б., Устюжанін Д.Д. Блокові криптосистеми. Основні властивості та методи аналізу стійкості. М.: МІФІ, 1998. 200с.

  9. Леонтьєв Б. Операційна система Microsoft Windows 9x для початківців і не тільки. М.: Нолидж, 1998. 496 с.

  10. Молдовян А.А., Молдовян Н.А., Рад Б.Я. Криптографія. СПб.: Лань, 2000. 224 с.

  11. Семьянов П.В. Чому криптосистеми ненадійні? Тези доповіді на конф. "Методи і технічні засоби забезпечення безпеки інформації",. СПб.: ГТУ, 1996. 18 с.

  12. Спесивцев А. В. Захист інформації в персональних ЕОМ. М.: Світ, 1992. 278 с.

  13. Ростовцев А.Г., Матвєєв В.А. Захист інформації в комп'ютерних системах. Елементи криптології. Під редакцією П.Д. Зегжди. СПб.: ГТУ, 1993. 365 з.

  14. Fluhrer SR, McGrew DA Statistical analysis of the alleged RC4 keystream generator. Fast Software Encryption, Cambridge Security Workshop Proceedings, 2000. p. 127-139.

  15. Golic J.Dj. Linear models for keystream generators. IEEE Transactions on Computers, Vol. 45. January 1996. p. 41-49.

  16. Menezes AJ, Oorschot PC, Vanstone SA Handbook of Applied Cryptography. NY: CRC-Press, 1996. 780 p.

  17. Rivest RL The RC4 Encryption Algorithm. Dr. Dobb's Journal. January 1995. p. 146 - 148.

  18. Schneier B. Applied Cryptography. NY: John Wiley & Sons Inc., 1996. 757 p.

ДОДАТОК

ТЕКСТ ПРОГРАМИ ДЛЯ АНАЛІЗУ PWL-Фото



ВСТУП

В даний час постійно зростає інтерес до криптографії. При цьому частка програмних криптосистем збільшується в порівнянні з апаратними. Сучасні методи шифрування гарантують практично абсолютний захист даних, але проблема надійності реалізації для них завжди залишається.

У зв'язку з цим стала особливо актуальною оцінка вже використовуваних криптосистем. Завдання визначення ефективності засобів захисту інформації більш трудомістка, ніж їх розробка. Ця обставина призводить до того, що на ринку з'являється безліч криптографічних програм, про які ніхто не може сказати нічого певного. При цьому розробники тримають криптоалгоритм (як показує практика, часто нестійкий) в секреті.

Проте завдання точного визначення даного криптоалгоритму не може бути гарантовано складної хоча б тому, що він відомий розробникам. Крім того, якщо порушник знайшов спосіб подолання захисту, то не в його інтересах про це заявляти. Тому суспільству повинно бути вигідно відкрите обговорення безпеки систем захисту інформації масового застосування.

На сьогоднішній день існують добре відомі й апробовані криптоалгоритми. З іншого боку, в комп'ютерному світі весь час з'являється інформація про помилки і "дірки" в тій чи іншій програмі (у т.ч. застосовує криптоалгоритми), або про те, що вона була зламана. Це створює недовіру, як до конкретних програм, так і до можливості взагалі захистити що-небудь криптографічними методами не тільки від спецслужб, але і від простих хакерів. Тому знання атак і дірок у криптосистемах, а також розуміння причин, за якими вони мали місце, є одним з необхідних умов розробки захищених систем і їх використання.


АЛГОРИТМ RC4

У даній роботі проведено аналіз криптостійкості методів захисту інформації, що застосовуються в операційних системах сімейства Microsoft Windows 95, 98. Крім того, нами було проведено дослідження з пошуку необхідної довжини ключа та пароля, а також були розглянуті проблеми криптоаналізу потокового шифру на прикладі популярного алгоритму RC4.

Істотне підвищення продуктивності мікропроцесорів викликало посилення інтересу до програмних методів реалізації криптоалгоритмів. Одним з найперших подібних криптоалгоритмів, мають широке поширення, став RC4. Алгоритм RC4 - це потоковий шифр зі змінною довжиною ключа, розроблений компанією RSA Data Security. Він має такі властивості:

• адаптивністю для апаратних засобів і програмного забезпечення, тобто в ньому використовуються лише примітивні обчислювальні операції, які присутні на типових мікропроцесорах.

• високою швидкістю.

• компактністю в термінах розміру коду, і особливо зручний для процесорів з побайтно-орієнтованої обробкою.

• низьким вимогою до пам'яті, що дозволяє реалізовувати алгоритм на пристроях з обмеженою пам'яттю;

• простотою і легкістю виконання.

Протягом семи років цей алгоритм був фірмовим секретом і деталі про його конструкції надавалися тільки після підписання договору про нерозголошення, але хтось анонімно розповсюдив вихідний код алгоритму через Internet. В даний час алгоритм RC4 реалізований у більш ніж двох десятках комерційних криптографічних продуктів, включаючи Microsoft Windows, Lotus Notes і Oracle Secure SQL, а також є частиною специфікації стандарту стільникового зв'язку CDPD.

Як і всі потокові алгоритми, RC4 генерує гаму, яка використовується для шифрування. Кріптогенератор має символи таблицю (S-бокс 8 х 8): S 0, S 1,. . ., S 255. Входами генератора є числа від 0 до 255. Підстановка є функцією від ключа змінної довжини. Генератор має два лічильники i і j, ініціалізіруемих нульовим значенням.

Для генерації випадкового байта гами виконуються наступні операції:

i = (i +1) mod 256

j = (j + S i) mod 256

swap (S i, S j)

t = (S i + S j) mod 256

K = S t

Байт K складається операцією XOR з відкритим текстом для вироблення шіфротекста, або з шифротекст для отримання байта відкритого тексту. Шифрування відбувається досить швидко - приблизно в 10 разів швидше DES-алгоритму. Ініціалізація S-боксу настільки ж проста. На першому кроці він заповнюється лінійно:

S 0 = 0, S 1 = 1,. . ., S 255 = 255.

Потім ще один 256-байтний масив повністю заповнюється ключем, для чого ключ повторюється відповідне число разів залежно від довжини: K 0, K 1,. . ., K 255. Індекс j обнуляється. Потім:

for i = 0 to 255

j = (j + S i + K i) mod 256

swap (S i, S j)

Схема показує, що RC4 може приймати приблизно 2 1700 (256! * 256 2) можливих станів. S-бох повільно змінюється в процесі роботи: параметр i забезпечує зміна кожного елемента, а j відповідає за те, щоб ці елементи змінювалися випадковим чином.

До останнього часу у відкритій літературі практично не було публікацій з криптоаналіз алгоритму RC4. Компанія RSA Data Security оголосила, що шифр має імунітет до методів лінійного та диференційного криптоаналізу, високо не лине і не схоже, щоб у нього були короткі цикли.

Першою відкритою публікацією по темі RC4 можна вважати роботу Йована Голіча, представлену на конференції Eurocrypt '97. У ній наголошується, що для послідовностей, що генеруються RC4, не підходять методи статистичного аналізу. Але для блоків, розмір яких перевищує розмір внутрішньої пам'яті генератора, завжди існує лінійна статистична слабкість. Лінійна статистична слабкість - це лінійне співвідношення між бітами гами, яке виконується з імовірністю, що відрізняється від 1 / 2.

Довжина вихідний послідовності, необхідна для виявлення статистичної слабкості з кореляційним коефіцієнтом c, становить O (c -2), то необхідна довжина близька до 2 40. З практичної точки зору ця лінійна модель може бути використана для виділення по шифротекст генератора RC4 серед інших криптосистем, а також для відновлення параметра n.

У 2000 році була опублікована стаття Скотта Флюгери і Девіда Мак-Грі присвячена статістістіческому аналізу потокового генератора RC4. Отримані в ній результати скоротили довжину вихідний послідовності, необхідної для виявлення статистичної слабкості, до 2 30. Отриманий результат вказує на суттєву слабкість генератора.

WINDOWS 95, 98


В операційних системах Microsoft Windows 95, 98 для аутентифікації користувача використовується ім'я користувача, а для підтвердження введеного імені - процедура аутентифікації, що використовує символьний пароль користувача.

Управління доступом до ресурсів в операційних системах Windows 95, 98 здійснюється за допомогою механізму профілів. Для цього створюються профілі користувачів. Профіль користувача в зберігається у файлі user.dat, який містить обліковий запис користувача. Усі профілі системи містяться в цьому файлі.

Для аутентифікації в операційних системах Microsoft Windows 95, 98 використовуються, зберігаються в директорії операційної системи, файли *. PWL, які містять хешірованную парольну інформацію. Документація з їх структурі відсутній, тому нами було проведено дослідження цих файлів і було з'ясовано їх формат.

PWL-файл шифрується простим гаммированием, гамма генерується за алгоритмом RC4. При реєстрації користувача запитується пароль. Далі пароль приводиться до верхнього регістру і згортається в ключ. З цього ключа породжується гамма і накладається на файл складанням по модулю два. Якщо породжується цієї гамою ім'я користувача дешіфровивается правильно, то пароль вважається введеним правильно і після чого дешіфровиваются решті файл.

Таким чином перевірка правильності введеного пароля проводиться за збігом перших 20-й байт породженої з нього гами з першими 20-ма байтами гами від правильного пароля. Цей алгоритм визначення автентичності пароля є вельми оригінальним, тому що ніде не зберігається ні зашифрований пароль, ні хеш-функція паролю.

Але при реалізації цього алгоритму в Microsoft Windows 95 була допущена така помилка: оскільки ім'я користувача відомо заздалегідь, то перші 20 байт гами тривіально обчислюються. Але, оскільки ця ж гамма накладається на кожен ресурс, то можна дешифрувати і перші 20 байт кожного ресурсу! Відсутність зміни гами при шифруванні різних полів - це основна помилка застосування алгоритму RC4 в даному випадку. Тим часом, досить було накладати гаму на ресурси, не використовуючи перший засвічених її байт, що і було реалізовано в Microsoft Windows 98 виявлена ​​суттєва помилка.

Інша помилка полягає в тому, що алгоритм зіставлення ключа паролю слабкий тим, що при вибраній довжині ключа, безліч різних ключів лютого 1932 виявляється незмірно менше безлічі різних паролів. Це означає, що існують паролі, які Windows 95 не відрізняє одне від одного. Це робить абсолютно безглуздими допускаються в Windows 95 довгі паролі і ефективна довжина пароля відповідає тільки п'яти символів! Щоправда, це не означає, що для кожного пароля знайдеться еквівалент з п'яти символів, тому що безліч паролів відображається на безліч ключів нерівномірно. У Microsoft Windows 98 ця помилка була також виправлена ​​і тепер довжина ключа становить не 32, а 128 біт.

Залежність криптостійкості від ключа

Будь-яку секретну інформацію можна отримати шляхом перебору всіх можливих ключів, тому проведемо оцінку можливості підбору ключів. Проблема пошуку ключів симетричної криптосистеми шляхом перебору всіх можливих ключів відноситься до класу задач, які допускають розпаралелювання. Таким чином, прогрес у вирішенні подібних завдань можливе за рахунок:

1. збільшення продуктивності окремого процесора.

2. збільшення кількості процесорів в системі.

Спробуємо проаналізувати граничні значення двох зазначених тенденцій. Оцінимо максимальну продуктивності обчислювального пристрою пов'язана з визначенням максимального швидкодії на основі фізичних закономірностей нашого світу. Максимальна швидкість передачі інформації в нашій всесвіту - швидкість світла, максимальна щільність запису інформації - біт на атом. Велика швидкість передачі інформації неможлива на підставі законів фізики, велика щільність запису неможлива через наявність співвідношення невизначеностей Гейзенберга.

Припустимо, що розмір процесора дорівнює розміру атома. Тоді в наших позначеннях швидкодію гіпотетичного процесора виразиться формулою F = V c / R a = 3 * 10 18 операцій в секунду, де V c = 3 * 10 8 м / с швидкість світла у вакуумі, а R a = 10 -10 м - розміри атомів. Стільки разів за 1 секунду світло пройде розміри атома. Оскільки період обертання Землі навколо Сонця становить 365,2564 діб або 31558153 секунд, то за один рік такий процесор виконає 94674459 * жовтень 1918  26 жовтня операцій. Більш швидкий процесор у нашого всесвіту неможливий у принципі.

За 100 років безперервної роботи гіпотетичний процесор здійснить приблизно 10 28 операцій. За умови, що за один такт своєї роботи він перевіряє один ключ, а розшифровка повідомлення на знайденому ключі відбувається миттєво, то він зможе перебрати 28 жовтня ключів, тобто довжина ключа складе всього лише 93 біта!

Очевидно, що створити ще більш швидкодіючу систему можливо тільки збільшуючи кількість процесорів в системі. Інших способів підвищення обчислювальної потужності немає.

Аналізуючи граничні значення другого тенденції, можна відзначити, що збільшення кількості процесорів в системі теж є своя межа.

Для нашої планети природним межею є площа земної поверхні. Якщо виразити поверхню земної кулі (рахуючи океани, пустелі, Арктику з Антарктикою) у квадратних міліметрах, і на кожен міліметр помістити по мільйону таких процесорів, то в рік потужність такого обчислювального пристрою складе 5.1 * жовтня 1952 операцій, що еквівалентно довжині в 175-176 біт. Якщо виходити з припущення, що стійкість шифру повинна складати 100 років, то за вказаний період така система зможе перебрати 5 * жовтня 1954 ключів, що складе 181-182 біта. І це при тому, що ніякі обчислювальні ресурси процесорів не витрачаються на узгодження їх взаємної роботи в системі, на вирішення завдання дешифрування і т.д.

З проведеного дослідження можна зробити висновок, що для забезпечення надійності досить використовувати алгоритми з довжиною ключа не менше 64 бітів, а застосовувати та розробляти алгоритми з довжиною ключа більше 128 біт економічно не вигідно. Однак, як правило, для генерації ключа використовується пароль, який в свою чергу часто містить лише символи латинського алфавіту. У такому випадку для забезпечення необхідного захисту потрібно використовувати пароль не коротше 12 символів, що відповідає 56-бітному ключу. 16-символьний пароль відповідає 75-бітному ключу і гарантує достатній захист від прямої атаки.


Програма аналізу PWL-файлів

Розроблена програма проводить криптоаналіз на основі відкритого тексту. Оскільки ім'я користувача завжди відомо, то його можна використовувати для перевірки правильності розшифровки програма порівнює дешифровані ім'я користувача з введеним ім'ям. При запуску в залежності від ключів, заданих в командою рядку, програма викликає допоміжні функції. Далі програма здійснює читання зашифрованого PWL-файлу, після чого або починає його розшифровку, або перегляд ресурсів. Для PWL-файлів, що створюються операційною системою Microsoft Windows 95, програма дозволяє визначити нестійкі паролі, що генеруються за нижче описаним алгоритмом.

Для PWL-файлів, створюваних новими версіями в операційних системах Microsoft Windows OSR2 і 98, програма здійснює перебір ключів. Програма перебирає паролі до тих пір, поки розшифроване ім'я користувача не співпаде з раніше введеним. При збігу робота закінчується.

Висновки PWL-файлів

Проаналізувавши сьогоднішню ситуацію з реальними криптографічними продуктами, ми прийшли до висновку, що криптографія, представлена ​​на комерційному ринку, не надає достатнього рівня безпеки. Сьогодні в комп'ютерну безпеку вкладаються мільярди доларів, і більшість грошей витрачається на нестійкі продукти. У даній роботі було проведено дослідження криптографічних методів захисту інформації, застосовуваних популярних операційних системах сімейства Microsoft Windows 95, 98, і була написана програма загальним обсягом близько тисячі рядків програмного коду для аналізу сі. Розглянутий алгоритм RC4 використовується в більш ніж двадцяти програмних продуктах і результати даної роботи відносяться до великого числа програмних продуктів, що використовуються в різних областях.

У ході роботи був зроблені наступні висновки:

  • Необхідна обов'язкова оцінка загроз безпеки для всієї наявної інформації і застосовуваних криптографічних методів.

  • На комп'ютерах з операційною системою Microsoft Windows 95 необхідно модернізувати операційну систему. Оскільки перехід на програмне забезпечення інших фірм викличе значні складності, то достатньо обмежитися новими версіями OSR2 і Windows 98.

  • Використання парольного захисту комп'ютерів має стати нормою, незалежно від того чи мають доступ до комп'ютера сторонні особи чи ні, оскільки повністю обмежити доступ до комп'ютера неможливо.

  • Продукти, які використовують криптоалгоритм RC4, потенційно схильні до злому і застосовувати їх для захисту інформації на тривалі терміни недоцільно.


Відкликання

на випускну кваліфікаційну роботу «Аналіз криптостійкості методів захисту інформації в операційних системах MS Windows 9x» студенти спеціальності 010200 «Прикладна математика та інформатика» 8 групи V курсу денного відділення інженерно-економічного факультету СамГТУ Альперта Володимира Володимировича


Дана випускна кваліфікаційна робота присвячена актуальній темі - криптоанализу та оцінці криптостійкості методів захисту інформації.

У процесі виконання роботи студент Альперт В.В. вивчив сучасні методи криптоаналізу для потокових шифрів, зокрема, для алгоритму RC4, застосовуваного в операційних системах Microsoft Windows 9x. На основі проведеного аналізу було розроблено програму на мові С + + для оцінки залежності криптостійкості методів захисту інформації від довжини ключа. У результаті проведених дослідницьких розрахунків встановлено, що пропоновані фірмою методи захисту інформації в операційній системі Windows 95 не мають рекламованої криптостійкість. Цей факт підтверджений змінами методів захисту в операційній системі MS Windows 98. Обсяг проведеного теоретичного аналізу та високої якість розробленої програми свідчать про достатній глибині знань і відмінних навичках програмування у студента Альперт В.В.

У цілому, дана випускна робота задовольняє вимогам, що пред'являються кваліфікаційним роботам по спеціальності «Прикладна математика та інформатика» і заслуговує відмінної оцінки.


Науковий керівник

Доцент, кандидат технічних наук В.П. Пономарьов


Внутрішній стан
Функція виходу

Внутрішній стан

Функція виходу

Ключ

Шифротекст Відкритий текст Відкритий текст Шифрування Дешифрування Ініціалізація кріптогенератора


for i = 0 to 255 for i = 0 to 255
S i = 0 j = (j + S i + K i) mod 256
swap (S i, S j)


Функція виходу i = (i +1) mod 256; j = (j + S i) mod 256
swap (S i, S j)
t = (S i + S j) mod 256
K = S t


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
163.5кб. | скачати


Схожі роботи:
Аналіз криптостійкості методів захисту інформації в операційних системах Microsoft Windows 9x
Розробка ефективних систем захисту інформації в автоматизованих системах
Системне програмування в операційних системах
Збереження даних в операційних системах
Розробка статичних і динамічних бібліотек на мові програмування С C в операційних системах
Аналіз методів введення обмежених обсягів текстової інформації
Аналіз методів введення обмежених обсягів текстової інформації
Захист інформації в інформаційних системах
Захист інформації в інформаційних системах
© Усі права захищені
написати до нас