- •Криптологія
- •§ 1. Абетка
- •§ 2. Класичні методи: від античності до нового часу
- •§ 3. Дві пропозиції XX століття
- •§ 1. Формалізм
- •§2. Арифметика
- •§ 3. Афінні шифри
- •§ 2. Прямолінійні програми
- •§ 3. Рандомізація
- •§ 1. Арифметика II
- •§ 2. Тестування простоти
- •§ 3. Факторизація
- •Факторизація
- •§ 4. Розпізнавання квадратичності і добування квадратних коренів
- •§ 5. Обчислення функції Ойлера
- •§ 6. Первісні корені за простим модулем
- •8. Підсумок
- •§1. Концепція
- •§ 4. Ймовірнісне криптування
- •§5. Система ЕльГамала
- •§1. Важкооборотні функції
- •§ 2. Генератори псевдовипадкових бітів
- •§ 1. Обмін ключем
- •§ 2. Цифровий підпис
- •§ 3. Підкидання монети по телефону
- •4. Гра в карти заочно
- •§ 5. Розподіл таємниці
- •§ 6. Доведення без розголошення
- •§ 7. Ідентифікація
§ 6. Доведення без розголошення
6.1.
Доведення квадратичності. В
якості першого прикладу ми розглянемо
доведення факту, що деяке число
є
квадратичним лишком за модулем п.
Як зазначалось в § IV.4,
задача
розпізнавання квадратичних
лишків є важкою, якщо тільки не є відомим
розклад модуля
n
на
прості множники. Тому Аліса за парою
(х,п)
неспроможна
(за поліноміальний від log
n
час)
визначити, чи справді ж є квадратичним
лишком.
Припустимо,
що на відміну від Аліси, Боб знає якийсь
квадратний корінь
з х
за модулем п.
Позначимо
цей корінь через у:
.
Нас
не цікавить яким саме чином Боб добув
корінь з х.
Найправдоподібнішим
поясненням таких виняткових обчислювальних
здібностей може
бути те, що Боб або власноручно вибрав
n
і
знає його розклад на множники, або спершу
вибрав у, а вже потім обчислив х
= у2
mod
n.
Найпростіший спосіб, у який Боб може переконати Алісу. що х Qn, це просто показати їй у. А наступний протокол дозволяє переконати Алісу не лише без пред'явлення їй коренів, але й без надання їй жодної інформації, яку Аліса не змогла б здобути самотужки.
Вхід:
(х, п),
де ж
і
існує у
таке,
що
.
Боб вибирає випадковий елемент v в , підносить його до квадрату і результат u = v2 mod n посилає Алісі.
Аліса посилає Бобові випадковий біт b {0,1}.
Боб посилає Алісі число
Якщо
b
= 0, то Аліса перевіряє, чи справді
,
а
якщо ь
= 1, то перевіряє, чи справді
.
Якщо
результат перевірки
негативний, то Аліса припиняє діалог і
звинувачує Боба в
ошуканстві.
Все вищеописане повторюється m = [logn] разів, щоразу із незалежним вибором випадкових величин. Якщо результат перевірки у кожному циклі був успішним, то Бобові вдається переконати Алісу, що х Qn-Перелічимо три основні властивості цього протоколу.
1) Повнота. Якщо справді х Qn, а Боб справді знає квадратний корінь у і діє згідно з протоколом, то він переконує Алісу з імовірністю 1. Цю властивість легко перевірити, безпосередньо прослідкувавши за перебігом протоколу.
2) Обгрунтованість. Якщо ж х Qn, то як би винахідливо Боб не діяв, тобто які б хитрі повідомлення u і w не посилав Алісі, вона викриє його нещирість з імовірністю 1/2 в кожному із циклів, і з ймовірністю 1 – 2-m хоча б в одному з т циклів. Таким чином, Боб може переконати Алісу у справедливості хибного твердження з імовірністю щонайбільше 1/п, що є експоненційно малою величиною в порівнянні з довжиною входу.
Щоб довести цю властивість, розглянемо два випадки.
Випадок 1: Перше повідомлення Боба Алісі u не є квадратичним лишком за модулем п. Тоді Боба буде викрито при ь = 0, що трапиться з імовірністю 1/2.
Випадок 2: Повідомлення u є квадратичним лишком за модулем п. Тоді хu не є квадратичним лишком і Боба буде викрито при ь = 1, що теж трапиться з імовірністю 1/2.
3) Відсутність розголошення. Якщо справді х Qn, то Аліса не отримує від Боба ніякої інформації. Це твердження досить переконливе інтуїтивно. Справді, якщо Аліса вибирає біт ь = 0, то отримує випадковий квадратичний лишок u і корінь з нього w. Якщо ж ь = 1, то Алісі дістається квадратний корінь w з хu, причому хu також є випадковим квадратичним лишком за модулем п (див. пункт а вправи ПІ.3.8).
Для того, щоб формалізувати це спостереження, позначимо через VIEWx,n всю інформацію, яку сприймає Аліса упродовж одного циклу протоколу на вході (х,п), а саме, VIEWx,n = <u,ь,w>. Аліса спостерігає кожну конкретну трійку <u, ь, w> з певною ймовірністю, тобто VIEWx,n є випадковою величиною.
Для довільного ймовірнісного алгоритму М результат його роботи на вході (х, п) позначимо через М(х, п). Слід звернути увагу на те, що М(х, п) є випадковою величиною, значення якої залежить від випадкової послідовності алгоритму.
Абсолютно строго властивість відсутності розголошення можна сформулювати так: існує поліноміальний ймовірнісний алгоритм М такий, що при х Qn випадкові величини М(х, п) і VIEWx,n однаково розподілені. Таким чином, VIEWx,n нe містить для Аліси ніякої нової інформації в тому сенсі, що Аліса могла б отримати все абсолютно те ж саме, запустивши алгоритм М на вході (х, п).
Нам залишається описати алгоритм М, який симулює діалог Аліси і Боба на входах (х, п) при х Qn Спочатку слід вибрати випадковий елемент w і випадковий біт b (0,1). Якщо b = 0, то покласти u = w2mod n. Якщо ь = 1, то покласти u = w2x-1mod n. Трійку <u, b, w>. подати на вихід.
Насправді наведений протокол володіє властивістю відсутності розголошення у значно сильнішій формі. Зауважимо, що випадкова величина VIEWx,n залежить від дій Аліси. Ми виходили з того, що Аліса притримується протоколу. Але ж вона може хитрувати в надії вивідати у Боба чим більше інформації. Наприклад, Аліса може посилати Бобові біт ь, вибраний не рівноймовірно, а за якимось іншим розподілом. З врахуванням цієї можливості, властивість відсутності розголошення розглянутого протоколу можна сформулювати у підсиленому варіанті, Нехай Аліса вибирає своє повідомлення ь як результат роботи деякого поліноміального ймовірнісного алгоритму А на вході <х,п,u> (це вся інформація, доступна Алісі на момент вибору). Тоді існує поліноміальний ймовірнісний алгоритм МA такий, що при х Qn випадкові величини MA(х,п} і VIEWx,n однаково розподілені.
Протокол з такою властивістю відсутності розголошення називають досконалим доведенням без розголошення.
6.2. Доведення неквадратинності. Тепер розглянемо доведення без розголошення того факту, що х не є квадратичним лишком за модулем п. Зразу обмежимось випадком, коли , тобто х Jn, бо інакше доведення давалося б простим обчисленням символу Якобі (див. пункт 5 твердження IV.1.7). Отже Боб, який вміє розпізнавати квадратичність за модулем п (наприклад, знаючи розклад п на прості множники), хоче переконати Алісу, що х не є квадратичним лишком, тобто належить множині псевдоквадратів Qn.
Вхід: (х,п), де х Qn.
Аліса вибирає випадковий елемент v в і випадковий біт b {0,1}.
Далі Аліса обчислює
,
і посилає w Бобові.
Боб визначає, чи w є квадратичним лишком за модулем п і посилає Алісі у відповідь біт
• Аліса перевіряє, чи b = b'. Якщо це не так, Аліса припиняє спілкування з Бобом і оголошує йому недовіру.
Все повторюється m = [logn] разів, щоразу із незалежним вибором випадкових величин. Якщо результат перевірки у кожному циклі був успішним, то Бобові вдається переконати Алісу, що х Qn.
