![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Задача №2. Алгоритм шифрования ГОСТ 28147-89.
Выполните первый цикл алгоритма шифрования ГОСТ 28147 89 в режиме простой замены. Для получения 64 бит исходного текста используйте 8 первых букв из своих данных: Фамилии Имени Отчества. Для получения ключа (256 бит) используют текст, состоящий из 32 букв. Первый подключ содержит первые 4 буквы. Решение Исходные данные для зашифрования: ГАЗИЗОВ Для ключа возьмем последовательность, состоящую из 32 букв: ГАЗИЗОВ ОТЛИЧНЫЙ СТУДЕНТ Для первого подключа Х используем первые 4 буквы ключа: ГУЗЕ. Переводим исходный текст и первый подключ в двоичную последовательность: исходный текст
1 Раунд первый подключ X0
Таким образом, первые 64 бита определяют входную последовательность L0: 11010100 11000000 11001001 11000111 R0: 11010011 11001011 11001011 11001000 следующие 32 бита определяют первый подключ Х0: 11000011 11010011 11000111 11000101 I. Найдем значение функции преобразования f(R0, X0) 1). Вычисление суммы R0 и X0 по mod 232 R0: 1101 0011 1100 1011 1100 1011 1100 1000 Х0: 1100 0011 1101 0011 1100 0111 1100 0101 1001 0111 1001 1111 1001 0011 1000 1101 2). Преобразование в блоке подстановки Результат суммирования R0+X0 по mod 232 1001 0111 1001 1111 1001 0011 1000 1101 преобразуем в блоке подстановки. Для каждого 4-битного блока вычислим его адрес в таблице подстановки. Номер блока соответствует номеру столбца, десятичное значение блока соответствует номеру строки в таблице. Номера блоков 8 7 6 5 4 3 2 1 1001 0111 1001 1111 1001 0011 1000 1101 Соответствующие номера строк в таблице подстановки 9 7 9 15 9 3 8 13 Заполнение 2 9 6 2 4 13 2 15 Результат 0010 1001 0110 0010 0100 1101 0010 1111 3). Циклический сдвиг результата п.2 на 11 бит влево 0001 1111 0011 1010 1011 1100 0101 1000 Таким образом, нашли значение функции f (R0, X0): 0001 1111 0011 1010 1011 1100 0101 1000 II. Вычисляем R1= f(R0, X0) Å L0. Результат преобразования функции f(R0, X0) складываем с L0 по mod2: L0: 1101 0100 1100 0000 1100 1001 1100 0111 f(R0, X0): 0001 1111 0011 1010 1011 1100 0101 1000 R1: 1100 1011 1111 1010 0111 0101 1001 1111
2 Раунд второй подключ X1
L1: 1101 0011 1100 1011 1100 1011 1100 1000 R1: 1100 1011 1111 1010 0111 0101 1001 1111 следующие 32 бита определяют второй подключ Х1: 11001011 11111100 00010000 11001111 I. Найдем значение функции преобразования f(R1, X1) 1). Вычисление суммы R1 и X1 по mod 232 R1: 1100 1011 1111 1010 0111 0101 1001 1111 Х1: 1100 1011 1111 1100 0001 0000 1100 1111 1001 0111 1111 0110 1000 0110 0110 1110 2). Преобразование в блоке подстановки Результат суммирования R1+X1 по mod 232 1001 0111 1111 0110 1000 0110 0110 1110 преобразуем в блоке подстановки. Для каждого 4-битного блока вычислим его адрес в таблице подстановки. Номер блока соответствует номеру столбца, десятичное значение блока соответствует номеру строки в таблице. Номера блоков 8 7 6 5 4 3 2 1 1001 0111 1111 0110 1000 0110 0110 1110 Соответствующие номера строк в таблице подстановки 9 7 15 6 8 6 6 14 Заполнение 2 9 14 13 14 4 15 5 Результат 0010 1001 1110 1101 1110 0100 1111 0101 3). Циклический сдвиг результата п.2 на 11 бит влево 0001 1110 1000 1100 0010 0101 0000 1101 Таким образом, нашли значение функции f (R1, X1): 0001 1110 1000 1100 0010 0101 0000 1101 II. Вычисляем R2= f(R1, X1) Å L1. Результат преобразования функции f(R1, X1) складываем с L1 по mod2: L1: 1101 0011 1100 1011 1100 1011 1100 1000 f(R1, X1): 0001 1110 1000 1100 0010 0101 0000 1101 R2: 1100 1101 0100 0111 1110 1110 1100 0101
Задача №3. Алгоритм шифрования RSA.
Сгенерируйте открытый и закрытый ключи в алгоритме шифрования RSA, выбрав простые числа p и q из первой сотни. Зашифруйте сообщение, состоящее из ваших инициалов: ФИО.
|