криптографические методы защиты информации

реклама
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАМЫШИНСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ)
ВОЛГОГРАДСКОГО ГОСУДАРСТВЕННОГО ТЕХНИЧЕСКОГО УНИВЕРСИТЕТА
КАФЕДРА «АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ ОБРАБОТКИ
ИНФОРМАЦИИ И УПРАВЛЕНИЯ»
КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ
ЗАЩИТЫ ИНФОРМАЦИИ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторным работам
РПК «Политехник»
Волгоград
2004
УДК 681.327.1(07)
М 54
КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ. Методические
указания к лабораторным работам / Сост. Е. С. Кузнецова; Волгоград.
гос. техн. ун-т. Волгоград, 2003. – 23 с.
Предназначены для студентов, обучающихся по направлению 552800
«Информатика и вычислительная техника».
Табл. 21. Ил. 3. Библиогр.: 2 назв.
Рецензент: Л. А. Агарунова.
Печатается по решению редакционно-издательского совета
Волгоградского государственного технического университета
Составитель Екатерина Сергеевна Кузнецова
КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ
Методические указания к лабораторным работам.
Печатаются в авторской редакции
Темплан 2004 г., поз. № 203.
Подписано в печать 08. 09. 2004 г. Формат 6084, 1/16.
Бумага потребительская. Усл. печ. л. 1,44.
Усл. авт. л. 1,31. Тираж 50 экз. Заказ
Волгоградский государственный технический университет.
400131 Волгоград, просп. им. В.И. Ленина, 28.
РПК «Политехник»
Волгоградского государственного технического университета.
400131 Волгоград, ул. Советская, 35.
Отпечатано в типографии «Новый ветер», ПБОЮЛ Выдолоб Л. Ф.
Волгоградская обл., г. Камышин, ул. Ленина, 8/1.
© Волгоградский
государственный
технический
университет, 2004
ВВЕДЕНИЕ
Цели несанкционированного сбора информации проще всего объяснить в настоящее время одним понятием – коммерческий интерес. Знание
конфиденциальной информации всегда помогает быстрее и эффективнее
решать стоящие перед человеком проблемы, как-то: избежать деловых
отношений с недобросовестным партнером; избежать или пресечь готовящиеся против или невыгодные действия и др.
Несанкционированное получение информации частного и коммерческого характера можно классифицировать по возможным группам каннналов утечки информации:
 акустический контроль помещения, автомобиля, непосредственно человека; контроль и прослушивание телефонных каналов
связи, перехват факсовой и модемной передачи сообщений;
 перехват компьютерной информации (в том числе радиоизлучений компьютера), несанкционированное внедрение в базы данных;
 скрытая фото- и видеосъемка с помощью специальной оптики;
 визуальное наблюдение за объектом, несанкционированное ознакомление с документами;
 аналитическое ознакомление с открытыми публикациями фирмы
(предприятия);
 аналитическое исследование процессов деятельности предприятия, его полезного продукта и отходов производства и т. д.
Утечка (утеря) информации влечет за собой в конечном итоге экономические потери. Безусловно, охрана и защита собственности – это экономическая категория. Сюда же следует отнести вопросы защиты личности. Таким образом, защита информации – это краеугольное начало благосостояния личности с его собственностью, в том числе и коллективной.
На несколько десятков процентов – это проблемы электросвязи. Как при
передаче информации, так и при ее защите превалируют методы, системы и устройства, использующие принципы электро- и радиотехники,
многоканальной проводной и радиосвязи, автоматики и телевидения.
В соответствии с рекомендациями Международной организации по
стандартизации (МОС) обеспечение безопасности данных осуществляются путем создания сервисных служб защиты, функции которых реализуются при помощи специальных процедур.
1. Шифрование данных предназначено для закрытия данных абонента или некоторых полей сообщения и может иметь два уровня:
шифрование в канале связи (линейное) и абонентское шифрование. В первом случае для предотвращения возможности анализа
трафика шифруется вся информация, передаваемая в канал связи,
включая и все сетевые заголовки. Абонентское шифрование предназначено для предотвращения раскрытия данных абонента.
2. Цифровая подпись передаваемых сообщений служит для предотвращения правильности содержания сообщения и удостоверения
факта его отправления именно тем абонентом, который указан в
заголовке в качестве источника данных, т. е. только истинный
владелец подписи может правильно сформулировать подписанное сообщение. Цифровая подпись является функцией от содержания сообщения, секретной информации, известной только
абоненту-источнику (адресанту), и общей информации, известной всем абонентам сети.
3. Управление доступом к ресурсам сети выполняется на основании
множества правил и формальных моделей, использующих в качестве аргумента информацию о ресурсах сети (классификацию)
и индентификаторы абонентов. Служебная информация для
управления доступом (пароли абонентов, списки разрешенных
операций, персональные идентификаторы и т. д.) содержится в
локальных базах данных службы обеспечения безопасности информационно-вычислительных сетей.
4. Управление доступом к ресурсам сети выполняется на основании
множества правил и формальных моделей, использующих в качестве аргумента информацию о ресурсах сети (классификацию)
и идентификацию абонентов. Служебная информация для управления доступом (пароли абонентов, списки разрешенных операций, персональные идентификаторы и т. д.) содержится в локальных базах данных службы обеспечения безопасности информационно-вычислительных сетей.
5. Обеспечение целостности данных предполагает введение в каждое сообщение некоторой дополнительной информации, которая
является функцией от содержания сообщения. В рекомендациях
МОС рассматриваются методы обеспечения целостности двух
типов: первые обеспечивают целостность единственного блока
данных, вторые − целостность потока блоков данных или отдельных полей этих блоков.
В методических указаниях рассматриваются известные криптографические методы защиты информации. Студентам, предлагается реализовать данные алгоритмы шифрования, используя любые языки программирования (по выбору).
В лабораторной работе № 1 рассматриваются основные симметричные алгоритмы: подстановка, моноалфавитная, гомофоническая, полиалфавитная и полиграммная замены, а также шифр Бофора, шифр Плэйфера, и шифр Виженера.
Во лабораторной работе № 2 приводится алгоритм шифрования DES.
В лабораторной работе № 3 предлагается реализовать несимметричный RSA.
Для выполнения лабораторных работ требуется компьютер любой
конфигурации, с любыми средствами визуального программирования.
Лабораторная работа №1
Лабораторная работа рассчитана на 6 часов аудиторного времени.
Цель работы заключается в изучении алгоритмов шифрования и их
реализация с использованием языков программирования высокого уровня.
Необходимо реализовать алгоритм преобразования данных с использованием следующих методов замены: подстановкой, моноалфавитной,
гомофонической, полиалфавитной и полиграммнаой замены, а также используя шифр Бофора, шифр Плэйфера, шифр Виженера. Возможность
реализации всех алгоритмов в одной программе рекомендуется.
Теоретический материал необходимый для выполнения
данной лабораторной работы.
Шифрование методом замены (подстановки) основано на алгебраической операции, называемой подстановкой.
Подстановкой называется взаимно-однозначное отображение некоторого конечного множества М на себя. Число N элементов этого множества называется степенью подстановки. Природа множества M роли не
играет, поэтому можно считать, что M={1,2,...,N}.
Если при данной подстановке S число j переходит в Ij, то подстановка обозначается символом S:
S 
 1 2 ... n 
 I 1 I 2 ... In 
В этой записи числа 1,2,...,n можно произвольным образом переставлять, соответственно переставляя числа I1,I2,...In.
Результат последовательного выполнения двух подстановок S1 и S2
одной и той же степени также является подстановкой, которая называется произведением подстановок S1 и S2 и обозначается S1S2. Произведение подстановок обладает свойством ассоциативности.
Пусть S − произвольная подстановка степени n. Если для некоторого
j число Ij отлично от j, то говорят, что подстановка S действительно перемещает число j; в противном случае говорят, что подстановка S оставляет число j на месте.
Две подстановки называются независимыми, если они не имеют общих действительно перемещаемых чисел.
Количество m чисел, действительно перемещаемых подстановкой S,
называется длиной цикла подстановки.
Подстановка S называется транспозицией, если существует пара (j1,
j2) различных элементов из M, удовлетворяющих условиям:
Ij1 = j2, Ij2 = j2, Ij = j для каждого j пp. {M\{j1, j2}}. Любая подстановка разлагается в произведение транспозиций.
Разложение подстановки в произведение независимых подстановок
однозначно (с точностью до порядка множителей).
В криптографии рассматриваются четыре типа подстановки (замены): моноалфавитная, гомофоническая, полиалфавитная и полиграммная.
Далее всюду в примерах, где необходимо, будем использовать кодирование букв русского алфавита, приведенное в табл. 1. Знак «_» в таблице 1 и далее означает пробел.
Таблица 1
Буква
Код
Буква
Код
А Б В Г Д Е Ж З И Й К Л М Н О П
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _
17 18 1920 21 22 23 24 25 26 27 28 29 30 31 32 33
При моноалфавитной замене каждой букве алфавита открытого текста
ставится в соответствие одна буква шифртекста из этого жеалфавита.
Пpимеp 1 Открытый текст: «ШИФРОВАНИЕ_ЗАМЕНОЙ».
Подстановка задана табл. 2.
Таблица 2
Алфавит исходного текста
Алфавит шифpтекста
А Б В Г Д ...
_ЯЮЭЬ
Шифртекст: «ИШМРТЮ_УШЫАЩ_ФЫУТЧ».
Основным недостатком рассмотренного метода является то, что статистические свойства открытого текста (частоты повторения букв) сохраняются в шифртексте.
Общая формула моноалфавитной замены выглядит следующим образом:
Yi=k1*Xi+k2(mod N)
где уi - i-й символ aлфавитa; k1 и k2- константы; Xi - i-й символ окрытого текста (номер буквы в алфавите);
n - длина используемого алфавита.
Шифр, задаваемый фоpмулой:
yi=xi+ki(mod n),
где ki - i-ая буква ключа, в качестве которого используются слово или
фраза, называется шифpом Вижинера.
Пример 2. Открытый текст: «ЗАМЕНА».
Ключ: «КЛЮЧ» .
ЗАМЕНА
КЛЮЧКЛ
y1=8+11(mod 33)=19 -> Т
y2=1+12(mod 33)=13 -> М
у3=13+31(mod ЗЗ)=11-> К
y4=6+24(mod 33)=30 -> Э
у5=14+11(mod 33)=25 -> Ш
y6=1+12(mod 33)=13 -> М.
Шифртекст: «ТМКЭШМ».
Шифры Бофора используют фоpмулы:
Уi = ki - xi(mod n) и yi = xi - ki(mod n).
Гомофоническая замена одному символу открытого текста ставит в
соответствие несколько символов шифртекста. Этот метод применяется
для искажения статистических свойств шифртекста.
Пример 3. Открытый текст: «ЗАМЕНА».
Подстановка задана табл. 3.
Шифртекст: «76 17 32 97 55 31».
Таблица 3
Алфавит откpытого текста
А Б
Алфавит шифpтекста
17 23
31 44
48 63
... Е Ж З ... М Н ...
97 47 76 32 55
51 67 19 28 84
15 33 59 61 34
Таким образом, при гомофонической замене каждая буква открытого
текста заменяется по очереди цифрами соответствующего столбца.
Полиалфавитная подстановка использует несколько алфавитов шифртекста. Пусть используется k алфавитов. Тогда открытый текст:
Х=X1X2...XkXk+1...X2kX2k+1...
заменяется шифртекстом:
Y = f1(x1)f2(x2)...fk(xk)Fk + 1(Xk + 1)...F2k(X2k)F2k + 1(X2k + 1),
где Fi(Xj) означает символ шифртекста алфавита i для символа открытого текста Xj.
Пример 4. Открытый текст: «ЗАМЕНА», k = 3.
Подстановка задана таблицей из примера 3.
Шифртекст: «76 31 61 97 84 48».
Полиграммная замена формируется из одного алфавита с помощью
специальных правил. В качестве примера рассмотрим шифр Плэйфера.
В этом шифре алфавит располагается в матрице. Открытый текст разбивается на пары символов XiXi+1. Каждая пара символов от крытого текста заменяется на пару символов из матрицы следующим образом:
1) если символы находятся в одной строке, то каждый из символов
пары заменяется на стоящий правее его (за последним символом
в строке следует первый);
2) если символы находятся в одном столбце, то каждый символ пары заменяется на символ, расположенный ниже его в столбце (за
последним нижним символом следует верхний);
3) если символы пары находятся в разных строках и столбцах, то
они считаются противоположными углами прямоугольника.
Символ, находящийся в левом углу, заменяется на символ, стоящий в другом левом углу; замена символа, находящегося в правом углу, осуществляется аналогично;
4) если в открытом тексте встречаются два одинаковых символа
подряд, то перед шифрованием между шали вставляется специальный символ (например, тире).
Пример 5. Открытый текст: «ШИФР_ПЛЭЙФЕРА». Матрица алфавита представлена в табл. 4.
Таблица 4
А
Ч
Е
.
С
Ю
Х
Г
Щ
З
Ь
Я
Б
Н
,
Ъ
К
_
М
Ш
Х
Р
Э
Ы
Ц
Д
У
И
Т
Ф
В
О
П
Й
Л
-
Шифртекст: «РДЫИ,-СТ-И.ХЧС»
При рассмотрении этих видов шифров становится очевидным, что
чем больше длина ключа (например, в шифре Виженера), тем лучше
шифр. Существенного улучшения свойств шифртекста можно достигнуть
при использовании шифров с автоключом.
Шифр, в котором сам открытый текст или получающаяся криптограмма используются в качестве «ключа», называется шифром с
автоключом. Шифрование в этом случае начинается с ключа, называемого первичным, и продолжается с помощью открытого текста или
криптограммы, смещенной на длину первичного ключа.
Пример 6. Открытый текст: "ШИФРОВАНИЕ_ЗАМЕНОЙ".
Первичный ключ: "КЛЮЧ"
Схема шифрования с автоключом при использовании открытого
текста представлена в табл. 5.
Таблица 5
Ш И Ф Р О В А Н И Е _ З А М Е Н О Й
К Л Ю Ч ШИ Ф Р О В А Н И Е _ З А М
36 21 52 41 40 12 22 31 24 09 34 22 10 19 39 22 16 23
В Ф Т З Ж Л Х ЮЧ И А Х Й Т Е Х П Ц
Схема шифрования с автоключом при использовании криптограммы
представлена в табл. 6.
Таблица 6
Ш
К
36
В
И
Л
21
Ф
Ф
Ю
52
Т
Р
Ч
41
З
О
В
18
C
В
Ф
24
Ч
А Н
Т З
20 22
У Х
И Е
С Ч
27 30
Ъ Э
_ З А М Е Н О Й
У Х Ъ Э У Э Ы Й
53 30 24 43 26 44 39 20
У Э Ы Й Щ К Й У
Рекомендации к выполнению лабораторной работы № 1
Изучить приведенный теоретический материал.
В любой визуальной среде программирования реализовать изученные примеры. На «отлично» необходимо реализовать четыре
алгоритма из приведенных в методических указаниях, а так же
придумать свой по возможности лишенный недостатков которые
имеются у данных алгоритмов. Примеры вариантов: 1) шифр
Бофора, Плэйфера, Вижинера , моноалфавитная замена, свой алгоритм; 2) гомофоническая замена, полиалфавитная, шифр
Плэйфера, Бофора, свой алгоритм; 3) полиалфавитная замена,
шифр Вижинера, шифрование с автоключем, метод перестановки, свой алгоритм;
На «хорошо» реализуется три алгоритма, со своим.
На «удовлетворительно» реализовать три алгоритма из приведенных
в методических указаниях.
3. Шифрование данных необходимо выполнять как с файла, так и с
текстового окна программы.
4. Для отчета лабораторной работы необходима действующая программа, и отчет, который должен содержать краткое описание
проделанной работы.
1.
2.
Вопросы для самоконтроля:
1.
2.
3.
4.
5.
Какие методы симметричного шифрования Вы знаете?
В чем отличие между гомофонической и полиалфавитной заменами?
Основной недостаток моноалфавитной замены?
Перечислить правила используемые в шифре Плэйфера.
Где можно использовать изученные методы шифрования.
Лабораторная работа №2
Лабораторная работа рассчитана на 6 часов аудиторного времени.
Цель работы: Изучить принцип за- и расшифрования данных с использованием DES алгоритма и реализовать его.
Алгоритм шифрования данных DES разработан для зашифрования и
расшифрования данных разрядностью 64 бит на основе 64-битового ключа. Расшифрование выполняется по тому же ключу, что и зашифрование,
но этот процесс является инверсным по отношению к процессу зашифрования данных. При описании алгоритма шифрования используются следующие обозначения. Если L и R − последовательности бит, то через LR
будем обозначать конкатенацию последовательностей L и R, т. е. последовательность бит, размерность которой равна сумме размерностей L и
R. В этой последовательности биты последовательности R следуют за битами последовательности L. Конкатенация битовых строк является ассоциативной, то есть запись ABCDE, означает, что за битами последовательности A, следуют, биты последовательности B, затем C и т. д. Символом + будем обозначать операцию побитового сложения по модулю 2.
Процесс шифрования.
Процесс шифрования данных поясняется рис.1. Сначала 64 бита
входной последовательности перестанавливаются в соответствии с табл. 1.
Таким образом, бит 58 входной последовательности становится битом 1,
бит 50 – 2 и т. д.
Таблица 1
Начальная перестановка
58
60
62
64
57
59
61
63
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
2
4
6
8
1
3
5
7
Полученная последовательность бит разделяется на две последовательности: L(0) (биты 58, 50, 42, ..., 8) и R(0) (биты 57, 49, 41, ..., 7), каждая из которых содержит 32 бита. Затем выполняется итеративный процесс шифрования, который описывается следующими формулами:
L(i)=R(i-1), i=1,2,...,16.
R(i)=L(i-1) + F(R(i-1), K(i)), i=1,2,...,16.
Функция F называется функцией шифрования. Ее аргументами являются последовательность R, полученная на предыдущем шаге, и 48-бито-
вый ключ K(i), который является результатом функции преобразования
64-битового ключа шифра. Подробно функция шифрования и алгоритм
получения ключей K(i) описаны ниже.
На последнем шаге итерации будут получены последовательности
L(16) и R(16), которые конкатенируются в 64-х битовую последовательность R(16)L(16). Видно, что в полученной последовательности 64 бита,
перестанавливаются в соответствии с таблицей 2. Как легко видеть данная
перестановка является обратной по отношению к начальной (см. табл. 1).
Таблица 2.
Конечная перестановка.
40
39
38
37
36
35
34
33
8
7
6
5
4
3
2
1
48
47
46
45
44
43
42
41
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61
60
59
58
57
32
31
30
29
28
27
26
25
Полученная последовательность из 64 бит и будет являться зашифрованной последовательностью.
Входная последовательность бит
Начальная перестановка
R(0)
L(0)
Функция шифрования
K(0)
+
L(1) = R(0)
R(1) = L(0) + F(R(0),K(1))
Функция шифрования
K(16)
+
L(16) = R(15)
R(16) = L(15) + F(R(15),K(16))
Конечная перестановка
Выходная последовательность бит
Рис. 1
Процесс расшифровывания
Процесс расшифровывания данных является инверсным по отношению к процессу шифрования. Все действия должны быть выполнены в
обратном порядке. Это означает, что расшифровываемые данные сначала
переставляются в соответствии с табл.1, а затем над последовательностью бит R(16)L(16) выполняется те же действия, что и в процессе зашифровывания, но в обратном порядке. Итеративный процесс расшифровывания описан следующими формулами:
R(i-1)=L(i), i =16, 15, ..., 1.
L(i-1)=R(i)+F(L(i),K(i)), i=16, 15, ..., 1.
На последнем шаге итерации будут получены последовательности
L(0) и R(0), которые конкетанируются в 64 битовую последовательность
L(0)R(0). В полученной последовательности 64 бита перестанавливаются
в соответствии с табл.2. Результат преобразования − исходная последовательность бит (расшифрованное 64-битовое значение).
Функция шифровывания.
Функция шифрования F(R,K) схематически показана на рис. 2. Для
вычисления значения функции F используется функция E (расширение 32
бит до 48), функции S(1), S(2), ..., S(8) преобразование 6-битового числа в
4-битовое) и функция P (перестановка бит в 32-битовой последовательности). Приведем определения этих функций. Аргументами функции шифрования являются R (32 бита) и K (48 бит). Результат функции E(R) есть
48-битовое число, которое складывается по модулю 2 с числом K. Таким
образом, получается 48-битовая последовательность, которая рассматривается, как конкатенация 8 строк длиной по 6 бит (т.е. B(1)B(2)
B(3)(4)B(5)B(6)B(7)B(8)). Результат функции S(i)B(i) − 4 битовая последовательность, которую будем обозначать L(i). В результате конкетанации всех 8 полученных последвательностей L(i) имеем 32-битовую последовательность L=L(1)L(2)L(3)L(4)L(5)L(6)L(7)L(8). Наконец, для получения результат функции шифрования надо переставить биты последовательности L. Для этого применяется функция перестановки P(L).
R(32 бита)
Е
48 бит
К(48 бит)
+
S1
S2
S3
S4
S5
S6
S7
S8
P
32 бита
Рис. 2
Функция расширения Е, выполняющая расширение 32 бит до 48,
определяется таблицей 3. В соответствии с этой таблицей первые три бита Е(R) − это биты 32,1 и 2, а последние − 31,32,1.
Таблица 3.
Функция расширения Е.
32
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
Функция S(i), которая преобразует 6-битовые числа в 4-битовые,
определяется таблицей 4.
Таблица 4.
Функции преобразования S(i)
S(1)
14
0
4
15
4
15
1
12
13
7
14
8
1
4
8
2
2
14
13
4
15
2
6
9
11
13
2
1
8
1
11
7
3
10
15
5
10
6
12
11
6
12
9
3
12
11
7
14
5
9
3
10
9
5
10
0
0
3
5
6
7
8
0
13
1
13
14
8
8
4
7
10
14
7
11
1
6
15
10
3
11
2
4
15
3
8
13
4
4
14
1
2
9
12
5
11
7
0
8
6
2
1
12
7
13
10
6
12
12
6
9
0
0
9
3
5
5
11
2
14
10
5
15
9
0
7
6
10
9
0
4
13
14
9
9
0
6
3
8
6
3
4
15
9
15
6
3
8
5
10
0
7
1
2
11
4
13
8
1
15
12
5
2
14
7
14
12
3
11
12
5
11
4
11
10
5
2
15
14
2
8
1
7
12
13
8
6
15
14
11
9
0
3
5
0
6
0
6
12
10
6
15
11
1
9
0
7
13
10
3
13
8
1
4
15
9
2
7
1
4
8
2
3
5
5
12
14
11
11
1
5
12
12
10
2
7
4
14
8
2
15
9
4
14
12
11
2
8
4
2
1
12
1
12
11
7
7
4
10
1
10
7
13
14
11
13
7
2
6
1
8
13
8
5
15
6
5
0
9
15
3
15
12
0
15
10
5
9
13
3
6
10
0
9
3
4
14
8
0
5
9
6
14
3
1
15
14
3
10
4
15
2
15
2
5
12
9
7
2
9
2
12
8
5
6
9
12
15
8
5
3
10
0
6
7
11
13
1
0
14
3
13
4
1
4
14
10
7
14
0
1
6
7
11
13
0
5
3
11
8
11
8
6
13
11
0
4
11
2
11
11
13
14
7
13
8
15
4
12
1
0
9
3
4
8
1
7
10
13
10
14
7
3
14
10
9
12
3
15
5
9
5
6
0
7
12
8
15
5
2
0
14
10
15
5
2
6
8
9
3
1
6
2
12
2
15
11
1
8
13
4
14
4
8
1
7
6
10
9
4
15
3
12
10
11
7
14
8
1
4
2
13
10
12
0
15
9
5
6
12
3
6
10
9
14
11
13
0
5
0
15
3
0
14
3
5
12
9
5
6
7
2
8
11
S(2)
15
3
0
13
S(3)
10
13
13
1
S(4)
7
13
10
3
S(5)
2
14
4
11
S(6)
12
10
9
4
S(7)
4
13
1
6
S(8)
13
1
7
2
К табл. 4 требуются дополнительные пояснения. Каждая из функций
S(i)B(i) преобразует 6-битовый код в 4-битовый выход по следующему
алгоритму:
 первый и последний биты входной последовательности B, определяют номер строки k;
 второй, третий, четвертый и пятый биты последовательности B
задают номер колонки l;
 результат преобразования выбирается из строки k и колонки l.
Предположим, что B = 011011. Тогда S(1)(B) = 0101. Действительно,
k = 1, l = 13. В колонке 13 строки 1 задано значение 5, которое и является
значением функции S(1)(011011).
Функция перестановки бит P(L), также используемая для определения функции шифрования, задается значениями, приведенными в табл. 5.
В последовательности L 32 перестанавливается так, чтобы бит 16 стал
первым битом, бит 7 − вторым и т. д.
Таблица 5.
Функция перестановки P
16
29
1
5
2
32
19
22
7
12
15
18
8
27
13
11
20
28
23
31
24
3
30
4
21
17
26
10
14
9
6
25
Процесс получения ключей.
Чтобы завершить описание алгоритма шифрования данных, осталось
привести алгоритм получение ключей K(i), i = 1, 2, ..., 16, размерностью в
48 бит. Ключи K(i) определяются по 64-битовому ключу шифра как это
показано на рис. 3.
Ключ шифра
В
С(0)
D(0)
S(1)
S(1)
С(1)
D(1)
K(0)
S(2)
S(2)
С(n)
D(n)
K(n)
S(n)
S(n)
С(16)
D(16)
K(16)
Рис. 3
В начале над ключом шифра выполняется операция B, которая сводится к выбору определенных бит и их перестановке, как это показано в
табл. 6. Причем, первые четыре строки определяют, как выбираются биты последовательности C(0) (первым битом C(0) будет бит 57 бит ключа
шифра, затем бит 49 и т. д., а последними битами биты 44 и 36 ключа
шифра), а следующие четыре строки - как выбираются биты последовательности D(0) (т. е. последовательность D(0) будем состоять из битов 63,
55, ..., 12, 4 ключа шифра).
Таблица 6.
Функция перестановки и
выбора последовательности B
57
1
10
19
63
7
14
21
49
58
2
11
55
62
6
13
41
50
59
3
47
54
61
5
33
42
51
60
39
46
53
28
25
34
43
52
31
38
45
20
17
26
35
44
23
30
37
12
9
18
27
36
15
22
29
4
Как видно из табл. 6, для генерации последовательностей C(0) и D(0)
не используются биты 8, 16, 25, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не влияют на шифрование и могут служить для других целей (например, для контроля по четности). Таким образом, в действительности ключ
шифра является 56-битовым. После определения C(0) и D(0) рекурсивно
определяются C(i) и D(i), i=1,2,...,16. Для этого применяются операции
сдвига влево на один или два бита в зависимости от номера шага итерации, как это показано в табл. 7. Операции сдвига выполняются для последовательностей C(i) и D(i) независимо. Например, последовательность
C(3) получается, посредством сдвига влево на две позиции последовательности C(2), а последовательность D(3) − посредством сдвига влево на
две позиции последовательности D(2). Следует иметь в виду, что выполняется циклический сдвиг влево. Например, единичный сдвиг влево последовательности C(i) приведет к тому, что первый бит C(i) станет последним и последовательность бит будет следующая: 2, 3,..., 28, 1.
Таблица 7.
Функция сдвига Si
1
2
3
4
5
6
7
8
1
1
2
2
2
2
2
2
9
10
11
12
13
14
15
16
1
2
2
2
2
2
2
1
Ключ K(i), определяемый на каждом шаге итерации, есть результат
выбора определенных бит из 56-битовой последовательности C(i)D(i) и
их перестановки. Другими словами, K(i) = K(C(i)D(i)), где функция K
определяется данными, приведенными в табл. 8.
Таблица 8.
Функция перестановки и выбора K
14
3
23
16
41
30
44
46
17
28
19
7
52
40
49
42
11
15
12
27
31
51
39
50
24
6
4
20
37
45
56
36
1
21
26
13
47
33
34
29
5
10
8
2
55
48
53
32
Как следует из табл. 8 первый бит K(i) − это бит 14 последовательности C(i)D(i), второй − бит 17, последний − бит 32.
Рекомендации к выполнению лабораторной работы № 2
1. Изучить приведенный теоретический материал.
2. В любой визуальной среде программирования реализовать данный алгоритм. На «отлично» необходимо чтобы программа выполняла шифрование данных как с файла, так и с текстового окна программы.
На «хорошо» – программа должна выполнять шифрование только с
файла.
На «удовлетворительно» – программа должна выполнять шифрование только с текстового окна.
3. Для отчета лабораторной работы необходима действующая программа и отчет, который должен содержать краткое описание
проделанной работы.
Вопросы для самоконтроля:
1.
2.
3.
4.
К симметричным или несимметричным алгоритмам шифрования относится данный стандарт?
В чем достоинство алгоритма DES?
В чем выявляются недостатки данного алгоритма?
Перечислить основные этапы реализации.
Лабораторная работа № 3
Лабораторная работа рассчитана на 6 часов аудиторного времени.
Цель работы: Изучить и реализовать криптосистему с открытым
ключом на примере RSA.
Криптосистемы с открытыми ключами различаются видом односторонних функций. Среди них самыми известными являются системы RSA,
Эль-Гамаля и Мак-Элиса. В настоящее время наиболее эффективным и
распространенным алгоритмом шифрования с открытым ключом является алгоритм RSA, получивший свое название от первых букв фамилий
его создателей: Rivest, Shamir и Adleman.
Алгоритм основан на использовании операции возведения в степень
модульной арифметики. Его можно представить в виде следующей последовательности шагов[2].
Шаг 1. Выбираются два больших простых числа p и q. Простыми
называются числа, которые делятся только на самих себя и на 1. Величина этих чисел должна быть больше 200.
Шаг 2. Получается открытая компонента ключа n:
n  pq.
Шаг 3. Вычисляется функция Эйлера по формуле:
f ( p, q)  ( p  1)  (q  1).
Функция Эйлера показывает количество целых положительных чисел от 1 до n, которые взаимно просты с n. Взаимно простыми являются
такие числа, которые не имеют ни одного общего делителя, кроме 1.
Шаг 4. Выбирается простое число d, которое является взаимно простым со значением f(p,q).
Шаг 5. Выбираем число e, удовлетворяющее условию:
e  d  1(mod f ( p, q)).
Данное условие означает, что остаток от деления (вычет) произведения e  d на функцию f(p,q) равен 1. Число e принимается в качестве
второй компоненты открытого ключа. В качестве секретного ключа используются числа d и n.
Шаг 6. Исходная информация, независимо от ее физической природы, представляется в числовом двоичном виде. Последовательность бит
разделяется на блоки длиной L бит, где L – наименьшее целое число,
удовлетворяющее условию: L  log 2 (n  1) . Каждый блок рассматривается как целое положительное число X(i), принадлежащее интервалу
[0, n-1]. Таким образом, исходная информация представляется последовательностью чисел X(i), i=1, I. Значение I определяется длиной шифруемой последовательности.
Шаг 7. Зашифрованная информация получается в виде последовательности чисел Y(i), вычисляемых по формуле:
Y (i)  ( X (i)) e (mod n) .
Шаг 8. Для расшифрования информации используется следующая
зависимость:
X (i)  (Y (i)) d (mod n) .
Пример применения метода RSA (для простоты вычислений использованы минимально возможные числа).
Пусть требуется зашифрования сообщения «САВ».
Для зашифрования и расшифрования сообщения необходимо выполнить
следующие шаги.
Шаг 1. Выбирается р=3 и q=11.
Шаг 2. Вычисляется n=3*11=33.
Шаг 3. Определяется функция Эйлера f(p,q)= (3-1)*(11-1)=20.
Шаг 4. В качестве d выберем любое число, которое является взаимно
простым с 20, например d=3.
Шаг 5. Выбирается такое число e, которое удовлетворяло бы соотношению (e*3) mod 20=1. Пусть e=7.
Шаг 6. Исходное сообщение представляется как последовательность
целых чисел. в диапазоне 0…32. Пусть буква А изображается числом 1,
буква Б – числом 2, а буква С – числом 3. Тогда сообщение можно представить в виде последовательности чисел 3 1 2.
Шаг 7. Зашифруем сообщение, используя открытый ключ {7, 33}:
С1 = (37) mod 33=2187 mod 33 = 9,
С2 = (17) mod 33=1 mod 33 = 1,
С3 = (27) mod 33=128 mod 33 =29.
Шаг 8. Зашифруем сообщение Y(i)=<9,1,29>, осуществляется с помощью секретного ключа {3,33}:
M1=(97)mod33 = 729 mod33 = 3,
M2=(17)mod33 = 1 mod33 =1,
M3=(297)mod33 = 24389 mod33 = 2.
Таким образом, в результате расшифрования последовательности
Y(i), получено исходное сообщение «CAB».
Криптостойкость алгоритма RSA основывается на предположении,
что исключительно трудно определить секретный ключ по известному,
поскольку для этого необходимо решить задачу о существовании делителей целого числа. Данная задача является NP – полной и , как следствие
этого факта, не допускает в настоящее время эффективного (полиномиального) решения. Для чисел, состоящих из 200 цифр традиционные методы требуют выполнения огромного числа операций (около 1023).
Рекомендации к выполнению лабораторной работы № 3
Изучить приведенный теоретический материал.
В любой визуальной среде программирования реализовать данный алгоритм. На «отлично» необходимо чтобы программа выполняла шифрование данных как с файла, так и с текстового окна программы.
На «хорошо» – программа должна выполнять шифрование только с
файла.
На «удовлетворительно» – программа должна выполнять шифрование только с текстового окна.
3. Для отчета лабораторной работы необходима действующая программа, и отчет, который должен содержать краткое описание
проделанной работы.
1.
2.
Вопросы для самоконтроля:
1.
2.
3.
4.
К симметричным или несимметричным алгоритмам шифрования относится RSA?
В чем достоинства алгоритма RSA?
В чем выражаются недостатки данного алгоритма?
Перечислить основные этапы реализации.
Используемая литература:
1. Мельников В. В. Защита информации в компьютерных системах − М.: «Финансы
и статистика» 1997.− 386 с.
2. Завгородний В. И. Комплексная защита информации в копьютерных системах:
Учебное пособие. – М.: Логос; ПБОЮЛ Н. А. Егоров, 2001. – 264 с.
1.
2.
3.
4.
5.
6.
7.
8.
СОДЕРЖАНИЕ
Введение ……………………………………………………….………3
Лабораторная работа № 1 ………………………………………….…5
Рекомендации к выполнению лабораторной работы № 1 …...……..9
Лабораторная работа № 2………………………………………....…10
Рекомендации к выполнению лабораторной работы № 2 ……...…19
Лабораторная работа №3 …………..………………………… …….20
Рекомендации к выполнению лабораторной работы № 3 ….……..22
Используемая литература ……………………………….…..………22
Скачать