У главі 10 HAC (10.4.2) ми бачимо відомий протокол ідентифікації Feige-Fiat-Shamir, заснований на доказі нульових знань, використовуючи (імовірну) складність вилучення квадратних корінців за модулем композиту, який важко врахувати. Я наведу схему власними словами (і, сподіваюся, правильно).
Почнемо з більш простої схеми: нехай є цілим числом Блума (тому n = p q, і кожен з p і q - 3 mod 4) досить великого розміру, що факторинг не може бути дозволений. Оскільки n - ціле число Блума, половина елементів Z ∗ n мають символ Якобі +1, а інша половина -1. Для елементів +1 половина має квадратні корені, а кожен елемент, що має квадратний корінь, має чотири з них, точно один - сам квадрат.
Тепер Пеггі вибирає випадковий елемент із Z ∗ n і встановлює v = s 2 . Потім вона посилає V Віктору. Далі це протокол: Віктор хоче перевірити , що Пеггі знає квадратний корінь з V і Пеггі хочуть довести йому , НЕ розголошуючи нічого про з поза то , що вона знає , що такі сек .
- Пеггі вибирає випадковий у Z ∗ n і посилає r 2 Віктору.
- Віктор однозначно надсилає або b = 1 назад до Пеггі.
- Пеггі відправляє до Віктора.
Віктор може переконатись, що Пеггі надіслала правильну відповідь, підрахувавши отримане та порівнявши правильний результат. Звичайно, ми повторюємо цю взаємодію, щоб зменшити ймовірність того, що Пеггі просто щасливий здогад. Цей протокол вважається ZK; доказ можна знайти в різних місцях (наприклад, конспекти лекцій Боаза Барака ).
- Пеггі вибирає випадковий r у Z ∗ n і посилає r 2
Я не можу знайти атаку, яка витягує що-небудь з Пеггі, якщо вона пропускає знаки.