Отчетность по лабораторной работе. Распечатать код программы с подробными комментариями кода и результатами выполнения
Распечатать код программы с подробными комментариями кода и результатами выполнения программы.
ЛАБОРАТОРНАЯ работа № 9
Параллельная схема протокола интенсификации с нулевой передачей данных
Цель работы: формирование умений проверки подлинности удалённых пользователей с помощью параллельной схемы протокола идентификации с нулевой передачей данных
Теоретические сведения
Параллельная схема идентификации позволяет увеличить число аккредитаций, выполняемых за один цикл, и тем самым уменьшить длительность процесса идентификации.
Сначала генерируется число n как произведение двух больших чисел. Для того, чтобы сгенерировать открытый и секретный ключи для стороны А, сначала выбирают К различных чисел V1, V2, ...,VK, где каждое Vi является квадратичным вычетом по модулю n. Иначе говоря, выбирают значение Vi таким, что сравнение x2 = Vi mod n имеет решение и существует Vi-1 mod п. Полученная строка V1, V2, ..., VK является открытым ключом.
Затем вычисляют такие наименьшие значения Si, что
Si=sqrt(Vi-1)(mod n).
Эта строка S1, S2,.... SK является секретным ключом стороны А.
Протокол процесса идентификации имеет следующий вид:
1. Сторона А выбирает некоторое случайное число r, r < n. Затем она вычисляет х= r2 mod n и посылает х стороне В.
2. Сторона В отправляет стороне А некоторую случайную двоичную строку из. К бит: b1, b2,..., bK.
3. Сторона А вычисляет
Перемножаются только те значения Si для которых b1 = 1. Например, если b1 = 1, то сомножитель S, входит в произведение, если же b1 = 0, то S1 не входит в произведение, и т.д. Вычисленное значение у отправляется стороне В.
4. Сторона В проверяет. Что
Фактически сторона В перемножает только те значения Vi для которых bi = 1. Стороны А и В повторяют этот протокол t раз, пока В не убедится, что А знает Sl, S2,..., SK
Вероятность того, что А может обмануть В, равна (1/2)Kt. Авроры рекомендуют в качестве контрольного значения брать вероятность обмана В равной (1/2)20 при К = 5 и t=4.
Содержание заданий
Разработайте программу, имитирующую функционирование параллельной схемы идентификации с нулевой передачей данных.
Значения необходимых параметров должны выбираться случайным образом.
Выходная информация должна быть следующей:
Значение n:
Открытые ключи:
Секретные ключи:
Процесс идентификации
Сторона А:
Сторона В:
Сторона А:
Сторона В:
Контрольные вопросы
1. Что такое идентификация пользователей и для чего она нужна?
2. В чем отличие протокола идентификации с нулевой передачей знания и параллельной схемы протокола идентификации с нулевой передачей знания?
3. Какая вероятность того что одному из пользователей удастся обмануть другого?
Отчетность по лабораторной работе
Распечатать код программы с подробными комментариями кода и результатами выполнения программы.
ЛАБОРАТОРНАЯ работа № 10
Реализация элементов ЭЦП RSA
Цель работы: формирование умений подписи электронных документов электронной цифровой подписью с помощью алгоритма RSA.
Теоретические сведения
Электронная цифровая подпись (ЭЦП) — реквизит электронного документа, предназначенный для удостоверения источника данных и защиты данного электронного документа от подделки.
Общая схема
Схема электронной подписи обычно включает в себя:
ü алгоритм генерации ключевых пар пользователя;
ü функцию вычисления подписи;
ü функцию проверки подписи.
Функция вычисления подписи на основе документа и секретного ключа пользователя вычисляет собственно подпись. В зависимости от алгоритма функция вычисления подписи может быть детерминированной или вероятностной. Детерминированные функции всегда вычисляют одинаковую подпись по одинаковым входным данным. Вероятностные функции вносят в подпись элемент случайности, что усиливает криптостойкость алгоритмов ЭЦП. Однако, для вероятностных схем необходим надёжный источник случайности (либо аппаратный генератор шума, либо криптографически надёжный генератор псевдослучайных бит), что усложняет реализацию.
В настоящее время детерминированые схемы практически не используются.
Функция проверки подписи проверяет, соответствует ли данная подпись данному документу и открытому ключу пользователя. Открытый ключ пользователя доступен всем, так что любой может проверить подпись под данным документом.
Поскольку подписываемые документы — переменной (и достаточно большой) длины, в схемах ЭЦП зачастую подпись ставится не на сам документ, а на его хэш. Для вычисления хэша используются криптографические хэш-функции, что гарантирует выявление изменений документа при проверке подписи. Хэш-функции не являются частью алгоритма ЭЦП, поэтому в схеме может быть использована любая надёжная хэш-функция.
Защищённость
Цифровая подпись обеспечивает:
ü Удостоверение источника документа. В зависимости от деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые изменения», «метка времени» и т. д.
ü Защиту от изменений документа. При любом случайном или преднамеренном изменении документа (или подписи) изменится хэш, следовательно, подпись станет недействительной.
ü Невозможность отказа от авторства. Так как создать корректную подпись можно лишь, зная закрытый ключ, а он известен только владельцу, то владелец не может отказаться от своей подписи под документом.
Возможны следующие угрозы цифровой подписи:
ü Злоумышленник может попытаться подделать подпись для выбранного им документа.
ü Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила.
ü Злоумышленник может попытаться подделать подпись для какого-нибудь документа.
При использовании надёжной хэш-функции, вычислительно сложно создать поддельный документ с таким же хэшем, как у подлинного. Однако, эти угрозы могут реализоваться из-за слабостей конкретных алгоритмов хэширования, подписи, или ошибок в их реализациях.
Тем не менее, возможны ещё такие угрозы системам цифровой подписи:
ü Злоумышленник, укравший закрытый ключ, может подписать любой документ от имени владельца ключа.
ü Злоумышленник может обманом заставить владельца подписать какой-либо документ, например используя протокол слепой подписи.
ü Злоумышленник может подменить открытый ключ владельца (см. управление ключами) на свой собственный, выдавая себя за него.
Реализацию алгоритма смотрите в лабораторной работе №5, разница лишь в том что открытый и секретный ключи меняются местам.
Содержание заданий
Реализовать программ которая будет подписывать вордовский документ, посмотреть как будет изменятся подпись при незначительных и больших изменениях в исходном тексте.
Контрольные вопросы
1. Что такое хеш-функция?
2. Для чего применяется хеш-функция?
3. Особенности применения ЭЦП?