Современные информационные технологии.

Информационная безопасность.

 

 Дубчак О.В., Лисенко Т.О, Сось В.С.

Національний авіаційний університет(НАУ), Україна

ПОРІВНЯЛЬНИЙ АНАЛІЗ КРИПТОГРАФІЧНИХ МЕТОДІВ

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

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

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

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

Симетричні криптосистеми – це спосіб шифрування, у якому один й той самий криптографічний ключ, що обирається перед  обміном інформації та зберігається в секреті, застосовується як для шифрування, так і для дешифрування, при цьому інформація може шифруватися потоком або  блоками.[3] Першим блоковим шифром, що широко використовується на практиці, став DES (Data Encryption Standart). Згодом з'явилося достатня кількість блокових алгоритмів - IDEA, Blowfish, радянський ДЕРЖСТАНДАРТ 28147-89 та інші. При блоковому шифруванні інформація розбивається на блоки й шифрується по 64 або 128 біт, або блоками змінної довжини. При цьому по особливій системі за допомогою циклів переміщення й підстановки (раундів) до кожного з блоків застосовується ключ. Лавинний ефект, що виникає в результаті повторення раундів, призводить до втрати бітів між блоками відкритих і зашифрованих даних.

Як відомо, за класифікацією блокові шифри бувають двох основних видів: шифр перестановки (transposition, permutation, P-Блоки) і шифр заміни (підстановки, substitution, S-Блоки). Шифри перестановки в новій послідовності переставляють елементи відкритих даних (шифри горизонтальної, вертикальної, подвійної перестановки, ґрати, лабіринти, лозунгові й ін.).

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

Більшість сучасних стійких симетричних алгоритмів використовують ключ довжини 64-256 біт ( 8-32 байта). У таблиці 1 наведено основні використовувані в цей час алгоритми, довжини блоку й довжини ключа.

 

 

Таблиця 1

Алгоритм

Довжина ключа (у бітах)

Довжина блоку (у бітах)

DES

64

64

Blowfish

Змінна, до 448 біт

64

IDEA

128

64

RC5

змінна

Змінна

ДЕРЖСТАНДАРТ 28147-89

256

64

Слід зазначити, що крім блокових шифрів  активно використовуються і потокові шифри. Вони, як і блокові шифри, використовують симетричний ключ, але виконують шифрування вхідного потоку побайтно або іноді побітно. Ідея потокового шифру полягає в тому, що на основі симетричного ключа виробляється ключова послідовність або гама.  Принцип шифрування гамуванням - це генерація гами шифру за допомогою датчика псевдовипадкових чисел і накладення отриманої гами на відриті дані оберненим образом (наприклад, використовуючи додавання за  модулем 2).[3] Процес дешифрування даних – це повторна генерація гами шифpу при відомому ключу й накладення такої гами на зашифровані дані. Потокові шифри бувають із одноразовим або нескінченним ключем ( infinite-key cipher), з кінцевим ключем (система Вернама - Vernam) також на основі генератора псевдовипадкових чисел (ПСЧ).

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

Але, якими б складними та  надійними не були симетричні криптографічні системи,  їхнє  слабке місце при практичній реалізації - проблема розподілу ключів. Для  того, щоб  був  можливий  обмін   конфіденційною   інформацією   між   двома суб'єктами інформаційних відносин, ключ повинен бути згенерований одним з них, а потім  певним чином, знову ж у конфіденційному порядку, переданий іншому.  Для  вирішення  цієї   проблеми   на   основі   результатів,   отриманих класичною й сучасною алгеброю,  у сімдесятих роках минулого століття було запропоновано абсолютно нову криптографію – криптографію з відкритим ключем. Її ще називають «відкритою криптографією», «несиметричною криптографією» або «асиметричною криптографією». Саме в асиметричних алгоритмах шифрування для закриття інформації використовують один ключ (відкритий), а для розшифровування - інший (секретний).[3] Ці ключі різні й не можуть бути отримані один з іншого. Першим алгоритмом асиметричного шифрування був алгоритм, створений Вітфілдом Діффі й Мартіном Хеллманом. Діффі й Хелман  запропонували  для  створення  криптографічних  систем  з відкритим ключем функцію дискретного піднесення до спепеня. Автори статті не ставили за мету в даному огляді наводити математичні викладки й формули, однак слід відзначити, що криптографічна стійкість алгоритму Діффі — Хеллмана заснована на передбачуваній складності проблеми дискретного логарифмування. Тобто, необерненість перетворення в  цьому  випадку  забезпечується  тим,  що досить легко обчислити  показникову  функцію  в  кінцевому  полі, що   складається з  елементів. Обчислення  ж  логарифмів  у  таких  полях - досить трудомістка операція.[2]

 Схожим на алгоритм Діффі — Хеллмана  є алгоритм Ель-Гамаля, криптостійкість якого заснована на обчислювальній складності завдання логарифмування цілих чисел у кінцевих полях. Однак, схема Ель Гамаля має певні недоліки, серед яких-  відсутність семантичної стійкості та подільність шифру. Як засіб усунення цих недоліків можна використати об’єднання схеми Ель – Гамаля з цифровим підписом Шнорра, що дозволить не тільки шифрувати повідомлення, а й аутентифікувати його.

 Найвідомішим несиметричним алгоритмом на сьогоднішній день є алгоритм, запропонований Ривестом, Шаміром і  Адельманом, - алгоритм RSA. Безпека алгоритму RSA заснована на труднощі вирішення задачі розкладання чисел  на прості множники: як відомо, час виконання найкращих з існуючих алгоритмів розкладання, наприклад, при  виходить за межі сучасних технологічних можливостей. Як варіант RSA можливо  використовувати криптосистему з функцією Кармайля  замість функції Ейлера.  RSA може застосовуватися не тільки для шифрування, але й для цифрового підпису. Також він використовується у відкритій системі шифрування PGP і інших системах шифрування (приміром, DarkCryptTC і формат xdc) у сполученні із симетричними алгоритмами. Але важливою проблемою практичної реалізації RSA  є  генерація  великих  простих чисел.

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

Література:

1.           http://crypto.it-days.ru

2.           http://www.scheme.ru

3.           http://kriptografya.ru