Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РП_31_АСД.pdf
Скачиваний:
164
Добавлен:
23.02.2016
Размер:
2.92 Mб
Скачать

Тема 33. ПРОБЛЕМИ І ПЕРСПЕКТИВИ КРИПОТГРАФІЧНИХ СИСТЕМ

Шифрування великих повідомлень і потоків даних

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

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

факсимільний, відео та мовний зв'язок;

голосова пошта;

системи відеоконференцій.

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

Це немислимо без використання сучасних технологій шифрування.

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

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

Потокове шифрування даних

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

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

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

Використання «блукаючих ключів»

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

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

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

121

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

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

Найбільш доступним є використання полів Галуа. За рахунок піднесення до степеню отримпного елемента можна послідовно переходити від одного числа до іншого. Ці числа приймаються в якості ключів.

Ключовою інформацією в даному випадку є вхідний елемент, який перед початком зв'язку повинен бути відомий і відправнику і одержувачу.

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

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

Шифрування, кодування і стиснення інформації

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

Вид перетворення

 

Мета

Зміна обсягу інформації

 

 

 

після перетворення

Шифрування

передача конфіденційної

зазвичай не змінюється,

 

 

інформації;

збільшується лише в

 

забезпечення аутентифікації та

цифрових сигнатурах і

 

 

захисту від навмисних з

підписах

 

 

трансформаційних змін

 

Завадостійке кодування

захист від спотворення

збільшується

 

перешкодами в каналах зв'язку

 

Стиснення (компресія)

скорочення обсягу переданих або

зменшується

 

збережених даних

 

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

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

Інша можливість - комбінування алгоритмів шифрування і стиснення інформації. Завдання стиснення полягає в тому, щоб перетворити повідомлення в межах одного і того ж алфавіту таким чином, щоб його довжина (кількість букв алфавіту) стала менше, але при цьому повідомлення можна було відновити без використання якоїсь додаткової інформації. Найбільш популярні алгоритми стиску - RLE, коди Хаффмана, алгоритм Лемпеля-Зіва. Для стиснення графічної та відеоінформації використовуються алгоритми JPEG і MPEG.

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

122

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

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

Реалізація криптографічних методів

Проблема реалізації методів захисту інформації має два аспекти:

розробку засобів, що реалізують криптографічні алгоритми,

методику використання цих засобів.

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

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

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

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

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

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

Більшість зарубіжних серійних засобів шифрування засноване на американському стандарті DES. Російські розробки, такі як, наприклад, пристрій КРИПТОН, використовує вітчизняний стандарт шифрування.

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

Основним недоліком програмної реалізації є істотно менша швидкодія в порівнянні з апаратними засобами (приблизно в 10 разів).

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

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

123

Тема 34. АЛГОРИТМИ ШИФРУВАННЯ

Алгоритми заміни (підстановки)

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

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

Таблиця.1

Таблиця простої заміни

Символи

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

р

q

r

s

t

u

v

W

x

y

z

шифрується

тексту, що

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Символы,

s

р

x

l

r

z

i

m

a

y

e

d

w

t

b

g

v

n

j

o

c

f

H

q

u

k

замінюються

на які вони

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

З використанням цієї таблиці, текст: «In this book the reader will find a comрrehensive survey» після шифрування матиме вигляд: «At omiy рbbe omr nrsirn fadd zail s xbwgnrmrtjafr jcnfru». Однак такий шифр має низьку стійкість, так як зашифрований текст має ті ж статистичні характеристики, що й вихідний. Наприклад, початковий текст містить символи з наступними частотами появи (в порядку убування): Е - 0,13, Т - 0105, А - 0081, О - 0079 і тощо. У зашифрованому тексті найбільші частоти появи в порядку убування мають літери R - 0,12, O - 0,09, А і N по 0,07.

Природно припустити, що символом R зашифрована буква Е, символом О - буква Т і тощо. Це дійсно відповідає таблиці заміни. Подальша розшифровка не складає труднощів.

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

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

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

використання алфавітів повторюється.

Схема шифрування Вижинера

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

124

а

б

в

г

д

е

ё

ж

з

и

й

к

л

м

н

о

п

р

с

т

у

ф х

ц

ч

ш щ ъ

ы

ь

э

ю

я

б

в

г

д

е

ё

ж

з

и

й

к

л

м

н

о

п

р

с

т

у

ф х

ц

ч

ш

щ ъ

ы

ь

э

ю

я

а

в

г

д

е

ё

ж

з

и

й

к

л

м

н

о

п

р

с

т

у

ф х

ц

ч

ш

щ ъ

ы

ь

э

ю

я

а

б

г

д

е

ё

ж

з

и

й

к

л

м

н

о

п

р с т

у

ф х

ц

ч

ш

щ ъ

ы

ь

э

ю

я

а

б

в

д

е

ё

ж

з

и

й

к

л

м

н

о

п

р с т

у

ф х

ц

ч

ш

щ ъ

ы

ь

э

ю

я

а

б

в

г

е

ё

ж

з

и

й

к

л

м

н

о

п

р

с

т у ф х

ц

ч

ш

щ ъ

ы

ь

э

ю

я

а

б

в

г

д

Рис. 1 Таблиця Вижинера Здійснюється це таким чином. З повної таблиці вибирається перший рядок і ті рядки,

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

а б в

г

д

е ё ж

з и й

к

л

м

н

о

п

р

с

т

у

ф х

ц

ч

ш

щ ъ

ы

ь

э ю

я

к

л м

н

о

п

р с

т

у

ф х

ц

ч

ш

щ ъ

ы

ь

э

ю

я

а

б

в

г

д

е

ё

ж

з

и

й

н о п

р

с

т

у ф х ц ч

ш

щ ъ

ы

ь э

ю

я

а

б

в

г

д е ё

ж

з

и

й

к

л

м

и

й к

л

м

н

о п

р

с

т

у

ф х

ц

ч ш

щ ъ

ы

ь

э

ю

я

а б

в

г

д

е

ё

ж

з

г

д е

ё

ж

з

и й

к

л

м

н

о п

р

с т

у

ф х

ц

ч

ш

щ ъ

ы

ь

э

ю

я

а

б

в

а б в

г

д

е ё ж

з и й

к

л м

н

о п

р

с

т

у

ф х

ц ч

ш

щ ъ

ы

ь э ю

я

Рис. 2. Робоча матриця шифрування для ключа «книга». Процес шифрування здійснюється наступним чином:

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

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

3.Отриманий текст може розбиватися на групи по кілька знаків.

Нехай, наприклад, потрібно зашифрувати повідомлення: «максимально допустимой ценой является пятьсот руб. за штуку». У відповідності до пункту 1 під літерами тексту записуються літери ключа.

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

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

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

Розшифровка тексту проводиться в такій послідовності:

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

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

3.Отриманий текст групується в слова за змістом.

125

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

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

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

З метою підвищення стійкості шифрування можна використовувати вдосконалені варіанти таблиці Вижинера. Наприклад:

У всіх (крім першої) рядках таблиці літери розташовуються в довільному порядку. В якості ключа використовується випадковість послідовних чисел.

З таблиці Вижинера обираються десять довільних рядків, які кодуються натуральними числами від 0 до 10. Ці рядки використовуються відповідно до чергуванням цифр у вибраному ключі.

Відомі також і багато інших модифікації методу.

Алгоритм перестановки

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

Найпростіша перестановка - написати вхідний текст задом наперед і одночасно розбити шифрограму на п'ятірки букв. Наприклад, з фрази

ПУСТЬ БУДЕТ ТАК, КАК МЫ ХОТЕЛИ вийде такий шіфротекст:

ИЛЕТО ХЫМКА ККАТТ ЕДУБЪ ТСУП В останній групі (п'ятірці) не вистачає однієї букви. Значить, перш ніж шифрувати вхідне

речення, слід його доповнити незначущий буквою (наприклад, О) до числа, кратного п'яти: ПУСТЬ-БУДЕТ-ТАККА-КМЫХО-ТЕЛИО Тоді шифрограма, незважаючи на настільки незначні зміни, буде виглядати по-іншому: ОИЛЕТ ОХЫМК АККАТ ТЕДУБ ЬТСУП

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

П У С Т Ь Б У Д Е Т Т А К К А К М Ы Х О Т Е Л И К Л М Н О П

Після цього вертикальні стовпці по порядку писали в рядок з розбивкою на п'ятірки букв: ПКУМС ЫТХЬО БТУЕД ЛЕИТК ТЛАМК НКОАП Якщо рядки вкоротити, а кількість рядків збільшити, то вийде прямокутник, решітка, в

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

варіантів.

Алгоритм гамування

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

126

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

Ri = (Si + G) mod (к-1),

де Ri, Si, G - символи відповідно зашифрованого, вхідного тексту і гами.

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

Шифруемый текст

Б

У

Д

Ь

010010

100000

110010

100000

 

Знаки гаммы

7

1

8

2

000111

000001

001000

000010

 

Шифрованный текст

010101

1000001

111010

100010

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

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

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

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

127

Тема 35. АЛГОРИТМИ, ПОБУДОВАНІ НА СКЛАДНИХ МАТЕМАТИЧНИХ ПЕРЕТВОРЕННЯХ

Алгоритм RSA

Алгоритм RSA (за першими літерами прізвищ його творців Rivest-Shamir-Adleman) заснований на властивостях простих чисел (причому дуже великих). Простими називаються такі числа, які не мають дільників, крім самих себе і одиниці. А взаємно простими називаються числа, які не мають загальних дільників, крім 1.

Для початку вибераються два дуже великих простих числа (великі вхідні числа потрібні для побудови великих криптостійкий ключів. Наприклад, UNIX-програма ssh-keygen за замовчуванням генерує ключі довжиною 1024 біта). Визначається параметр n як результат перемноження р і q. Виберається велике випадкове число d, причому воно повинно бути взаємно простим з результатом множення (р-1) * (q-1). Шукається таке число е, для якого вірно співвідношення (e*d) mod ((р -1) *(q -1)) = 1 (mod - залишок від ділення, тобто якщо е, помножене на d, поділити на ((р-1) * (q-1)), то в залишку буде 1).

Відкритим ключем є пара чисел e и n, а закритим - d и n. При шифруванні вхідний текст розглядається як числовий ряд, і над кожним його числом ми здійснюємо операцію C(i)= ( M(i)e ) mod n.

В результаті виходить послідовність C (I), яка і складе криптотекст. Декодування інформації відбувається за формулою M(i) = ( C(i)d ) mod n.

Як видно, розшифровка передбачає знання секретного ключа.

Далі дія алгоритму розглядається на маленьких числах. Нехай р = 3, д = 7. Тоді n=р*q=21. Нехай d=5. З формули (е * 5) mod 12 = 1 обчислюється е = 17. Відкритий ключ 17, 21, а секретний - 5, 21.

Зашифровується послідовність «2345»: C(2)= 217 mod 21 =11

C(3)= 317 mod 21= 12 C(4)= 417 mod 21= 16 C(5)= 517 mod 21= 17 Криптотекст - 11 12 16 17.

Перевіряється розшифровкою: M(2)= 115 mod 21= 2

M(3)= 125 mod 21= 3 M(4)= 165 mod 21= 4 M(5)= 175 mod 21= 5

Як видно, результат збігся.

Криптосистема RSA широко застосовується в Інтернеті. При під'єднанні до захищеного сервера по протоколу SSL слід встановити на свій ПК сертифікат WebMoney або підключитись до віддаленого сервера з допомогою Oрen SSH або SecureShell. Тоді всі ці програми застосовуватимуть шифрування відкритим ключем з використанням ідей алгоритму RSA. Чи справді ця система така надійна?

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

128

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

Компанія RSA регулярно проводить конкурси на злам власних (і не тільки власних) шифрів. Попередні конкурси виграла організація Distributed.net, що є Інтернет-спільнотою добровольців.

Учасники Distributed.net завантажують до себе на ПК невелику програму-клієнт, яка приєднується до центрального серверу і отримує шматочок даних для обчислень. Потім всі дані завантажуються на центральний сервер, і клієнт отримує наступний блок вхідної інформації. І так відбувається до тих пір, поки всі комбінації не будуть перебрані. Користувачі, учасники системи, об'єднуються в команди, а на сайті ведеться рейтинг як команд, так і країн. Наприклад, учасникам, що брали участь в конкурсі по зламу RC5-64 (блочний шифр компанії RSA, що використовує ключ довжиною 64 біти) організації Distributed.net, вдалося здійснити злам через п'ять років (1757 днів) роботи. За цей час у проекті брали участь 327 856 користувачів і було перебрано 15 268 315 356 922 380 288 варіантів ключа. З'ясувалося, що була (не без гумору) зашифрована фраза «some things are better left unread» («деякі речі краще залишати непрочитаними»). Загальні рекомендації по шифру RC5-64 такі: алгоритм є досить стійким для повсякденних потреб, але шифрувати їм дані, що залишаються секретними протягом більше

п'яти років, не рекомендується.

Комбіновані методи шифрування

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

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

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

Взагалі кажучи, комбінувати можна будь-які методи шифрування і в будь-якій кількості, однак на практиці найбільшого поширення набули наступні комбінації:

1)підстановка + гамування;

2)перестановка + гамування;

3)гамування + гамування;

4)підстановка + перестановка.

Типовим прикладом комбінованого шифру є національний стандарт США криптографічного закриття даних (DES).

Криптографічний стандарт DES

У 1973 р. Національне бюро стандартів США почало розробку програми по створенню стандарту шифрування даних на ЕОМ. Був оголошений конкурс серед фірм розробників США, який виграла фірма IBM, що представила в 1974 році алгоритм шифрування, відомий під назвою DES (Data Encryption Standart).

129

У цьому алгоритмі вхідні 64-бітові вектори, що називаються блоками відкритого тексту, перетворюються у вихідні 64-бітові вектори, звані блоками шифротексту, за допомогою двійкового 56-бітового ключа К. Число різних ключів DES-алгоритму дорівнює 256>7*1016.

Алгоритм реалізується протягом 16 аналогічних циклів шифрування, де на і-му циклі використовується циклової ключ Ki, що представляє собою алгоритмічно створювану вибірку 48 бітів з 56 бітів ключа Ki, і = 1,2, ..., 16.

Алгоритм забезпечує високу стійкість, проте недавні результати показали, що сучасна технологія дозволяє створити обчислювальний пристрій вартістю близько 1 млн. доларів США, здатний розкрити секретний ключ за допомогою повного перебору в середньому за 3,5 години.

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

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

Досягнуто високої швидкості шифрування. Вона складає в кращих виробах 45 Мбіт / с. Ціна деяких апаратних виробів нижче 100 доларів США.

Основні області застосування DES-алгоритму:

1)зберігання даних на комп'ютерах (шифрування файлів, паролів);

2)аутентифікація повідомлень (маючи повідомлення і контрольну групу, нескладно переконатися в достовірності повідомлення;

3)електронна система платежів (при операціях з широкою клієнтурою і між банками);

4)Електронний обмін комерційною інформацією (обмін даними між покупцями,

продавцем і банкіром захищена від змін і перехоплення).

Пізніше з'явилася модифікація DESa - Triple DES («потрійний DES» - так як тричі шифрує інформацію «звичайним» DESом) вільний від основного недоліку колишнього варіанта - короткого ключа, він тут у два рази довший. Але зате, як виявилось, Triple DES успадкував інші слабкі сторони свого попередника: відсутність можливості для паралельних обчислень при шифруванні і низьку швидкість.

ГОСТ 28147-89

У 1989 році в СРСР був розроблений блоковий шифр для використання в якості державного стандарту шифрування даних. Розробка була прийнята та зареєстрована як ГОСТ 28147-89. Алгоритм був введений в дію в 1990 році. І хоча масштаби застосування цього алгоритму шифрування досі уточнюються, початок його впровадження, зокрема в банківській системі, уже відбулося. Алгоритм досить повільний, але має досить високу стійкість.

У загальних рисах ГОСТ 28147 аналогічний DES. Блок-схема алгоритму ГОСТ відрізняється від блок-схеми DES-алгоритму лише відсутністю початкової перестановки і числом циклів шифрування (32 в ГОСТ проти 16 в DES-алгоритмі).

Ключ алгоритму ГОСТ - це масив, що складається з 32-мірних векторів X1, X2, ... X8. Цикловий ключ і-го циклу Ki дорівнює Xs, де ряду значень і від 1 до 32 відповідає наступний ряд значень з:

1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,8, 7,6,5,4,3,2,1.

130

У шифрі ГОСТ використовується 256-бітовий ключ та обсяг ключового простору становить 2256. На жодній з існуючих в даний час або передбачуваних до реалізації в недалекому майбутньому комп'ютерній системі загального застосування не можна підібрати ключ за час, менший багатьох сотень років. Російський стандарт проектувався з більшим запасом, по стійкості він на багато порядків перевершує американський стандарт DES з його реальним розміром ключа в 56 біт о і обсягом ключового простору всього 256 (й не дивно: його ключ довжиною 32 байта (256 біт), вчетверо більше ключа DES. Необхідний для перебору всіх ключів час при цьому зростає не в чотири рази, а в 25632-8=25624, що виливається вже в астрономічні цифри), чого явно недостатньо. У зв'язку з цим DES може представляти швидше дослідний або науковий, ніж практичний інтерес.

Висновки

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

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

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

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

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

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

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

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

131

ГОСТ 28147-89 був розроблений ще спецслужбами Радянського Союзу, і він молодше DES всього на 10 років, при розробці в нього був закладений такий запас міцності, що даний ГОСТ є актуальним і досі.

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

132