373d4e5596f9a853c57e4fb4ff9a6372.ppt
- Количество слайдов: 19
Математическая сложность алгоритмов шифрования Цель проекта: разработать собственный алгоритм шифрования информации на основе уже существующих реализаций
Задачи Узнать роль шифрования. Проанализировать популярные шифры. Сделать вывод о математической сложности рассмотренных шифров. Разработать свою функцию шифрования. Разработать собственный алгоритм шифрования
Гипотеза работы В рамках данного проекта предполагается возможность создания собственного алгебраического метода кодирования информации.
История шифрования (примеры): Движение факелов использовал древнегреческий историк Полибий (II в. до н. э. ); Оптический телеграф – семафор – впервые использовал Клод Шапп в 1791 г. ; Азбука и телеграфный аппарат Самюэла Морзе (1837);
История шифрования (примеры): Движение электромагнитной стрелки в электромагнитных телеграфных аппаратах П. Л. Шиллинг (1832) и Вебер и Гаусс (1833) Международный флажковый код для передачи информации оптическими сигналами впервые ввел капитан Фредерик Марьят в 1861 г. на основе свода корабельных сигналов
История шифрования (примеры): Беспроволочный телеграф (радиопередатчик) был изобретен А. С. Поповым в 1895 г. и Маркони в 1897 г. независимо друг от друга Беспроволочный телефон, телевидение (1935), затем и ЭВМ – новые средства связи, появившиеся в XX в. , с которыми связана новая эпоха в информатизации общества. Сэр Фрэнсис Бэкон (1561 – 1626), автор двухлитерного кода, доказал в 1580 г. , что для передачи информации достаточно двух знаков.
Для чего нужно шифрование? Для компактного хранения большого объема информации; Для соблюдения секретности передаваемых сообщений; Для соблюдения целостности передаваемой информации; Для идентифицируемости отправителя.
Методы шифрования Симметричные – для шифрования и расшифровки используется один и тот же ключ; Асимметричные - ключ для шифрования и ключ для расшифровки не совпадают; Блочное шифрование – данные шифруются порциями одинакового размера — блоками. Шифрование текущего блока не зависит от предыдущих данных и от положения блока в массиве данных. Потоковое шифрование - результат шифрования очередной порции данных зависит и от самой порции, и от всех предыдущих данных шифруемого массива.
Простые шифры Шифр перестановок - заключается в перестановке структурных элементов шифруемого массива — битов, цифр или символов. Шифр замен - одни значения заменяются на другие по индексной таблице. Замене подвергаются блоки элементов — битов или символов. Шифр функциональных преобразований заключается в выполнении сдвигов, логических и арифметических операций над элементами массива.
Криптографическая стойкость - способность криптографического алгоритма противостоять криптоанализу. Стойким считается алгоритм, успешная атака на который требует от атакующего обладания недостижимым на практике объемом вычислительных ресурсов или перехваченных открытых и зашифрованных сообщений либо настолько значительных затрат времени на раскрытие, что к его моменту защищенная информация утратит свою актуальность.
Криптографическая стойкость Об абсолютной стойкости говорят в случае, если криптосистема не может быть раскрыта ни теоретически, ни практически даже при наличии у атакующего бесконечно больших вычислительных ресурсов. О вычислительной стойкости системы говорят в случае, если потенциальная возможность вскрыть шифр существует только при выбранных параметрах и ключах шифрования. В настоящее время атакующий не может обладать достаточными вычислительными ресурсами для вскрытия шифра за приемлемое время.
Криптографическая стойкость Практическая стойкость систем с вычислительной стойкостью оценивается исключительно в расчете на определенный момент времени и последовательно c двух позиций: а) вычислительная сложность полного перебора; б) известные на данный момент слабости (уязвимости), и их влияние на вычислительную сложность.
Известные алгоритмы Square - шифрует данные блоками по 128 бит, длина ключа также составляет 128 бит. 128 -битный блок данных представляется в виде таблицы размером 4 x 4 отсюда и название алгоритма. Текущее значение байтового массива называется состоянием. Над состоянием выполняется 8 раундов преобразований. Skipjack - шифрует данные блоками по 64 бита и использует 80 -битный ключ шифрования. Обработка данных выполняется по 16 -битным словам, т. е. входной блок данных разбивается на четыре слова. Выполняется 32 раунда преобразований, причем алгоритм предполагает два варианта функций раунда (функции A и B), и в каждом раунде выполняется только одна из них.
Известные алгоритмы Blowfish - шифрует данные 64 -битными блоками. Ключ алгоритма имеет переменный размер - от 32 до 448 бит. Шифрование данных выполняется за 16 раундов, в каждом из которых над левым 32 -битным субблоком данных проводятся некоторые преобразующие действия.
Разработанный алгоритм Шаг 1. Каждой букве русского алфавита поставим в соответствие последовательность из пяти битов в соответствии с кодами Хэминга (см. таблицу). Это соответствие однозначно. А- 00000 И- 01000 Р- 10000 Ш-11000 Б- 00001 Й- 01001 С- 10001 Щ-11001 В- 00010 К- 01010 Т- 10010 Ь-11010 Г- 00011 Л- 01011 У- 10011 Ы-11011 Д- 00100 М- 01100 Ф- 10100 Ъ-11100 Е- 00101 Н- 01101 Х- 10101 Э- 11101 Ж- 00110 О- 01110 Ц- 10110 Ю-11110 З- 00111 П- 01111 Ч- 10111 Я- 11111 Шаг 2. Выберем секретный ключ k — трехзначное число, представленное в двоичном виде. Запишем его побитовое представление в строку подряд такое количество раз (возможно, нецелое), чтобы длина полученного массива бит была равна длине полученного сообщения — получим так называемую маску m. Шаг 3. Применим побитовую операцию XOR (она однозначно декодируется, см. таблицу). Шаг 4. Усложним код, добавив в него лишние символы: после каждого s-ого бита случайным образом вставим 0 или 1.
Пример Рассмотрим пример: зашифровываем слово ШИФР с ключом k=228, s = 3. Шаг 1. Переводим в побитовое представление: 11000 01000 10100 10000 Шаг 2. Из ключа k получим маску : 228 = 11100100, запишем несколько раз, чтобы соответствовало длине шифруемого сообщения: m = 11100 10011 10010 01110. Шаг 3. 11000 01000 10100 10000 XOR 11100 10011 10010 01110 = 00100 11011 00110 11110 Шаг 4. Вставим «лишние» биты после каждого третьего бита, например: 00100 11011 00110 11110 → 001 0 001 1 100 0 110 1 111 0 10 Таким будет наше зашифрованное сообщение.
Дешифровка Расшифровывание проводится в обратном порядке: сначала убирается каждый s+1 -ый «лишний» бит. Затем генерируем маску m из известного ключа k (наш код является симметричным, так как для расшифровывания сообщения используется тот же ключ, что и для шифрования). Восстанавливаем однозначно исходное сообщение, применив операцию XOR. Далее, каждый блок из пяти битов декодируем обратно по таблице в букву русского алфавита.
Заключение В рамках этого проекта были рассмотрены различные методы кодирования. Были отмечены причины распространенности такого явления как шифрование информации в настоящее время. Также удалось создать собственный алгоритм кодирования информации на основе изученных методов.
Литература 1. Теория электрической связи: учебное пособие / К. К. Васильев, В. А. Глушков, А. В. Дормидонтов, А. Г. Нестеренко; под общ. ред. К. К. Васильева. – Ульяновск: Ул. ГТУ, 2008. – 452 с. 2. Атаки на алгоритмы шифрования, BYTE/Россия" № 11'2004. 3 Современные алгоритмы шифрования, BYTE/Россия" № 8'2003 4. Интернет-ресурс https: //www. bytemag. ru/ 5. О. Н. Василенко, Теоретико-числовые алгоритмы в криптографии / О. Н. Василенко - Москва: Изд-во МЦНМО, 2003. – 326 стр. 6. Н. Смарт, Криптография/ Н. Смарт - Москва: Изд-во ТЕХНОСФЕРА, 2005. – 525 стр. 7. Интернет-ресурс https: //sites. google. com/site/umeniekodirovatinformaciu
373d4e5596f9a853c57e4fb4ff9a6372.ppt