стандарти шифрування

Російський стандарт ГОСТ 28147-89.

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

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

· Гамування зі зворотним зв'язком;

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

Система відноситься до блокових експоненціальним системам, так як кожен блок М відкритого тексту розглядається як ціле число в інтервалі (0. n-1) і перетворюється в блок С наступним відкритим перетворенням

C = E (e, n) (M) = M e (mod n),

де E (e, n) - перетворення, а (e, n) - ключ шифрування.

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

M = D (d, n) (C) = C d (mod n),

де D (d, n) - перетворення, а (d, n) - ключ розшифрування.

В основі цього методу лежить досить складне теоретичне обгрунтування. Числа e і d пов'язані з n певною залежністю і існують рекомендації по вибору ключових елементів на основі простих чисел. Якщо взяти два простих числа p і g, визначити n = p х q, то можна визначити пару чисел e і d, які відповідають заданим умовам. Якщо зробити відкритими числа e і n, а ключ d (і обов'язково p і g) тримати в секреті - то запропонована система є RSA-криптосистемою відкритого шифрування. Очевидно, її стійкість визначається складністю операції вилучення з З кореня ступеня е по модулю n.

Розглянемо основні етапи реалізації алгоритму RSA.

1. Вантажовідправник обчислює n = p х q і M = (p-1) (q-1).

2. Потім він вибирає випадкове ціле число e, взаємно просте з М і обчислює d, що задовольняє умові

Нагадаємо, що два числа є взаємно простими, якщо їх HOD = 1. Числа а і b мають HOD d, якщо d ділить і а і b і максимальний серед таких чисел.

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

4. Розглянемо тепер числа e і d. Припустимо, що ми знаємо одне з них і знаємо співвідношення, яким вони пов'язані. Ми могли б легко обчислити друге число, однак ми не знаємо чисел p і q. Отже можна одне з чисел подарувати кому-небудь разом з n і попросити його посилати нам повідомлення наступним чином.

5. Повідомлення уявити як вектори (блоки) довжини l

6. Кожне xi звести в ступінь e по mod n.

7. Надіслати нам Y = (x1 e (mod n), x2 e (mod n). Xl e (mod n)).

Позначимо t = yi = хi e (mod n) і розглянемо розшифрування отриманої інформації.

Для цього зведемо отримане число t в ступінь другого числа пари - d:

R = t d (mod n) = x e (mod n) d (mod n) = x ed (mod n).

У відповідність з п.2 співвідношення ed = 1 (mod M). а це означає, що ed-1 ділиться без остачі на (p-1) (q-1), тобто ed = 1 + a (p-1) (q-1),

де а - ціле число.

x ed (mod n) = x 1 + a (p-1) (q-1) (mod n)

x p-1 = 1 mod p, x q-1 = 1 mod q (ці співвідношення доводяться як мала теорема Ферма, наприклад в / 10 /) отримаємо

x (p-1) (q-1) = 1 (mod pq)

x 1 + a (p-1) (g-1) (mod n) = x, тому що

x a (p-1) (q-1) = 1 (mod pq), через те,

що x (p-1) (q-1) = 1 (mod pq),

x mod n = x, так як x

Що й потрібно було довести.

Цифрова (електронна) підпис

Одним з основних застосувань криптосистем з відкритим ключем є їх використання при створенні так званої цифрової або електронного підпису (digital signature). Вперше ідея цифрового підпису була висловлена ​​в роботі Діффі і Хеллмана.

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

Ek [Dk (M)] = M для будь-якого відкритого тексту М.

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

Система RSA широко використовується в системі цифрового підпису, так як її перетворення володіють усіма необхідними властивостями. Використання цифрового підпису припускає існування двох процедур: підписання та перевірки /8.9/.

Процедура підписування повідомлення M - це зведення числа M в ступінь d по mod n:

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

Процедура перевірки підпису S. відповідної повідомленням M - це зведення числа S в цілу ступінь e по mod n:

Якщо M '= M, то повідомлення M вважається підписаним користувачем, який надав раніше відкритий ключ e.

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

Стандарт США - DES.

Державним стандартом США на шифрування інформації є стандарт DES (Data Encryption Standard). Алгоритм шифрування, покладений в основу стандарту, був розроблений фірмою IBM. Після перевірки фахівцями Агентства Національної Безпеки США алгоритм отримав статус державного стандарту. Стандарт DES використовується федеральними департаментами для закриття інформації в автоматизованих системах, за винятком деяких видів інформації, визначено-них спеціальними актами. Крім того, цей стандарт шіфрова-ня широко використовується недержавними організаціями не тільки в США, але і у всьому світі.

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

Блоки вихідної інформації піддаються итерационной обробці з використанням операцій перестановки і функції шифрування. Для обчислення функції шифрування передбачається отримання 48-бітного ключа з 64-бітового, розширення 32-бітового коду до 48-бітового, перетворення 6-бітового коду в 4-бітовий і перестановка біт в 32-бітової послідовності.

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

Схожі статті