
- •Предисловие
- •Введение
- •Раздел I основания математики Глава 1. Элементы теории множеств
- •1.1. Понятие множества
- •1.2. Операции над множествами
- •1.3. Аксиомы и теоремы алгебры множеств
- •Глава 2. Числа
- •2.1. Системы счисления
- •2.2. Классы чисел
- •2.3. Элементы статистической обработки данных
- •2.4. Алгоритмы решения вычислительных задач
- •Глава 3. Элементы математической логики
- •3.1. Понятие высказывания
- •3.2. Операции над высказываниями
- •2.3. Аксиомы и теоремы алгебры логики
- •Раздел II основы математического анализа Глава 4. Функции
- •4.1. Понятие функции
- •4.2. Аппроксимация функций
- •4.3. Предел функции
- •Глава 5. Основы дифференциального исчисления
- •5.1. Производная функции
- •5.2. Свойства дифференцируемых функций
- •5.3. Дифференциал функции
- •Глава 6. Основы интегрального исчисления
- •6.1. Определенный интеграл
- •6.2. Машинные алгоритмы вычисления определенных интегралов
- •Раздел III основы теории вероятностей Глава 7. Понятие вероятности
- •7.1. Элементы комбинаторики
- •7.2. Случайные события
- •7.3. Классическое определение вероятности
- •7.4. Теорема умножения вероятностей
- •7.5. Основные формулы теории вероятностей
- •Глава 8. Случайные величины
- •8.1. Понятие случайной величины
- •8.2. Законы распределения случайных величин
- •8.3. Числовые характеристики случайных величин
- •8.4. Канонические распределения случайных величин
- •8.5. Энтропия и информация
- •Раздел IV. Основные способы и методы защиты информации Глава 9. Основы криптографической защиты информации
- •9.1. Принципы и основные понятия криптографической защиты информации
- •9.2. Основные понятия и определения
- •Глава 10. Методы криптографической защиты информации
- •10.1. Методы перестановки
- •10.2. Метод гаммирования
- •Ответы к задачам
- •Раздел I.
- •Глава 1. Элементы теории множеств
- •Глава 2. Числа
- •Глава 3. Элементы математической логики
- •Раздел II. Основы математического анализа
- •Глава 4. Функции
- •Глава 5. Основы дифференциального исчисления
- •Глава 6. Основы интегрального исчисления
- •Раздел III. Основы теории вероятностей
- •Глава 7. Понятие вероятности
- •Глава 8. Случайные величины
- •Глава 9. Основы криптографической защиты информации
- •Глава 10. Методы криптографической защиты информации
- •Приложение тесты
- •Тест 1. Элементы теории множеств
- •Тест 4. Функции
- •Тест 5. Основы дифференциального исчисления
- •Определенный интеграл
- •Тест 7. Понятие вероятностй
- •Тест 8. Случайные величины
- •Тест 10. Методы криптографической защиты информации
- •Литература
- •Сведения об авторах
- •Королёв Владимир Тимофеевич, Ловцов Дмитрий Анатольевич,
- •Математика и информатика Часть первая
10.2. Метод гаммирования
Для шифрования методом гаммирования вся информация (исходный текст, ключ, зашифрованный текст) представляется в числовой форме. Обычно каждому символу буквенного алфавита ставится в соответствие некоторый двоичный код.
Для зашифрования методом гаммирования сначала на основе секретного ключа формируется последовательность двоичных чисел. Каждое число – гамма Gi отвечает своему коду символа исходного текста ТИmi. Потом над двоичными кодами ТИmi и Gi выполняют поразрядно операцию сложения по модулю 2. Выполнение этой операции называют наложением гаммы Gi на код ТИmi (гаммиpованием). Результатом наложения гаммы будет код ТЗmi символа зашифрованного текста.
Таблица 10.11 |
|
Таблица 10.12 |
||||
x1 |
x0 |
Y |
|
Y |
x0 |
x1 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
1 |
1 |
|
1 |
1 |
0 |
1 |
0 |
1 |
|
1 |
0 |
1 |
1 |
1 |
0 |
|
0 |
1 |
1 |
Y=x1Åx0.
Здесь x1 – цифра кода ТИmi, x0 – цифра кода Gi, Y – цифра кода ТЗmi.
Выбор этой операции для кода гаммирования обусловлен тем, что она обратима (табл. 10.12), то есть
YÅx0=x1.
Это делает операцию гаммирования унифицированной: процедура расшифрования криптограммы выполняется путем наложения той же гаммы Gi на тот же код ТЗmi с получением кода ТИmi.
ПРИМЕЧАНИЕ. В криптографии (и не только там) убеждены, что логические операции сумма по модулю 2 (Å) и исключающее ИЛИ (XOR) – суть одно и то же. Дело в том, что для двух логических переменных таблицы истинности операций Å и XOR оказываются одинаковыми. Если же операндов больше двух, то таблицы истинности для операций Å и XOR будут существенно различными. И поэтому употребление названия XOR в качестве синонима Å некорректно.
Шифр гаммирования оказывается невскрываемым, если последовательность гамм представляет собою цепочку равновероятных случайных величин, а каждая гамма накладывается только один раз и только на один код (имеет место однократное гаммирование). В современных системах шифрования методом гаммирования последовательность гамм формируют программно. При этом получают цепочку псевдослучайных чисел. Дело в том, что элементы такой последовательности после некоторого их количества M повторяются, то есть эти элементы не являются строго случайными. Но в пределах одного периода их можно считать случайными. Для однократного гаммирования необходимо, чтобы число M было не меньше количества символов алфавита исходного текста. Каждую из программ для формирования гамм называют генератором псевдослучайных чисел.
Хорошими характеристиками в отношении периодичности и случайности получаемых гамм обладает генератор псевдослучайных чисел, который описывается таким соотношением:
Gi=(C1´Gi-1+C2)mod M, i=1,2,…, M . (10.2)
Как видим, каждая следующая гамма Gi получается из предыдущей Gi-1 путем умножения ее на константу C1, сложением полученного произведения с константой C2 и взятием этой суммы по модулю M. Для получения гаммы G1 необходимо задать величину G0 – порождающее число, которое не является гаммой, а представляет собою секретный ключ шифра гаммирования. Если C1 нечетно, а (C2)mod 4=1, то период повторения гамм равен M. Десятилетия были потрачены математиками на поиск удовлетворительных значений для C1, C2 и M. В конце концов, остановились на значениях C1=69069, C2=71365, а M должно быть степенью 2.
Рассмотрим конкретный вариант построения криптосистемы с использованием метода гаммирования.
Для кодирования символов русского алфавита используем восьмиразрядные двоичные изображения их естественных номеров из табл. 9.1. В табл. 10.13 приведены шестнадцатеричные эквиваленты этих кодов.
В алфавите 32 символа. Поэтому полагаем M=32=25.
Таблица 10.13 |
||||||||||||||||
Am |
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
М |
Н |
О |
П |
m |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0C |
0D |
0E |
0F |
Am |
Р |
С |
Т |
У |
Ф |
Х |
Ц |
Ч |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
m |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
1D |
1E |
1F |
Результат Si наложения гаммы Gi на код Тi символа исходного (зашифрованного) текста представим такой записью:
Si=ТiÅGi. (10.3)
Пример. Методом гаммирования
а) зашифровать слово ГАММА ,
б) расшифровать полученную криптограмму.
а) Результаты работы по зашифрованию исходного текста сведем в табл. 10.14.
Таблица 10.14 |
|||||
i |
1 |
2 |
3 |
4 |
5 |
ТИi |
Г |
А |
М |
М |
А |
ТИmi |
03 |
00 |
0C |
0C |
00 |
Gi |
18 |
1D |
1E |
0B |
14 |
ТЗmi |
1C |
1D |
12 |
05 |
14 |
ТЗi |
Ь |
Э |
Т |
Е |
Ф |
Далее
по формуле (10.2), в которой i=
,
G0=63,
генерируем последовательность гамм Gi
для каждого кода ТИmi.
Ниже на рис.
10.3 показан
листинг вычислений по формуле (10.2) в
системе компьютерной симуляции
Mathcad. В первой строке
заданы исходные данные, во второй
записана формула (10.2)
средствами Mathcad и
выведены результаты вычислений.
Вычисления ведутся в десятичной системе
счисления. В последнем столбце второй
строки листинга результаты переведены
в шестнадцатеричную систему. Эти
результаты и записываем в четвертую
строку табл. 10.14. Напомним, что
G0=63=3F
не является гаммой.
Для
каждой пары кодов ТИmi
и Gi
выполняем операцию наложения гаммы
(10.3) (напомним (см. гл. 2, табл.
2.1), что одна
шестнадцатеричная цифра – это четверка
двоичных цифр и наоборот):
i=1. |
ТИm1=03= |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G1=18= |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
|
|
S1= |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
=1C |
i=2. |
ТИm2=00= |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G2=1D= |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
S2= |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
=1D |
i=3. |
ТИm3=0C= |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G3=1E= |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
|
|
S3= |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
=12 |
i=4. |
ТИm4=0C= |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G4=0B= |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
S4= |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
=05 |
i=5. |
ТИm5=00= |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G5=14= |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
S5= |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
=14 |
Полученные коды ТЗmi записываем в пятую строку табл. 10.17.
Пользуясь табл. 10.16, для каждого кода ТЗ8i находим соответствующий ему символ ТЗi зашифрованного текста и записываем его в шестую строку табл. 10.17.
В результате получим криптограмму ЬЭТЕФ .
б) Результаты действий по расшифрованию криптограммы ЬЭТЕФ сведем в табл. 10.15, которая подобна табл. 10.14. Но во второй строке табл. 10.15 записаны символы ТЗi зашифрованного текста, а в третьей – их шестнадцатеричные эквиваленты ТЗmi.
Таблица 10.15 |
|||||
i |
1 |
2 |
3 |
4 |
5 |
ТЗi |
Ь |
Э |
Т |
Е |
Ф |
ТЗmi |
1C |
1D |
12 |
05 |
14 |
Gi |
18 |
1D |
1E |
0B |
14 |
ТИmi |
03 |
00 |
0C |
0C |
00 |
ТИi |
Г |
А |
М |
М |
А |
i=1. |
ТЗm1=1C= |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G1=18= |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
|
|
S1= |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
=03 |
i=2. |
ТЗm2=1D= |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G2=1D= |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
S2= |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
=00 |
i=3. |
ТЗm3=05= |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G3=0B= |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
S3= |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
=0C |
i=4. |
ТЗm4=05= |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G4=0B= |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
S4= |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
=0C |
i=5. |
ТЗm5=14= |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
|
Å |
Å |
Å |
Å |
Å |
Å |
Å |
Å |
|
|
G5=14= |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
S5= |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
=00 |
Полученные коды ТИmi записываем в пятую строку табл. 10.18.
Пользуясь табл. 10.13, для каждого кода ТИmi находим соответствующий ему символ ТИi расшифрованного текста и записываем его в шестую строку табл. 10.15.
В результате получим исходный текст ГАММА .
Этим примером мы проиллюстрировали тот факт, что гаммирование – унифицированная процедура зашифрования и расшифрования текстов.
Вопросы и задачи для самоконтроля
Изложить суть метода перестановки на примере шифра вертикальной перестановки.
С помощью шифра вертикальной перестановки с ключами K1=4, 1, 6, 2, 5, 3 и K2=4,2,3,5,7,1,6 зашифровать исходный текст
КЛЮЧИ ДОЛЖНЫ ВЫБИРАТЬСЯ СЛУЧАЙНО .
Изложить суть метода гаммирования.
Пояснить смысл операции сложения по модулю 2 и причины выбора этой операции для реализации метода гаммирования.
Описать назначение генератора псевдослучайных чисел и выбор его параметров.
Методом гаммирования
а) зашифровать слово АСУ ,
б) расшифровать полученную криптограмму.
В качестве гамм использовать первые три гаммы из табл. 10.17.
Выполнить ДКЗ: Тест 10. МЕТОДЫ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ.