Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_algebra_I_Teoria_Chisel_1_30_el_uchebni...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.12 Mб
Скачать

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

Нехай f – важкооборотна функція з секретом (наприклад, RSA). Припустимо, що існує алгоритм, який видає елемент х, рівномірно розподілений на D.

Розглянемо предикат В'Dn→{0, 1}n, В'(у= В(f –1(у)), тобто якщо у f(х), то В'(у= В(х). Тоді, якщо f – важкооборотна функція з секретом, то В'(у) має такі властивості:

1) будь-який імовірнісний поліноміальний алгоритм на випадковому вході уDn видає правильне значення В'(у) з імовірністю, не кращою за ;

2) знання секрету дозволяє легко обчислити В'(у) для будь-якого уDn;

3) існує поліноміальний алгоритм, який, отримавши на вхід деякий біт b і слово 1п, видає елемент уDn, рівномірно розподілений на множині .

Властивість 3) виконується завдяки тому, що f – бієкція. Алгоритм вибирає випадковий елемент хDn і якщо В(х) = b, то подає на вихід у f(х), а інакше пробує інший випадковий х.

Означення 12.9: предикатом із секретом називається предикат В' із властивостями 1) – 3).

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

Загальний вид алгоритму імовірнісного шифрування

Нехай f – важкооборотна функція з секретом, М = т1т2тk – двійкове повідомлення (відкритий текст). Для отримання шифротексту для кожного і  k вибираємо уіDn таке, що В'(уі) =  В(f –1(уі)) = ті. Шифротекстом буде послідовність у1у2уk.

Надійність такої системи забезпечується завдяки умові 1), причому п виступає параметром надійності (тобто складність розшифрування збільшується із зростанням п). Відкритим ключем такої криптосистеми є дані, потрібні для специфікації алгоритму з пункту 3). Таємний ключ складається із параметрів для обчислення предикату В' (фактично, це і є "секрет"), яке здійснюється при розшифруванні. Існування цих параметрів забезпечується умовою 2).

Криптосистема Блюма

Ще одним прикладом системи імовірнісного шифрування є так звана криптосистема Блюма.

Нехай М = т1т2тk – двійкове повідомлення.

Виберемо деякі числа p і q, що є простими Блюма, та обчислимо т pq. Знайдемо будь-який псевдоквадрат уZт*, тобто такий елемент, що , але у – квадратичний нелишок за модулем т:

Обчислимо елементи уі, , наступним чином:

- якщо ті = 1, обираємо довільне хZт* і замість ті записуємо уі = ух2modm – це "псевдоквадрат";

- якщо ті = 0, записуємо уі = х2 modm– це квадратичний лишок.

Шифротекстом буде послідовність у1у2уk.

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

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

Як і для алгоритму імовірнісного шифрування, побудова класичних асиметричних систем базується на існуванні важкооборотних функцій, а саме функцій (1)-(4) з прикладу 12.4.

Класичні асиметричні алгоритми за призначенням можна поділити на наступні основні типи:

алгоритми обміну ключами;

алгоритми шифрування;

алгоритми цифрового підпису;

алгоритми доведення без розголошення.

Далі ми розглянемо приклади алгоритмів кожного типу.

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

Формування параметрів протоколу

Один з абонентів (за домовленістю) вибирає випадкове просте число p і обчислює g – будь-який утворюючий елемент групи .

Елементи p, g є відкритими параметрами протоколу.

Встановлення спільного ключа

Абонент А обирає випадкове число , обчислює і надсилає значення абоненту В.

Абонент В обирає випадкове число , обчислює і надсилає значення абоненту А.

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

, (12.1)

а абонент В, відповідно, за формулою

. (12.2)

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

Система шифрування RS (Райверст, Шамір, Аделман)

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

Формування ключів

Абонент А випадковим чином обирає два різних простих числа p і q, та обчислює п = pq і (п). Далі обирає випадкове число е, менше за (п) та взаємно просте з (п), і обчислює d = е–1 mod (п).

Відкритий ключ: (е, п).

Таємний ключ: d.

Зауваження: до чисел p і q, окрім довжини їх десяткового запису (порядку 150-200 розрядів), існує ряд інших вимог, як-то: це прості Блюма, – прості, різниця між ними більша за деяку граничну величину, тощо. Також існують певні вимоги до чисел е і d, на яких ми зараз не будемо зупинятись для спрощення викладення.

Шифрування

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

С = М е mod п. (12.3)

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

М = С d mod п. (12.4)

Система шифрування Ель-Гамаля

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

Формування ключів

Абонент А випадковим чином обирає просте число p і обчислює g – деякий утворюючий елемент групи . Потім випадково вибирає деяке 1< а – 1 і обчислює h = gа mod p.

Відкритий ключ: (p, g, h).

Таємний ключ: а.

Шифрування

Вважаємо, що відкритий текст М відповідає деякому десятковому числу, меншому за p. В іншому випадку текст розбивається на блоки відповідної довжини. Для шифрування абонент В обирає випадкове число 1< – 1, обчислює gmod p та М h mod p. Шифрованим текстом є пара

С = (u, v). (12.5)

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

М = v uа mod p. (12. 6)

12.3.3. Системи цифрового підпису. Призначення систем цифрового підпису полягає у підтвердженні авторства створеного текстового документу.

Система цифрового підпису RS

Формування ключів

Аналогічно до формування ключів у системі шифрування RS.

Відкритий ключ (ключ перевірки) цифрового підпису: (е, п).

Таємний ключ підпису: d.

Формування і перевірка підпису

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

S = М d mod п (12.7)

і надсилає абоненту В пару (М, S).

Для перевірки цифрового підпису абонент В перевіряє виконання рівності

М = S е mod п. (12.8)

Якщо рівність виконується, підпис вважається справжнім, у противному випадку – підробним.

Система цифрового підпису Ель-Гамаля

Формування ключів

Аналогічно до формування ключів у системі шифрування Ель-Гамаля.

Відкритий ключ (ключ перевірки) цифрового підпису: (p, g, h).

Таємний ключ підпису: а.

Формування і перевірка підпису

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

; ; .

Цифровим підписом повідомлення М є пара

. (12.9)

Абонент А надсилає абоненту В підписане повідомлення (М, S).

Для перевірки цифрового підпису абонент В перевіряє виконання рівності

. (12.10)

Якщо рівність виконується, підпис вважається справжнім, у противному випадку – підробним.

Система цифрового підпису Шнорра

Формування ключів

Абонент А випадковим чином обирає просте число p, таке, що – 1 має великий простий дільник q. Також обирає число h  1, таке, що . Потім вибирає випадкове число а – 1 і обчислює = h–а mod p.

Відкритий ключ (ключ перевірки) цифрового підпису: (p, g, h, v).

Таємний ключ підпису: а.

Формування і перевірка підпису

Для формування підпису обов’язково використовується деяке вкорочуюче відображення (геш-функція) f з областю значень від 1 до – 1. Для побудови цифрового підпису абонент А обирає випадкове число r і обчислює наступні величини:

; ; .

Цифровим підписом повідомлення М є пара

. (12.11)

Абонент А надсилає абоненту В підписане повідомлення (М, S).

Для перевірки цифрового підпису абонент В обчислює величину та перевіряє виконання рівності

. (12.12)

Якщо рівність виконується, підпис вважається справжнім, у противному випадку – підробним.

Система цифрового підпису DSА

(Digital Signature Algorithm – використовувався у стандарті під назвою DSS, запропонованому NIST у 1991 році)

Формування ключів

Абонент А випадковим чином обирає просте число p, таке, що – 1 має великий простий дільник q. Також обирає число , таке, що в . Потім вибирає випадкове число а – 1 і обчислює = hа mod p.

Відкритий ключ (ключ перевірки) цифрового підпису: (p, g, h, b).

Таємний ключ підпису: а.

Формування і перевірка підпису

Для формування підпису в якості вкорочуючого відображення f використовується геш-функція SHA з областю значень {0, 1}160. Для побудови цифрового підпису абонент А обирає випадкове число і обчислює наступні величини:

; ; . (12.13)

Цифровим підписом повідомлення М є пара

. (12.14)

Абонент А надсилає абоненту В підписане повідомлення (М, S).

Для перевірки цифрового підпису абонент В обчислює величини

, , ,

та перевіряє виконання рівності

. (12.15)

Якщо рівність виконується, підпис вважається справжнім, у противному випадку – підробним.

12.3.4. Протокол доведення без розголошення. У ході протоколу доведення без розголошення Демонстратор (Д) має переконати Перевіряючого (П) у тому, що він знає деяку конфіденційну інформацію, але при цьому не надати Перевіряючому ніяких знань, що можуть бути застосовані ним для отримання цієї інформації. Протоколи повинні мати наступні властивості: повноти (чесний Демонстратор переконує Перевіряючого з імовірністю 1); обґрунтованості (для нечесного Демонстратора імовірність переконати Перевіряючого близька до 0) та відсутності розголошення.

Доведення квадратичності

Загальні параметри: число п pq, де p і q – два різних простих числа, та число .

Мета: довести, що , та що Д знає таке y, y2 х mod n.

Доведення: Д вибирає випадковий елемент , обчислює і надсилає П значення и.

П обирає і надсилає Д випадковий біт .

Д надсилає П число

Перевірка: П перевіряє виконання рівності .

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

Доведення неквадратичності

Загальні параметри: число п pq, де p і q – два різних простих числа, та число .

Мета: довести, що .

Доведення: П вибирає випадковий елемент і випадковий біт , обчислює і надсилає П значення .

Д визначає, чи є квадратичним лишком і надсилає П випадковий біт .

Перевірка: П перевіряє виконання рівності .

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

Доведення знання дискретного логарифму

Загальні параметри: просте число p, елемент g – деякий утворюючий елемент групи , h – деякий елемент групи .

Мета: довести, що Д знає таке а < p – 1, що h = gа mod p.

Доведення: П вибирає випадковий елемент х – 1, обчислює і надсилає П значення .

Д обчислює і надсилає П значення и.

Перевірка: П перевіряє виконання рівності . Якщо рівність виконується, П вважає доведення переконливим.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]