
14.5 Протокол порівняння двох величин без їх розголошення власниками
Нехай
секретні невід’ємні цілі числа, що
належать учасникам
і
відповідно. Треба з’ясувати,
яке число більше, але не розкривати
значень
.
Параметри:
-
- асиметрична криптосистема з множиною
ключів відкритих ключів
,
алгоритмом зашифрування
і алгоритмом розшифрування
;
-
- відкритий ключ абонента
;
-
- натуральне число
;
-
- велике секретне натуральне число
;
-
- розмір числа
(кількість розрядів при запису у двійковій
системі счислення);
- просте
число
,
що підбирається у ході протоколу;
-
.
Таблиця 14.5 Протокол порівняння двох величин без їх розголошення
1 |
|
|
|
Відправник вибірає
|
|
|
|
|
Отримувач
підготовує дані виду
Послідовність
|
2. |
|
|
|
|
4 |
|
|
|
Відправник надає результат:
|
Отримувач,
виходячи з
та
має
підготувати послідовність
,
в який був би якимось чином відмічений
елемент з індексом
.
Щоб
пояснити ідею, розглянемо спочатку
елементарний приклад: послідовність,
що у початку має
п’ятірок,
а решта елементів - сімки.
Можна
визначити, чи елемент з номером
є порівняний з 0 за модулем
і, якщо так, зробити висновок, що
,
інакше,
.
У нашому
випадку потрібно ще приховати
від учасників протоколу та сторонніх,
тому алгоритм є більш складним.
Його
суть полягає в тому, що реальна
послідовність
містить замість
секретний випадковий елемент, залежний
від
,
а інші елементи залежать від
у складний спосіб через криптографічне
перетворення.
Абонент
будує єлементи послідовності
,
через відповідні елементи допоміжної
послідовності
.
Під час побудови необхідно вибрати
просте число
та перевірити деяку умову.
Відповідність
між елементами послідовностей
встановлюється абонентом
наступним чином:
Конкретно,
спочатку
обчислює
,
,
а саме:
,
,
.
Очевидно,
що
,
а всі
різні, оскільки перетворення
взаємно однозначне. Припустимо,
передає
послідовність
.
Тоді
може обчислювати
,
та визначати
.
Якщо
було змінено на
,
то значення
не буде співпадати з істинним. Тому
може визначити
.
Це означає, що
треба перетворювати.
і робить висновок, що
,
при
,
або що
,
якщо
.
Для
цього можна використати коректне
- специфичне просте число,
,
таке, що виконується умова коректності
виду
.
Виберемо
випадково. Позначимо
.
Зведення за модулем
приховує значення
.
Учасник
покладає
для
і
для
.
Далі
він перевіряє, чи
коректне, якщо ні, вибираемо нове
.
В
результаті, послідовність
,
що передається від
до
має вид:
.
Оскільки
,
то
при
і
при
,
тобто знання
та
дозволяє знайти відповідь, а ці дані
відомі абоненту
.
Оскільки
,
,
всі різні, то при
ймовірність того, що серед
є співпадіння не є високою.
Тому
можна вважати, що всі
різні, а це означає, що можливі співпадіння
серед
з’являються після додавання одиниць
до єлементів
з індексами більшими
і мають вид
.
Це
означає, що
,
тобто абонент
може отримати додаткову інформацію про
,
що заборонено умовами задачи. З цих
міркуварь, для блокування подібних
випадків достатньо умови коректності
.