Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Синюгин А.А. 2БШИ1401.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
61.57 Кб
Скачать

1.3 Восстановление информации

В идеальной ситуации флешка должна служить своему владельцу верой и правдой до тех пор, пока не будет отправлена на покой в связи с заменой ее на более современную модель. Но в жизни далеко не всегда все случается по идеальной схеме. В случае утери необходимо:

Первым делом следует убедиться, что потеря данных не связана с физическими повреждениями флешки. Если носитель информации вышел из строя из-за перепада напряжения, перегрева или механического повреждения, скорее всего, данные потеряны безвозвратно. В этом случае, если информация обладает очень большой ценностью, необходимо обратиться к специалистам, в распоряжении которых есть специальное оборудование. Воткнув поврежденную флешку в обычный компьютер, вы в лучшем случае не увидите никакого результата, в худшем - данные будут уничтожены окончательно.

Если же причина сбоя кроется в нарушении файловой системы диска USB-flash и при подключении к компьютеру флешка определяется как съемный диск с нулевой емкостью, то есть все шансы восстановить утраченные данные в домашних условиях.

На просторах Интернета можно найти и большое количество бесплатных утилит. Но качество и специфику их работы придется выяснять самостоятельно, на свой страх и риск.

Часть 2

Задание №1. Шифр Цезаря. Используя шифр Цезаря, зашифруйте свои данные: Фамилию Имя Отчество.

Исходный текст: Ishodnoe1=[СИНЮГИН АЛЕКСЕЙ АНДРЕЕВИЧ].

Используем алфавит, содержащий Kol_simvolov=[33], буквы и пробел, стоящий после буквы Я: Alphavit=[АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ].

Ключом в шифре Цезаря является число Kcezarya=[2]. Каждая буква в исходном тексте сдвигается по алфавиту на Kcezarya1=[2] позиции. Таким образом, получаем:

Исходный текст:Ishodnoe2=[СИНЮГИН АЛЕКСЕЙ АНДРЕЕВИЧ].

Зашифрованный текст:

Rezultat1=[УКП ЕКПБВНЖМУЖЛБВПЁТЖЖДКЩ].

Ответ: Rezultat2=[УКП ЕКПБВНЖМУЖЛБВПЁТЖЖДКЩ].

Задание №2. Алгоритм шифрования ГОСТ 28147-89. Выполните первый цикл алгоритма шифрования ГОСТ 28147-89 в режиме простой замены. Для получения 64 бит исходного текста используйте 8 первых букв из своих данных: Фамилии Имени Отчества. Для получения ключа (256 бит) используют текст, состоящий из 32 букв. Первый подключ содержит первые 4 буквы.

Исходные данные для шифрования: Ishodnoe21=[СИНЮГИН.].

Для ключа возьмем последовательность состоящую из 32 букв:

ЖИТЬ в эпоху великих перемен и вр

Для первого подключа Х используем первые 4 буквы ключа: Ishodnoe22=[ЖИТЬ].

Переводим исходный текст и первый подключ в двоичную последовательность.

Исходный текст: Preobrazovaniye21=

1[С]

21[11010001]

2[И]

22[11001000]

3[Н]

23[11001101]

4[Ю]

24[11011110]

5[Г]

25[11000011]

6[И]

26[11001000]

7[Н]

27[11001101]

8[пробел]

28[00100000]

*]]

Первый подключ X0: Preobrazovaniye22=

31[Ж]

41[11000110]

32[И]

42[11001000]

33[Т]

43[11010010]

34[Ь]

44[11011100]

*]]

Таким образом, первые 64 бита определяют входную последовательность:

L0: Lo=[11010010 11001000 11001101 11011110]

R0: Ro=[11000011 11001000 11001101 00100000]

Следующие 32 бита определяют первый подключ:

Х0: Xo=[11000110 11001000 11010010 11011100]

I. Найдем значение функции преобразования f(R0,X0).

1) Вычисление суммы R0 и X0 по mod 232

Выполним сложение R0 и X0 по mod 232:

R0: Ro1=[11000011 11001000 11001101 00100000]

Х0: Xo1=[11000110 11001000 11010010 11011100]

(Ro+Xo)mod32=[1000 1010 1001 0001 1001 1111 1111 1100]

Результат суммирования R0+X0 по mod 232:

(Ro+Xo)mod32-2=[1000 1010 1001 0001 1001 1111 1111 1100]

2) Преобразование в блоке подстановки

Преобразуем в блоке подстановки. Для каждого 4-битного блока вычислим его адрес в таблице подстановки. Номер блока соответствует номеру столбца, десятичное значение блока соответствует номеру строки в таблице.

[[1*

номера блоков

8

7

6

5

4

3

2

1

51[1000]

52[1010]

53[1001]

54[0001]

55[1001]

56[1111]

57[1111]

58[1100]

номера строк

61[8]

62[10]

63[9]

64[1]

65[9]

66[15]

67[15]

68[12]

заполнение

71[9]

72[14]

73[6]

74[12]

75[4]

76[11]

77[9]

78[7]

результат

81[1001]

82[1110]

83[0110]

84[1100]

85[0100]

86[1011]

87[1001]

88[0111]

*1]]

1001 1110 0110 1100 0100 1011 1001 0111

3) Циклический сдвиг результата п.2 на 11 бит влево:

Таким образом, значение функции f (R0,X0):

f(R0,X0)=[ 0110 0010 0101 1100 1011 1100 1111 0011]

II. Вычисляем R1= f(R0,X0) L0.

Результат преобразования функции f(R0,X0) складываем с L0 по mod2:

L0: Lo1=[11010010 11001000 11001101 11011110]

f(R0,X0): f(R0,X0)2=[)=[ 0110 0010 0101 1100 1011 1100 1111 0011]

R1: R1=[1001 1010 1001 0010 1100 0101 0110 1000]

Ответ: R11=[1001 1010 1001 0010 1100 0101 0110 1000]

Задание №3. Алгоритм шифрования RSA. Сгенерируйте открытый и закрытый ключи в алгоритме шифрования RSA, выбрав простые числа p и q из первой сотни. Зашифруйте сообщение, состоящее из ваших инициалов: ФИО.

I.Генерация ключей

Выберем два простых числа р = p[3] и q = q[11]

Тогда модуль n = pq= pq[3*11 = 33]

и функция Эйлера (n) = (p-1)(q-1) = fi(n)[2*10 = 20].

Закрытый ключ d выбираем из условий d < (n) и d взаимно просто с (n), т.е. d и (n) не имеют общих делителей.

Пусть d = d[3].

Открытый ключ e выбираем из условий e<(n) и de=1(mod (n)):e<e[20],

d1[3]e=1(mod e1[20]).

Последнее условие означает, что число d2[3]e-1 должно делиться на e2[20] без остатка.

Таким образом, для определения e нужно подобрать такое число k, что

d3[3]e-1 = e3[20] k.

При k=k[7] получаем d4[3]e=140 или e=e4[7].

В нашем случае:

Открытый ключ имеет значение (RSA1[7, 33]),

Секретный ключ имеет значение (RSA2[3, 33]).

II. Шифрование.

Представим шифруемое сообщение «C0[САА]» как последовательность целых чисел. Пусть буква «C1[С]» соответствует числу C11[18], буква «C2[А]» - числу C21[19] и буква «C3[А]» - числу C31[19].

Зашифруем сообщение, используя открытый ключ:

C10[С1 = (187) mod33= 6]

C20[С2 = (197) mod33= 13]

C30[С3 = (197) mod33=13]

Таким образом, исходному сообщению соответствует криптограмма (M_[6, 13, 13]).

III. Расшифрование.

Расшифруем сообщение, пользуясь секретным ключом:

M_1[М1 = (63) mod 33=18]

M_2[М2 = (133) mod 33=19]

M_3[М3 = (133) mod 33= 19]

Ответ: В результате расшифрования было получено исходное сообщение (C011[18, 19, 19]), то есть " C02[САА]".

Задание №4. Функция хеширования. Найти хеш–образ своей Фамилии, используя хеш–функцию , где n = pq, p, q взять из Задания №3.

Хешируемое сообщение «H[СИНЮГИН]». Возьмем два простых числа p=p4[3], q=q4[11]. Определим n = pq= 3*11 = n41[33]. Вектор инициализации H0 выберем равным H0[7]. Хешируемое слово можно представить последовательностью чисел (MM[19, 10, 15, 32, 4, 10, 15]) по номерам букв в алфавите. Таким образом, n=[33], H0=[7], M1=[19], M2=[10], M3=[15], M4=[32], M5=[4], M6=[10], M7=[15], M8=[], M9=[], M10=[], M11=[], M12=[].

Используя формулу

,

получим хеш-образ сообщения «HH[СИНЮГИН]»:

H1=(H0+M1)2 mod n = ( H1[7 + 19)2 mod 33 = 16]

H2=(H1+M2)2 mod n = (H2[16 + 10)2 mod 33= 16]

H3=(H2+M3)2 mod n = (H3[16 + 15)2 mod 33= 4]

H4=(H3+M4)2 mod n = (H4[4 + 32)2 mod 33 = 9]

H5=(H4+M5)2 mod n = (H5[9 + 4)2 mod 33 = 4]

H6=(H5+M6)2 mod n = (H6[4 + 10)2 mod 33 = 31]

H7=(H6+M7)2 mod n = (H7[31 + 15)2 mod 33 = 4]

H8=(H7+M8)2 mod n = (H8[)2 mod = ]

H9=(H8+M9)2 mod n = (H9[)2 mod]

H10=(H9+M10)2 mod n = (H10[)2 mod]

H11=(H10+M11)2 mod n = (H11[)2 mod]

H12=(H11+M12)2 mod n = (H12[)2 mod]

Ответ: В итоге получаем хеш-образ сообщения «H3H[СИНЮГИН]», равный H= H4H[4].

Задание №5. Электронная цифровая подпись. Используя хеш-образ своей Фамилии, вычислите электронную цифровую подпись по схеме RSA.

Пусть хеш-образ Фамилии равен H5H[4], а закрытый ключ алгоритма RSA равен (RSA3[3, 33]). Тогда электронная цифровая подпись сообщения, состоящего из Фамилии, вычисляется по правилу

s =S1[ (4) 3 mod 33 = 31].

Для проверки ЭЦП, используя открытый ключ (RSA4[7, 33]), найдем

H = HH71[ (31) 7 mod 33 = 4].

Ответ: s=S2[31]. Поскольку хеш-образ сообщения совпадает с найденным значением H, то подпись признается подлинной.