Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия ЗАЧЁТКА 58.doc
Скачиваний:
63
Добавлен:
01.05.2015
Размер:
300.03 Кб
Скачать

Задание №2 Задача 1. Система с открытым ключом Диффи-Хелмана

Сгенерировать секретные ключи для пяти абонентов по методу Диффи-Хеллмана (DH). Для этого взять значение секретного ключа x из таблицы 1. Соответствующие значения открытого ключа вычислить и результаты внести в таблицу. Вариант задания определяется по номеру i (предпоследняя цифра) и j (последняя цифра зачетной книжки)– требуемая для реализации этого алгоритма число x . Число j – начальный номер для второго абонента при выборе числа x. Для выбора x для связи с пятью абонентами необходимо по циклической процедуре выбрать x по последней цифре зачетки.

Значения согласно варианту:

I

j

29

39

Xa=39

Xb=41

Xc=7

Xd=11

Xe=13

Число р выбирается таким, чтобы выполнялось равенство

р=2q+1 (где q- также простое число)

и были справедливы неравенства

1 < g < р - 1    и    gq mod р 1.

Так как g=29, пусть q=1783, тогда p=3567.

Проверим выполнение условий данных в методических указаниях:

1<g<p-1 и gqmodp≠1

1<29<3566 и 291783 mod 3567=1769≠1

Решение:

Вычислим открытые числа Y для пяти абонентов по следующей формуле:

Ya = gXa mod р =2939mod 3567 = 1247

Yb = gXb mod р =2941mod 3567 = 29

Yc = gXc mod р = 297mod 3567 = 3422

Yd = gXd mod р= 2911mod 3567 = 2639

Ye = gXe mod р = 2913mod 3567 = 725

Таблица1.3 Ключи пользователей в системе Диффи-Хеллмана

Абонент

Секретный ключ

Открытый ключ

A

39

1247

B

41

29

C

7

3422

D

11

2639

E

13

725

Приведем пример работы алгоритма Диффи-Хеллмана. Покажем как абонент A и B смогут вычислить секретные ключи, благодаря открытым числам Ya и Yb. Вычислим следующие величины:

ZAB = (YB)XAmodp = (29)39 mod 3567 = 1247

ZBA = (YA)XBmodp = (1247)41 mod 3567 =1247

Z = Zab=Zва

Таким образом, любая пара абонентов может вычислить свой секретный ключ, который в нашем примере является Z.

Задача 2. Шифрование по алгоритму Шамира

Зашифровать сообщение по алгоритму Шамира для трех абонентов, взяв значение сообщения m и значение p из таблицы 2. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j – требуемые для реализации этого алгоритма число р. Выбор данных для других абонентов произвести циклически согласно процедуре (i + 1) и g .

Таблица 2 Исходные данные для выбора сообщений (m) и p=53

I

5

6

7

Сообщение

22

24

26

J

8

9

0

p

53

57

29

Решение:

Перейдем к описанию системы. Пусть есть два абонента А и В, соединенные линией связи. А хочет передать сообщение m абоненту Б так, чтобы никто не узнал его содержание. А выбирает случай­ное большое простое число р и открыто передает его В. Затем А выбирает два числа сА и dA , такие, что

сАdA mod (р - 1) = 1. (2.1)

Эти числа А держит в секрете и передавать не будет. В тоже вы­бирает два числа св dв, такие, что

св<dв mod (p - 1) = 1, (2.2)

и держит их в секрете.

После этого А передает свое сообщение m, используя трехсту­пенчатый протокол. Если m < р (m рассматривается как число), то сообщение т передается сразу , если же т р, то сообще­ние представляется в виде m1, m2,..., mt, где все mi < р, и затем передаются последовательно m1, m2,..., mt. При этом для кодиро­вания каждого mi лучше выбирать случайно новые пары (cA,dA) и (cB,dB) — в противном случае надежность системы понижается. В настоящее время такой шифр, как правило, используется для пере­дачи чисел, например, секретных ключей, значения которых меньше р. Таким образом, мы будем рассматривать только случай m < р.

Описание протокола.

Шаг 1. А вычисляет число: Х1 =mСА modp (2.3), где m — исходное сообщение, и пересылает х1 к В.

Шаг 2. В, получив х1, вычисляет число: X2 = х1CB mod p (2.4),

и передает х2 к А.

Шаг 3. А вычисляет число: X3 = х2dA mod p (2.5),

и передает его В.

Шаг 4. В, получив х3, вычисляет число X4 = x3dB mod p (2.6).

Утверждение (свойства протокола Шамира).

1) х4 = m, т.е. в результате реализации протокола от А к В действительно передается исходное сообщение;

2) злоумышленник не может, узнать, какое сообщение было пе­редано.

Доказательство. Вначале заметим, что любое целое число е 0 может быть представлено в виде е = k(р-1)+r, где r = е mod (p-1). Поэтому на основании теоремы Ферма: (2.7).

Справедливость первого пункта утверждения вытекает из следую­щей цепочки равенств:

(предпоследнее равенство следует из (2.7), а последнее выполняется в силу (2.1) и (2.2)).

Доказательство второго пункта утверждения основано на пред­положении, что для злоумышленника, пытающегося определить m, не существует стратегии более эффективной, чем следующая. Вна­чале он вычисляет CB из (2.4), затем находит dB и, наконец, вы­числяет Х4 = m по (2.6). Но для осуществления этой стратегии злоумышленник должен решить задачу дискретного логарифмиро­вания (2.4), что практически невозможно при больших р.

Опишем метод нахождения пар cA,dA и сB,dB, удовлетворя­ющих (2.1) и (2.2). Достаточно описать только действия для або­нента А. так как действия для В совершенно аналогичны. Число сA выбираем случайно так, чтобы оно было взаимно простым с р-1 (по­иск целесообразно вести среди нечетных чисел, так как р - 1 четно), Затем вычисляем dA с помощью обобщенного алгоритма Евклида.

Теорема Пусть a и b – два целых положительных числа. Тогда существуют целые (не обязательно положительные) числа x и y, такие, что

ax + by = gcd(a, b). (1)

Обобщенный алгоритм Евклида служит для отыскания gcd(a,b) и x,y, удовлетворяющих (1). Введем три строки U=(u1, u2, u3), V=(v1, v2, v3) и Т=(t1, t2, t3). Тогда алгоритм записывается следующим образом.

Решение:

Пусть А хочет передать В сообщение m = 22. А выбирает р = 53,

сАdA mod (р - 1) = 1.

сА = 101 , dA = 173.

Аналогично, В выбирает параметры

свdв mod (p - 1) = 1

cB = 127 и dB = 199 . Переходим к протоколу Шамира.

Шаг 1. x1 = 22101mod 53 =21.

Шаг 2. х2 = 21127 mod 53 = 19.

ШагЗ. x3= 19173 mod 53 = 32.

Шаг 4. х4 = 32199 mod 53 = 22.

Таким образом, В получил передаваемое сообщение m = 22.

Пусть B хочет передать C сообщение m = 24. B выбирает р = 57,

СBdB mod (р - 1) = 1.

СB =13, dB = 13.

Аналогично. C выбирает параметры

Сcdc mod (p - 1) = 1

Cc = 101 и dc = 173. Переходим к протоколу Шамира.

Шаг 1. x1 = 2413mod 57 = 36.

Шаг 2. х2 = 36101 mod 57 = 42.

ШагЗ. x3= 4213 mod 57 = 9.

Шаг 4. х4 = 9173 mod 57 =24.

Таким образом, C получил передаваемое сообщение m = 24.

  1. Пусть С хочет передать A сообщение m = 26. C выбирает р = 29,

СRdR mod (р - 1) = 1.

СR = 3, dR = 19.

Аналогично. В выбирает параметры

СAdA mod (p - 1) = 1

CA = 3 и dA = 47. Переходим к протоколу Шамира.

Шаг 1. x1 = 263mod29 = 2.

Шаг 2. х2 = 23 mod 29 = 8

ШагЗ. x3= 819 mod 29 = 2.

Шаг 4. х4 = 247 mod 29 = 26.

Таким образом, A получил передаваемое сообщение m = 26.