Файл: Курсовой проект по дисциплине Криптографические методы защиты информации.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.11.2023
Просмотров: 380
Скачиваний: 8
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Казанский национальный исследовательский технологический университет»
(ФГБОУ ВО «КНИТУ»)
Кафедра: Информационная безопасность
Направление (специальность): Информационная безопасность
Направленность (профиля/специализации): Организация и технология защиты информации
Группа: 1282-13
КУРСОВОЙ ПРОЕКТ
по дисциплине «Криптографические методы защиты информации»
на тему «Программная реализация шифра Вернама»
Исполнитель ____________________ ___________________
(дата, подпись) (Ф.И.О)
Руководитель____________________ ___________________
(дата, подпись) (должность, Ф.И.О)
Нормоконтролер_________________ ___________________
(дата, подпись) (должность, Ф.И.О)
Проект защищен с оценкой________________
Руководитель____________________________
(дата, подпись)
Казань, 2022 г.
ЗАДАНИЕ
На курсовой проект студенту кафедры: Крахмовой Виктории Дмитриевны, кафедры «Информационная безопасность»
Тема проекта: « Программная реализация шифра Вернама»
Исходные данные к проекту: Алгоритм шифрования
Содержание расчетно-пояснительной записки (включая перечень подлежащих разработке вопросов, включая вопросы стандартизации и контроля качества):
1) Изучение алгоритма шифрования
2) Выбор среды разработки
3) Программная реализация шифра Вернама с использованием языка Python
Перечень графического материала (схемной документации):
1) Предоставить реализацию программного кода шифрования текста и его расшифровки.
2) Разработать презентацию и вариант доклада для защиты курсового проекта (15-20 слайдов).
Консультанты по проекту (с указанием относящихся к ним разделов):
нормоконтроллер Саляхиева Г. И.
Дата выдачи задания «30» января 2022г.
Руководитель проекта ()
(подпись) (Фамилия И.О.)
Задание принял к исполнению ()
(подпись) (Фамилия И.О.)
СОДЕРЖАНИ
ВВЕДЕНИЕ 5
1 Криптография и её методы защиты 6
1.1 Понятие криптографии 6
1.2 Подсистема криптографической защиты 8
1.3 Аутентичность сообщений 10
1.4 Анализ существующих методов криптографических преобразований 12
2 Основные виды шифрования 16
2.1 Хеширование 16
2.2 Симметричное шифрование 17
2.3 Ассиметричное шифрование 18
2.4 Цифровая подпись 19
2.5 Сочетание методов шифрования 20
3 Разработка программы, выполняющей шифрование и расшифрование 22
3.1 Описание шифра Вернама 22
3.2 Среда разработки и языка 24
3.3 Демонстрация работы программы 24
ЗАКЛЮЧЕНИЕ 27
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 28
Приложение А 31
(обязательное) 31
Код программы для шифрования и расшифрования методом Вернама 31
ВВЕДЕНИЕ 4
1 Криптография и её методы защиты 5
1.1 Понятие криптографии 5
1.2 Подсистема криптографической защиты 7
1.3 Аутентичность сообщений 9
1.4 Анализ существующих методов криптографических преобразований 11
2 Основные виды шифрования 15
2.1 Хеширование 15
2.2 Симметричное шифрование 16
2.3 Ассиметричное шифрование 17
2.4 Цифровая подпись 19
2.5 Сочетание методов шифрования 19
3 Разработка программы, выполняющей шифрование и расшифрование 21
3.1 Описание шифра Вернама 21
3.2 Среда разработки и языка 23
3.3 Демонстрация работы программы 24
ЗАКЛЮЧЕНИЕ 26
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 27
Приложение А (Обязательное). Код программы для шифрования и расшифрования методом Вернама 30
ВВЕДЕНИЕ
Шифрование - это преобразование информации, делающее ее нечитаемой для посторонних. При этом доверенные лица могут провести расшифрование и прочитать исходную информацию. Существует множество способов шифрования / расшифрования, но секретность данных основана не на тайном алгоритме, а на том, что ключ шифрования (пароль) известен только доверенным лицам.
Шифрование появилось около четырех тысяч лет тому назад. Первым известным примером шифра считается египетский текст, созданный примерно в 1900 г. до н.э., в котором вместо обычных для египтян иероглифов использовались не совпадающие с ними символы.
На компьютере можно зашифровать абсолютно любой объект. Так как изучение криптографии началось еще в древности, то изучение шифров зашло уже очень далеко. Но проблема в том, что как только шифр создается, очень быстро находят способ расшифровки.
Цель курсового проекта – изучение криптографической защиты информации, методов её осуществления, а также программная реализация шифра Вернама на языке Python.
Задачами проводимого исследования являются:
-
изучение криптографии и методов её осуществления;
-
рассмотрение шифрования и расшифрования информации;
-
изучение шифра Вернама;
-
разработка программы, выполняющей шифрование и расшифровку;
-
программная реализация шифра Вернама;
-
демонстрация работы кода.
1 Криптография и её методы защиты
1.1 Понятие криптографии
Криптогра́фия — наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним), целостности данных (невозможности незаметного изменения информации), аутентификации (проверки подлинности авторства или иных свойств объекта), шифрования (кодировка данных).
Изначально криптография изучала методы шифрования информации — обратимого преобразования открытого (исходного) текста на основе секретного алгоритма или ключа в шифрованный текст (шифротекст). Традиционная криптография образует раздел симметричных криптосистем, в которых зашифровывание и расшифровывание проводится с использованием одного и того же секретного ключа.
Также современная криптография включает в себя асимметричные криптосистемы, системы электронной цифровой подписи (ЭЦП), хеш-функции, управление ключами, получение скрытой информации, квантовую криптографию.
Криптография не является защитой от обмана, подкупа или шантажа законных абонентов, кражи ключей и других угроз информации, возникающих в защищённых системах передачи данных.
Криптография — одна из старейших наук, её история насчитывает несколько тысяч лет.
Для современной криптографии характерно использование открытых алгоритмов шифрования, предполагающих использование вычислительных средств. Известно более десятка проверенных алгоритмов шифрования, которые при использовании ключа достаточной длины и корректной реализации алгоритма криптографически стойки.
Распространённые алгоритмы:
-
симметричные DES, AES, ГОСТ 28147-89, Camellia, Twofish, Blowfish, IDEA, RC4 и др.;
-
асимметричные RSA и Elgamal (Эль-Гамаль);
-
хеш-функций MD4, MD5, MD6, SHA-1, SHA-2, ГОСТ Р 34.11-2012 («Стрибог»).
Криптографические методы стали широко использоваться частными лицами в электронных коммерческих операциях, телекоммуникациях и многих других средах.
Во многих странах приняты национальные стандарты шифрования. В 2001 году в США принят стандарт симметричного шифрования AES на основе алгоритма Rijndael с длиной ключа 128, 192 и 256 бит. Алгоритм AES пришёл на смену прежнему алгоритму DES, который теперь рекомендовано использовать только в режиме Triple DES. [1]
Криптология (Криптология — наука о безопасности (секретности) связи) делится на две части: криптографию (шифрование) и криптоанализ. Криптографпытается найти методы обеспечения секретности и или аутентичности (подлинности) сообщений. Криптоаналитикпытается выполнить обратную задачу: раскрыть шифртекст или подделать его так, чтобы он был принят как подлинный.[2]
Одним из основных допущений криптографии является то, что криптоаналитик противника имеет полный шифртекст и ему известен алгоритм шифрования, за исключением секретного ключа. При этих допущениях криптограф разрабатывает систему, стойкую при анализе только на основе шифротекста. На практике допускается некоторое усложнение задачи криптографа. Криптоаналитик противника может иметь фрагменты открытого текста и соответствующего ему шифротекста. В этом случае криптограф разрабатывает систему стойкую при анализе на основе открытого текста. Криптограф может даже допустить, что криптоаналитик противника способен ввести свой открытый текст и получить правильный шифртекст с помощью секретного ключа (анализ на основе выбранного открытого текста), и наконец, — объединить две последние возможности (анализ на основе выбранного текста).
Многие из стратегий нарушителя могут быть блокированы с помощью криптографических средств защиты информации, но следует отметить, что большинство стратегий нарушителя связано с проблемами аутентичности пользователя и сообщений.
1.2 Подсистема криптографической защиты
Подсистема объединяет средства криптографической защиты информации и предназначена для обеспечения целостности, конфиденциальности, аутентичности критичной информации, а также обеспечения юридической значимости электронных документов в ИС. По ряду функций подсистема кооперируется с подсистемой защиты от НСД. Поддержку подсистемы криптографической защиты в части управления ключами осуществляет подсистема управления СЗИ.
Структурно подсистема состоит из:
-
программных средств симметричного шифрования данных;
-
программно-аппаратных средств цифровой подписи электронных документов (ПАС ЦП). Функции подсистемы предусматривают;
-
обеспечение целостности передаваемой по каналам связи и хранимой информации;
-
имитозащиту сообщений, передаваемых по каналам связи;
-
скрытие смыслового содержания конфиденциальных сообщений, передаваемых по каналам связи и хранимых на носителях;
-
обеспечение юридической значимости электронных документов;
-
обеспечение аутентификации источника данных.
-
Функции подсистемы направлены на ликвидацию наиболее распространенных угроз сообщениям в автоматизированных системах:
-
угрозы, направленные на несанкционированное ознакомление с информацией;
-
несанкционированное чтение информации на машинных носителях и в ЗУ ЭВМ;
-
незаконное подключение к аппаратуре и линиям связи;
-
снятие информации на шинах питания;
-
перехват ЭМИ с линий связи;
-
угрозы, направленные на несанкционированную модификацию (нарушение целостности) информации:
-
изменение служебной или содержательной части сообщения;
-
подмена сообщения;
-
изъятие (уничтожение) сообщения.
-
угрозы, направленные на искажение аутентичности отправителя сообщения:
-
незаконное присвоение идентификаторов другого пользователя, формирование и отправка электронного документа от его имени (маскарад), либо утверждение, что информация получена от некоего пользователя, хотя она сформирована самим нарушителем;
-
повторная передача документа, сформированного другим пользователем;
-
искажение критичных с точки зрения аутентичности полей документа (даты формирования, порядкового номера, адресных данных, идентификаторов отправителя и получателя и др.).
-
угрозы, связанные с непризнанием участия:
-
отказ от факта формирования электронного документа;
-
отказ от факта получения электронного документа или ложные сведения о времени его получения;
-
утверждение, что получателю в определенный момент была послана информация, которая в действительности не посылалась (или посылалась в другое время).
1.3 Аутентичность сообщений
Конечной целью шифрования является обеспечение защиты информации от несанкционированного ознакомления, аутентификации обеспечения защиты участников информационного обмена от обмана, осуществляемого на основе имитации, т.е., например подделки шифртекста до прихода подлинного шифртекста, подмены (навязывании) ложной информации после прихода подлинного шифртекста.
Под аутентификацией информациипонимается установление подлинности информации исключительно на основе внутренней структуры самой информации независимо от источника этой информации, установление законным получателем (возможно арбитром) факта, что полученная информация наиболее вероятно была передана законным отправителем (источником) и что она при этом не заменена и не искажена.
Любые преднамеренные и случайные попытки искажений информации обнаруживаются с определенной вероятностью. Наиболее полно проблема аутентичностипроявляется в вычислительных сетях, где можно выделить следующие ее виды:
Аутентификация пользователя сети— установление подлинности личности пользователя сети, которому требуется доступ к защищаемой информации или необходимо подключиться к сети;
Аутентификация сети— установление подлинности сети, к которой получен доступ;
Аутентификация хранящихся массивов программ и данных— установление факта, что данный массив не был изменен в течение времени, когда он был вне посредственного контроля, а также решение вопросов об авторстве этого массива данных;
Аутентификация сообщений— установление подлинности содержания полученного по каналам связи сообщения и решение вопросов об авторстве сообщения.
Решение указанных задач возможно как с применением классических систем шифрования, так и систем с открытым ключом.
Криптографические методы защиты информации основаны на использовании криптографических систем, или шифров. Криптосистемы позволяют с высокой степенью надежности защитить информацию путем ее специального преобразования. В криптопреобразовании используется один или несколько секретных параметров, неизвестных злоумышленнику, на чем и основана стойкость криптосистем.
Имитозащита сообщений состоит в формировании контрольной суммы (имитовставки, кода аутентификации сообщения) по криптоалгоритму, добавляемой к сообщению. После этого сообщение с имитовставкой, как правило, шифруется по симметричному криптоалгоритму. Принципы формирования имитовставок (кодов аутентификации сообщений) подробно рассмотрены в аванпроекте "Разработка пакета программных средств обеспечения юридической значимости лицензий посредством цифровой подписи".
Имитозащита обеспечивает — целостность сообщения в соответствии со свойствами контрольной суммы.
1.4 Анализ существующих методов криптографических преобразований
Внастоящее время широкое применение нашли как симметричные, так и несимметричные криптосистемы.
Симметричные системы используются в основном для шифрования, а также для выработки криптографических контрольных сумм (имитовставки, хеш-функции). По способу использования средств шифрования информации обычно различают поточное и блочное симметричное шифрование. При поточном шифровании каждый символ исходного текста преобразуется независимо от других, что позволяет осуществлять шифрование одновременно с передачей данных по каналу связи. При блочном шифровании исходный текст преобразуется поблочно, причем преобразование символов в пределах блока является взаимозависимым. Известно большое число алгоритмов блочного шифрования, в том числе принятых в качестве национальных стандартов. Наиболее известен американский алгоритм DES.[3]
Шифрование сообщений осуществляется на абонентском или канальном уровне. Средства шифрования реализуются программно, аппаратно-программно или аппаратно.
Разработки в области канального шифрования ведутся в основном в странах НАТО. Среди фирм, изготавливающих подобное оборудование, наиболее известными являются: CyLink, Fredericks, Harris, GTE, E-Systems (США), Newbridge Microsystems (Канада), Siemens, Telefunken, Tele Security Timman (Германия), Philips USFA (Нидерланды), Cryptech Belgie (Бельгия), Plessy, Racal, Corros, Marconi (Великобритания).
Интересным с точки зрения перспектив развития средств канального шифрования является предложенный фирмой Newbridge Microsystems (Канада) процессор СА20СОЗА для шифрования данных по стандарту DES. Ключ хранится в энергонезависимой постоянной памяти, не имеющей доступа извне. Предлагаются версии процессора с тактовыми частотами 2,5 и 5 МГц.[4]
Наиболее важными характеристиками средств шифрования, работающих на канальном уровне, являются:
-
скорость шифрования;
-
используемый алгоритм;
-
режим работы;
-
тип интерфейса;
-
возможность работы в сетях с коммутацией пакетов Х.25;
-
тип возможных к использованию модемов;
-
протоколы обмена ключевой информацией;
-
способ ввода ключей;
-
реализация функций обратного вызова, электронной подписи и др.
В основном скорости шифрования равны 64 Кбит/с для синхронного режима и 19,2 Кбит/с для асинхронного. Этого вполне достаточно для работы по выделенным телефонным линиям, но совершенно не приемлемо для обмена зашифрованной информацией по оптоволоконным линиям связи.
Для таких приложений могут подойти только высокоскоростные шифраторы CIDEC-HS, CIDEC-HSi, и CIDEC-VHS фирмы Cylink — мирового лидера в производстве средств канального шифрования. Устройство FX-709 также обеспечивает высокую скорость работы, но является мостом для соединения сетей Ethernet через интерфейсы RS-422 и RS-449.
Для канального шифрования, как правило, используются потоковые шифры. Главным их достоинством является отсутствие размножения ошибок и высокая скорость. Единственным стандартным методом генерирования последовательностей для поточного шифрования остается метод, применяемый в стандарте шифрования данных DES в режиме обратной связи от выхода. Поэтому многие производители разрабатывают собственные алгоритмы, например фирма British Telecom реализовала в своих приборах B-CRYPT собственный секретный алгоритм В-152.
Программа аттестации коммерческих средств защиты связи ССЕР (Commercial COMSEC endorsement program) Агентства национальной безопасности (АНБ) США предусматривает выдачу секретных криптоалгоритмов некоторым фирмам-изготовителям интегральных микросхем США для использования их только в США. Первый такой алгоритм был реализован фирмой Harris Semiconductor в ее криптографическом кристалле с интег-ральными микросхемами HS3447 Cipher. [5]
Шифраторы, работающие на низких скоростях, обычно совмещают с модемами (STM-9600, Glo-Warm, Mesa 432i). Для средне- и высокоскоростных шифраторов изготовители обеспечивают совместимость с протоколами V.35, RS-449/422, RS-232 и Х.21. Определенная группа приборов ориентирована на применение в узлах и конечных пунктах сетей с коммутацией пакетов Х.25 (Datacriptor 64, Secure X.25L, Secure X.25H, Telecript-Dat, CD225, KryptoGuard). Управление ключами — принципиально важный вопрос в любой криптосис-теме. Большинство канальных шифраторов американского производства ориен-тировано на иерархический метод распределения ключей, описываемый национальным стандартом ANSI X9.17. В коммерческом секторе получают распространение криптосистемы с открытым распределением ключей. Например, фирма Cylink помимо реализации ANSI X9.17 имеет собственную запатентованную систему автоматического распределения ключей SEEK.[6]
Ввод ключей в шифраторы может выполняться вручную с приборной панели, при помощи специальных карт либо дистанционно. Шифратором Glo-Warm можно управлять с сервера или рабочих станций; он имеет дополнительный внешний модуль дистанционного доступа.
Фирма Airtech, одна из первых начавшая производство стандартных встраиваемых блоков шифрования Rambutan, применяет магнитные карты для ввода ключей в канальные шифраторы. Фирма British Telecom выпускает карточку шифрования Lector 3000 для "дорожной" ЭВМ Toshiba TS 200/100 в версии с блоком Rambutan. Блок Rambutan разработан Группой безопасности связи и электронных средств CESG (Communications Electronics Security Group) Правительственного Управления связи Великобритании GCHQ (Government Communications Headguarters) специально для встраивания в аппаратуру, предназначенную для обработки и передачи важной правительственной информации, включающей и информацию с грифом "конфиденциально".
Шифраторы фирмы Cylink имеют клавиатуру для ввода ключей и могут передавать сигналы тревоги и состояния прибора. Дистанционная система управления сетью CNMS (Cylink Network Management System) фирмы Cylink может контролировать до 256 шифраторов CIDECHSi из одного центрального пункта.[7]
Несимметричные криптосистемы используются для формирования цифровой подписи и шифрования (формирования) симметричных ключей при их рассылке по каналам связи. Среди протоколов распределения ключей на практике используется метод Диффи-Хеллмана и метод цифрового конверта. Среди методов цифровой подписи наибольшее применение нашли RSA-подобные алгоритмы и алгоритмы на основе метода Эль-Гамаля, стандар-тизованные в ряде стран. Наиболее перспективным представляется использование усовершенствованного метода цифровой подписи Эль-Гамаля, который в последние годы стандартизован в США и России. [8]
2 Основные виды шифрования
Так как возможности интернета продолжают расти, все больше и больше предприятий проводятся на работу онлайн. Среди этого наиболее важными являются, интернет банк, онлайн оплата, электронные письма, обмен частными и служебными сообщениями и др., которые предусматривают обмен конфиденциальными данными и информацией. Если эти данные попадут в чужие руки, это может нанести вред не только отдельному пользователю, но и всей онлайн системе бизнеса.
Чтобы этого не происходило, были приняты некоторые сетевые меры безопасности для защиты передачи личных данных. Главными среди них являются процессы шифрования и расшифрования данных, которые известны как криптография. Существуют четыре основных методов шифрования, используемых в большинстве систем сегодня: хеширование, симметричное, асимметричное шифрование и цифровая подпись. В следующих строках, я расскажу о каждом из этих типов шифрования более подробно.[9]
2.1 Хеширование
Методика хеширования использует алгоритм, известный как хэш-функция для генерации специальной строки из приведенных данных, известных как хэш.
Этот хэш имеет следующие свойства:
-
одни и те же данные всегда производит тот же самый хэш;
-
невозможно, генерировать исходные данные из хэша в одиночку;
-
нецелесообразно пробовать разные комбинации входных данных, чтобы попытаться генерировать тот же самый хэш.
Таким образом, основное различие между хэшированием и двумя другими формами шифрования данных заключается в том, что, как только данные зашифрованы (хешированы), они не могут быть получены обратно в первозданном виде (расшифрованы). Этот факт гарантирует, что даже если хакер получает на руки хэш, это будет бесполезно для него, так как он не сможет расшифровать содержимое сообщения.
Message Digest 5 (MD5) и Secure Hashing Algorithm (SHA) являются двумя широко используемыми алгоритмами хеширования.[10]
Ограничения хеширования: как уже упоминалось ранее, почти невозможно расшифровать данные из заданного хеша. Впрочем, это справедливо, только если реализовано сильное хэширование. В случае слабой реализации техники хеширования, используя достаточное количество ресурсов и атаки грубой силой, настойчивый хакер может найти данные, которые совпадают с хэшем.
2.2 Симметричное шифрование
При симметричном шифровании, нормальные читабельные данные, известные как обычный текст, кодируется (шифруется), так, что он становится нечитаемым. Это скремблирование данных производится с помощью ключа. Как только данные будут зашифрованы, их можно безопасно передавать на ресивер. У получателя, зашифрованные данные декодируются с помощью того же ключа, который использовался для кодирования.
Таким образом ясно что ключ является наиболее важной частью симметричного шифрования. Он должен быть скрыт от посторонних, так как каждый у кого есть к нему доступ сможет расшифровать приватные данные. Вот почему этот тип шифрования также известен как "секретный ключ".
В современных системах, ключ обычно представляет собой строку данных, которые получены из надежного пароля, или из совершенно случайного источника. Он подается в симметричное шифрование программного обеспечения, которое использует его, чтобы засекретить входные данные. Скремблирование данных достигается с помощью симметричного алгоритма шифрования, такие как стандарт шифрования данных (DES), расширенный стандарт шифрования (AES), или международный алгоритм шифрования данных (IDEA). [11]
Ограничения симметричного шифрования: самым слабым звеном в этом типе шифрования является безопасность ключа, как в плане хранения, так и при передаче аутентифицированного пользователя. Если хакер способен достать этот ключ, он может легко расшифровать зашифрованные данные, уничтожая весь смысл шифрования. Еще один недостаток объясняется тем, что программное обеспечение, которое обрабатывает данные не может работать с зашифрованными данными. Следовательно, для возможности использовать этого программного обеспечение, данные сначала должны быть декодированы. Если само программное обеспечение скомпрометировано, то злоумышленник сможет легко получить данные.
2.3 Ассиметричное шифрование
Асимметричный ключ шифрования работает аналогично симметричному ключу, в том, что он использует ключ для кодирования передаваемых сообщений. Однако, вместо того, чтобы использовать тот же ключ, для расшифровки этого сообщения он использует совершенно другой.
Ключ, используемый для кодирования доступен любому и всем пользователям сети. Как таковой он известен как «общественный» ключ. С другой стороны, ключ, используемый для расшифровки, хранится в тайне, и предназначен для использования в частном порядке самим пользователем. Следовательно, он известен как «частный» ключ. Асимметричное шифрование также известно, как шифрование с открытым ключом.
Поскольку, при таком способе, секретный ключ, необходимый для расшифровки сообщения не должен передаваться каждый раз, и он обычно известен только пользователю (приемнику), вероятность того, что хакер сможет расшифровать сообщение значительно ниже.
Diffie-Hellman и RSA являются примерами алгоритмов, использующих шифрование с открытым ключом. [12]
Ограничения ассиметричного шифрования: многие хакеры используют «человека в середине» как форму атаки, чтобы обойти этот тип шифрования. В асимметричном шифровании, вам выдается открытый ключ, который используется для безопасного обмена данными с другим человеком или услугой. Однако, хакеры используют сети обман, чтобы заставить вас общаться с ними, в то время как вас заставили поверить, что вы находитесь на безопасной линии.
Чтобы лучше понять этот тип взлома, рассмотрим две взаимодействующие стороны Сашу и Наташу, и хакера Сергея с умыслом на перехват их разговора. Во-первых, Саша отправляет сообщение по сети, предназначенное для Наташи, прося ее открытый ключ. Сергей перехватывает это сообщение и получает открытый ключ, связанный с ней, и использует его для шифрования и передачи ложного сообщения, Наташе, содержащего его открытый ключ вместо Сашиного.
Наташа, думая, что это сообщение пришло от Саши, теперь шифрует ее с помощью открытого ключа Сергея, и отправляет его обратно. Это сообщение снова перехватил Сергей, расшифровал, изменил (при желании), зашифровал еще раз с помощью открытого ключа, который Саша первоначально отправил, и отправил обратно к Саше.
Таким образом, когда Саша получает это сообщение, его заставили поверить, что оно пришло от Наташи, и продолжает не подозревать о нечестной игре.
2.4 Цифровая подпись
Цифровая подпись, которая представляет собой комбинацию хеширования и асимметричного шифрования. То есть сообщение сначала хешируется, а после шифруется с помощью приватного ключа отправителя. Получатель использует открытый ключ отправителя для извлечения хеша из подписи, затем сообщение снова хешируется для сравнения с извлеченным хешем. Если вы точно знаете, что открытый ключ принадлежит отправителю и расшифровка открытого ключа прошла успешно, можете быть уверены, что сообщение действительно пришло от отправителя. Совпадение хешей говорит о том, что сообщение не было никак изменено. Но не стоит забывать, что цифровая подпись не обязательно делает сообщение конфиденциальным. Цифровые подписи будут работать с зашифрованными сообщениями, но шифрование самого сообщения должно выполняться отдельно. [13]
2.5 Сочетание методов шифрования
Как обсуждалось выше, каждый из этих трех методов шифрования страдает от некоторых недостатков. Однако, когда используется сочетание этих методов, они образуют надежную и высоко эффективную систему шифрования.
Чаще всего, методики секретного и открытого ключа комбинируются и используются вместе. Метод секретного ключа дает возможность быстрой расшифровки, в то время как метод открытого ключа предлагает более безопасный и более удобный способ для передачи секретного ключа. Эта комбинация методов известна как "цифровой конверт". Программа шифрования электронной почты PGP основана на технике "цифровой конверт".
Хеширования находит применение как средство проверки надежности пароля. Если система хранит хэш пароля, вместо самого пароля, он будет более безопасным, так как даже если хакеру попадет в руки этот хеш, он не сможет понять (прочитать) его. В ходе проверки, система проверит хэш входящего пароля, и увидит, если результат совпадает с тем, что хранится. Таким образом, фактический пароль будет виден только в краткие моменты, когда он должен быть изменен или проверен, что позволит существенно снизить вероятность его попадания в чужие руки.
Хеширование также используется для проверки подлинности данных с помощью секретного ключа. Хэш генерируется с использованием данных и этого ключа. Следовательно, видны только данные и хэш, а сам ключ не передается. Таким образом, если изменения будут сделаны либо с данными, либо с хэшем, они будут легко обнаружены.
Эти методы могут быть использованы для эффективного кодирования данных в нечитаемый формат, который может гарантировать, что они останутся безопасными. Большинство современных систем обычно используют комбинацию этих методов шифрования наряду с сильной реализацией алгоритмов для повышения безопасности. В дополнение к безопасности, эти системы также предоставляют множество дополнительных преимуществ, таких как проверка удостоверения пользователя, и обеспечение того, что полученные данные не могут быть подделаны.
3 Разработка программы, выполняющей шифрование и расшифрование
3.1 Описание шифра Вернама
Шифр Вернама (англ. Vernam cipher) — система симметричного шифрования, изобретённая в 1917 году Гилбертом Вернамом.
Шифр является разновидностью криптосистемы одноразовых блокнотов. В нём используется булева функция «исключающее или». Шифр Вернама является примером системы с абсолютной криптографической стойкостью. При этом он считается одной из простейших криптосистем.[14]
1. Сообщение хранится в виде битов данных. Допустим, мы шифруем текст. Компьютер не умеет работать с текстом как таковым, он этот текст хранит как набор числовых кодов (проще говоря, у компьютера все буквы пронумерованы и он помнит только эти номера). Числа, в свою очередь, компьютер хранит в виде двоичного кода, то есть битов данных. Это пока что не относится к шифрованию, это просто то, как хранится любая текстовая информация в компьютере.
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Казанский национальный исследовательский технологический университет»
(ФГБОУ ВО «КНИТУ»)
Кафедра: Информационная безопасность
Направление (специальность): Информационная безопасность
Направленность (профиля/специализации): Организация и технология защиты информации
Группа: 1282-13
КУРСОВОЙ ПРОЕКТ
по дисциплине «Криптографические методы защиты информации»
на тему «Программная реализация шифра Вернама»
Исполнитель ____________________ ___________________
(дата, подпись) (Ф.И.О)
Руководитель____________________ ___________________
(дата, подпись) (должность, Ф.И.О)
Нормоконтролер_________________ ___________________
(дата, подпись) (должность, Ф.И.О)
Проект защищен с оценкой________________
Руководитель____________________________
(дата, подпись)
Казань, 2022 г.
ВВЕДЕНИЕ 5
1 Криптография и её методы защиты 6
1.1 Понятие криптографии 6
1.2 Подсистема криптографической защиты 8
1.3 Аутентичность сообщений 10
1.4 Анализ существующих методов криптографических преобразований 12
2 Основные виды шифрования 16
2.1 Хеширование 16
2.2 Симметричное шифрование 17
2.3 Ассиметричное шифрование 18
2.4 Цифровая подпись 19
2.5 Сочетание методов шифрования 20
3 Разработка программы, выполняющей шифрование и расшифрование 22
3.1 Описание шифра Вернама 22
3.2 Среда разработки и языка 24
3.3 Демонстрация работы программы 24
ЗАКЛЮЧЕНИЕ 27
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 28
Приложение А 31
(обязательное) 31
Код программы для шифрования и расшифрования методом Вернама 31
изучение криптографии и методов её осуществления;
рассмотрение шифрования и расшифрования информации;
изучение шифра Вернама;
разработка программы, выполняющей шифрование и расшифровку;
программная реализация шифра Вернама;
демонстрация работы кода.
симметричные DES, AES, ГОСТ 28147-89, Camellia, Twofish, Blowfish, IDEA, RC4 и др.;
асимметричные RSA и Elgamal (Эль-Гамаль);
хеш-функций MD4, MD5, MD6, SHA-1, SHA-2, ГОСТ Р 34.11-2012 («Стрибог»).
программных средств симметричного шифрования данных;
программно-аппаратных средств цифровой подписи электронных документов (ПАС ЦП). Функции подсистемы предусматривают;
обеспечение целостности передаваемой по каналам связи и хранимой информации;
имитозащиту сообщений, передаваемых по каналам связи;
скрытие смыслового содержания конфиденциальных сообщений, передаваемых по каналам связи и хранимых на носителях;
обеспечение юридической значимости электронных документов;
обеспечение аутентификации источника данных.
Функции подсистемы направлены на ликвидацию наиболее распространенных угроз сообщениям в автоматизированных системах:
угрозы, направленные на несанкционированное ознакомление с информацией;
несанкционированное чтение информации на машинных носителях и в ЗУ ЭВМ;
незаконное подключение к аппаратуре и линиям связи;
снятие информации на шинах питания;
перехват ЭМИ с линий связи;
угрозы, направленные на несанкционированную модификацию (нарушение целостности) информации:
изменение служебной или содержательной части сообщения;
подмена сообщения;
изъятие (уничтожение) сообщения.
угрозы, направленные на искажение аутентичности отправителя сообщения:
незаконное присвоение идентификаторов другого пользователя, формирование и отправка электронного документа от его имени (маскарад), либо утверждение, что информация получена от некоего пользователя, хотя она сформирована самим нарушителем;
повторная передача документа, сформированного другим пользователем;
искажение критичных с точки зрения аутентичности полей документа (даты формирования, порядкового номера, адресных данных, идентификаторов отправителя и получателя и др.).
угрозы, связанные с непризнанием участия:
отказ от факта формирования электронного документа;
отказ от факта получения электронного документа или ложные сведения о времени его получения;
утверждение, что получателю в определенный момент была послана информация, которая в действительности не посылалась (или посылалась в другое время).
скорость шифрования;
используемый алгоритм;
режим работы;
тип интерфейса;
возможность работы в сетях с коммутацией пакетов Х.25;
тип возможных к использованию модемов;
протоколы обмена ключевой информацией;
способ ввода ключей;
реализация функций обратного вызова, электронной подписи и др.
одни и те же данные всегда производит тот же самый хэш;
невозможно, генерировать исходные данные из хэша в одиночку;
нецелесообразно пробовать разные комбинации входных данных, чтобы попытаться генерировать тот же самый хэш.
Буква | Код в ASCII | Биты данных |
K | 75 | 01001011 |
O | 79 | 01001111 |
D | 68 | 01000100 |
Если мы напишем KOD в кодировке ASCII, то для компьютера это будет последовательность из трёх чисел, а каждое число — это набор битов: 01001011 01001111 01000100
2. Берём случайные биты в качестве ключа шифрования. На входе у нас три числа по 8 бит. Чтобы их зашифровать, нам нужны 24 случайных бита. Возьмём их с потолка, они ничего не значат: 10101101 01111010 10101011
3. Накладываем коды друг на друга и применяем алгоритм шифрования. Шифр Вернама построен на принципе «исключающего ИЛИ», он же XOR. Он смотрит на каждую пару битов и пытается понять, они одинаковые или разные. Если биты одинаковые, результат проверки будет 0, если разные — 1. Можно проверить себя так: XOR задаёт вопрос «Эти биты разные»? Если да — то 1, если нет — то 0.
Буква K | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
Ключ | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
XOR (Они разные?) | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
Если мы таким образом закодируем три буквы, мы получим три новых набора битов:
KOD (сообщение) | 01001011 | 01001111 | 01000100 |
Ключ | 10101101 | 01111010 | 10101011 |
Результат шифрования с помощью XOR | 11100110 | 00110101 | 11101111 |
Получается, что на входе у нас было 24 бита данных и на выходе 24 бита данных. Но эти данные теперь совсем другие. Если перевести эти числа обратно в текст, мы получим: KOD → æ5ï
Расшифровка шифра Вернама:
Если у нас есть закодированное сообщение и ключ от него, то раскодировать его не составит труда. Мы просто пишем алгоритм, который применяет операцию XOR как бы в обратном порядке к каждому биту сообщения.
Например:
-
если в ключе шифрования в каком-то бите стоит 1, то мы берём этот же бит в зашифрованном сообщении и меняем его. Если был 1, то меняем на 0. Если был 0, то меняем на 1; -
если в ключе шифрования в каком-то бите стоит 0, то этот же бит в зашифрованном сообщении мы не меняем; -
проходим так по каждому биту сообщения и получаем исходный текст.
Компьютер может совершать миллиарды таких операций в секунду. Главное — иметь на руках ключ для расшифровки. [15]
3.2 Среда разработки и языка
В качестве среды программирования была использована программа PyCharm. PyCharm — интегрированная среда разработки для языка программирования Python. Предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django. PyCharm разработана компанией JetBrains на основе IntelliJ IDEA.
PyCharm — это кроссплатформенная среда разработки, которая совместима с Windows, macOS, Linux. PyCharm Community Edition (бесплатная версия) находится под лицензией Apache License, а PyCharm Professional Edition (платная версия) является проприетарным ПО. [16]
В качестве языка программирования для реализации шифра был выбран язык Python. Python — высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ.
3.3 Демонстрация работы программы
Рассмотрим программную реализацию шифрования методом Вернама. Код программы приведен в приложении А.
Для запуска проекта нужно запустить программу PyCharm и запустить код.
Запуск кода продемонстрирован на следующих рисунках (рисунках 1 и 2):
Рисунок 1 – Часть запущенного кода
Рисунок 2 – Оставшееся часть запущенного кода
Работа кода в программе PyCharm представлена на рисунке 3:
Рисунок 3 – Демонстрация работы программы для шифрования текста
Рассмотрим программную реализацию шифрования и расшифрования методом Вернама.
Алгоритм шифрования и расшифрования методом Вернама:
-
ввести слово, которое хотим зашифровать; -
генерируются ключи, с помощью, которых происходит шифрование; -
дальше идет расшифрование слова, которое мы хотели зашифровать.
Таким образом, работает шифр Вернама. Код программы приведен в приложении А.
ЗАКЛЮЧЕНИЕ
На сегодняшний день криптография является важной частью по шифрованию данных. При помощи криптографии в нынешнее время можно пресечь утечку и вскрытие зашифрованных данных.
В процессе выполнения курсового проекта были рассмотрены криптографические методы защиты, виды шифрования и была представлена программная реализация шифра Вернама.
Шифр является разновидностью криптосистемы одноразовых блокнотов. В нём используется булева функция «исключающее или». Шифр Вернама является примером системы с абсолютной криптографической стойкостью. При этом он считается одной из простейших криптосистем.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
-
Криптография // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F (дата обращения: 09.06.2022). – Режим доступа: Википедия -
Криптология // – Текст: электронный. – URL: http://itsphera.ru/it/cryptographic-methods-and-tools-for-information-protection.html (дата обращения: 09.06.2022). – Режим доступа: itsphera.ru -
DES // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/DES (дата обращения: 09.06.2022). – Режим доступа: Википедия -
Процессор СА20СОЗА // – Текст: электронный. – URL: https://jumper.su/raznoe/metod-zashhity-informaczii-putem-ee-kriptograficheskogo-zakrytiya-eto-otvety-na-vopros-5-metody-zashhity-informaczii.html (дата обращения: 09.06.2022). – Режим доступа: jumper.su -
Микросхема HS3447 Cipher // – Текст: электронный. – URL: https://jumper.su/raznoe/metod-zashhity-informaczii-putem-ee-kriptograficheskogo-zakrytiya-eto-otvety-na-vopros-5-metody-zashhity-informaczii.html (дата обращения: 09.06.2022). – Режим доступа: jumper.su -
Шифратор // – Текст: электронный. – URL: https://systempb.ru/company/articles/shest-ustroystv-dlya-setevogo-shifrovaniya-plyusy-i-minusy/ (дата обращения: 09.06.2022). – Режим доступа: systempb.ru -
Шифратор фирмы Cylink // – Текст: электронный. – URL: https://www.kaznu.kz/content/files/news/folder22757/%D0%98%D0%9E%D0%97%D0%98%20%D0%BB%D0%B5%D0%BA%207%20%D1%80%D1%83%D1%81.pdf (дата обращения: 09.06.2022). – Режим доступа: kaznu.kz -
Несимметричные криптосистемы // – Текст: электронный. – URL: https://www.vsavm.by/knigi/kniga3/1710.html (дата обращения: 09.06.2022). – Режим доступа: vsavm.by -
Виды шифрования // – Текст: электронный. – URL: http://juice-health.ru/computers/encryption/468-methods-data-encryption (дата обращения: 09.06.2022). – Режим доступа: juice-health.ru -
Message Digest 5 (MD5) // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/MD5 (дата обращения: 09.06.2022). – Режим доступа: Википедия -
IDEA // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/IDEA (дата обращения: 09.06.2022). – Режим доступа: Википедия -
Diffie-Hellman // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D0%94%D0%B8%D1%84%D1%84%D0%B8_%E2%80%94_%D0%A5%D0%B5%D0%BB%D0%BB%D0%BC%D0%B0%D0%BD%D0%B0 (дата обращения: 09.06.2022). – Режим доступа: Википедия -
Цифровая подпись // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%8C (дата обращения: 09.06.2022). – Режим доступа: Википедия -
Шифр Вернама // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80_%D0%92%D0%B5%D1%80%D0%BD%D0%B0%D0%BC%D0%B0 (дата обращения: 09.06.2022). – Режим доступа: Википедия -
Описание шифра Вернама // – Текст: электронный. – URL: https://thecode.media/vernam/ (дата обращения: 09.06.2022). – Режим доступа: thecode.media -
PyCharm // – Текст: электронный. – URL: https://ru.wikipedia.org/wiki/PyCharm#::text=PyCharm%20%E2%80%94%20%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F%20%D1%81%D1%80%D0%B5%D0%B4%D0%B0%20%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8%20%D0%B4%D0%BB%D1%8F,JetBrains%20%D0%BD%D0%B0%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5%20IntelliJ%20IDEA (дата обращения: 09.06.2022). – Режим доступа: Википедия
Приложение А
(обязательное)
Код программы для шифрования и расшифрования методом Вернама
from random import randint
class VernamaCipher:
def __init__(self):
self.message = ""
self.keys = []
self.encoded_message = ""
self.decoded_message = ""
def get_mes_from_io(self):
self.message = input("Message to encode: ")
def encoder(self):
for char in self.message:
key = randint(0, 32)
self.encoded_message += chr((ord(char) + key - 17) % 33 + ord('А'))
self.keys.append(key)
def decoder(self):
for index, char in enumerate(self.encoded_message):
if self.keys[index] != '':
self.decoded_message += chr((ord(char) - int(self.keys[index]) - 17) % 33 + ord('А'))
def start(self):
self.get_mes_from_io()
self.encoder()
self.decoder()
self.pretty_print()
def pretty_print(self):
print("Vernama Cipher algorithm by Krakhmova Viktoria")
print("-" * 10)
print(f"Initial message: {self.message}")
print(f"Generated keys: {self.keys}")
print(f"Encoded message: {self.encoded_message}")
print(f"Decoded message: {self.decoded_message}")
test = VernamaCipher()
test.start()
ЛИСТ НОРМОКОНТРОЛЕРА
-
Лист является обязательным приложением к пояснительной записке курсовому проекту. -
Нормоконтролер имеет право возвращать документацию без рассмотрения в случаях:
- нарушения установленной комплектности;
- отсутствия обязательных подписей;
- нечеткого выполнения текстового и графического материала.
-
Устранение ошибок, указанных нормоконтролером, обязательно.
ПЕРЕЧЕНЬ
замечаний и предложений нормоконтролера по курсовому проекту студента
__________________________________________________________________
(группа, инициалы, фамилия)
Обозначение документа | Лист (страница) | Условное обозначение | Содержание замечаний и предложений |
| | | |
Дата__________________Нормоконтролер_______________________________
(подпись) (фамилии, инициалы)