- •Способы криптографической защиты информации в радиосвязи методические указания
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •Введение
- •Шифрование данных в группе симметричных блочных алгоритмов redoc.
- •Теоретическое введение
- •Алгоритм redoc III
- •Алгоритм зашифрования redoc III
- •Создание таблицы ключей
- •Алгоритм расшифрования redoc III
- •Шифрование данных с помощью генератора Геффе.
- •Теоретическое введение
- •Обобщенный генератор Геффе
- •Описание алгоритма решения задачи Решение данной задачи можно разбить на следующие этапы.
- •Хеширование данных с помощью алгоритма md5.
- •Теоретическое введение
- •Присоединение заполняющих (дополнительных) битов
- •Добавление длины
- •Инициализация md буфера
- •Обработка сообщения в блоках по 16 слов
- •Шифрование данных с помощью алгоритма a5.
- •Теоретическое введение
- •Шифр а5/0.
- •Шифр а5/1
- •Шифр а5/2.
- •Шифр а5/3
- •Шифрование данных с помощью алгоритма Blowfish.
- •Теоретическое введение Функциональное преобразование f(X) сети Фейстеля:
- •Алгоритм шифрования 64-битного блока с известным массивом p и f(X)
- •Алгоритм Blowfish
- •Выбор начального значения p-массива и таблицы замен
- •Шифрование данных с помощью алгоритма seal.
- •Теоретическое введение Обозначения.
- •Длина выхода.
- •Отображение ключа в таблицы.
- •Описание функции генерации таблиц.
- •Псевдослучайная функция.
- •Алгоритм seal (отображение 32-битного индекса в l бит).
- •Процедура инициализации seal.
- •Шифрование данных с помощью алгоритма rc2.
- •Теоретическое введение Структура алгоритма
- •Процедура расширения ключа
- •Шифрование данных с помощью алгоритма cast.
- •Теоретическое введение
- •Библиографический список
- •Содержание
- •Способы криптографической защиты
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •394026 Воронеж, Московский просп., 14
Шифрование данных с помощью алгоритма rc2.
Цель работы: изучить методы шифрования данных в алгоритме RC2 и освоить их практическое применение.
Теоретическое введение Структура алгоритма
Алгоритм RC2 шифрует данные блоками по 64 бита с использованием ключей переменного размера: от 8 до 1024 битов включительно; рекомендуемым размером ключа является 64 бита.
Алгоритм является сетью Фейстеля, в нем выполняются 18 раундов преобразований. Причем раунды алгоритма делятся на 2 типа: смешивающие (mix) раунды и объединяющие (mesh) раунды. Общая структура алгоритма такова:
Выполняются 5 смешивающих раундов.
Выполняется 1 объединяющий раунд.
Выполняются 6 смешивающих раундов.
Выполняется 1 объединяющий раунд.
Выполняются 5 смешивающих раундов.
Структура смешивающего раунда приведена на рис.8. Предполагается, что шифруемый блок данных разделен на 4 16-битных слова , над которыми смешивающий раунд в цикле по i от 0 до 3 выполняет следующие операции (составляющие показанную на рис. 1 функцию ):
где:
- Kj — фрагмент расширенного ключа, определяемый глобальной переменной j; данная переменная изначально равна нулю и увеличивается на 1 (как показано выше) в каждом смешивающем раунде; процедура расширения ключа подробно описана далее;
- & — побитовая логическая операция «и»;
-
27
Рис.8 Смешивающий раунд алгоритма RC2
- <<< — циклический сдвиг влево на число битов, определяемое значением (табл.2).
Таблица 2
i |
0 |
1 |
2 |
3 |
|
1 |
2 |
3 |
5 |
Таким образом, в каждой i -й итерации смешивающего раунда выполняется описанное выше преобразование (рис.9), которое модифицирует , на основе текущих значений трех остальных слов шифруемого блока и фрагмента расширенного ключа.
Рис.9 Функция алгоритма RC2.
А
28
Ri=Ri+Kn mod216,
где n = &63.
Таким образом, итерация объединяющего раунда представляет собой наложение операцией сложения по модулю 216 фрагмента расширенного ключа, индекс которого определяется 6 младшими битами текущего значения слова .
Процедура расширения ключа
Как было сказано выше, алгоритм RC2 использует ключи шифрования размером от 8 до 1024 битов, т. е. от 1 до 128 байтов.
Расширение ключа подразумевает получение из ключа шифрования 16- битных фрагментов расширенного ключа К0...К63, используемых в смешивающих раундах — по одному в каждой из 4 итераций каждого из 16 смешивающих раундов. Данная процедура выполняется в несколько шагов:
Инициализируется байтовый массив , используемый при расширении ключа:
где — исходный ключ шифрования, имеющий размер T байтов. Остальные байты массива L обнуляются.
И
29
где:
— размер ключа в битах;
— эффективный размер ключа в байтах;
— битовая маска, учитывающая остаточные биты ключа, если его размер в битах не кратен 8.
В цикле по i от до 127 выполняется следующая операция:
, где Р — табличная замена, приведенная в табл.3.
Таблица 3
с2 |
еО |
41 |
бе |
Of |
51 |
cb |
cc |
24 |
91 |
af |
50 |
al |
f4 |
70 |
39 |
99 |
7с |
За |
85 |
23 |
b8 |
b4 |
7a |
fc |
02 |
36 |
5b |
25 |
55 |
97 |
31 |
2d |
5d |
fa |
98 |
еЗ |
8a |
92 |
ae |
05 |
df |
29 |
10 |
67 |
6c |
ba |
c9 |
d3 |
00 |
еб |
cf |
el |
9e |
a8 |
2c |
63 |
16 |
01 |
3f |
58 |
e2 |
89 |
a9 |
Od |
38 |
34 |
lb |
ab |
33 |
ff |
bO |
bb |
48 |
0c |
5f |
b9 |
bl |
cd |
2e |
с5 |
f3 |
db |
47 |
e5 |
a5 |
9c |
77 |
0a |
a6 |
20 |
68 |
fe |
7f |
cl |
ad |
d9 |
78 |
f9 |
c4 |
19 |
dd |
b5 |
ed |
28 |
e9 |
fd |
79 |
4a |
aO |
d8 |
9d |
сб |
7е |
37 |
83 - |
2b |
76 |
53 |
8e |
62 |
4c |
64 |
88 |
44 |
8b |
fb |
a2 |
17 |
9а |
59 |
f5 |
87 |
b3 |
4f |
13 |
61 |
45 |
6d |
8d |
09 |
81 |
7d |
32 |
bd |
8f |
40 |
eb |
86 |
b7 |
7b |
0b |
fO |
95 |
21 |
22 |
5c |
6b |
4e |
82 |
54 |
d6 |
65 |
93 |
ce |
60 |
b2 |
lc |
73 |
56 |
cO |
14 |
a7 |
8c |
fl |
dc |
12 |
75 |
ca |
If |
3b |
be |
e4 |
dl |
42 |
3d |
d4 |
30 |
a3 |
3c |
b6 |
26 |
6f |
bf |
Oe |
da |
46 |
69 |
07 |
57 |
27 |
f2 |
Id |
9b |
be |
94 |
43 |
03 |
f8 |
11 |
c7 |
f6 |
90 |
ef |
3e |
e7 |
06 |
c3 |
d5 |
2f |
c8 |
66 |
le |
d7 |
08 |
e8 |
ea |
de |
80 |
52 |
ее |
f7 |
84 |
aa |
72 |
ac |
35 |
4d |
6a |
2a |
96 |
la |
d2 |
71 |
5a |
15 |
49 |
74 |
4b |
9f |
dO |
5e |
04 |
18 |
a4 |
ec |
Таким образом, значение 0 заменяется на D9, 1 — на 78 и т. д.
Псевдослучайная таблица Р сформирована на основе шестнадцатеричной записи дробной части числа .
Вычисляется :
30
Для использования в шифрующих преобразованиях 128-байтная последовательность представляется в виде 16-битных слов К0...К63:
.
Расшифровывание выполняется по той же общей схеме, что и зашифровывание. Однако при расшифровывании используются другие операции, выполняемые в смешивающем и объединяющем раундах.
Смешивающий раунд расшифровывания в цикле по i от 3 до 0 выполняет следующие операции:
где:
>>> — циклический сдвиг вправо на число битов, определяемое значением ;
- начальное значение j устанавливается не в 0, а в 63.
Аналогичным образом изменен и объединяющий раунд при расшифровывании по сравнению с зашифровыванием. В нем в цикле по i от 3 до 0 выполняется следующая операция:
Аналогичным образом изменен и объединяющий раунд при расшифровывании по сравнению с зашифровыванием. В нем в цикле по i от 3 до 0 выполняется следующая операция:
Ri=Ri-Kn mod 216; где .
Задание:
Используя алгоритм шифрования данных RC2, написать программу шифрования и дешифрования произвольного набора символов на любом языке программирования.
Порядок выполнения работы:
31
написать функцию дешифрования, в которую в качестве параметров передается ключ и символ (или строка символов) зашифрованного текста.
Оформление отчета:
В отчете следует привести краткие теоретические сведения. Кроме того, должны быть представлены: краткая блок-схема, текст программы, шифруемый набор символов, результаты выполнения программы.
Контрольные вопросы:
В чем заключается суть метода шифрования RC2?
Какой характерной особенностью процедура расширения ключа?
Что используется в качестве итерации объединяющего раунда?
32
ЛАБОРАТОРНАЯ РАБОТА №8