- •1 Группа 3
- •2 Группа 16
- •3 Группа 23
- •1 Группа
- •1. Алгебраические структуры. Свойства алгебраических структур. Группы, подгруппы. Теория.
- •Практика.
- •2. Циклические группы. Теория.
- •Практика.
- •3. Кольца. Кольца классов вычетов. Теория.
- •Практика.
- •6. Простейшие шифры: простой замены, перестановочный, аффинный.
- •7. Шифры гаммирования. Шифр Виженера/Вернама (одноразовый блокнот).
- •9. Электронная подпись.
- •2 Группа
- •1. Шифр Хилла.
- •2. Генерация простых чисел.
- •3. Генерация псевдослучайных последовательностей и их тесты.
- •4. Криптография с открытым ключом.
- •5. Ранцевая криптосистема.
- •6. Криптосистема rsa. Теория.
- •Практика.
- •7. Криптосистема Эль-Гамаля. Теория.
- •Практика.
- •8. Протокол Диффи-Хеллмана. Модификация эллиптическими кривыми.
- •9. Алгоритмы работы с большими числами.
- •3 Группа
- •1. Стандарт шифрования des.
- •2. Стандарт шифрования aes.
- •3. Гост р 34.12-2015. Шифр «Магма».
- •4. Гост р 34.12-2015. Шифр «Кузнечик».
- •5. Гост р 34.10-2012.
Практика.
Генерация параметров, шифрование/расшифрование
1) Задаем параметр p
2) Находим первообразный корень g
3) Генерируем значение x
4) Рассчитываем значение
5)
Генерируем сеансовый ключ
в диапазоне от 2 до
Формула шифрования:
Формула расшифрования:
8. Протокол Диффи-Хеллмана. Модификация эллиптическими кривыми.
Разберите сами))))))))))))))
Протокол Диффи-Хеллмана – это протокол, позволяющий двум и более сторонам выработать общий секретный ключ по незащищенному каналу связи.
А и
Б знают некоторые два числа
и
,
которые не являются секретными. Каждый
из них генерирует свое большое случайное
число
и
и вычисляет остаток от деления
и
соответственно. А и Б обмениваются
полученными значениями и на их основе
вычисляют значение секретного ключа:
.
Модификация
на эллиптических кривых (задается
конечное поле
над которым задана эллиптическая кривая,
чем больше размер поля, тем выше
криптостойкость):
А и
Б генерируют собственные ключи: закрытые
ключи
и
и открытые ключи
и
,
где
– базовая точка, генерирующая подгруппу,
– случайное целое число из интервала
от 1 до
,
– порядок подгруппы. А и Б обмениваются
полученными открытыми ключами. На основе
полученных ключей вычисляется общий
секретный ключ:
Основное преимущество протокола Диффи-Хеллмана на эллиптических кривых (ECDH) над классическим (DH) заключается в обеспечении такой же стойкости шифрования при значительно меньшем размере ключей. Это приводит к ускорению вычислений, снижению нагрузки на процессор и меньшему объему передаваемых данных.
9. Алгоритмы работы с большими числами.
Быстрое возведение в степень (раскладывание степени и таблицей), тест Ферма
Для работы с большими числами используется алгоритм быстрого возведения в степень по модулю и тест Ферма.
БВвСпМ разложением степеней:
Раскладываем
значение степени
на двоичные слагаемые, т.е.
,
и записываем в следующем виде:
и вот так постепенно возводим в нужную
степень
БВвСпМ с помощью таблицы:
Представляем
значение степени в двоичном виде и
записываем задом наперед в таблицу в
строку K. Строка a
рассчитывается, как
.
Строка b рассчитывается
в зависимости от значения в строке К:
если 0, то
,
если 1, то
.
В качестве начальных значений задается
,
.
Пример: 1211 mod 481 = 181
K |
1 |
1 |
0 |
1 |
A |
12 |
144 |
53 |
404 |
b |
12 |
285 |
285 |
181 |
3 Группа
Везде где есть S могут спросить как по таблице замены заменить что попросят, это уже выяснилось только в день экзамена, поэтому этого в файле нету
1. Стандарт шифрования des.
Схема, как примерно работает
1) DES – симметричный блочный алгоритм, преобразует 64-битные блоки с помощью 56-битного ключа за 16 раундов сети Фейстеля. 64-битный блок переставляется согласно таблице (IP – инициирующая перестановка), а затем делится на две половины. Происходит преобразование функцией F, после чего производится финальная обратная перестановка объединенных половин.
2) Функция F основана на сети Фейстеля и производит 16 итераций прежде чем выдать результат. Правая половина расширяется до 48 бит, проходит через перестановку и XORится со сгенерированным ключом раунда. Полученное значение заменяется по таблице, а затем проходит через перестановку. Левый блок XORится с полученным значением и на следующем раунде становится правым блоком, а полученное ранее значение – левым.
3) 32-битный ключ раунда генерируется из начального 56-битного ключа (вообще изначально 64-битный, но каждый 8 бит в нем отбрасывается, как бит четности, поэтому 56-битный). Ключ делится на две половины, каждая из половин проходит через циклический сдвиг влево (сдвиг зависит от номера раунда). Полученные значения вновь объединяются, проходят через перестановку и сжимаются до 48 бит. Полученный результат является ключом раунда.
Следующий раундовый ключ уже будет генерироваться на основе начального ключа, который прошел через сдвиги.
