
Практичне заняття №4 (3.3)
з дисципліни «ПРИКЛАДНА КРИПТОЛОГІЯ»
Тема заняття
Джерела ключів асиметричних криптосистем та їх властивості
Навчальні питання ПЗ
4.1 Основні теоретичні положення відносно ключів асиметричних криптосистем
4.1.1 Загальні відомості про ключеві дані
В
таблиці 9.1 наводиться опис ключів для
асиметричних криптосистем.
У
таблиці 9.2 наведено результати порівняння
ключів( по стійкості) для визнаних крипто
перетворень, що знайшли застосування
в національних, регіональних та
міжнародних стандартах [12,173].
У стовпці 1 наведено число бітів ключа
для блочного симетричного шифру. У
стовпці 2 подано алгоритми симетричних
криптографічних перетворень. У стовпці
3 поданий мінімальний розмір параметрів
для крипто перетворень(стандартів0, що
ґрунтуються на перетвореннях у кінцевих
полях. Прикладами таких алгоритмів
можуть бути FІPS 186-3 та ГОСТ 34.310-95 – для
цифрових підписів, а також алгоритм
Діффі - Геллмана (DH) і алгоритм узгодження
ключів MQV, як визначено в [46, 119–120], де Lв
– розмір відкритого ключа, а Lо – розмір
особистого ключа. У стовпці 4 подано
значення k (розмір модуля перетворення)
для криптографічних перетворень, що
ґрунтуються на складності вирішення
задач факторизації, наприклад RSA алгоритм
ANSX9.31 і PKCS#1. Посилання на ці специфікації
подані у FІPS 186-3 для цифрових підписів.
Значення k зазвичай використовують для
того, щоб указати розмір ключа. У стовпці
5 наведено порядок базової точки для
криптографічних перетворень у групі
точок еліптичних кривих для встановлення
ключів у [119–120]. Значенням f позначено
розмір ключа (порядок базової точки n =
2).
В таблиці 9.9. наведені аналогічні дані відносно направленого шифрування в кільці зрізаних поліномів та для функцій гешування. Там же, тобто в в таблиці 9.3, наведені дані відносно [ ] строків їх застосування, що рекомендуються.
Таблиця 9.1 - Асиметричні криптографічні перетворення для реалізації направленого шифрування
Параметри НШ/ Математичний апарат |
Особистий ключ НРШ |
Відкритий ключ НЗШ (сертифікат) |
Асиметрична пара (ключ) |
Загальні параметри крипто перетворення |
Сертифікати |
Складність крипто аналізу |
НШ в кільці (RSA) |
Di |
Ei |
(Di , Ei) |
N = P Q |
Еi |
Субекспоненційна |
НШ в полі Галуа F(P) |
Хi |
Yi=gXi(mod P) |
(Xi, Yi) |
P, q, g |
Yi |
Субекспоненційна |
НШ в групі точок еліптичних кривих Е(F(q)) |
di |
Qi=di G(modq) |
(di, Qi) |
a, b, G, n, f(x)(P), h |
Qi |
Експоненційна |
НШ в гіпереліптичних кривих |
Сi |
D2= ci D1 |
(ci, D2) |
f(x), g(x), q, D1, g, J |
D2 |
Експоненційна |
НШ зі спарюванням точок еліптичних кривих |
diD =s QiD |
QiD=H1 (ID) |
(diD, QiD) |
G1, G2, e, H1, P, H2, H3, F2m, Pp |
QiD |
Експоненційна – субекспоненційна |
НШ в кільці зрізаних поліномів (NTRU) |
f = 1+pF (modq) |
h= f 1*g*p(modq) |
(f, h) |
N, q, p, f, g ,df, dg, c |
|
Експоненційна – субекспоненційна |
Таблиця 9.2
Порівняння стійкості стандартизованих асиметричних крипто перетворень
Рівень стійкості, в бітах |
Симетричні |
Оцінка часу крипто аналізу, MIPS-years |
Геш функції |
Параметри асиметричних перетворень |
||||
DSA |
RSA |
EC-DSA |
IBE (BF, BB1) |
NTRU |
||||
До 2010 р. (мін. 80 біт стійкості) |
2TDEA 3TDEA AES-128 AES-192 AES-256 |
109 |
SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 |
Min.: L = 1024; N =160 |
Min.: k=1024 |
Min.: f=160 |
Min.: p = 512 q = 160 |
N =263 q =2048 df = 113 |
До 2030 р. (мін. 112 біт стійкості) |
3TDEA AES-128 AES-192 AES-256 |
1017 |
SHA-224, SHA-256, SHA-384, SHA-512 |
Min.: L = 2048 N = 224 |
Min.: k=2048 |
Min.: f=224 |
Min.: p = 1024 q = 224 |
N =401 q =2048 df = 113 |
Після 2030 (мін. 128 біт стійкості) |
AES-128 AES-192 AES-256 |
1023 |
SHA-256, SHA-384, SHA-512 |
Min.: L = 3072 N = 256 |
Min.: k=3072 |
Min.: f=256 |
Min.: p = 1536 q = 256 |
N =449 q =2048 df = 134 |
Рівень стійкості 192 біта |
AES-192 AES-256 |
1041 |
SHA-384, SHA-512 |
Min.: L = 7680 N = 384 |
Min.: k=7680 |
Min.: f=384 |
Min.: p = 3840 q = 384 |
N =677 q =2048 df = 153 |
Рівень стійкості 256 біта |
AES-256 |
1063 |
SHA-512 |
Min.: L = 15360 N = 512 |
Min.: k=15360 |
Min.: f=512 |
Min.: p = 7680 q = 512 |
N =1087 q =2048 df = 120 |
Таблиця 9.3
Алгоритми і параметрb NTRU , що рекомендуються
Обмеження дії |
Рівень безпеки |
Блоковий шифр |
Функція гешування |
Множина параметрів NTRU Х9.98 [ ] |
2030 |
112-біт |
Triple-DES (тільки 3 ключі), AES-128, AES-192, AES-256 |
SHA-224, SHA-256, SHA-384, SHA-512 |
ees401ep1, ees541ep1, ees659ep1 |
2031 і пізніше |
128-біт |
AES-128, AES-192, AES-256 |
SHA-256, SHA-384, SHA-512 |
ees449ep1, ees613ep1, ees761ep1 |
|
192-біт |
AES-192, AES-256 |
SHA-384, SHA-512 |
ees677ep1, ees887ep1, ees1087ep1 |
|
256-біт |
AES-256 |
SHA-512 |
ees1087ep2, ees1171ep1, ees1499ep1 |
4.1.2 Генерування ключів в системі rsa
Генерування асиметричної ключової пари. Система RSA відноситься до криптосистем з відкритими ключами. В цій системі ключі ЕkDk, причому один з них має бути особистим, а другий – відкритим. Наприклад, Еk – особистий, а Dk – відкритий, якщо вони використовуються для ЕЦП і навпаки, якщо використовуються для направленого шифрування.
Усі параметри (N,P,Q) також поділяються на 2 класи: N – відкритий, P,Q – конфіденційні (секретні).
Сутність забезпечення моделі взаємної недовіри – кожен користувач генерує ключі сам собі. Особистий ключ залишає в себе і забезпечує його строгу конфіденційність. Відкритий ключ розсилає всім користувачам, з якими він зв'язаний. Користувач також забезпечує цілісність і дійсність відкритих ключів.
Еk, Dk – мають вибиратися з повної множини випадково, порівняно ймовір- но і незалежно, мають забезпечувати однозначну оборотність прямого та зворотного перетворення. Відповідним чином засвідчений відкритий ключ є сертифікатом (див. п. 1.1.1).
Значення Еk, Dk для практичних використань мають задовольняти умову
,
де
.
Порівняння (1.54) можна звести до Діафантового рівняння:
ax+by=1. (9.9 1.56)
Це діафантове рівняння – нормоване, тому що справа коефіцієнт дорівнює 1; a, b – цілочисельні коефіцієнти, х, у – невідомі. Порівняння (9.7 1.54) можна подати у вигляді:
,
(9.10 1.57)
k – деяке невідоме число.
Діафантове рівняння
(9.9 1.56) має цілочисельне розв’язання,
якщо a
і b
цілочисленні, і
,
a
і b
взаємно прості. Подавши (9.10 1.57) у вигляді
, (9.11
1.58)
отримаємо а=(N), x=(k), b=Ek, y=Dk .
Якщо Ek сформувати випадково, то а та b – відомі числа, а х та y – невідомі, що підлягають визначенню.
Найбільш швидке розв’язання (9.11 1.58) дає застосування ланцюгових дробів, які дозволяють визначити х та у як
,
(9.12 1.59)
де – порядок ланцюгового дробу, a і b – параметри ланцюгового дробу.
Знаходимо параметри:
a/b подається у вигляді ланцюгового дробу
,
(9.13 1.60)
μ - порядок ланцюгового дробу, перший коефіцієнт, у якого залишок дорівнює 0.
Значення (а0,b0) та (а1,b1) визначаються як
,
.
Значення (а2,b2), (а3,b3) і т.д. визначаються рекурентно відповідно до правил
.
(9.14 1.61)
Середнє число
ітерацій в (1.60), тобто
,
можна визначити як [16]
.
4.1.3 Генерування ключів в системі DSA
Нехай є просте
поле Галуа F(p). Третя довірена сторона
генерує загальні параметри
, де
-
просте, як правило «сильне» просте
число, а
- первісний елемент. Далі всі користувачі
генерують випадково по принципу « сам
– собі»
- особисті ключі і зберігають їх як
таємні, де
i
.
(3.18)
Потім кожен формує
відкриті ключі, використовуючи
загальносистемні параметри
,
тобто кожен із користувачів обчислює
свій відкритий ключ
(3.19 2)
Кожний
первісний елемент породжує поле
ізоморфізмів
поля Галуа
.
Приклад генерування ключів для двох користувачів наведений в таблиці 3.6
Таблиця 3.6