РАЗРАБОТКА КОМПЛЕКСА ПРАКТИЧЕСКИХ ЗАДАНИЙ ДЛЯ КУРСА «КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ И СТАНДАРТЫ» НА ТЕМУ ПРОТОКОЛЫ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ С НУЛЕВЫМ РАЗГЛАШЕНИЕМ - Студенческий научный форум

VIII Международная студенческая научная конференция Студенческий научный форум - 2016

РАЗРАБОТКА КОМПЛЕКСА ПРАКТИЧЕСКИХ ЗАДАНИЙ ДЛЯ КУРСА «КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ И СТАНДАРТЫ» НА ТЕМУ ПРОТОКОЛЫ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ С НУЛЕВЫМ РАЗГЛАШЕНИЕМ

Лобова Е.А. 1, Ищукова Е.А. 1
1Южный Федеральный Университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Данная статья посвящена краткому обзору практической работы на тему «Протоколы идентификации и аутентификации с нулевым разглашением», входящей в состав нового готовящегося сборника практических заданий по курсу «Криптографические протоколы и стандарты». Понятие «нулевое разглашение» было впервые предложено в 1980-х специалистами MIT Шафи Голдвассером, Сильвио Микали и Чарльзом Ракофф. Нулевое разглашение заключается в том, что доказывающий (Prover) обменивается сообщениями с проверяющим (Verifier), чтобы доказать проверяющему истинность высказывания, проверяющий не получает в результате выполнения протокола никакой полезной для себя дополнительной информации, за исключением самого факта, что утверждение истинно (свойство нулевого разглашения). Примером использования этого протокола на практике может быть: клиент хочет войти на веб-сервер, используя пароль. Стандартный подход к проблеме ключает в себя хранение хэшированной версии пароля на сервере. Логин в такой системе рассматривается как вид «подтверждения», что хэш предоставленного пароля это выход хэширующей функции действующего пароля. И, что более важно, как 'подтверждение' того, что клиент действительно знает пароль. Клиент передаёт оригинальный пароль на сервер, который повторно вычислят хэш пароля и сравнивает его с сохранённым значением. Проблема в том, что сервер получает пароль в самом притягательном для хакеров виде «чистый текст». А пользователь может только надеется на то, что защита сервера не скомпрометирована. То, что предложили Голдвассер, Микали и Ракофф, стало надеждой на появление новых методов подтверждения. В случае полной реализации, доказательства с нулевым разглашением смогут дать подтверждение в описанной выше задаче. При этом не разгласив ни одного бита информации, которая соответствует тому, что «это утверждение верно» [1].

Цель лабораторной работы: научиться на практике применять протоколы идентификации а аутентификации с нулевым разглашением на основе использования схем Фейге – Фиата – Шамира, Гиллу – Кискате, Шнорра.

Задачи:

  1. Смоделировать процесс взаимодействия двух пользователей для их идентификации при использовании схемы Фейге – Фиата – Шамира с нулевым разглашением.

  2. Смоделировать процесс взаимодействия двух пользователей для подписи документа при использовании схемы Фиата – Шамира с нулевым разглашением. В качестве хэша использовать разбиение n битов и поблочный xor.

  3. Смоделировать процесс взаимодействия двух пользователей для их идентификации при использовании схемы Гиллу – Кискате.

  4. Смоделировать процесс взаимодействия двух пользователей для аутентификации одного из них при использовании схемы Шнорра.

Протокол Фейга — Фиата — Шамира — протокол идентификации с нулевым разглашением, обобщение более раннего протокола Фиата — Шамира, разработанный Уриэлем Фейге, Амосом Фиатом и Ади Шамиром в 1986 году. Безопасность протокола основана на сложности извлечения квадратного корня по модулю достаточно большого составного числа n, факторизация которого неизвестна. Алгоритм протокола: Доверенный центр публикует большое число n = pq, где p и q— простые числа, которые держатся в секрете. Также выбираются целые числа k и t- параметры безопасности. Генерируются открытый ключ - k случайных целых чисел 1 ,затем вычисляется закрытый ключ где = sqrt ()mod (n) и k случайных бит .Следующие действия выполняются t раз, пока B не убедится, что А знает s. В считает знание доказанным, если все t раундов прошли успешно: A выбирает случайное r, меньшее n. Затем А вычисляет x = mod (n) и посылает В. B посылает А случайный бит b, если b = 0, то А посылает В r, если b = 1, то А посылает В y = r*s mod (n). Если b = 0, B проверяет, что x = mod (n), если b = 1, В проверяет что x= mod (n) [2]. Превращение этой схемы идентификации в схему подписи - это, по сути, вопрос превращения B в хэш-функциию. Главным преимуществом схемы цифровой подписи Fiat-Shamir по сравнению с RSA является ее скорость: для Fiat-Shamir нужно всего лишь от 1 до 4 процентов модульных умножений, используемых в RSA. Выбирается число n = pq, где p и q — простые числа. Генерируются открытый ключ и закрытый ключ где = sqrt ()mod (n). А выбирает t случайных чисел r и вычисляет = mod (n). Алиса хэширует объединение сообщения и строки создавая битовый поток: H(т, , …, ). Она ис­пользует первые k*t битов этой строки в качестве значений , где i от1 до t, а j от 1 до k. Алиса вычисляет , …, где = г, *(*…* ) mod n. Алиса посылает Бобу т, все биты и все значения . У Боба уже есть открытый ключ Алисы: . Боб вычисляет , …, где = y, *(*…* ) mod n. Боб проверяет, что первые k*t битов H(т, , …, ). - это значения которые прислала ему Алиса [3].

Стойкость схемы цифровой подписи Клауса Шнорра(Schnorr)основывается на трудной задаче вычисления дискретных логарифмов. Для генерации пары ключей сначала выбираются два простых числа, p и q так, чтобы q было сомножителем p-1. Затем выбирается a, не равное 1, такое что = 1 ( mod p). Все эти числа могут быть свободно опубликованы и использоваться группой пользователей. Для генерации конкретной пары ключей выбирается случайное число, меньшее q. Оно служит закрытым ключом, s. Затем вычисляется открытый ключ v = (mod p). Для подписи сообщений используется хэш-функция H(M). Пользователь A выбирает случайное число r, меньшее q, и вычисляет x = (mod p). Для того, чтобы подписать сообщение M пользователю A необходимо выполнить следующие действия:

  1. объединить M и x и хэшировать результат: e = H(M,x),

  2. вычислить y = (r + se) ( mod q). Подписью являются значения e и y, их нужно выслать получателю B.

Для проверки подписи для сообщения M получатель B вычисляет x' = ay ve (mod p). Затем он проверяет, что хэш-значение для объединения M и x' равно e. e = H(M,x') Если это так, то он считает подпись верной [4].

Для освоения и закрепления материала разрабатывается комплекс практических заданий, предоставляющий собой компьютерные программы с интуитивно-понятным графическим интерфейсом на языке программирования Python. Выполнение будет заключаться в том, что с помощью программного модуля студент должен произвести работу криптографического протокола и проверить правильность вычислений.

Библиографический список

1.Доказательство с нулевым разглашением - Bits.media. URL: http://bits.media/zero-knowledge-proof/ 2. Протокол Фейга — Фиата — Шамира — Википедия. URL: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D0%A4%D0%B8%D0%B0%D1%82%D0%B0_%E2%80%94_%D0%A8%D0%B0%D0%BC%D0%B8%D1%80%D0%B0 3. Схема подписи Fiat-Shamir - Студопедия.Орг. URL: http://studopedia.org/4-65363.html 4. Схема цифровой подписи Клауса Шнорра(Schnorr). URL: http://kunegin.narod.ru/ref8/ecp/schnorr.htm
Просмотров работы: 803