Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Поточное двоичное шифрование файла на основе ЛР...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
167.52 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ

РАДИОЕЛЕКТРОНИКИ

Факультет Компьютерной инженерии и управления

Кафедра Безопасности информационных технологий

КУРСОВАЯ РАБОТА

Дисциплина: «Технологии программирования»

Тема: «Поточное шифрование файла»

Выполнил:

Студент I курса

Группы БИКС-12-1

Понарин Д.В.

Научный руководитель:

Мельникова О.А.

Харьков 2013

РЕФЕРАТ

Пояснительная записка к курсовой работе: 22c., 5 рис., 2 разделов, 2 приложение, 2 источника

Объект исследования — Регистр сдвига с линейной обратной связью.

Цель работы — разработка программы, которая зашифровует-расшифровует файл.

Метод исследования — изучение литературы, составление и отладка программы на компьютере.

Регистр сдвига с линейной обратной связью, применяется для генерации псевдослучайных последовательностей битов.

В результате выполнения курсовой работы была разработана программа, которая зашифровует-расшифровует файл. Программа была написана языком программирования C++, в среде программирования Microsoft Visual Studio.

КРИПТОГРАФИЯ, РЕГИСТР, КЛЮЧ, БЕЗОПАСНОСТЬ.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ..................................................................................................................61 ШИФРЫ И ГЕНЕРАТОР ЛРР. ИХ ВИДЫ И СВОЙСТВА……….......................7

    1. Потоковые шифры ......................................................................................7

      1. История………………………………………………………….7

      2. Синхронные потоковые шифры……………………………….8

      3. Самосинхронизирующиеся поточные шифры………………..9

      4. Гаммирование…………………………………………………10

    2. Линейный рекуррентный регистр………………………………………11

      1. Регистр сдвига с линейной обратной связью…………………11

      2. Программная реализация LFSR………………………………...13

      3. Линейная сложность…………………………………………...14

      4. Корреляционная независимость………………………………14

      5. Потоковые шифры на базе LFSR……………………………...15

  1. ОПИСАНИЕ ПРОГРАММЫ..............................................................................17

    1. Общие сведения…………………………………………………………17

    2. Функциональное назначение……………………………………………17

    3. Техничные средства, что используются………………………………..17

    4. Входные данные………………………………………………………….17

    5. Выходные данные………………………………………………………..17

ВЫВОДЫ...................................................................................................................18

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ...................................................19

ПРИЛОЖЕНИЕ А. ТЕКСТ ПРОГРАММЫ............................................................20

ПРИЛОЖЕНИЕ Б. ПРИМЕР РЕАЛИЗАЦИИ........................................................22

ВВЕДЕНИЕ

Проблема защиты информации – это вечная проблема человечества. На разных этапах своего развития она решалась по-разному, с присущей для данной эпохи характерностью. Появление и бурное развитие информационных технологий в конце XX века возвело проблему защиты информации в ранг первоочередных задач, от успешного решения которых часто зависит не только процветание предприятия, но и безопасность нации. Однако очевидна сложность проблемы информационной безопасности, проистекающая как из сложности и разнородности современных информационных систем, так и из необходимости применения комплексного подхода к безопасности с привлечением законодательных, административных и программно-технических мер. Находясь на стыке нескольких разнородных дисциплин, таких как: «Математика», «Криптография», «Аппаратное и программное обеспечение ЭВМ», «Программирование на языках высокого и низкого уровней», «Сетевые технологии», «Юриспруденция», «Психология» сама дисциплина «Методы и средства защиты компьютерной информации» является синтезированной и требует от инженера по информационной безопасности глубоких теоретических знаний и практических навыков в каждой из вышеперечисленных областей.

  1. Шифры и генератор лрр. Их виды и свойства

1.1 Потоковые шифры

Потоковые шифры преобразуют открытый текст в шифротекст по одному биту за операцию. Простейшая реализация потокового шифра показана на рисунке 1.1.1. Генератор потока ключей (иногда называемый генератором с бегущим ключом) выдаёт поток битов: k1, k2, k3, ..., ki. Этот поток ключей (иногда называемый бегущим ключом) и поток битов открытого текста, p1, p2, p3, ..., pi, подвергаются операции "исключающее или", и в результата получается поток битов шифротекста.

ci =pi ki

При дешифрировании операция XOR выполняется над битами шифротекста и тем же самым потоком ключей для восстановления битов открытого текста.

pi = ci ki

Так как

pi ki ki= pi

это работает правильно.

Безопасность системы полностью зависит от свойств генератора потока ключей. Если генератор потока ключей выдаёт бесконечную строку нулей, шифротекст будет совпадать с открытым текстом, и все операция будет бессмысленна. Если генератор потока ключей выплевывает повторяющийся 16-битовый шаблон, алгоритм будет являться простым XOR с пренебрежимо малой безопасностью. Если генератор потока ключей выплевывает бесконечный поток случайных (по настоящему, а не псевдослучайных битов, вы получаете одноразовый блокнот и идеальную безопасность.

Рис. -1.1.1. Потоковый шифр

      1. История

О важности сохранения информации в тайне знали уже в древние времена, когда с появлением письменности появилась и опасность прочтения ее нежелательными лицами.

Существовали три основных способа защиты информации. Первый и них предполагал защиту чисто силовыми методами: охрана документа физическими лицами, передача его специальным курьером и т. п. Второй способ получил название «Стеганография» латино-греческое сочетание слов, означающих «тайнопись». Он заключался в сокрытии самого факта наличия информации. Например, использование симпатических чернил, которые становятся видимыми лишь при определенном воздействии на бумагу – яркий пример тайнописи. Но он появился несколько позже. Первые способы сокрытия информации были приведены в трудах древнегреческого историка Геродота. На голове раба, которая брилась наголо, записывалось нужное сообщение. И когда волосы его отрастали, раба отправляли к адресату, который снова брил его голову и считывал полученное сообщение.

Третий способ защиты информации заключался в преобразовании смыслового текста в некий набор хаотических знаков (или букв алфавита). Получатель данного донесения имел возможность преобразовать его в то же самое осмысленное сообщение, если обладал ключом к его построению. Этот способ защиты информации называется криптографическим (от греческого слова crypto – шифрую и graf – пишу). По утверждению ряда специалистов криптография по возрасту – ровесник египетских пирамид. В документах древних цивилизаций – Индии, Египта, Месопотамии – есть сведения о системах и способах составления шифровальных систем.

      1. Синхронные потоковые шифры

В синхронном потоковом шифре поток ключей генерируется независимо от потока сообщения. Военные называют этот шифр ключевым автоключом (Key Auto-Key, KAK). При шифровании генератор потока ключей один за другим выдает биты потока ключей. При дешифрировании другой генератор потока ключей один за другим выдает идентичные биты потока ключей. Это работает, если оба генератора синхронизированы. Если один из них пропускает один из циклов, или если бит шифротекста теряется при передаче, то после ошибки каждый символ шифротекста будет расшифрован неправильно.

Если такое случается, отправитель и получатель должны повторно синхронизировать свои генераторы потока ключей прежде, чем можно будет продолжить работу. Что еще хуже, они должны выполнить синхронизацию так, чтобы ни одна часть потока ключей не была повторена, поэтому очевидное решение перевести генератор в более раннее состояние не работает.

Положительная сторона синхронных фильтров - это отсутствие распространения ошибок. Если при передаче бит изменит свое значение, что намного вероятнее его потери, то только испорченный бит будет дешифрован неправильно. Все предшествующие и последующие биты не изменятся.

Генератор должен выдавать один и тот же поток ключей и для шифрования, и для дешифрирования, следовательно, выход генератора должен быть предопределен. Если он реализуется на конечном автомате (т.е., компьютере), последовательность со временем повторится. Такие генераторы потока ключей называются периодическими. За исключением одноразовых блокнотов все генераторы потока ключей являются периодическими.

Генератор потока ключей должен обладать длинным периодом, намного более длинным, чем количество битов, выдаваемых между сменой ключей. Если период меньше, чем размер открытого текста, то различные части открытого текста будут зашифрованы одинаковым образом, что сильно ослабляет безопасность системы. Если криптоаналитику известна часть открытого текста, он может раскрыть часть потока ключей и использовать ее для дальнейшего раскрытия открытого текста. Даже если у аналитика есть только шифротекст, он может выполнить XOR над разделами, шифрованными одинаковым потоком ключей, и получить XOR соответствующих участков открытого текста. При этом используемый алгоритм превращается в простой алгоритм XOR с очень длинным ключом.

Конкретная длина периода зависит от приложения. Генератор потока ключей, шифрующий непрерывный канал T1, будет шифровать 2? бит в день. Период генератора должен быть на несколько порядков больше этого значения, даже если ключ меняется ежедневно. Если период имеет достаточную длину, ключ можно будет менять раз в неделю или даже раз в месяц.

Синхронные потоковые шифры также предохраняют от любых вставок и удалений шифротекста, так как они приводят к потере синхронизации и будут немедленно обнаружены. Однако, они не защищают полностью от битовых сбоев. Как и при блоковых шифрах в режиме CFB, Мэллори может изменить отдельные биты потока. Если ему известен открытый текст, он может изменить эти биты так, чтобы эти биты дешифрировались так, как ему надо. Дальнейшие биты при дешифрировании превратятся в чепуху (пока система не восстановится), но в определенных приложениях Мэллори может принести заметный ущерб.