Создание автономной автоматизированной системы шифрования данных на съёмных носителях
Министерство образования и науки РФ
Федеральное государственное бюджетное
образовательное учреждение высшего профессионального
образования
«Смоленский государственный университет»
Факультет экономики и управления
Кафедра математики и информатики
Курсовая работа
на тему: Создание автономной автоматизированной системы шифрования данных на съёмных носителях
Выполнила
студентка 3 курса очной формы обучения
направления подготовки
«Прикладная информатика»
Б. Анна Руслановна
Научный руководитель:
кандидат физико-математических наук
Б.Д.С.
Смоленск
2014
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
Проблемa защиты информации путeм ее преобразования, исключающего ее прочтение посторонним лицом волновала человеческий ум с давних времен. История криптографии ровесница истории человеческого языка. Более того, первоначально письменность сама по себе была криптографической системой, так как в древних обществах ею владели только избранные. Священные книги Древнего Египта, Древней Индии тому примеры.
С широким распространением письменности криптография стала формироваться как самостоятельная наука. Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже систематический шифр, получивший его имя.
Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день появление вычислительных средств ускорило разработку и совершенствование криптографических методов.
Проблема использования криптографических методов в информационных системах (ИС) стала в настоящий момент особо актуальна потому что:
- с одной стороны, расширилось использование компьютерных
сетей, в частности глобальной сети Internet, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц;
- другой стороны, появление новых мощных компьютеров,
технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем еще недавно считавшихся практически не раскрываемыми.
Целью курсовой работы является автоматизация процесса шифрования на базе современных информационных технологий.
Для достижения поставленной цели необходимо решить следующие задачи:
- изучить современные системы шифрования;
- выбрать и обосновать криптостойкий алгоритм, подходящий для
шифрования разнородных данных;
- провести тестирование разработанной программы;
- разработать демонстрационный вариант программы, позволяющий шифровать данные;
- закрепить знания в области разработки приложений на языке
Delphi.
Актуальность и важность проблемы обеспечения информационной безопасности обусловлена следующими факторами:
- Современные уровни и темпы развития средств информационной безопасности значительно отстают от уровней и темпов развития информационных технологий.
- Высокие темпы роста персональных компьютеров, применяемых в разнообразных сферах человеческой деятельности.
Объектом исследования являются алгоритмы шифрования.
Курсовая работа состоит из введения, двух глав, и заключения.
В первой главе проводится анализ криптографии и её возможностей.
Во второй главе описаны программы шифрования данных, демонстрируется разработка собственной программы шифрования, производится анализ выбора среды программирования, а так же алгоритма шифрования, проводится тестирование разработанной программы.
В заключении изложены основные результаты работы и выводы.
ГЛАВА 1.КРИПТОГРАФИЯ И ЕЕ ВОЗМОЖНОСТИ
1.1 Формулировка и основные понятия
Криптография применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищенным каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса:
- перед отправлением данных по линии связи или перед
помещением на хранение они подвергаются зашифрованию;
- для восстановления исходных данных из зашифрованных к ним
применяется процедура расшифрования[1].
Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако, впоследствии, шифровать информацию начали с целью ее хранения в ненадежных источниках. Шифрование информации с целью ее хранения применяется и сейчас, это позволяет избежать необходимости в физически защищенном хранилище [2].
Шифром называется пара алгоритмов, реализующих каждое из указанных преобразований. Эти алгоритмы применяются к данными с использованием ключа. Ключи для шифрования и для расшифрования могут различаться, а могут быть одинаковыми. Секретность второго (расшифровывающего) из них делает данные недоступными для несанкционированного ознакомления, а секретность первого (шифрующего) делает невозможным внесение ложных данных. В первых методах шифрования использовались одинаковые ключи, однако в 1976 году были открыты алгоритмы с применением разных ключей. Сохранение этих ключей в секретности и правильное их разделение между адресатами является очень важной задачей с точки зрения сохранения конфиденциальности передаваемой информации. Эта задача исследуется в теории управления ключами (в некоторых источниках она упоминается как разделение секрета) [1, с. 8-9].
В настоящий момент существует огромное количество методов шифрования. Главным образом эти методы делятся, в зависимости от структуры используемых ключей, на симметричные методы и асимметричные методы. Кроме того, методы шифрования могут обладать различной криптостойкостью и по-разному обрабатывать входные данные — блочные шифры и поточные шифры. Всеми этими методами, их созданием и анализом занимается наука криптография [1].
1.2 Криптографические средства защиты
Криптографическими средствами защиты называются специальные средства и методы преобразования информации, в результате которых маскируется ее содержание. Основными видами криптографического закрытия являются шифрование и кодирование защищаемых данных. При этом шифрование есть такой вид закрытия, при котором самостоятельному преобразованию подвергается каждый символ закрываемых данных; при кодировании защищаемые данные делятся на блоки, имеющие смысловое значение, и каждый такой блок заменяется цифровым, буквенным или комбинированным кодом. При этом используется несколько различных систем шифрования: заменой, перестановкой, аналитическим преобразованием шифруемых данных. Широкое распространение получили комбинированные шифры, когда исходный текст последовательно преобразуется с использованием двух или даже трех различных шифров [3].
1.3 Принципы работы криптосистемы
Законные пользователи А и В защищённой информации хотят обмениваться информацией по общедоступному каналу связи. П - незаконный пользователь (противник, хакер), который хочет перехватывать передаваемые по каналу связи сообщения и попытаться извлечь из них интересную для него информацию. Данный пример описывает модель типичной ситуации, в которой применяются криптографические методы защиты информации или просто шифрование. Схематически её можно изобразить следующим образом (рисунок 1.1).
Рисунок 1.1 – Модель ситуации, в которой возникает задача криптографии
Исторически в криптографии закрепились некоторые военные слова (противник, атака на шифр и др.). Они наиболее точно отражают смысл соответствующих криптографических понятий. Вместе с тем широко известная военная терминология, основанная на понятии кода (военно-морские коды, коды Генерального штаба, кодовые книги, кодобозначения и т. п.), уже не применяется в теоретической криптографии. Дело в том, что за последние десятилетия сформировалась теория кодирования - большое научное направление, которое разрабатывает и изучает методы защиты информации от случайных искажений в каналах связи.
Криптография занимается методами преобразования информации, которые бы не позволили противнику извлечь ее из перехватываемых сообщений. При этом по каналу связи передается уже не сама защищаемая информация, а результат ее преобразования с помощью шифра, и для противника возникает сложная задача вскрытия шифра. Вскрытие (взламывание) шифра - процесс получения защищаемой информации из шифрованного сообщения без знания примененного шифра. Противник может пытаться не получить, а уничтожить или модифицировать защищаемую информацию в процессе ее передачи. Это - совсем другой тип угроз для информация, отличный от перехвата и вскрытия шифра. Для защиты от таких угроз разрабатываются свои специфические методы. Следовательно, на пути от одного законного пользователя к другому информация должна защищаться различными способами, противостоящими различным угрозам. Возникает ситуация цепи из разнотипных звеньев, которая защищает информацию. Естественно, противник будет стремиться найти самое слабое звено, чтобы с наименьшими затратами добраться до информации. А значит, и законные пользователи должны учитывать это обстоятельство в своей стратегии защиты: бессмысленно делать какое-то звено очень прочным, если есть заведомо более слабые звенья ("принцип равнопрочности защиты").
Придумывание хорошего шифра – дело трудоемкое. Поэтому желательно увеличить время жизни хорошего шифра и использовать его для шифрования как можно большего количества сообщений. Но при этом возникает опасность, что противник уже разгадал (вскрыл) шифр и читает защищаемую информацию. Если же в шифре сеть сменный ключ то, заменив ключ, можно сделать так, что разработанные противником методы уже не дают эффекта.
1.4 Управление криптографическими ключами
При шифровании очень важно правильно содержать и распространять ключи между собеседниками, так как это является наиболее уязвимым местом любой криптосистемы. Если вы с собеседником обмениваетесь информацией посредством идеальной шифрующей системы, то всегда существует возможность найти дефект не в используемой системе, а в людях ее использующих. Можно выкрасть ключи у доверенного лица или подкупить его и зачастую это оказывается гораздо дешевле чем взламывать шифр. Поэтому процесс, содержанием которого является составление и распределение ключей между пользователями, играет важнейшую роль в криптографии как основа для обеспечения конфиденциальности обмена информацией [1].
Под ключом в криптографии понимают сменный элемент шифра, который применяется для шифрования конкретного сообщения. В последнее время безопасность защищаемой информации стала определяться в первую очередь ключом. Сам шифр, шифрмашина или принцип шифрования стали считать известными противнику и доступными для предварительного изучения, но в них появился неизвестный для противника ключ, от которого существенно зависят применяемые преобразования информации. Теперь законные пользователи, прежде чем обмениваться шифрованными сообщениями, должны тайно от противника обменяться ключами или установить одинаковый ключ на обоих концах канала связи. А для противника появилась новая задача - определить ключ, после чего можно легко прочитать зашифрованные на этом ключе сообщения.
Вернемся к формальному описанию основного объекта криптографии
(рисунок 1.1). Теперь в него необходимо внести существенное изменение – добавить недоступный для противника секретный канал связи для обмена ключами (рисунок 1.2).
Рисунок 1.2 – Модель ситуации, в которой возникает задача криптографии с ключом
Создать такой канал связи вполне реально, поскольку нагрузка на него, вообще говоря, небольшая. Отметим теперь, что не существует единого шифра, подходящего для всех случаев. Выбор способа шифрования зависит от особенностей информации, ее ценности и возможностей владельцев по защите своей информации. Прежде всего подчеркнем большое разнообразие видов защищаемой информации: документальная, телефонная, телевизионная, компьютерная и т.д. Каждый вид информации имеет свои специфические особенности, и эти особенности сильно влияют на выбор методов шифрования информации. Большое значение имеют объемы и требуемая скорость передачи шифрованной информации. Выбор вида шифра и его параметров существенно зависит от характера защищаемых секретов или тайны. Некоторые тайны (например, государственные, военные и др.) должны сохраняться десятилетиями, а некоторые (например, биржевые) - уже через несколько часов можно разгласить. Необходимо учитывать также и возможности того противника, от которого защищается данная информация. Одно дело - противостоять одиночке или даже банде уголовников, а другое дело - мощной государственной структуре. Любая современная криптографическая система основана (построена) на использовании криптографических ключей. Она работает по определенной методологии (процедуре), состоящей из: одного или более алгоритмов шифрования (математических формул); ключей, используемых этими алгоритмами шифрования; системы управления ключами; незашифрованного текста; и зашифрованного текста (шифртекста).
1.5 Алгоритмы шифрования
Алгоритмы шифрования с использованием ключей предполагают, что данные не сможет прочитать никто, кто не обладает ключом для их расшифровки. Они могут быть разделены на два класса, в зависимости от того, какая методология криптосистем напрямую поддерживается ими.
1.5.1 Симметричные алгоритмы
В симметричных криптосистемах для шифрования и расшифрования используется один и тот же ключ. Отсюда название — симметричные. Алгоритм и ключ выбирается заранее и известен обеим сторонам. Сохранение ключа в секретности является важной задачей для установления и поддержки защищенного канала связи. В связи с этим, возникает проблема начальной передачи ключа (синхронизации ключей). Кроме того существуют методы криптоатак, позволяющие так или иначе дешифровать информацию не имея ключа или же с помощью его перехвата на этапе согласования. В целом эти моменты являются проблемой криптостойкости конкретного алгоритма шифрования и являются аргументом при выборе конкретного алгоритма.
Симметричные, а конкретнее, алфавитные алгоритмы шифрования были одними из первых алгоритмов [4]. Позднее было изобретено асимметричное шифрование, в котором ключи у собеседников разные [5].
Схема реализации.
Задача. Есть два собеседника — А и Б, они хотят обмениваться конфиденциальной информацией.
- Генерация ключа.
Собеседник Б (или А) выбирает ключ шифрования d и алгоритм шифрования или расшифрования, затем посылает эту информацию собеседнику А (Б).
- Шифрование и передача сообщения.
Собеседник А шифрует информацию с использованием полученного ключа d и передает ему полученный шифротекст. То же самое делает собеседник Б, если хочет отправить собеседнику А сообщение.
- Расшифрование сообщения.
Собеседник Б (А), с помощью того же ключа d, расшифровывает шифротекст.
Недостатками симметричного шифрования является проблема передачи ключа собеседнику и невозможность установить подлинность или авторство текста. Поэтому, например, в основе технологии цифровой подписи лежат асимметричные схемы.
Рисунок 1.3 – Симметричное шифрование
1.5.2 Асимметричные алгоритмы
В системах с открытым ключом используются два ключа — открытый и закрытый, связанные определенным математическим образом друг с другом. Открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для шифрования сообщения и для проверки ЭЦП. Для расшифровки сообщения и для генерации ЭЦП используется секретный ключ [1].
Данная схема решает проблему симметричных схем, связанную с начальной передачей ключа другой стороне. Если в симметричных схемах злоумышленник перехватит ключ, то он сможет как «слушать», так и вносить правки в передаваемую информацию. В асимметричных системах другой стороне передается открытый ключ, который позволяет шифровать, но не расшифровывать информацию. Таким образом решается проблема симметричных систем, связанная с синхронизацией ключей [5].
Первыми исследователями, которые изобрели и раскрыли понятие шифрования с открытым кодом, были Уитфилд Диффи и Мартин Хеллман из Стэнфордского университета, и Ральф Меркле из Калифорнийского университета в Беркли. В 1976 году их работа «Новые направления в современной криптографии» открыла новую область в криптографии, теперь известную как криптография с открытым ключом.
Схема реализации
Задача. Есть два собеседника — А и Б. Собеседник А хочет передавать собеседнику Б конфиденциальную информацию.
- Генерация ключевой пары.
Собеседник Б выбирает алгоритм шифрования или расшифрования и пару открытый, закрытый ключи и посылает открытый ключ собеседнику А по открытому каналу.
- Шифрование и передача сообщения.
Собеседник А шифрует информацию с использованием открытого ключа собеседника Б и передает ему полученный шифротекст.
- Расшифрование сообщения.
Собеседник Б, с помощью закрытого ключа, расшифровывает шифротекст.
Если необходимо наладить канал связи в обе стороны, то первые две операции необходимо проделать на обеих сторонах, таким образом, каждый будет знать свои закрытый, открытый ключи и открытый ключ собеседника. Закрытый ключ каждой стороны не передается по незащищенному каналу, тем самым оставаясь в секретности.
Рисунок 1.4 – Ассиметричное шифрование
1.6 Сравнение cимметричных и аcимметричных алгоритмов шифрования
В асимметричных системах необходимо применять длинные ключи (512 битов и больше). Длинный ключ резко увеличивает время шифрования. Кроме того, генерация ключей весьма длительна. Зато распределять ключи можно по незащищенным каналам.
В симметричных алгоритмах используют более короткие ключи, т. е. шифрование происходит быстрее. Но в таких системах сложно распределение ключей.
Поэтому при проектировании защищенной системы часто применяют и cимметричные, и аcимметричные алгоритмы. Так как система с открытыми ключами позволяет распределять ключи и в симметричных системах, можно объединить в системе передачи защищенной информации асимметричный и симметричный алгоритмы шифрования. С помощью первого рассылать ключи, вторым же - собственно шифровать передаваемую информацию [6, c. 53].
Обмен информацией можно осуществлять следующим образом:
- получатель вычисляет открытый и секретный ключи, секретный
ключ хранит в тайне, открытый же делает доступным;
- отправитель, используя открытый ключ получателя,
зашифровывает сеансовый ключ, который пересылается получателю по незащищенному каналу;
- получатель получает сеансовый ключ и расшифровывает его,
используя свой секретный ключ;
- отправитель зашифровывает сообщение сеансовым ключом и
пересылает получателю;
- получатель получает сообщение и расшифровывает его.
1.7 Электронные подписи
Электронная подпись (ЭП) — реквизит электронного документа, полученный в результате криптографического преобразования информации с использованием закрытого ключа подписи и позволяющий установить отсутствие искажения информации в электронном документе с момента формирования подписи и проверить принадлежность подписи владельцу сертификата ключа подписи.
Электронная подпись предназначена для идентификации лица, подписавшего электронный документ, и является полноценной заменой (аналогом) собственноручной подписи в случаях, предусмотренных законом [7].
Существует несколько схем построения цифровой подписи:
- на основе алгоритмов симметричного шифрования. Данная схема
предусматривает наличие в системе третьего лица — арбитра, пользующегося доверием обеих сторон. Авторизацией документа является сам факт зашифрования его секретным ключом и передача его арбитру [8].
- На основе алгоритмов асимметричного шифрования. На данный
момент такие схемы ЭП наиболее распространены и находят широкое применение.
Симметричные схемы имеют следующие преимущества:
- стойкость симметричных схем ЭП вытекает из стойкости
используемых блочных шифров, надежность которых также хорошо изучена;
- если стойкость шифра окажется недостаточной, его легко можно
будет заменить на более стойкий с минимальными изменениями в реализации.
Однако у симметричных ЭП есть и ряд недостатков:
- нужно подписывать отдельно каждый бит передаваемой
информации, что приводит к значительному увеличению подписи. Подпись может превосходить сообщение по размеру на два порядка;
- сгенерированные для подписи ключи могут быть использованы
только один раз, так как после подписывания раскрывается половина секретного ключа.
Асимметричные схемы ЭП относятся к криптосистемам с открытым ключом. В отличие от асимметричных алгоритмов шифрования, в которых шифрование производится с помощью открытого ключа, а расшифровка — с помощью закрытого, в схемах цифровой подписи подписание производится с применением закрытого ключа, а проверка подписи — с применением открытого.
1.8 Стойкость шифра
Способность шифра противостоять всевозможным атакам на него называют стойкостью шифра. Под атакой на шифр понимают попытку вскрытия этого шифра. Понятие стойкости шифра является центральным для криптографии. Хотя качественно понять его довольно легко, но получение строгих доказуемых оценок стойкости для каждого конкретного шифра - проблема нерешенная. Это объясняется тем, что до сих пор нет необходимых для решения такой проблемы математических результатов. Поэтому стойкость конкретного шифра оценивается только путем всевозможных попыток его вскрытия и зависит от квалификации криптоаналитиков, атакующих шифр. Такую процедуру иногда называют проверкой стойкости. Важным подготовительным этапом для проверки стойкости шифра является продумывание различных предполагаемых возможностей, с помощью которых противник может атаковать шифр. Появление таких возможностей у противника обычно не зависит от криптографии, это является некоторой внешней подсказкой и существенно влияет на стойкость шифра. Поэтому оценки стойкости шифра всегда содержат те предположения о целях и возможностях противника, в условиях которых эти оценки получены. Прежде всего, как это уже отмечалось выше, обычно считается, что противник знает сам шифр и имеет возможности для его предварительного изучения. Противник также знает некоторые характеристики открытых текстов, например, общую тематику сообщений, их стиль, некоторые стандарты, форматы и т.д.
Из более специфических приведем еще три примера возможностей противника:
- противник может перехватывать все шифрованные
сообщения, но не имеет соответствующих им открытых текстов;
- противник может перехватывать все шифрованный
сообщения и добывать соответствующие им открытые тексты;
- противник имеет доступ к шифру (но не к ключам!) и поэтому
может зашифровывать и дешифровывать любую информацию.
При анализе передаваемых сообщений криптоустойчивость шифра оценивается из возможности получения дополнительной информации об исходном сообщении из перехваченного. Возможность получения этой информации является крайне важной характеристикой шифра, ведь эта информация, в конечном итоге, может позволить злоумышленнику дешифровать сообщение. В соответствии с этим шифры делятся на абсолютно стойкие и достаточно стойкие [9, с. 45-48]
Абсолютно стойкие системы.
Доказательство существования абсолютно стойких алгоритмов шифрования было выполнено Клодом Шенноном и опубликовано в работе «Теория связи в секретных системах» [10].
Злоумышленник не сможет извлечь никакой полезной информации об открытом тексте из перехваченного шифротекста. Шифр, обладающий таким свойством, называется абсолютно стойким [11]. Стойкость этих систем не зависит от того, какими вычислительными возможностями обладает криптоаналитик. Практическое применение систем, удовлетворяющих требованиям абсолютной стойкости, ограничено соображениями стоимости и удобства пользования.
Достаточно стойкие системы.
В связи сложностью применения абсолютно стойких систем повсеместно более распространенными являются так называемые достаточно стойкие системы. Эти системы не обеспечивают равенство энтропий и, как следствие, вместе с зашифрованным сообщением передают некоторую информацию об открытом тексте. Практическая стойкость таких систем основана на их вычислительной сложности и оценивается исключительно на определенный момент времени с двух позиций:
- вычислительная сложность полного перебора для данной
системы
- известные на данный момент слабости (уязвимости) системы и их
влияние на вычислительную сложность [11].
ГЛАВА 2. РАЗРАБОТКА СОБСТВЕННОЙ ПРОГРАММЫ ШИФРОВАНИЯ НА DELPHI7
- Программы шифрования данных
Существует множество программ шифрования файлов и все они могут отличаться алгоритмами шифрования, принципами хранения информации и ценой. Есть как платные, так и бесплатные программы для шифрования данных, однако бесплатные практически ничем не уступаю платным вариантам (разве что в удобстве использования). Большинство инструментов для шифрования файлов создают отдельные защищенные виртуальные диски - так называемые, хранилища данных.