Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ниссенбаум_Поляков_КПЛП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
623 Кб
Скачать
☆

Раздел 3. Покер по телефону. Задание к лабораторной работе №3: «Покер по телефону».

Разработать программу, осуществляющую протокол честной раздачи карт на основе шифра Шамира:

52 карты кодируются целыми числами. Пользователь выбирает n – количество игроков от 2 до 5, которым будут сдаваться карты по 10 карт на игрока. В результате работы программы должна появиться папка с n текстовыми файлами (с именами A.txt, B.txt и т.д.).

В файле A.txt должны быть записаны карты, сданные игроку A (в виде "Д пик", "В червей", "10 треф"), в файле B.txt – карты, сданные игроку B и т.д.

Использовать класс больших чисел, разработанный ранее. Простое число p, используемое в протоколе, должно быть доказуемо простым. Секретные ключи участников (Ci, Di) записывать в отдельный файл.

Данные для самопроверки к разделу 3.

Карты задаются числовыми значениями, начиная с 2 и заканчивая тузом, следующим образом:

  1. буби – 101-113;

  2. черви – 201-213;

  3. крести – 301-313;

  4. пики – 401-413.

Задаем параметры протокола, представленные в табл. 3.1.

Таблица 3.1

p

k

(C1, D1)

(C2, D2)

(C3, D3)

(C4, D4)

(C5, D5)

599

5

(177,473)

(457,475)

(387,17)

(381,361)

(185,139)

Если при задании Ci из таблицы 3.1, программа выдает значение Di, отличное от приведенного здесь, то следует проверить работу процедуры генерации ключей.

Каждый из пяти участников шифрует колоду своим затемняющим множителем, на каждом этапе проверить наличие в колоде следующих значений:

AB: 364, 6, 68, 518, 151;

BC: 313, 28, 486, 377, 17;

CD: 66, 111, 318, 483, 500;

DE: 216, 180, 32, 441, 564;

EA: 351, 579, 136, 390, 32.

На каждом этапе при наложении затемняющих множителей и в результате сдачи карт на руки участникам необходимо проверить, не дублируются ли карты. В прикупе должно остаться 2 различных карты.

Раздел 4. Слепая подпись, протоколы рукопожатия, скрытый канал. Задание к лабораторной работе №4: «Слепая подпись, протоколы рукопожатия, скрытый канал».

Варианты 1-4:

Разработать программу, состоящую из двух частей: часть Алисы (А) и часть Боба (В).

Перед взаимодействием абонентам A и B должны быть выданы общие секретные ключи К1 (фиксированного размера) и К2 (из Zp*).

Взаимодействие заключается в выполнении следующих шагов:

  1. А проходит аутентификацию перед В с использованием протокола рукопожатия (в качестве шифра использовать ГОСТ 28147-89) на ключе К1.

  2. если А - "свой", то В отправляет А подпись под сообщением х со встроенным в нее тайным сообщением y на ключе К2 (x и y задаются пользователем B). Если A - "чужой", то В прерывает выполнение протокола.

  3. A извлекает скрытое сообщение.

Скрытый канал использовать на основании подписи:

Вариант 1: Онга-Шнорра-Шамира.

Вариант 2: Эль-Гамаля.

Вариант 3: DSA.

Вариант 4: ГОСТ Р34.10-94.

Использовать класс больших чисел, разработанный ранее. Простые числа p и q, используемые в протоколе, должны быть доказуемо простыми.

Если в задании необходим порождающий элемент мультипликативной группы, то следует использовать ранее реализованную процедуру его нахождения.

Вариант 5:

Разработать программу, состоящую из 2-х частей : часть Алисы (А) и часть Боба (В).

Перед взаимодействием абонентам должен быть выдан общий секретный ключ К (фиксированного размера).

Взаимодействие заключается в выполнении следующих шагов:

  1. А проходит аутентификацию перед В с использованием протокола рукопожатия (в качестве шифра использовать ГОСТ 28147-89) на ключе К.

  2. если А - "свой", то В отправляет А разрешение на подпись "вслепую". Если "чужой", то В прерывает выполнение протокола.

  3. А и В осуществляют протокол подписания вслепую сообщения вида "№, Ф", где № - случайное 6-значное число, Ф - фамилия студента, выполнившего лабораторную работу.

А генерирует сообщения и ключи, В подписывает (подписание вслепую проводить с вероятностью обмана = 0.01).

Использовать слепую подпись Шаума.

Использовать класс больших чисел, разработанный ранее. Простые числа p и q, используемые в протоколе, должны быть доказуемо простыми.