Теоретические сведения
Широкое распространение интеллектуальных карт (смарт-карт) для разнообразных коммерческих, гражданских и военных при- менений (кредитные карты, карты социального страхования, карты доступа в охраняемое помещение, компьютерные пароли и ключи, и т. п.) потребовало обеспечения безопасной иденти- фикации таких карт и их владельцев. Во многих приложениях главная проблема заключается в том, чтобы при предъявлении интеллектуальной карты оперативно обнаружить обман и отка- зать обманщику в допуске, ответе или обслуживании.
Для безопасного использования интеллектуальных карт раз- работаны протоколы идентификации с нулевой передачей зна- ний. Секретный ключ владельца карты становится неотъемле- мым признаком его личности. Доказательство знания этого сек- ретного ключа с нулевой передачей этого знания служит доказа- тельством подлинности личности владельца карты.
Схему идентификации с нулевой передачей знаний предло- жили в 1986 г. У. Фейге, А. Фиат и А. Шамир. Она является наиболее известным доказательством идентичности с нулевой передачей конфиденциальной информации.
Прежде всего в схеме идентификации с нулевой передачей знаний выбирают случайное значение модуля
n, который явля- ется произведением двух больших простых чисел. Модуль
n должен иметь длину 512...1024 бит. Это значение
n может быть представлено группе пользователей, которым придется доказы- вать свою подлинность. В процессе идентификации участвуют две стороны:
сторона А, доказывающая свою подлинность;
сторона В, проверяющая представляемое стороной А до- казательство.
Для того чтобы сгенерировать открытый и секретный ключи для стороны
А, доверенный арбитр (Центр) выбирает некоторое число
V, которое является квадратичным, вычетом по модулю
n. Иначе говоря, выбирается такое число
V, что сравнение
x2 =
= V(mod
n) имеет решение, и существует целое число
V–1mod
n.
Выбранное значение
V является открытым ключом для
А.
Затем вычисляют наименьшее значение
S, для которого
S (
V 1) (mod
n).
Это значение
S является секретным ключом для
А.
Теперь можно приступить к выполнению протокола иденти- фикации.
Сторона А выбирает некоторое случайное число r, r < n.
Затем она вычисляет
x = r2 mod
n и отправляет
х стороне
В.
Сторона В посылает А случайный бит b.
Если b = 0, тогда А отправляет r стороне В. Если b = 1, то
А отправляет стороне
В:
y = rS mod
n
Если b = 0, сторона В проверяет, что x = r2 mod n чтобы убедиться, что А знает (x). Если b = 1, сторона В проверяет,
что
x =
y2 · V mod
n, чтобы быть уверенной, что
А знает
Эти шаги образуют один цикл протокола, называемый
ак- кредитацией. Стороны
А и
В повторяют этот цикл
t раз при раз- ных случайных значениях
r и
b до тех пор, пока
В не убедится, что
А знает значение
S.
Если сторона
А не знает значения
S, она может выбрать та- кое значение
r, которое позволит ей обмануть сторону
В, если
В отправит ей
b = 0, либо
А может выбрать такое
r, которое позво- лит обмануть
В, если
В отправит ей
b = 1. Но этого невозможно сделать в обоих случаях. Вероятность того, что
А обманет
В в одном цикле, составляет 1/2. Вероятность обмануть
В в
t циклах равна (1/2)
t.
Для того чтобы этот протокол работал, сторона
А никогда не должна повторно использовать значение
r. Если
А поступила бы таким образом, а сторона
В отправила бы стороне
А на шаге 2 другой случайный бит
b, то
В имела бы оба ответа
А. После это- го
В может вычислить значение
S, и для
А все закончено.
Достарыңызбен бөлісу: