- •Криптографические методы защиты информации
- •Лабораторная работа №2 «Регистр сдвига с линейной обратной связью»
- •Лабораторная работа №3 «Шифр гаммирования»
- •Лабораторная работа №4 «Шифрование с открытым ключом. Алгоритм rsa»
- •Лабораторная работа №5 «Хэш-функция. Crc»
- •Лабораторная работа №6 «Электронная цифровая подпись Эль-Гамаля»
- •Лабораторная работа №7 «Криптоанализ шифра rsa»
Лабораторная работа №3 «Шифр гаммирования»
Основные сведения.
Поточные шифры гаммирования выполняют шифрование путем наложения байта случайной гаммы на байт открытого текста и выполнения побитовой операции XOR. Если выходная гамма ГПСП:
=12…n
А открытый текст:
M=p1p2…pn,
То байты шифртекста
C=c1c2…cn
Будут вычисляться по формуле
ci=pii.
Задание к лабораторной работе.
1. Реализуйте программу осуществляющую шифрование произвольного текстового файла с помощью шифра гаммирования. В качестве генератора псевдослучайной последовательности используйте регистр сдвига с линейной обратной связью, реализованный в предыдущей лабораторной работе. В качестве ключа используйте начальное заполнение регистра.
2. Реализуйте программу, осуществляющую расшифрование текстового файла, зашифрованного в первом задании.
Лабораторная работа №4 «Шифрование с открытым ключом. Алгоритм rsa»
Основные сведения.
Схема шифрования с открытым ключом по алгоритму RSA имеет следующий вид. Блок послания M представляется числом из интервала [0,n-1] и шифруется с помощью вычисления экспоненты
C = Me mod n.
Блок M восстанавливается с помощью той же операции, но с другой степенью
M = Cd mod n.
Здесь пара чисел (e,n) называется ключом зашифрования или открытым ключом, пара чисел (d,n) называется ключом расшифрования или секретным ключом.
В схеме RSA модуль n является произведением двух больших простых чисел p и q:
n = pq.
Числа e и d подбираются таким образом, чтобы
ed = 1 mod (p-1)(q-1).
При этом НОД(e,(p-1)(q-1))=1.
Тогда практически для любого M из множества [0,n-1]
Med mod n = M.
Для нахождения чисел e и d используется расширенный алгоритм Евклида.
Пусть a и b - целые числа, не равные одновременно нулю, и последовательность чисел
a>b>r1>r2>r3>…>rn
определена тем, что каждое rk - это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть
a=bq0+r1
b=r1q1+r2
r1=r2q2+r3
……
rk-2=rk-1qk-1+rk
……
rn-1=rnqn
Тогда НОД(a,b), наибольший общий делитель a и b, равен rn, последнему ненулевому члену этой последовательности.
Формулы для ri могут быть переписаны следующим образом:
r1=a+b(-q0)
r2=b-r1q1=a(-q1)+b(1+q1q0)
……
НОД(a,b)=rn=as+bt
Задание к лабораторной работе.
1. Реализуйте программу, осуществляющую шифрование и расшифрование заданной текстовой строки по алгоритму RSA с параметрами p и q, заданными в таблице для вашего варианта
2. Реализуйте программу, генерирующую и предлагающую на выбор не менее трех пар (открытый ключ, закрытый ключ) для данных параметров p и q.
Примечания.
Все буквы текста необходимо приводить к записи только заглавными буквами. Использовать следующую таблицу замен для русского алфавита:
-
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
О
П
Р
С
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-
Т
У
Ф
Х
Ц
Ч
Ш
Щ
Ъ
Ы
Ь
Э
Ю
Я
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Пробел между словами будем заменять числом 99.
Например, открытый текст «Вася молодец» будет иметь представление:
121027419922242124141532. Его необходимо разбить на блоки меньшие модуля шифрования. Например, для n=22213 текст разобьется на следующие блоки:
M1=12102, M2=7419, M3=9222, M3=4212, M4=4141, M5=532. Каждый из блоков шифруется по отдельности.
Варианты.
Вариант |
p |
q |
4-1 |
227 |
373 |
4-2 |
97 |
229 |
4-3 |
101 |
233 |
4-4 |
103 |
239 |
4-5 |
107 |
241 |
4-6 |
109 |
251 |
4-7 |
113 |
257 |
4-8 |
127 |
263 |
4-9 |
131 |
269 |
4-10 |
137 |
271 |
4-11 |
139 |
277 |
4-12 |
149 |
281 |
4-13 |
151 |
283 |
4-14 |
157 |
293 |
4-15 |
163 |
307 |
4-16 |
167 |
311 |
4-17 |
173 |
313 |
4-18 |
179 |
317 |
4-19 |
181 |
331 |
4-20 |
191 |
337 |
4-21 |
193 |
347 |
4-22 |
197 |
349 |
4-23 |
199 |
353 |
4-24 |
211 |
359 |
4-25 |
223 |
367 |