Скачиваний:
36
Добавлен:
25.06.2024
Размер:
380.79 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

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

(СПбГУТ)

Факультет Инфокоммуникационных сетей и систем

Кафедра Защищенных систем связи

Дисциплина Криптографические протоколы

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №1

ОСНОВЫ ТЕОРИИ ЧИСЕЛ

(тема отчета)

Направление/специальность подготовки

10.03.01 Информационная безопасность

(код и наименование направления/специальности)

Выполнил студент 3 курса:

Травкина Е.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Преподаватель:

д.т.н., проф. Яковлев В.А.

(Ф.И.О., № группы) (подпись)

Лабораторная работа 1. ОСНОВЫ ТЕОРИИ ЧИСЕЛ

Цель работы

Закрепить знания, полученные на лекциях дисциплин «Криптографические методы защиты информации», «Криптонрафические протоколы» и приобрести навыки вычислений по блоку занятий «Математический базис криптосистем с открытым ключем».

Порядок

Установкить пакета программ “Maxima”

1.Перейти к пакету “Maxima”(M), выбрав в нем функцию integerp.

.Задавшись не менее, чем тремя произвольными пятиразрядными числами n и d проверить, являются ли числа d делителями n, используя следующие команды:

integerp(n/d)

2. Используя функцию divisors(n) в пакете (М) найти делители не менее чем трех пятиразрядных чисел при помощи следующей команды:

divisors(n)

Убедиться в правильности расчетов “вручную”.

3.Используя функцию gcd(a,b) пакета (М) найти gcd одной пары четырех разрядных чисел и не менее чем четырех пар пятизначных чисел, одна из которых соответствует взаимно простым числам, при помощи следующей команды:

gcd(a,b)

Убедиться в правильности расчетов “вручную” (на бумаге), выполнив следующее задание

Вариант №19 → НОД(4848,1220)

4848 = 1220*3+1188

1220 = 1188*1+32

1188 = 32*37+4

32=4*8

НОД(4848,1220) = 4

4. Для найденных в п.3 пяти gcd(a,b), найти их канонические представления при помощи расширенного алгоритма Евклида при помощи следующей команды:

gcdex(a,b)

Проверим правильность канонических представлений для всех случаев. Если функция отображает верный результат, то должно соблюдаться равенство (z1*a+z2*b)mod(b)= c, где z1, z2 - коэффициент перед большим числом a и коэффициент перед меньшим числом b соответственно, c равно НОД(a, b).

z1

z2

(z1*a+z2*b)mod(b)

c

Равенство

3511

-1430

(3511*3251 - 1430*7982) mod 7982=1

1

соблюдается

973

-453

(33894*973 – 72801*453) mod 72801=9

9

соблюдается

10928

-9421

(38720*10928-44923*9421) mod 44923=1

1

соблюдается

-3858

3683

(-78290*3858+82010*3683) mod 82010=10

10

соблюдается

-19593

10750

(-38293*19593+69793*10750) mod 69793=11

1

соблюдается

5.Для одного четырехразрядного числа и не менее чем для четырех произвольно выбранных пятизначных чисел a сделать их приведение по модулям произвольных меньших чисел m при помощи команды:

mod(a,m)

Убедиться в правильности расчетов для первого числа “вручную”.

2222 mod 2000 = (2000*1+222) mod 2000 = 222 mod 2000 = 222

6. .Найти мультипликативно обратные элементы к одному двухразрядному числу и не менее чем к четырем 9-ти значным числам a по простым двузначным модулям m при помощи следующей команды:

power_mod(a,-1,m)

Убедиться в правильности расчетов “вручную”, выполнив следующее задание:

Вариант №19 → a=103, b=157

103-1 mod 157?

157=103*1+54 → 54 = 157-103

103 = 54*1+49 → 49 = 103-54

54 = 49*1+5→ 5 = 54-49

49 = 5*9+4 → 4 = 49-5*9

5 = 4*1+1 → 1 = 5-4

1 = 5-4=(54-49)-(49-5*9)=(157-103-103+157-103)-(103-(157-103)-9*(157-103-103+157-103)) = -32*103 +21*157

103-1 mod 157 = 125

7.Рассчитать функцию Эйлера для одного двухразрядного числа не менее чем четырех четырехзначных чисел m, используя команду:

totient(m)

Убедиться в правильности расчетов для первого числа “вручную”.

φ(41) = 41-1 = 40

8.Для двух пар произвольных четырехзначных, но взаимно простых чисел a и m, проверить справедливость теоремы Эйлера при помощи следующей команды:

mod(a^ totient(m),m)

9.Произвести возведение 5-значного произвольного числаaв степень произвольного 15-значного числа bпо произвольному 4-х значному модулю m, используя команду:

power_mod(a,b,m)

Используя алгоритм быстрого возведения в степень, вычислить вручную:

Вариант №9 → 5119 mod 7

119 = 26+25+24+22 +21+20=64+32+16+4+2+1

5119mod 7 = 564+32+16+2+1 mod 7 = 564∙532∙516∙54 ∙52∙51mod 7

51 mod 7 = 5

52 mod 7 = 4

54 mod 7 = 52 ∙ 52 mod 7 =4 ∙ 4 mod 7 =2

58 mod7 = 54 ∙ 54mod7 = 2 ∙ 2 mod 7 = 4

516 mod7 = 58 ∙ 58mod7 = 4 ∙ 4 mod 7 = 2

532 mod7 = 58 ∙ 58 ∙ 58 ∙ 58 mod7 = 4 ∙ 4 ∙ 4 ∙ 4 mod 7 = 4

564 mod7 = 532 ∙ 532 mod7 = 4 ∙ 4 mod 7 = 2

5119mod7 = 564 ∙ 532 ∙ 516 ∙ 54 ∙52∙51 mod 7 = 2 ∙ 4 ∙ 2 ∙ 2*4 ∙ 5 mod 7 = 3

5119 mod 7 = 3

10. Решить систему уравнений на основе использования китайской теоремы об остатках.

,

№ Варианта

ai

mi

19

3,9,6

11,5,13

Найдем x0

по формуле x0 = (M1y1a1 + M2y2a2 + M3y3a3) mod M

M = 11*5*13 = 715

M1 = M/m1 = 715/11 = 65

M2 = M/m2 = 715/5 = 143

M3 = M/m3 = 715/13 = 55

M1y1 = 1 mod m1 → 65y1 = 1 mod 11 → 10y1 = 1 mod 11 → y1=10-1 mod 11 = 10

M2y2 = 1 mod m2 → 143y2 = 1 mod 5 → 3y2 = 1 mod 5 → y2=3-1 mod 5 = 2

M3y3 = 1 mod m3 → 55y3 = 1 mod 13 → 3y3 = 1 mod 13 → y3=3-1 mod 13 = 9

x0 =(3*65*10+9*2*143+6*55*9) mod 715 = 344

Ответ: x = 344

  1. Разложите в цепную дробь числа: P/Q. Найдите подходящие дроби для k=1,2,3,4

-799 = 1368*(-1)+569

1368= 569*2+230

569 = 230*2+109

230 = 109*2+12

109=12*9+1

12=1*12

Найдите подходящие дроби для k=1,2,3,4

A[-1;2,2,2,9,12]

K

0

1

2

3

4

5

qk

q=-1

q=2

q=2

q=2

q=9

q=12

Pk

-1

-1

-3

-7

-66

-799

Qk

1

2

5

12

113

1368

A0=-1, A1= , A2 = , A3 = , A4 = , A5 =

12. Решить контрольный пример.

K=37, b= 29-1 mod 37, a=29

29-1 mod 37?

37 = 29*1+8 → 8 = 37-29

29 = 8*3+5 → 5 = 29-8*3

8 = 5*1+3 → 3 = 8-5

5 = 3*1+2 → 2 = 5-3

3 = 2*1+1 → 1 = 3-2

1 = 3-2 = (37-29-(29-(37-29)*3))-((29-(37-29)*3)-( (29-(37-29)*3)- (37-29 -(29-(37-29)*3) )) = -14*29+11*37

29-1 mod 37 = 23

6-1 mod 37 = 31 → 3111 mod 37

11 =8+2+1= 23+21+20

3111 mod 37 = 318*312*311 mod 37

31 mod 37 =31 312 mod 37 =31*31 mod 37 = 36

318 mod 37 = 312*312*312*312 mod 37 = 36*36*36*36 mod 37 = 1

3111 mod 37 = 1*36*31 mod 37 = 6

Вывод

В ходе лабораторной работы мы закрепили знания, полученные на лекциях дисциплин «Основы криптографии», «Криптографические методы защиты информации» и приобрели навыки вычислений по блоку занятий «Математический базис криптосистем с открытым ключом».

Санкт-Петербург

2024

Соседние файлы в предмете Криптографические протоколы