Содержание
1. Введение, задание, вариант………………………
2. Шифрование………………
3. Де шифрование………………
4. Список используемой литературы………………
Варианты задания
1. Режим шифрования (дешифрования)
Группа 1: режим электронной кодировочной книги.
Группа 2: режим сцепления блоков шифрованного текста.
2. Направление сдвига
Группа 1: сдвиг осуществляется вправо.
Группа 2: сдвиг осуществляется влево.
3. Число позиций сдвига определяется первой буквой Вашей фамилии (буква “A” – сдвиг на 1 позицию, буква “Б” – сдвиг на 2 позиции и т.д.).
Основная часть
Таблица 1. Шифр алфавита
А |
00000 |
С |
10001 |
Б |
00001 |
Т |
10010 |
В |
00010 |
У |
10011 |
Г |
00011 |
Ф |
10100 |
Д |
00100 |
Х |
10101 |
Е |
00101 |
Ц |
10110 |
Ж |
00110 |
Ч |
10111 |
З |
00111 |
Ш |
11000 |
И |
01001 |
Щ |
11001 |
Й |
01010 |
Ъ |
11010 |
К |
01011 |
Ы |
11011 |
Л |
01011 |
Ь |
11100 |
М |
01100 |
Э |
11101 |
Н |
01101 |
Ю |
11110 |
О |
01110 |
Я |
11111 |
П |
01111 |
— |
— |
Р |
10000 |
— |
— |
Таблица 2. Шифр фамилии и инициалов «ШнейдерКВ»
Ш |
Н |
Е |
Й |
Д |
Е |
Р |
К |
В |
11000 |
O1101 |
OO101 |
O1010 |
OO100 |
OO101 |
10000 |
O1011 |
OOO10 |
Таким образом, получен шифр, состоящий из 40 символов, для верной шифровки необходимо 48 символов, добавляем «нули» в окончание.
Таблица 3. Разбиение шифра на блоки
Блок №1 |
Блок №2 |
Блок №3 |
11OOOO11O1OO1O1O |
1O1OOO1OOOO1O11O |
OOOO1O11OOO1OOOO |
Таблица 3. 32-битный ключ с разбиением на 4 раунда
Раунд №1 |
Раунд №2 |
Раунд №3 |
Раунд №4 |
11O111O1 |
O11OO1OO |
1O11OO11 |
O1O1111O |
Таблица 4. S-блоки №1и №2
S-блок №1 |
||||||||||||||||||
Вх. |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
||
Вых. |
15 |
14 |
13 |
6 |
11 |
10 |
9 |
8 |
7 |
12 |
3 |
4 |
5 |
2 |
1 |
0 |
||
S-блок №2 |
||||||||||||||||||
Вх. |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
||
Вых. |
8 |
15 |
10 |
11 |
12 |
13 |
14 |
9 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
ШИФРОВАНИЕ:
Блок № 1 1
11OOOO11 O1OO1O1O
Иксорим с под ключем №1 X
11O111O1
Получаем =
1OO1O111
Делим на две части:
1OO1 O111
Переводим в двоичный вид:
9 7
Подаем двоичный код на входа S блоков на выходе получаем:
12 9
Переводим в десятичный вид:
11OO1OO1
Совершаем сдвиг на 10 по букве К:
O111OO1O
Иксорим с левой частью Блока № 2: X
11OOOO11
Получаем =
1O11OOO1
Получившийся результат ставим в правую часть S блока № 1 2, а исходную правую часть ставим в левую часть S блока № 1 2
Блок № 1 2
O1OO1O1O 1O11OOO1
Иксорим с под ключем №2 X
O11OO1OO
Получаем =
11O1O1O1
Делим на две части:
11O1 O1O1
Переводим в двоичный вид:
13 5
Подаем двоичный код на входа S блоков на выходе получаем:
2 13
Переводим в десятичный вид:
OO1O 11O1
Совершаем сдвиг на 10 по букве К:
O1OO1O11
Иксорим с левой частью Блока № 2: X
O1OO1O1O
Получаем =
OOOOOOO1
Получившийся результат ставим в правую часть S блока № 1 3, а исходную правую часть ставим в левую часть S блока № 1 3
Блок № 1 3
1O11OOO1 OOOOOOO1
Иксорим с под ключем №3 X
1O11OO11
Получаем =
1O11OO1O
Делим на две части:
1O11 OO1O
Переводим в двоичный вид:
11 2
Подаем двоичный код на входа S блоков на выходе получаем:
4 10
Переводим в десятичный вид:
O1OO 1O1O
Совершаем сдвиг на 10 по букве К:
1OO1OO1O
Иксорим с левой частью Блока № 3: X
1O11OOO1
Получаем =
OO1OOO11
Получившийся результат ставим в правую часть S блока № 1 4, а исходную правую часть ставим в левую часть S блока № 1 4
Блок № 1 4
OOOOOOO1 OO1OOO11
Иксорим с под ключем №4 X
O1O1111O
Получаем =
O11111O1
Делим на две части:
O111 11O1
Переводим в двоичный вид:
7 13
Подаем двоичный код на входа S блоков на выходе получаем:
8 5
Переводим в десятичный вид:
1OOO O1O1
Совершаем сдвиг на 10 по букве К:
O11OOOO1
Иксорим с левой частью Блока № 3: X
OOOOOOO1
Получаем =
O11OOOOO
Получившийся результат ставим в левую часть S блока , а исходную правую часть оставляем справа
После шифрования S блока №1 получаем:
O11OOOOO OO1OOO11
Блок № 2 1
1O1OOO1O OOO1O11O
Иксорим с под ключем №1 X
11O111O1
Получаем =
11OO1O11
Делим на две части:
11OO 1O11
Переводим в двоичный вид:
12 11
Подаем двоичный код на входа S блоков на выходе получаем:
5 3
Переводим в десятичный вид:
O1O1OO11
Совершаем сдвиг на 10 по букве К:
11O1O1OO
Иксорим с левой частью Блока № 2: X
1O1OOO1O
Получаем =
O111O11O
Получившийся результат ставим в правую часть S блока № 2 2, а исходную правую часть ставим в левую часть S блока № 2 2
Блок № 2 2
OOO1O11O O111O11O
Иксорим с под ключем №2 X
O11OO1OO
Получаем =
OOO1OO1O
Делим на две части:
OOO1 OO1O
Переводим в двоичный вид:
1 2
Подаем двоичный код на входа S блоков на выходе получаем:
14 10
Переводим в десятичный вид:
111O 1010
Совершаем сдвиг на 10 по букве К:
1O111O1O
Иксорим с левой частью Блока № 2: X
OOO1O11O
Получаем =
1O1O11OO
Получившийся результат ставим в правую часть S блока № 2 3, а исходную правую часть ставим в левую часть S блока № 2 3
Блок № 2 3
O111O11O 1O1O11OO
Иксорим с под ключем №3 X
1O11OO11
Получаем =
OOO11111
Делим на две части:
OOO1 1111
Переводим в двоичный вид:
1 15
Подаем двоичный код на входа S блоков на выходе получаем:
14 7
Переводим в десятичный вид:
111O O111
Совершаем сдвиг на 10 по букве К:
11111OO1
Иксорим с левой частью Блока № 3: X
O111O11O
Получаем =
1OOO1111
Получившийся результат ставим в правую часть S блока № 2 4, а исходную правую часть ставим в левую часть S блока № 2 4
Блок № 2 4
1O1O11OO 1OOO1111
Иксорим с под ключем №4 X
O1O1111O
Получаем =
11O1OOO1
Делим на две части:
11O1 OOO1
Переводим в двоичный вид:
13 1
Подаем двоичный код на входа S блоков на выходе получаем:
2 15
Переводим в десятичный вид:
OO1O 1111
Совершаем сдвиг на 10 по букве К:
11OO1O11
Иксорим с левой частью Блока № 2: X
1O1O11OO
Получаем =
O11OO111
Получившийся результат ставим в левую часть S блока , а исходную правую часть оставляем справа
После шифрования S блока №2 получаем:
O11OO111 1OOO1111
Блок № 3 1
OOOO1O11 OOO1OOOO
Иксорим с под ключем №1 X
11O111O1
Получаем =
11OO11O1
Делим на две части:
11OO 1101
Переводим в двоичный вид:
12 13
Подаем двоичный код на входа S блоков на выходе получаем:
5 5
Переводим в десятичный вид:
O1O1O1O1
Совершаем сдвиг на 10 по букве К:
O1O1O1O1
Иксорим с левой частью Блока № 2: X
OOOO1O11
Получаем =
O1O1111O
Получившийся результат ставим в правую часть S блока № 3 2, а исходную правую часть ставим в левую часть S блока № 3 2
Блок № 3 2
OOO1OOOO O1O1111O
Иксорим с под ключем №2 X
O11OO1OO
Получаем =
OO111O1O
Делим на две части:
OO11 1O1O
Переводим в двоичный вид:
3 10
Подаем двоичный код на входа S блоков на выходе получаем:
6 2
Переводим в десятичный вид:
O11O OO1O
Совершаем сдвиг на 10 по букве К:
1OO11OOO
Иксорим с левой частью Блока № 2: X
OOO1OOOO
Получаем =
1OOO1OOO
Получившийся результат ставим в правую часть S блока № 3 3, а исходную правую часть ставим в левую часть S блока № 3 3
Блок № 3 3
O1O1111O 1OOO1OOO
Иксорим с под ключем №3 X
1O11OO11
Получаем =
OO111O11
Делим на две части:
OO11 1O11
Переводим в двоичный вид:
3 11
Подаем двоичный код на входа S блоков на выходе получаем:
6 3
Переводим в десятичный вид:
O11O OO11
Совершаем сдвиг на 10 по букве К:
11O11OOO
Иксорим с левой частью Блока № 3: X
O1O1111O
Получаем =
1OOOO11O
Получившийся результат ставим в правую часть S блока № 3 3, а исходную правую часть ставим в левую часть S блока № 3 3
Блок № 3 4
1OOO1OOO 1OOOO11O
Иксорим с под ключем №4 X
O1O1111O
Получаем =
11O11OOO
Делим на две части:
11O1 1OOO
Переводим в двоичный вид:
13 8
Подаем двоичный код на входа S блоков на выходе получаем:
2 0
Переводим в десятичный вид:
OO1O OOOO
Совершаем сдвиг на 10 по букве К:
OOOO1OOO
Иксорим с левой частью Блока № 4: X
1OOO1OOO
Получаем =
1OOOOOOO
Получившийся результат ставим в левую часть S блока , а исходную правую часть оставляем справа
После шифрования S блока №3 получаем:
1OOOOOOO 1OOOO11O
ДЕШИФРОВАНИЕ:
Блок № 3 4
1OOOOOOO 1OOOO11O
Иксорим с под ключем №4 X
O1O1111O
Получаем =
11O11OOO
Делим на две части:
11O1 1OOO
Переводим в двоичный вид:
13 8
Подаем двоичный код на входа S блоков на выходе получаем:
2 0
Переводим в десятичный вид:
OO1O OOOO
Совершаем сдвиг на 10 по букве К:
OOOO1OOO
Иксорим с левой частью Блока № 4: X
1OOOOOOO
Получаем =
1OOO1OOO
1OOOO11O 1OOO1OOO
Блок № 3 3
1OOOO11O 1OOO1OOO
Иксорим с под ключем №3 X
1O11OO11
Получаем =
OO111O11
Делим на две части:
OO11 1O11
Переводим в двоичный вид:
3 11
Подаем двоичный код на входа S блоков на выходе получаем:
6 3
Переводим в десятичный вид:
O11O OO11
Совершаем сдвиг на 10 по букве К:
11O11OOO
Иксорим с левой частью Блока № 3: X
1OOOO11O
Получаем =
O1O1111O
1OOO1OOO O1O1111O
Блок № 3 2
O1O1111O
Иксорим с под ключем №2 X
O11OO1OO
Получаем =
OO111O1O
Делим на две части:
OO11 1O1O
Переводим в двоичный вид:
3 10
Подаем двоичный код на входа S блоков на выходе получаем:
6 2
Переводим в десятичный вид:
O11O OO1O
Совершаем сдвиг на 10 по букве К:
1OO11OOO
Иксорим с левой частью Блока № 2: X
1OOO1OOO
Получаем =
OOO1OOOO
O1O1111O OOO1OOOO
Блок № 3 1
OOOO1O11 OOO1OOOO
Иксорим с под ключем №1 X
11O111O1
Получаем =
11OO11O1
Делим на две части:
11OO 1101
Переводим в двоичный вид:
12 13
Подаем двоичный код на входа S блоков на выходе получаем:
5 5
Переводим в десятичный вид:
O1O1O1O1
Совершаем сдвиг на 10 по букве К:
O1O1O1O1
Иксорим с левой частью Блока № 2: X
O1O1111O
Получаем =
OOOO1O11
Выходная характеристика S блока №3 после де шифрования будет равна:
OOO1OOOO OOOO1O11
Блок № 2 4
O11OO111 1OOO1111
O11OO111 1OOO1111
Иксорим с под ключем №4 X
O1O1111O
Получаем =
11O1OOO1
Делим на две части:
11O1 OOO1
Переводим в двоичный вид:
13 1
Подаем двоичный код на входа S блоков на выходе получаем:
2 15
Переводим в десятичный вид:
OO1O 1111
Совершаем сдвиг на 10 по букве К:
11OO1O11
Иксорим с левой частью Блока № 2: X
O11OO111
Получаем =
1O1O11OO
Блок № 2 3
1OOO1111 1O1O11OO
Иксорим с под ключем №3 X
1O11OO11
Получаем =
OOO11111
Делим на две части:
OOO1 1111
Переводим в двоичный вид:
1 15
Подаем двоичный код на входа S блоков на выходе получаем:
14 7
Переводим в десятичный вид:
111O O111
Совершаем сдвиг на 10 по букве К:
11111OO1
Иксорим с левой частью Блока № 3: X
1OOO1111
Получаем =
O111O11O
Блок № 2 2
1O1O11OO O111O11O
Иксорим с под ключем №2 X
O11OO1OO
Получаем =
OOO1OO1O
Делим на две части:
OOO1 OO1O
Переводим в двоичный вид:
1 2
Подаем двоичный код на входа S блоков на выходе получаем:
14 10
Переводим в десятичный вид:
111O 1010
Совершаем сдвиг на 10 по букве К:
1O111O1O
Иксорим с левой частью Блока № 2: X
1O1O11OO
Получаем =
OOO1O11O
Блок № 2 1
O111O11O OOO1O11O
Иксорим с под ключем №1 X
11O111O1
Получаем =
11OO1O11
Делим на две части:
11OO 1O11
Переводим в двоичный вид:
12 11
Подаем двоичный код на входа S блоков на выходе получаем:
5 3
Переводим в десятичный вид:
O1O1OO11
Совершаем сдвиг на 10 по букве К:
11O1O1OO
Иксорим с левой частью Блока № 2: X
O111O11O
Получаем =
1O1OOO1O
Выходная характеристика S блока №2 после де шифрования будет равна:
OOO1O11O 1O1OOO1O
—————-
Блок № 1 4
O11OOOOO OO1OOO11
Иксорим с под ключем №4 X
O1O1111O
Получаем =
O11111O1
Делим на две части:
O111 11O1
Переводим в двоичный вид:
7 13
Подаем двоичный код на входа S блоков на выходе получаем:
8 5
Переводим в десятичный вид:
1OOO O1O1
Совершаем сдвиг на 10 по букве К:
O11OOOO1
Иксорим с левой частью Блока № 3: X
O11OOOOO
Получаем =
OOOOOOO1
OO1OOO11 OOOOOOO1
Блок № 1 3
OO1OOO11 OOOOOOO1
Иксорим с под ключем №3 X
1O11OO11
Получаем =
1O11OO1O
Делим на две части:
1O11 OO1O
Переводим в двоичный вид:
11 2
Подаем двоичный код на входа S блоков на выходе получаем:
4 10
Переводим в десятичный вид:
O1OO 1O1O
Совершаем сдвиг на 10 по букве К:
1OO1OO1O
Иксорим с левой частью Блока № 3: X
OO1OOO11
Получаем =
1O11OOO1
Блок № 1 2
OOOOOOO1 1O11OOO1
Иксорим с под ключем №2 X
O11OO1OO
Получаем =
11O1O1O1
Делим на две части:
11O1 O1O1
Переводим в двоичный вид:
13 5
Подаем двоичный код на входа S блоков на выходе получаем:
2 13
Переводим в десятичный вид:
OO1O 11O1
Совершаем сдвиг на 10 по букве К:
O1OO1O11
Иксорим с левой частью Блока № 2: X
OOOOOOO1
Получаем =
O1OO1O1O
Блок № 1 1
1O11OOO1 O1OO1O1O
Иксорим с под ключем №1 X
11O111O1
Получаем =
1OO1O111
Делим на две части:
1OO1 O111
Переводим в двоичный вид:
9 7
Подаем двоичный код на входа S блоков на выходе получаем:
12 9
Переводим в десятичный вид:
11OO1OO1
Совершаем сдвиг на 10 по букве К:
O111OO1O
Иксорим с левой частью Блока № 2: X
1O11OOO1
Получаем =
11OOOO11
Выходная характеристика S блока №2 после де шифрования будет равна:
O1OO1O1O 11OOOO11
В результате де шифрования на выходе получился следующий десятичный код
11OOO O11O1 OO1O1 O1O1O OO1OO OO1O1 1OOOO O1O11 OOO1O OOO
Ш Н Е Й Д Е Р К В
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии. М.: Горячая линия–Телеком, 2001.
2. Шнайдер Б. Прикладная криптография. Протоколы, алгоритмы и исходные тексты на языке С.
3. Адигеев М.Г. Введение в криптографию. – Ростов на Дону, 2002.
4. Коробейников А.Г., Гатчин Ю.А. Математические основы криптологии. – СПб., 2004.
5. Иванов М.А. Криптографически
6. Нечаев В.И. Элементы криптографии. Основы теории защиты информации. М.: Высшая школа, 1999. – 109 с.
7. Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии. М.: Гелиос АРВ, 2001. – 480 с.
8. Исагулиев К.П. Справочник по криптологии. М.: Новое знание, 2004. – 238 с.
9. Харин Ю.С., Берник В.И., Матвеев Г.В., Агиевич С.В. Математические и компьютерные основы криптологии. М.: Новое знание, 2003. – 384 с.
10. ГОСТ 2847-89. Системы обработки информации. Защита криптографическа