Здавалка
Главная | Обратная связь

Розділ 6. Основи криптографії та шифрування.



6.1. Основні принципи криптографії

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

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

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

Значною модифікацією одноалфовітної заміни є шифр, який носить назву квадрату Полібія або тюремною азбукою. У ньому символи алфавіту розміщують в квадрат та замість букви в письмі записують пару чисел: номер строки та номер стовпця чарунки. У XVI сторіччя Д. Кардано винайшов новий тип шифра, заснований на дуже простій але надійній перестановці Літер повідомлення. Для шифрування Кардано запропонував використовувати квадрат з прорізаними в ньому декільками чарунками. Чарунки прорізалися таким чином, щоб при повороті квадрата навколо свого центру на 90º , потім на 180º та 270º у отворах почергово з’являлись всі позиції первісного квадрата по одному разу При шифруванні квадрат покладають на аркуш для послання спочатку в первісному положенні та пишуть зліва направо зверху вниз першу порцію повідомлення Для дешифрування треба мати точну кожного того квадрата, яким користувався шифрувальник та повторити з нею ті самі повороти.

Цей пристрій досить зручний для зберігання та забезпечує гарну стійкість шифру. Так, маючи квадрат з прорізями розміром M*N для розшифровки треба перебрати варіанти. Наприклад, якщо N=6, то число переборів дорівнюватиме 262144.

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

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

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

З XIX сторіччя криптографія перейшла на якісно інший рівень – почалася ера цифрової криптографії .

В 20-х роках ХХ сторіччя Г. Вернам запропонував автоматизувати шифрування телетайпних повідомлень за такою схемою. Інформація на телетайпі стрічці являє собою послідовність отворів та не пробитих ділянок , які відповідають “0” та “1”. Вернам запропонував на передавальній стороні розмістити замкнену в кінце строчку з досить довгою послідовністю схожих “0” та “1”, яка відіграє роль паролю . в момент передачі чергового імпульсу в канал зв’язку стрічка пароль, зсувається на одну позицію і з неї зчитується поточне двоічне значення. Якщо був зчитано “0”, то первісний двоічний сигнал не змінювався, яка на стрічці паролі в цьому місці виявилась “1” то первісний сигнал інвертувався на приймальний стороні повинна бути присутня точно така ж стрічка і, притому у тому ж початковому положенні, що й у відправника.

Таким чином, тут вперше була застосована операція складання за модулем 2, яка стала базою у цифровій криптографії. Така операція має ще назву “виняткове ЧИ” і записується як “ ” або XOR (від англійського Exclusive OR). У відношенні складання за модулем 2 цікавий ще один факт – зворотний до нього, тобто відновлення. Операцією є окрім віднімання за модулем 2 ще й сама ця операція, тобто для яких X та Y виконується . І ця дуже зручна якість нерідко застосовується в різноманітних сучасних шифрах та схемах.

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

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

6.2. Класифікація шифрів.

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

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

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

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

Рис. 6.1. Загальна схема процесу передачі повідомлення

Рис. 6.2. Асиметричне шифрування

У асиметричному шифруванні (рис.6.2.) для шифрування повідомлення використовуються один ключ, а для дешифрування – інший. Таким чином, прочитати зашифрований текст можливо, тільки при наявності ключа дешифрування. Тому ключ шифрування може бути відомий всім користувачам мережі та носить назву відкритого ключа. А ключ дешифрування називають закритим. Самі ж асиметричні системи отримали назву шифру на відкритому ключі. Асиметричні шифри немає сенсу використовувати для захищеного зберігання документів. Їх призначення – захист повідомлень, електронна пошта, тощо.

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

Така обробка інформації є досить повільною і тому, враховуючи можливості сучасних процесорів здійснювати паралельну обробку, застосовують інші принципи криптографічних перетворень, які носять назву блочних шифрів. Основним законом блочного шифрування є „або блок, або нічого”. Тобто перетворення можуть здійснюватися тільки над інформацією строго визначеного обсягу. Розмір блоку на сьогоднішній день дорівнює 64, 128 або 256 бітам. Часткове шифрування (наприклад намагання обробити 177 біт) неможливе. Блочне шифрування отримало значно ширше розповсюдження завдяку розвитку обчислювальної техніки. Отже, якщо поточні шифри однаково часто реалізуються як програмно, так і апаратно, то блочні шифри в своїй більшості мають програмну реалізацію.

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

Загальна схема класифікації шифрів наведена на рис.6.3.

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

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

Рис. 6.3. Загальна схема класифікації шифрів

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

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

Розглянемо основні види атак, яким повинен протистояти стійкий шифр.

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

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

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

Якщо протягом досить великого проміжку часу (десятки років) на якийсь шифр не знайдено жодного способу злому. То він вважається надійним шифром. Але, треба пам’ятати, що в будь який момент якийсь шифр може покинути сукупність надійних шифрів у зв’язку з відкриттям якоїсь нової математичної теореми або метода криптоаналіза. Наприклад, після доведення Д.Мессі та Е.Берлекампом теореми про те, що при перехваті біт шифруючої послідовності лінійного регістру зсуву завжди можна відновити його внутрішню структуру, лінійні регістри зсуву покинули клас надійних шифрів та застосовуються тільки як складові елементи більш складних криптоалгоритмів. До цих пір не існує теорії, яка дозволяє генерувати надійні на 100% практично стійкі шифри.

Отже. Будь який шифр можна відкрити простим перебором ключів. Все залежить від розміру ключа, який визначає кількість часу щоб перебрати всі варіанти. Так, якщо довжина ключа 32 біта (4 млрд. варіантів), то треба декілька днів (або тижнів) для його відкриття. Ключі довжиною 128 біт у сучасних надійних шифрах не можливо відкрити повним перебором на сучасних ЕОМ. Рекомендована довжина ключів для комерційних цілей 192 біта, а для державних 256 біт. Тобто зроблено запас на декілька десятків років, з урахуванням бурхливого розвитку сучасних ЕОМ.

6.3. Симетрична криптографія.

6.3.1. Поточні шифри.

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

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

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

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

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

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

.

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

,

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

Загальна схема шифрування поточним шифром наведена на рис.6.4.

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

Рис. 6.4. Загальна схема шифрування поточним шифром.

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

- ключ;

- номер поточного кроку шифрування;

- найближчі від поточної позиції біти первісного і/або зашифрованого тексту.

Ключ є необхідною частиною гамую чого шифру. Якщо ключ і схема породження гами не є таємним. То поточний шифр перетворюється у звичайний перетворювач – кодер – скремблер (від англ. - перемішувати). Скремблери широко застосовуються у системах телекомунікацій для покращення статистичних характеристик сигналу, що передається. Частота появи „0” та „1” необхідна у багатьох системах синхронізації – за моментом зміни значення (фронту) сигналу з „0” на „1” або з „1” на „0” приймальна сторона коригує свої генератори синхроімпульсів. Часто у відношенні поточних шифрів за аналогією з подібними код ерами застосовується термін „скремблер”.

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

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

Таблиця 6.1.

Властивості різних поточних шифрів.

  Гама залежить від біта первісного або зашифрованого тексту Гама не залежить від біта первісного або зашифрованого тексту
Гама залежить від номера поточного тексту шифрування (-) дешифратор втрачає синхронізацію при помилці „вставка/пропуск біта” в каналі зв’язку. (-) дешифратор розмножує помилки „спотвореного біта” в каналі зв’язку (+) схема стійка до атаки за відомим первісним текстом (-) дешифратор втрачає синхронізацію при помилці „вставка/пропуск біта” в каналі зв’язку (+) дешифратор не розмножує помилки „спотворення біта” в каналі зв’язку (+) схема стійка до атак за відомим первісним текстом
Гама не залежить від номера поточного такту шифрування (+) дешифратор не втрачає синхронізацію при помилці класу „вставка/пропуск біта” в каналі зв’язку (-) дешифратор розмножує помилки класу „спотворення біта” в каналі зв’язку (-) схема не стійка до атаки за відомим первісним текстом  

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

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

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

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

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

- гама, яка породжується шифром, повинна мати дуже гарні стохастичні характеристики;

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

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

Найбільш простими схемами, які використовуються в якості базових при побудові інших, більш стійких поточних шифрів, є лінійні регістри зсуву – ЛРЗ (англ. ). Їх побудова дуже проста: пристрій являє собою декілька ( ) чарунок пам’яті, в кожній з яких може зберігатися один біт інформації. Сукупність біт, яка знаходиться в даний момент у ЛРЗ, називають його станом. Для виробітку чергового біту шифруючої послідовності, тобто гами, ЛРЗ виконує один цикл перетворень, який носить назву такта, за таким алгоритмом:

- перший (скажемо, самий правий) біт із послідовності поступає на вхід ЛРЗ – це є черговий біт гами;

- вміст усіх проміжних чарунок пам’яті зсувається на одну позицію вправо;

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

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

 

Рис. 6.5. Лінійний регістр зсуву

Кількість біт, які охоплені в ЛРЗ зворотнім зв’язком, називають його розрядністю. В разі використання в якості простого шифру перед початком процесу в чарунки пам’яті ЛРЗ розміщують побітно ключ. Як наслідок. Біт гами, який породжується на кожному такті, залежить від ключа і від номера даного такту в загальній процедурі шифрування. Приклад роботи ЛРЗ розрядності 3, з установкою ключа 011 показана на рис.6.6.

Рис. 6.6. Приклад роботи ЛРЗ розрядності 3 з установкою ключа 011

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

Рис. 6.7. Стани ЛРЗ та переходів між ними

Цикл „000” характерний для всіх графів внаслідок побудови ЛРЗ. На рис. 6.7.а бачимо окрім „нульового” циклу ще два цикли – 3х та 4х станів. На рис. 6.7.б ланцюг сходиться до циклу 3х етапів і все ніколи звідти не виходить. І, нарешті, на рис. 6.7.в всі можливі стани, окрім нульового об’єднані в один замкнений цикл.

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

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

Основною завадою до застосування ЛРЗ у якості безпосередньо шифрів є їхня нездатність протистояти атаці за відомим відкритим текстом. По-перше, коли зловмиснику відома структура зворотних зв’язків ЛРЗ розрядності і хоча б послідовних біт, породжених їм на будь-якому етапі шифрування (тобто стан регістру тактів назад), то всі наступні стани регістру можуть бути отримані самостійно. Таким чином, буде породжена вся наступна за цим моментом гама, та дешифровано весь текст. Більше того, відновлення біт гами можливо і в зворотному напрямку внаслідок побудови ЛРЗ. Це дозволяє зловмиснику записувати увесь шифротексту, який передається та одночасно виконувати спроби підібрати відповідний йому відкритий текст на основі набору високо вірогідних для даного контексту фраз або даних. Якщо в будь який момент часу відкритий текст довжиною буде успішно підібрано, то і весь шифрований потік, який іде за ним, буде успішно дешифровано. Паралельно, можливо на іншій ЕОМ, весь законспектований до точки взлому шифротексту буде прочитано в зворотному напрямку.

По-друге виявилось, що нестійкі до атаки на основі відкритого тексту й ЛРЗ з таємною структурою відводів зворотного зв’язку. Алгоритм, який запропонували Е. Берлекамп та Дж.Мессі, дозволяє на основі безперервної послідовності з біт збудувати ЛРЗ розрядності , яка породжує таку послідовність. Таким чином, якщо навіть зловмиснику невідома структура ЛРЗ, то шляхом перебору спочатку з початкової позиції відомих слів або даних у відкритому тексті, а потім за розрядністю регістру зсуву (якщо вона невідома) можливо збудувати ЛРЗ, яка зашифрувала цей текст. При цьому відновлюється як структура ЛРЗ, так і поточні його стани, що дозволяє виконувати подальшу де шифровку як і у випадку з відомим видом зворотного зв’язку ЛРЗ. Для усунення цих недоліків були створені нелінійні поточні шифри.

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

Фільтруючі шифру мають найбільш просту структуру з нелінійних поточних шифрів. Їх будують на базі одного ЛРЗ шляхом створення від його чарунок додаткових відводів, ніяк не пов’язаних з відводами зворотного зв’язку. Значення, які отримують за цими відводами, зменшують на основі якоїсь нелінійної функції – фільтру (рис. 6.8.). Біт – результат цієї функції й подають на вихід схеми як черговий біт гами.

Рис. 6.8. Фільтр

Рис. 6.9. Комбінація шифрів

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

Однією з основних проблем комбінуючи шифрів є можливість витоку інформації з одного або декількох ЛРЗ у вихідну гаму. Так, у найпростішому випадку, наведеному на рис. 6.10., підсумкова шифруючи послідовність породжується за формулою . Не дивлячись на те, що така гама є збалансованою, тобто вірогідність появи „0” та „1” у ній співпадають, у неї з неприпустимо великою вірогідністю проходить поток біт, який породжений першим ЛРЗ. Дійсно, вірогідність , але . Це дозволяє при досить великому обсязі інформації, яка перехвалена, чим це було раніше, проводити на перший ЛРЗ все ті ж атаки, що й на одиночний ЛРЗ. А отримавши всю необхідну інформацію по першому ЛРЗ, можна або безпосередньо скористатися нею для прочитання з „догадкою” відкритого тексту, або намаганням отримати більше інформації про другий та третій ЛРЗ.

Рис. 6.10. Блок-схема формування шифру

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

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

Рис. 6.11. Використання в об’єднуючий функції додаткових елементів пам’яті

Рис. 6.12. Динамічні шифри, які будуються також на базі декількох ЛРЗ

Динамічні шифри будуються також на базі декількох ЛРЗ, але об’єднують їх не на рівних засадах, а за схемою „начальник-підлеглий”. Так, наприклад. У схемі, яка наведена на рис. 6.12., біт, який породжується керуючим регістром, визначає біт. Якого з підлеглих ЛРЗ (першого чи другого) буде подано на вихід всього алгоритму. Біт з протилежного вибраному регістру відкидається.

За іншою схемою, якщо на черговому кроці керуючий ЛРЗ генерує „1” то біт підлеглого ЛРЗ на цьому ж кроці поступає на вихід системи, а якщо керуючий ЛРЗ видав „0” то біт підлеглого регістру просто відкидається. Звичайно, можливі й більш складні схеми взаємодії ЛРЗ та їх комбінацій з вище наведеними методами.

6.3.2. Основи блочного шифрування

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

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

Будь який блочний шифр у загальному вигляді являє собою закон відображення множини вхідних блоків первісного тексту на множину блоків зашифрованого тексту. Крім того, цей закон дуже сильно залежить від таємного ключа шифрування. В принципі, блочний шифр – це шифр заміни над дуже великим алфавітом (з десятків та сотень біт). Потенційно будь який шифр заміни можна описати повною таблицею відповідності між вхідними та вихідними даними. Так, як це робилося й для політерних замінах. Але для того щоб описати тільки одне відображення на 64 – бітним блоком (тобто алфавітом з 264 елементів) знадобиться біт запам’ятовуючого пристрою, а це ж відображення буде застосовано тільки при якомусь одному конкретному значенні ключа. Тому сучасний блочний шифр – це закон, який описує дане відображення алгоритмічно.

Кількість Біт блоці, який оброблюється називають розрядністю блока, а кількість біт у ключі розміром ключа алгоритма. Найбільш популярна на сьогоднішній день розрядність блоку – 64 та 128 при розмірі ключа 128,192 або 256 біт. У загальному вигляді процес блочного шифрування описується формулою

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

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

Основною ідеєю майже всіх блочних шифрів є той факт, що послідовність біт будь якої довжини Q можна представити у вигляді натурального числа у діапазонні . Більш того, один та й той же обсяг даних, розбиваючи на подібні блоки різними способами, можна представити як у вигляді великого набору невеликих чисел, наприклад, від 0 до 15 або від 0 до 255, так і у вигляді декількох чисел, наприклад, діапазону [0...4294967295]. Тут все залежить від схеми розбиття потока даних на блоки біт. Отже над цими натуральними числами й виконуються множина простих математичних та алгоритмічних перетворень, так званих криптопримітивів – з числа тих, які легко виконуються на сучасних ЕОМ.

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

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

Табл. 6.2

Перелік найбільш прийнятних перетворень та їх умовні позначення на схемах

Операція Умовні позначення Математична нотація Примітка
Додавання У разі переповнення результатом розрядності операндів біт переносу відкидається – втрати інформації при цьому не відбувається
Виняткове Операція оборотна сама собі  
Множення за модулем 2N+1   Це перетворення оборотне. Множник за відомим добутком та іншому множнику знаходиться за алгоритмом Евкліда
Циклічний бітовий зсув вліво Операція є зворотною до циклічного зсуву вправа
Циклічний бітовий зсув вправо Операція є зворотною до циклічного зсуву вліво
Таблична підстановка  

Декілька слів про табличні підстановки, які займають окреме місце у криптографічних перетвореннях. За допомогою табличних підстановок (англ.. Substitute-box-S-box) реалізують найбільш загальні закони зміни даних, які часто не відтворюються не аналітично, ні алгоритмічно. У тих випадках коли у шифрую чому алгоритмі треба реалізувати доволі складну для мікропроцесора або функцію, яка взагалі не описується алгоритмом, найбільш прийнятним рішенням є занесення її значення в масив, який зберігається у постійній або оперативній пам’яті. Таке завдання функції називають табличним.

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

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

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

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

Табл.6.3.

Основні необоротні криптопримітиви

Операція Умовні позначення Математична нотація Примітка
Множення  
Остача (модуль) від ділення  
Арифметичний бітовий зсув вліво  
Арифметичний бітовий зсув вправо  
Логічне “І”  
Логічне “ЧИ”  

Покажемо, що може виступати у якості параметрів V у оборотних та необоротних операціях. Поперше це фіксовані числові контакти. Єдиним обмеженням, яким завжди користуються проектувальники блочних шифрів, є логічне обґрунтування їх вибору. У тих випадках, коли шифр повний фіксованих числових констант, вибір яких тяжко пояснити, може виникнути підозра, що розробники планомірно конструювати їх для одержання яких-небудь не документальних можливостей по розкриттю шифра. Тому, коли застосування фіксованих числових констант виконує тільки роль “перемішування” даних, їх звичайно вибирають з двоїчного запису загальновідомих, не пов’язаних ні з чим величин, наприклад, чисел , е або (золотий переріз), або як контрольну суму якого-небудь розповсюдженого тексту.

Другим можливим значенням параметру V є матеріал ключа. Матеріалом ключа називають блок даних, обчислений на основі ключа шифрування і такий, що залежить тільки від нього. У найпростішому випадку матеріалом ключа може бути сам ключ (якщо його розрядність співпадає з розрядністю операцій) або довільна його частина без будь-якої обробки. Але пряме застосування ключа у перетвореннях може привести до розкриття деякої інформації про нього, наприклад, при великій кількості відомих пар “відкритий текст/ зашифрований текст” І, хоча вірогідність такої атаки дуже мала, треба перестрахуватися. Для цього у якості матеріла ключа використовують значення, які обчислені з нього за необоротною схемою. Про цьому краще за все, щоб будь який елемент матеріала залежав від усіх біт ключа, тому що навіть за найменших змін ключа (наприклад тільки в одному біті) повинен змінюватись і доволі суттєва кожен блок матеріалу ключа.

Операції, в яких у якості параметра V використовується матеріал ключа, називають перемішуванням з ключем або додаванням ключа (ніякого зв’язку з арифметичною операцією цій термін не несе) таких операцій під час шифрування одного блоку виконуються досить багато. Таким чином, вирішується одна з головних вимог до шифрів – не відновлює мість ключа. Дійсно, якщо до блоку даних додавати одну й туж інформацію, але неодноразово та різними способами, то така інформація буде необоротна відносно доданої інформації, хоча оборотність відносно першого операнда залишиться. Наприклад, нехай Х та К – чотирьох бітні первісне число та ключ відповідно (діапазон можливих значень 0...15 у кожного), тоді формула:

де нижній індекс вказує на систему числення.

Є оборотною відносно Х – завжди за відомими та К можна відновити Х, але необоротною відносно К по відомий парі Х та . Не існує аналітичної формули, яка б обчислювала КК через Х та . Звичайно завжди можна скласти табличну залежність, перебрав при відомому Хусі К та записав усі , які вийшли. Але це легко зробити тільки у гіпотетичному прикладі з 16 можливих значень 12. на практиці при довжині ключа у 128 біт для вирішення цієї задачі не вистачить а ні ресурсів пам’яті для зберігання. Ні обчислювальних можливостей ЕОМ. Таким чином, багаторазове додавання матеріалу ключа за складною схемою є надійним засобом захисту блочних шифрів від атаки за відомими парами відкритий / зашифрований текст.

Третім можливим значенням параметру V є значення, обчислене від незалежної частини блоку, який шифруються. Цей метод лежить в основі схеми блочного шифрування та носить назву мережі Файштеля. Операції, які задіяні у якості другого параметру само значення блоку, який шифрується, оборотні, тільки тоді якщо вони оперують незалежними частинами блоку. Наприклад, на якомусь поміжному етапі на перші байт операцію XOR накладається значення п’ятого байта і так далі. Оборотність забезпечується на тій підставі, що на приймальній стороні алгоритм, підходячи до де шифровки цього місця, вже “знає” значення п’ятого байта, яким проводиться накладання, та повторним виконанням XOR відновлюється перший байт. Проблема виникла б, якщо на переший байт наклали функцію від цього ж першого байта. Тоді, навіть не дивлячись на потенційну оборотність операції, дешифруючи сторона не змогла б обрахувати значення V і зайшла б у глухий кут .

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

- скоротити розмір програмного коду використанням циклу;

- уніфікувати “алгоритмічну формулу” шифрування і, як наслідок спростити перевірку стійкості шифра до відомих видів криптоатак;

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

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

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

Однією з найбільш простих та раніх мереж є SP – мережа (SP - network) кожний раунд якої складається з двох шарів. Свою назву ця мережа отримала від скорочення англійських слів: Substitution (підстановка) та Permutation (перестановка). У шарі підстановки над даними виконуються перетворення класу додавання, виключаю чого ЧИ, табличних підстановок, у якості параметрів використовуються константи та матеріал ключа. У шарі перестановки біти або зрідка байти міняються місцями всередині блоку звичайно за фіксованою (не залежного від ключа) схемою.

Більш сучасною модифікацією технології мереж є KASLT – мережа з трьома шарами у кожному раунді. Перший шар – додавання ключа (Key Addition, KA) – виконує змішування даних з ключем раунда. Змішування виконується звичайно якою-нибудь простою операцією – додаванням або XOR. Другий шар - підстановка (Substitution, S) – виконує алгоритмічну або частіше табличну підстановку для, забезпечення нелінійних якостей шифра. Третій шар – лінійне перетворення (Linear Transformation, LT) виконує активне оборотне змішування даних всередині блоку.

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

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

Рис. 6.13. Мережа Файштеля

Незалежні потоки інформації, які породжені з первісного блоку, носять назву вітки мережі. У класичній схемі їх дві. Величини V1 носять назву параметрів мережі, звичайно їх роль відіграють матеріали ключа. Функція F носить назву утворюючий. Оптимальна кількість раундів для мережі Файштеля К – від 8 до 32. мережа Файштеля є оборотною. Вона має таку якість, що навіть якщо у якості утворюючої функції F буде використано необоротне перетворення, то і в цьому випадку весь цей ланцюжок буде відновлювальним. Це виникає в наслідок того, що для оборотного перетворення мережі Файштеля не потрібно обчислювати функцію F-1 – і під час дешифрування обчислюється тільки пряме значення F. Оборотність вимагається тільки для операції накладання F на вітку, яка шифрується у цьому раунді, тому тут частіше всього використовуються XOR та зрідка арифметичне додавання.

Більш того, мережа Файштеля, в якій для накладання значення F використовуються операція XOR, симетрична. Виключаючи ЧИ оборотнього своїм же повторенням, і тому інверсія останнього обміну віток робить можливим розкодування блоку тією ж мережею Файштеля, але з оборотнім порядком параметрів V1. Відзначимо, що для оборотностиі мережі Файштеля не має значення, чи є кількість раундів парним чи, непарним. У більшості реалізацій мережі Файштеля пряме та зворотне перетворення виконується одним і тим же фрагментом програмного кода, який оформлений у вигляді процедури, якому в якості параметру передається вектор величини V1 або у первісному (для шифрування), або у інверсному (для дешифрування) порядку.

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

А ось модифікація мережі Файштеля для більшої кількості віток застосовують значно частіше. Це в першу чергу пов’язано з тим, що при великих розмірах блоків, які шифруються (128 та більше біт) стає незручно працювати з математичними функціями за модулем 64 та вище. Як відомо, основні одиниці інформації, які обробляються процесорами на сьогоднішній день –це байт і подвійне машинне слово – (32 біта). Тому все частіше у блочних криптоалгортмах зустрічається мережа Файштеля з 4 вітками. А для більш швидкого змішування інформації поміж вітками застосовуються дві модифіковані схеми які носять назву тип – 2 та тип – 3. За рахунок часткового об’єднання обробки потоків у двух останніх схемах кількість раундів у них лише ненабагато більше кількості раундів у мережі Файштеля з двома вітками.

Далі розглянемо практику блочного шифрування у хронологічному порядку з початку його розробки у 70 – роках минулого століття. У 1980 році в США було прийнято національний стандарт шифрування даних DES (Data Encryption Standard). Алгоритм роботи цього стандарту являє собою класичну мережу Файштеля з 16 раундів з додаванням вхідної та вихідної та вихідної перестановки біт, з розрядністю блока –64 біта розмірами ключа 56 біт. Загальна структура алгоритму наведена на рис. 6.15.

 

Рис. 6.14. Модифікація мережі Файштеля

 

Загальна формула для обчислення індексів у псевдокоді має вигляд:

цикл по і від 0 до 63

,

де запис Xr символ означає r-q біт у запису чисел, Х, | це конкатенація (зчеплення ) цифр у двоїчному запису чисела.

Додавання матеріала ключа виконується тільки в мережі Файштеля тому тільки вона виконує шифрування даних.

Розрядність ключів раундів які застосовуються у DES дорівнює 48 бітам. Для симетричності алгоритму шифрування / дешифрування в DES як і в класичній мережі Файштеля, виконується додатковий розмін останнього обміну віток. Це дозволяє виконувати шифрування та дешифрування одним і тим же програмним кодом, здійснюючи передавання йому у першому випадку ключі раундів у прямому порядку , а в другому випадку – у зворотному. Загальний вигляд мережі Файштеля алгоритму DES наведено на рис. 6.16.

 

Рис. 6.15. Загальна структура алгоритму

Рис. 6.16. Мережа Файштеля алгоритму DES

Утворююча функція мережі в алгоритмі DES складається з 4 операцій:

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

2. накладання ключа раунда операцією XOR;

3. табличні підстановки;

4. перестановка біт.

Розширення вхідних даних виконуються на рівні біт шляхом запису деяких з них у вихідний потік двічі. У результаті з 32 біт утворюється 48 – бітний блок інформації який співпадає за розміром з ключем раунда. Накладання ключа раунда виконується операцією XOR з рядністю операції – 48 біт.

Табличні підстановки, які застосовуються в DES, мають розрядність біта. 48 – бітний блок даних після накладання ключа розбивається через свою табличну підстановку, яка позначається як та таке інше. В результаті отримуємо 8 блоків по 4 біта у кожному: всього 32 біта – первісна розрядність вітки, яка обробляється.

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

Рис. 6.17. Один раунд мережі Файштеля алгоритма DES

Розширення ключа (створення ключів раунда) виконується в DES за такою схемою значущих. На основі 56 значущих біт із ключа на початковому етапі створюються за окремим законом два 28-бітних вектора Со та До. Ці закони встановлюють порядок послідовності вибору біт з ключа.

Інститутом стандартизації рекомендовано під час зберігання ключа для DES використовувати найпростіше завадостійке кодування – перевірку парності. Тому в кожному байті значущими є тільки перші 7 біт а восьмий додається до запису виходячи з правила кількості одиниць у двоїчному кожного байту непарно. Таким чином, при існуючий розрядності ключа у 56 біт зберігається він 64 – бітній структурі. Саме цим пояснюється поява в законі вибору біт для Со та До номерів, більших 56, та відсутністю біт з номерами 8, 16, 24, 32, 40, 48, 56, 64 (вони є контрольними тобто незначущими)

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

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

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

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

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

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

Стрімкий злет потужності обчислювальної техніки вніс значні корективи в напрямки розвитку криптографії. Найбільш простим представником сімейства програмно-орієнтованих надійних блочних шифрів є TEA (Tiny Encryption Algorithm). Переклад цієї назви на українську мову може бути як “крихітний криптоалгоритм”. Це класична мережа Файштеля з 64 раундів. Алгоритм оптимізовано під 32 – розрядний мікропроцесор, розмір блоку – 64 біта.

Результат функції, яка утворилася накладається на незалежну вітку операцією “складання”, тому відновити первісний текст простим оберненням порядку ключів раунда не вдається. Отже, алгоритм ТЕА є прикладом несиметричної мережі Файштеля, в якому для дешифрування треба реалізувати окрему процедуру, яка є досить проста.

Існує також ТЕА: розширення ключа. Цей алгоритм використовує 128 бітний ключ, який перетворюється в ключі раунда за дуже простою схемою. Ключ розбивається







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.