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

Питання для самоконтролю

1. Що називають задачею дискретного логарифмування?

2. Яке число називається s-гладким?

3. Сформулюйте означення дискретного логарифму.

4. В чому полягає сутність алгоритму Сильвера – Поліга – Хеллмана?

Задачі до §11

1. Обчислити ind(11, 2, 13); ind(25, 2, 37); ind(6, 5, 97).

2. Нехай g1, g2 – утворюючі елементи . Довести: . Використовуючи дану рівність, показати, що задача дискретного логарифмування за всіма основами зводиться до задачі логарифмування за будь-якою однією основою.

3. Нехай gp, gq – утворюючі елементи та , відповідно. Чи вірно, що (gp, gq) – утворюючий елемент  ? (Зокрема, звідси б випливало, що група – циклічна.)

4. Нехай G1, G2 – циклічні групи, êG1ê = d1, êG2ê = d2, (d1d2) = 1. Довести, що група G1´G2 – циклічна. Чи вірно зворотне твердження, тобто що якщо G1´G2 – циклічна, то (d1d2) = 1?

§12. Важкооборотні функції, Ядро, Предикат. Застосування важкооборотних функцій у криптографії. Класичні асиметричні криптосистеми

12.1. Важкооборотні функції. Предикат, ядро важкооборотної функції

Нехай А – алфавіт, А* – множина слів даного алфавіту А, D А*, f: D D.

Без обмеження загальності надалі будемо вважати, що D = {0, 1}n для деякого п або є підмножиною {0, 1}n.

Означення 12.1: функція f називається односторонньою або важкооборотною, якщо:

- значення f(х) може бути ефективно обчислено;

- для більшості аргументів хD не існує ефективного (поліноміального) алгоритму для обчислення за образом у f(х) значення х′ такого, що f(х′) = у.

Зауваження 12.2: слова "для більшості" означають, що можна обрати декілька значень х та запам’ятати відповідність між образами та прообразами: f(х1) = у1, f(х2) = у2,..., f(хr) = yr. Зрозуміло, що в такому випадку для у1,..., yr прообрази легко обчислити.

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

Більш формально означення 12.1 можна переформулювати наступним чином.

Означення 12.3: функція f(х) називається важкооборотною, якщо:

1) f(х) обчислюється за поліноміальний час;

2) будь-який поліноміальний імовірнісний алгоритм з входом у f(х) для випадково вибраного х{0, 1}n знаходить якийсь з прообразів у з імовірністю, що для досить великих п не перевищує . (імовірність тут поширюється на випадковий вибір слова х{0, 1}n та на випадкову послідовність імовірнісного алгоритму).

Варто зауважити, що існують різні варіанти означення важкооборотної функції.

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

Приклади 12.4 (важкообортні функції).

(1) Функція множення: MULT(x, y) = xy.

MULT: {0, 1}n{0, 1}n{0, 1}2n (не існує поліноміального алгоритму розкладання на множники).

(2) RSA-функція: RSA(x, e, m) = <xmod mem>.

Функція визначена для параметрів m = pq, де p ≠ q – прості числа і (еφ(т)) = 1, хZm.

При фіксованих e, m це бієкція ZmZm, або перестановка множини Zm.

(3) Функція Рабіна (квадратична функція):

SQUARE(x, m) = <x2 mod m, m>.

Визначена для pq, де p ≠ q – прості Блюма, і хZm. Для фіксованого т це є бієкція на Qm.

(4) Експоненційна функція: EXP(x, g, p) = <gx mod p, g, p>.

Визначена для довільного простого р і утворюючого елемента g за модулем p, х . Для фіксованих g, p це бієкція на .

Функції RSA та Рабіна є претендентами у важкооборотні функції з секретом: знання p і q дає можливість ефективно знаходити прообрази функцій.

Окрім криптографічних застосувань, важкооборотні функції можуть використовуватись при зберіганні образу паролю користувача в комп’ютері.

Нехай f: DD – бієкція (наприклад, RSA, SQUARE, EXP) і може бути ефективно обчислена. Позначимо ВD→{0, 1} – "предикат", тобто ефективно обчислювана функція, значенням якої є деякий біт В(х).

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

Означення 12.5: якщо не існує ефективного алгоритму, який для майже всіх хD за заданим f(х) видає В(х), то предикат В називається ядром функції f.

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

Звернемо увагу на той факт, що з того, що f – важкооборотна, ще не випливає, що будь-який предикат є ядром (наприклад, предикат В(х)  1 не є ядром ні для якої функції; далі будуть розглянуті більш складні приклади).

Зауваження 12.6: якщо функція f має ядро, то вона важкооборотна.

Дещо формалізуємо введене поняття ядра.

Нехай Dnпослідовність множин, для якої .

Означення 12.7: поліноміально обчислюваний (за п) предикат ВDn→{0, 1} називається ядром функції fDnDn, якщо для довільної додатної константи с існує таке (достатньо велике) натуральне число N, що для всіх пN будь-який поліноміальний імовірнісний алгоритм на вході f(х), де х – випадковий елемент з Dn, видає значення В(х) з імовірністю, меншою за .

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

Еквівалентним є наступне формулювання:

.

Зауваження 12.8: з означення 12.7 випливає, що не існує кращого способу отримати В(х) за f(х), ніж просто обирати це значення випадково навмання.

Для наведених у прикладах важкооборотних функцій в якості ядра вибрано такі предикати:

RSA: ZmZm, при фіксованих е, т: В(х) = х mod 2 – предикат парності.

SQUARE: QmQm, при фіксованому т, В(х) = х mod 2 – предикат парності.

EXP:  , де g, p – фіксовані,

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