Вы находитесь на странице: 1из 5

3.

ИССЛЕДОВАНИЕ АЛГОРИТМОВ И ПРОГРАММНЫХ СРЕДСТВ


БЛОЧНОГО СИММЕТРИЧНОГО ШИФРОВАНИЯ

3.1. Цель работы

Закрепить теоретические знания, приобрести навыки в проведении


криптоанализа, а также освоить стандарты блочного симметричного шифрования.

3.2. Методические указания по организации самостоятельной работы студентов

При подготовке к лабораторной работе необходимо:


- изучить сущность алгоритмов блочного симметричного шифрования;
- изучить стандарт шифрования ГОСТ 28147-89;
- изучить стандарт шифрования DES;
- изучить методы обеспечения аутентичности в блочных симметричных
системах;
- подготовить бланк отчета согласно разделу "Содержание отчета";
- подготовить ответы на контрольные вопросы.

Рассмотрим стандарт блочного симметричного шифрования ГОСТ 28147-89.


В алгоритме ГОСТ предусмотрены 4 режима шифрования.
1. Режим простой замены может использоваться только для шифрования
ключевых данных.
2. Режим поточного шифрования.
3. Режим поточного шифрования с обратной связью.
4. Режим выработки имитовставки используется для аутентификации
информации и может применяться совместно с любым из режимов шифрования.
В алгоритме ГОСТ 28147-89 используются следующие элементарные
криптографические преобразования:
- подстановка 4-разрядных векторов;
- перестановка 32-разрядных векторов;
- сложение по модулю 2;
- сложение по модулю 2^32;
- сложение по модулю 2^32-1.
В алгоритме используется сеансовый ключ X и долговременный ключ K. Ключ X
имеет длину 256 бит и может быть представлен в виде вектора из 8 32-разрядных слов
X(7)X(6)...X(0). Ключ K состоит из 8 таблиц подстановок K(1),K(2),...,K(8), каждая из
которых задает 4-битовую подстановку.
При описании алгоритма будем использовать следующие обозначения.
Если L и R - последовательности бит, то их конкатенацию будем обозначать
через LR.
Символом (+) обозначается побитовое сложение по модулю 2.
Символом [+] обозначается сложение по модулю 2^32:

A[+]B= A+B; если A+B < 2^32


A+B-2^32; если A+B < 2^32

Символом + обозначается сложение по модулю 2^32-1:


A+B = A+B; если A+B < 2^32
A+B-(2^32-1); если A+B < 2^32

Функция шифрования в режиме простой замены описывается уравнениями:


T(k) = A(0)B(0) (1)
A(i) = f ( A(i-1) [+] X(j) ) (+) B(i-1); (2)
B(i) = A(i-1);
i = 1,...,24; j = (i-1) mod 8

A(i) = f ( A(i-1) [+] X(j) ) (+) B(i-1); (3)


B(i) = A(i-1);
i = 25,...,31; j = 32 - i

A(32) = A(31) (4)


B(32) = f ( A(31) [+] X(0) ) (+) B(31);

Ш ( k ) = A(32)B(32); (5)

где f ( x ) - функция подстановки;


X(j) - 32-битовый блок сеансового ключа.

Процесс дешифрования в режиме простой замены происходит по формулам:

A(0)B(0) = Ш (k) (6)

A(i) = fш(A(i-1) [+] X(j) ) (+) B(i-1);


B(i) = A(i-1); (7)
для i = 1,...,8; j = i-1;

A(i) = fш(A(i-1) [+] X(j) ) (+) B(i-1);


B(i) = A(i-1); (8)
для i = 9,...,31; j = (32-i) mod 8;

A(32) = A(31);
B(32) = fш(A(31) [+] X(0) ) (+) B(31); (9)
для i = 32;

где i - номер итерации.

Т(k) = A(32)B(32) . (10)

В режиме поточного шифрования уравнение шифрования и дешифрования


данных может быть представлено в следующем виде:
Г(i) = F ( Y(i-1) [+] C2, Z(i-1) + C1 ) (11)
Ш(i) = Г(i) (+) T(i), (2)

где T(i) - 64-битовый блок открытого текста;


Ш(i) - 64-битовый блок шифрованного текста;
F ( a, b ) - функция шифрования в режиме простой замены;
C1, C2 - константы;
+ - сложение по модулю 2^32-1;
[+] - сложение по модулю 2^32;
(+) - сложение по модулю 2;
Y(i) и Z(i) - 32-разрядные числа, определяемые итеративно по формулам:
(Y(0), Z(0)) = F ( S ) (12)
(Y(i), Z(i)) = (Y(i-1) [+] C2, Z(i-1) + C1 ), (13)
где S - 64-разрядная синхропосылка.

Уравнение шифрования данных в режиме поточного шифрования с обратной связью


может быть представлено в виде:
Ш(1) = F(S) Е T(1), (14)
Ш(i) = F(Ш(i-1)) (+) T(i) = Г(i) (+) T(i), (15)
где Ш(i) - 64-разрядный блок зашифрованного текста;
F - функция шифрования в режиме простой замены;
S - 64-разрядная синхропосылка.
Уравнение дешифрования в этом режиме может быть представлено уравнениями:
Т(1) = F(S) (+) Ш(1), (16)
Т(i) = F(Ш(i-1)) (+) Ш(i) = Г(i) (+) Ш(i). (17)

Для получения имитовставки открытые данные T, подлежащие шифрованию,


разбиваются на блоки T(j) длиной 64 бита. Первый блок Т(1) подвергается
преобразованию, соответствующему первым 16 циклам алгоритма шифрования в
режиме простой замены, причем в качестве ключа выработки имитовставки ис-
пользуется ключ шифрования данных. Полученное 64-разрядное число суммируется по
модулю 2 со вторым блоком открытых данных Т(2). Результат преобразованию,
соответствующему первым 16 циклам алгоритма шифрования в режиме простой
замены.
Последний блок Т(m), при необходимости дополненный до 64-разрядного числа
нулями, суммируется по модулю 2 с результатом работы на (m-1)-м шаге и
зашифровывается. Из полученного 64-разрядного числа выделяется отрезок Ир длиной
р бит, который является хеш-функцией открытых данных (имитовставкой). Значение
параметра p определяется исходя из необходимости обеспечения требуемой
вероятности обмана.
При дешифровании аналогично формируется имитовставка И'p , которая
сравнивается с имитовставкой Иp, содержащей-
ся в принятом сообщении. В случае несовпадения полученное
сообщение считается ложным.

3.3. Порядок выполнения работы

3.3.1. Программное обеспечение шифрования по алгоритму ГОСТ 28147-89.

1. Сформируйте какой-нибудь текстовый файл.

2. Выполните шифрование этого файла с помощью команды:

AGOSTA -e <режим> <входной файл> <выходной файл> <признак удаления>

Параметр <режим> задает режим алгоритма шифрования и может принимать


числовые значения от 1 до 4.
Параметр <признак удаления> может принимать значения:
0 - не удалять исходный файл;
1 - удалять исходный файл.

После запуска программы необходимо ввести какой-либо пароль. Этот пароль


будет использован для генерации сеансового ключа.

Пример:
AGOSTA -e -1 x.txt x.sec 0

3. Выполните дешифрование файла с помощью команды:

AGOSTA -d <режим> <входной файл> <выходной файл> <признак удаления>


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

Пример:
AGOSTA -d -1 x.sec x1.txt 0

4. Выполните шифрование и дешифрование, используя все 4 режима алгоритма ГОСТ.

5. Повторите п.4, но при этом внесите изменения в зашифрованный файл


(начиная с 32-го символа). Определите, как при этом изменяется дешифрованный файл.
Объясните, почему произошли именно такие изменения.

II. Программное обеспечение шифрования по алгоритму DES.

Шифрование и дешифрование по алгоритму DES выполняется программой


DISKREET, входящей в пакет Norton Utilities.

1. Создайте файл и зашифруйте его (пункт Encrypt в меню File). Затем


дешифруйте его, используя тот же самый пароль (пункт Decrypt в меню File).

2. Выполните п.1, но для дешифрования используйте ключ с ошибкой.

3. Выполните п.1 с внесением искажений в зашифрованный файл. Сделайте


выводы.

3.4. Контрольные вопросы и задания.

1. Дайте общую характеристику алгоритма шифрования ГОСТ 28147-89.


2. Дайте характеристику режимов алгоритма ГОСТ 28147-89.
3. Как обеспечивается аутентичность при использовании алгоритма ГОСТ 28147-
89?
4. Поясните работу алгоритма ГОСТ в режиме простой замены.
5. Поясните работу алгоритма ГОСТ в режиме поточного шифрования.
6. Поясните работу алгоритма ГОСТ в режиме поточного шифрования с обратной
связью.
7. Поясните работу алгоритма ГОСТ в режиме выработки имитовставки.
8. Вычислите безопасное время и расстояние единственности для алгоритмов
ГОСТ и DES.
9. Дайте общую характеристику алгоритма DES.
10. Проведите сравнительный анализ алгоритмов ГОСТ и DES.
11. Дайте характеристику ключевых систем алгоритмов ГОСТ и DES.
12. Сравните поточные и блочные криптосистемы. Назовите их основные
достоинства и недостатки.
13. Сформулируйте предложения по применению алгоритма шифрования ГОСТ
28147-89 для цифровой подписи.
14. Определите расстояние единственности и безопасное время блочного
симметричного алгоритма, если ключ имеет длину N бит, а избыточность алфавита R
(см. табл. 1).

Таблица 1
Вариант N R Вариант N R
1 16 0,1; 0,5 13 272 0,2; 0,03
2 32 0,1; 0,2 14 288 0,2; 0,02
3 48 0,1; 0,3 15 304 0,2; 0,01
4 64 0,1; 0,4 16 320 0,2; 0,05
5 80 0,1; 0,5 17 336 0,2; 0,04
6 96 0,1; 0,2 18 352 0,2; 0,03
7 112 0,1; 0,3 19 368 0,2; 0,02
8 128 0,1; 0,4 20 384 0,2; 0,02
9 144 0,1; 0,5 21 400 0,2; 0,05
10 144 0,1; 0,2 22 416 0,2; 0,04
11 160 0,1; 0,3 23 432 0,2; 0,03
12 256 0,2; 0,04 24 448 0,2; 0,02