Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Введение в информационную безопасность основы, методы, задачи. Практикум
.pdf
41
5. Зашифруйте с помощью квадрата Полибия (метод 1, стандарт-
ный квадрат 5×5) фразу: «Keep your friends close, but your enemies
closer».
6. Зашифруйте с помощью квадрата Полибия (метод 2) фразу:
«Попрошу факт продажи Родины зафиксировать в протоколе».
Ключ: Гараж.
7. Зашифруйте с помощью шифра Виженера фразу: «Все дети –
художники».
Ключ: Пабло.
8. Расшифруйте с помощью шифра Виженера фразу: «У юеэыъкнащлапэы».
Ключ: Франклин.
Вариант 2
1. Зашифруйте с помощью шифра Цезаря (ROT 3) фразу: «Неосмысленная жизнь не стоит того, чтобы жить».
2. Расшифруете с помощью шифра Цезаря (ROT 4) фразу: «Утеизмхиег м ёямжфдиьацяхгычемцё».
3. Зашифруйте с помощью шифра Атбаш фразу: «Goahead, make-
myday!».
4. Расшифруете с помощью шифра Атбаш фразу: «Ънуцсъмэъмоя,
юъоцмънгчяэщнуя».
5. Зашифруйте с помощью квадрата Полибия (метод 1, стан-
дартный квадрат 5×5) фразу: «As God is my witness, I’ll never be hungry
again».
6. Зашифруйте с помощью квадрата Полибия (метод 2) фразу:
«У вас потрясающая профессия: вы занимаетесь тем, чего нет».
Ключ: Гараж.
7. Зашифруйте с помощью шифра Виженера фразу: «Мир, труд,
май».
Ключ: Ленин.
8. Расшифруете с помощью шифра Виженера фразу: «Оуьиспысднйш – бцогеи».
Ключ: Будда.
Оформите отчет по данному заданию согласно требованиям, при-
веденным в практическом задании 1.1.

42
П р а к т и ч е с к о е з а д а н и е 3.2
КРИПТОСИСТЕМЫ С ОТКРЫТЫМ КЛЮЧОМ
Цель: изучение принципов работы криптосистем с открытым
ключом и реализация их на практике; освоить основные концепции
асимметричного шифрования, научиться генерировать ключевые пары.
Краткие сведения для выполнения задания
Криптография с открытым ключом – это метод шифрования
данных с помощью двух разных ключей. Открытый ключ свободно
предоставляется для использования по открытому каналу, закрытый
ключ, который находится в секрете, используется для расшифровки
сообщения получателем. Зашифрованные открытым ключом данные
могут быть расшифрованы только закрытым ключом. Из-за использования двух ключей вместо одного криптография с открытым ключом
также известна как асимметричная криптография. Она широко используется, особенно для протоколов TLS/SSL, что делает возможным HTTPS.
Для выполнения заданий рекомендуется освоить какой-нибудь
калькулятор модульной арифметики, которые можно найти в интернете.
Например, по поисковому запросу modulararithmeticonline находим сайт
https://planetcalc.com/8326/, в котором доступны арифметические операции +, –, *, /, выполняемые по указанному модулю. Возведение в степень выполняется с помощью операции ^, а возведение в отрицательную степень – через деление. Например, 5*2^(–1) вычисляем как 5/2).
Допускается использование скобок.
Алгоритм Диффи–Хеллмана позволяет двум сторонам (условным
Алисе и Бобу) обмениваться секретным ключом по небезопасному каналу связи. При этом каждый из участников генерирует свою пару ключей: приватный ключ (который хранится в секрете) и соответствующий
ему открытый ключ (который можно передавать другим). После обмена
открытыми ключами можно вычислить общий секретный ключ, который
будет одинаковым у обоих участников.
Вычисление открытого ключа Алисы производится по формуле
YA = g
XA
mod p,
где g – основание или генератор; ХА – приватный ключ пользователя
Алисы.

43
Вычисление открытого ключа Алисы производится по формуле
YB = gXBmod p,
где ХВ – приватный ключ пользователя Боба.
Далее происходит обмен открытыми ключами, т. е. Алиса отправляет YA Бобу, а Боб отправляет YB Алисе. Вычисление общего секретного ключа (K) происходит следующим образом: Алиса использует YB
и свой приватный ключ XA для вычисления общего ключа:
K = YBXAmod p,
а Боб использует YA и свой приватный ключ XB для вычисления общего
ключа:
K = YAXBmod p.
Шифр Шамира – это метод шифрования с открытым ключом, который позволяет двум сторонам (Алисе и Бобу) обмениваться зашифрованными сообщениями с использованием своих частных и открытых
ключей.
В этом примере имеются следующие параметры:
– простое число – p;
– открытый ключ Алисы – CA;
– открытый ключ Боба – СВ;
– сообщение – m.
Необходимо вычислить следующие параметры:
– закрытый ключ Алисы – DA;
– закрытый ключ Боба – DB;
– ервое промежуточное значение, зашифрованное Алисой – х1;
– второе промежуточное значение, расшифрованное Бобом – х2;
– третье промежуточное значение, зашифрованное Бобом – х3;
– конечное значение, расшифрованное Алисой – х4.
Закрытые ключи DA и DB вычисляются как мультипликативные
обратные открытых ключей по модулю (p – 1). Таким образом, DA и DB
удовлетворяют следующим уравнениям:
C
A
DA ≡ 1 mod (p − 1),
C
B
DB ≡ 1 mod (p − 1).
Алиса шифрует сообщение m с использованием своего открытого
ключа CA:
x1 = mCAmod p.

44
Боб расшифровывает x1 с использованием своего закрытого
ключа DB:
x2 = x
1
DB
mod p.
Боб шифрует x2 с использованием своего открытого ключа CB:
x3 = x
2
CB
mod p.
Алиса расшифровывает x3 с использованием своего закрытого
ключа DA:
x4 = x
3
DA
mod p,
в результате вычисляется x4.
После этого передает свое сообщение m, используя трехступенчатый протокол. Если m < p (m рассматривается как число), то
сообщение m передается сразу, если же ≥ , то сообщение представляется в виде m1, m2, … , mt, где все < , и затем передаются
последовательно m1, m2, … , m. При этом для кодирования каждого m
i
лучше выбирать случайно новые пары (СA, CB) и (C, D), потому что
в противном случае надежность системы понижается. В настоящее
время такой шифр обычно используется для передачи чисел, например
секретных ключей, значения которых меньше p. Поэтому будем рассмат-
ривать только случай m < p.
Пусть имеются абоненты А, В, С, которые хотят обмениваться за-
шифрованными посланиями, не имея никаких защищенных каналов
связи. Шифр Эль-Гамаля решает эту задачу, используя (в отличие от
шифра Шамира) только одну пересылку сообщения. Фактически здесь
применяется схема Диффи–Хеллмана, чтобы сформировать общий секретный ключ для двух абонентов, передающих друг другу сообщение,
которое затем шифруется путем умножения его на этот ключ. Для каждого последующего сообщения секретный ключ вычисляется заново.
В этом примере имеются следующие параметры:
– простое число – p;
– генератор – g (такое простое число, которое является первообразным корнем p, т. е. 1 < g < p.);
– открытый ключ для каждого абонента – с (число, полученное
с использованием приватного ключа, 1 < сi < р – 1);
– случайное число, используемое в процессе шифрования – k (та-
кое, что 1 < k < p − 1);
– сообщение – m.

45
Для начала вычислите открытое число D для каждого абонента
по формуле
d = gmod p.
Абонент A формирует случайное число k, 1 ≤ k ≤ p − 2, вычисляет
числа
r = gk mod p,
e = m dk mod p
и передает пару чисел (r, e) абоненту B, который вычисляет
m'=е r
p – 1 – СB
mod p.
Аналогичные расчеты нужно выполнить для абонента С.
Шифр RSA – это асимметричный криптографический алгоритм,
который используется для шифрования и расшифровки сообщений.
В данном примере имеются следующие параметры:
– простые числа – p, q;
– приватный ключ – d;
– сообщение m – 11111.
На первом этапе вычисляется n, которое является открытой информацией, доступной другим абонентам, по формуле
n = P Q,
После вычисляется число φ(n) по формуле
φ(n) = (P − 1) (Q − 1).
Далее проводится поиск открытой экспоненты e, которая должна
соответствовать следующим требованиям:
e‧d ≡ 1 mod φ(n).
Затем выбирается некоторое число, которое удовлетворяет функциям d < , взаимно простое с . По обобщенному алгоритму Евклида
находится число такое, что
(cd) mod = 1.
С использованием приватного ключа d находится экспонента e
как мультипликативное обратное d по модулю φ(n).
Расшифровка сообщения c использованием секретного ключа:
m = cd mod n.
Шифрование сообщения m с использованием открытого ключа e:
c = me mod n0.

46
Задания
Выполните последовательно четыре упражнения и вычислите необходимые параметры в соответствии со своим вариантом (вариант выбирается в соответствии с порядковым номером по списочному составу
группы).
Задание 1
Вычислите открытые ключи и общий секретный ключ для системы Диффи–Хеллмана с параметрами p, g, XA, XB.
Варианты задания 1 представлены в табл. 3.1
Таблица 3.1
Варианты для решения задания 1
Номер
варианта
Простое боль-
шое число, p
Генератор,
g
Приватный
ключ Алисы,
ХA
Приватный
ключ Боба,
ХB
1
997
7
1000
3000
2
30803
2
1000
3000
3
941
2
2000
4000
4
881
3
2000
4000
5
701
2
3000
6000
6
569
3
3000
6000
7
30803
2
3000
6000
8
881
3
4000
2000
9
941
2
4000
2000
10
389
2
4000
2000
11
823
3
5000
4000
12
991
6
5000
4000
13
983
5
5000
4000
14
911
17
3000
5000
15
30803
2
3000
5000
16
877
2
3000
5000
17
941
2
4000
2000
18
811
3
4000
2000
19
30803
2
4000
2000
20
881
3
3000
1000
Задание 2
Вычислите DA, DB, x1, x2, x3, x4 для шифра Шамира с параметрами p, CA, CB и сообщения m.

47
Варианты задания 2 представлены в табл. 3.2.
Таблица 3.2
Варианты для выполнения задания 2
Номер
варианта
Простое
число, p
Открытый ключ
Алисы, СA
Открытый ключ
Боба, СB
Сообщение,
m
1
997
303
501
222
2
30803
501
601
111
3
941
445
601
333
4
881
997
499
444
5
701
877
523
123
6
30803
1291
3221
11111
7
569
501
601
111
8
881
761
881
666
9
941
769
883
555
10
389
773
887
123
11
823
787
907
654
12
991
797
569
444
13
983
809
653
555
14
911
983
859
222
15
877
501
601
777
16
30803
839
929
222
17
941
937
619
123
18
811
769
719
777
19
30803
501
601
1111
20
881
857
877
777
Задание 3
Вычислите зашифрованное сообщение для абонентов А, В, С для
шифра Эль-Гамаля с параметрами p, g, с, k и сообщением m.
Варианты задания 3 представлены в табл. 3.3.
Таблица 3.3
Варианты для выполнения задания 3
Номер
вари-
анта
Простое
число, p
Гене-
ратор,
g
Секретный
ключ або-
нента А
Секретный
ключ або-
нента B
Секретный
ключ або-
нента C
Сообще-
ние, m
1 2 3 4 5 6 7
1
997 7 899
658
254
22222
2
30803
2
10257
536
145
11111
3
941 2 584
548
365
333333
4
881 3 621
256
155
44444
5
701 2 697
452
452
123456
6
569 3 452
125
365
77777

48
Окончание табл. 3.3
1 2 3 4 5 6 7
7
30803
2
3654
269
1455
11111
8
881 3 801
452
125
66666
9
941 2 459
652
652
55555
10
389 2 236
125
321
123456
11
823 3 658
256
256
654321
12
991 6 785
952
365
44444
13
983 5 523
658
452
55555
14
911
17
658
452
684
22222
15
30803
2
4154
4125
1636
11111
16
877 2 256
263
456
22222
17
941 2 256
652
159
123456
18
811 3 745
658
452
77777
19
30803
2
6254
2525
1558
1111
20
881 3 801
145
156
77777
Задание 4
1. Вычислите зашифрованное сообщение для шифра RSA с па-
раметрами пользователя p, q, d и сообщения m.
2. Найдите секретный ключ c.
3. Расшифруете сообщение.
Варианты задания 4 представлены в табл. 3.4
Таблица 3.4
Варианты для выполнения задания 4
Номер
варианта
Простое число,
p
Простое
число, q
Приватный
ключ, d
Сообщение,
m
1 2 3 4 5 1 1009
1013
7
22222
2
1013
1019
11
11111
3
1019
1021
13
333333
4
1021
1031
17
44444
5
1031
1033
19
123456
6
1033
1039
23
77777
7
1039
1049
29
11111
8
1049
1051
31
66666
9
1051
1061
37
55555
10
1061
1063
41
123456
11
1063
1069
43
654321
12
1069
1087
47
44444

49
Окончание табл. 3.4
1 2 3 4 5
13
1087
1091
53
55555
14
1091
1093
59
22222
15
1093
1097
61
11111
16
1097
1103
67
22222
17
1103
1109
71
123456
18
1109
1117
73
77777
19
1117
1123
79
1111
20
1123
1129
83
77777
4. Все задачи необходимо выполнить двумя способами: вручную
(любым способом: в тетради, в текстовом редакторе и т. д.) и с использованием возможностей программного обеспечения (Python). В заключение нужно сравнить ответы, полученные разным способами, и сделать
обоснованный вывод. Результаты выполнения задач в программах фиксируются в отчете в виде снимков с экрана (screenshot), которые позволяют идентифицировать принадлежность снимка автору.
П р а к т и ч е с к о е з а д а н и е 3 .3
ОДНОСТОРОННИЕ ФУНКЦИИ
Цель: понимание и применение концепции односторонних функ-
ций в контексте информационной безопасности, изучение их свойств
и важности в криптографии, исследование их применения в хеш-функциях, цифровых подписях и протоколах шифрования, реализация примеров на выбранном языке программирования, анализ безопасности и эффективности этих функций, а также рассмотрение потенциальных уязвимостей и методов защиты.
Краткие сведения для выполнения задания
Идея криптографии с открытым ключом основана на использовании односторонних функций. Как уже отмечалось, эти функции легко вычислить в одном направлении, но очень сложно в обратном. Например,
если известно значение , можно легко найти (). Но, если имеется
только (), найти очень сложно и затратно по времени.
Как известно, любое непростое число можно представить в виде
произведения простых множителей. Например:

50
10 = 2‧5,
20 = 2‧2‧5.
А вот из каких простых множителей состоит, например, число
12547864874? Предполагается, что факторизация (т. е. разложение числа на произведение простых множителей) куда сложнее, чем, например,
умножение. Чтобы расшифровать сообщение, придется потратить
много времени и усилий, чтобы найти два простых и длинных числа.
Приведем простой пример. Получатель информации создает пару
ключей: открытый ключ и закрытый ключ (лазейку). Открытый ключ
он передает отправителю, а закрытый ключ хранит у себя. Отправитель
использует открытый ключ для шифрования сообщения. Это похоже на
применение односторонней функции, где () – зашифрованное сообщение. Получатель, имея закрытый ключ (лазейку), может легко расшифровать сообщение и восстановить исходный текст . Таким образом, открытый ключ позволяет зашифровать сообщение, но расшифровать его может только тот, у кого есть закрытый ключ.
Алгоритм выполнения задания выглядит следующим образом:
1. Выбираются два различных случайных простых числа p и q за-
данного размера.
2. Вычисляется их произведение
n = p q,
которое называется модулем.
3. Вычисляется значение функции Эйлера от числа:
Ф(n) = (p – 1) (q – 1).
4. Выбирается целое число
e (1 < e < Ф(n)),
взаимно простое со значением функции Ф(n).
5. Число e называется открытой экспонентой (Public exponent).
Обычно в качестве e берутся простые числа, содержащие небольшое
количество единичных бит в двоичной записи. Например, простые из
чисел Ферма – 17, 257 или 65537, так как в этом случае время, необходимое для шифрования с использованием быстрого возведения в степень, будет меньше. Слишком малые значения e (например, 3) потенциально могут ослабить безопасность схемы RSA.
6. Вычисляется число d, мультипликативно обратное к числу e по
модулю. Число d называется секретной экспонентой и обычно вычисляется при помощи расширенного алгоритма Евклида.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
