Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс Канафина.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
97.61 Кб
Скачать

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

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

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

i

4

5

6

Сообщение

20

22

24

j

0

1

2

p

29

31

37

Решение:

Перейдем к описанию системы. Пусть есть два абонента Аи В, соединенные линией связи. А хочет передать сообщение 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 = 20. А выбирает р = 29,

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

сА = 5 , dA = 17.

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

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

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

Шаг 1. x1 = 205mod 29 =24.

Шаг 2. х2 = 243 mod 29 = 20.

ШагЗ. x3= 2017 mod 29 = 25.

Шаг 4. х4 = 2519 mod 29 = 20.

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

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

СBdB mod (р - 1) = 1.

СB = 7 , dB = 13.

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

Сcdc mod (p - 1) = 1

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

Шаг 1. x1 = 227mod 31 =21.

Шаг 2. х2 = 2111 mod 31 = 12.

ШагЗ. x3= 1213 mod 31 =17.

Шаг 4. х4 = 1711 mod 31 =22.

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

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

СRdR mod (р - 1) = 1.

СR = 5 , dR = 29.

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

СAdA mod (p - 1) = 1

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

Шаг 1. x1 = 245mod 37 =2.

Шаг 2. х2 = 27 mod 37 = 17

ШагЗ. x3= 1729 mod 37 = 5.

Шаг 4. х4 = 531 mod 37 =24.

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