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