Содержание

1.​ Введение, задание, вариант…………………………………………………………………..2стр

2.​ Шифрование…………………………………………………………….4стр

3.​ Де шифрование……………………………………………………..…….8стр

4.​ Список используемой литературы…………………………….………..13стр

Варианты задания

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. Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. М.: КУДИЦ-ОБРАЗ, 2001. – 368 с.

6. Нечаев В.И. Элементы криптографии. Основы теории защиты информации. М.: Высшая школа, 1999. – 109 с.

7. Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии. М.: Гелиос АРВ, 2001. – 480 с.

8. Исагулиев К.П. Справочник по криптологии. М.: Новое знание, 2004. – 238 с.

9.​ Харин Ю.С., Берник В.И., Матвеев Г.В., Агиевич С.В. Математические и компьютерные основы криптологии. М.: Новое знание, 2003. – 384 с.

10. ГОСТ 2847-89. Системы обработки информации. Защита криптографическая. Ал​горитм криптографического преобразования.