Создание автономной автоматизированной системы шифрования данных на съёмных носителях

Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.12.2014
Размер файла 795,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Смоленский государственный университет»

Факультет экономики и управления

Кафедра математики и информатики

Курсовая работа

на тему: Создание автономной автоматизированной системы шифрования данных на съёмных носителях

Выполнила Анна Руслановна

Смоленск 2014

ОГЛАВЛЕНИЕ

  • ВВЕДЕНИЕ
  • ГЛАВА 1. КРИПТОГРАФИЯ И ЕЕ ВОЗМОЖНОСТИ
  • 1.1 Формулировка и основные понятия
    • 1.2 Криптографические средства защиты
  • 1.3 Принципы работы криптосистемы
  • 1.4 Управление криптографическими ключами
    • 1.5 Алгоритмы шифрования
  • 1.5.1 Симметричные алгоритмы
  • 1.5.2 Асимметричные алгоритмы
  • 1.6 Сравнение cимметричных и аcимметричных алгоритмов шифрования
  • 1.7 Электронные подписи
  • 1.8 Стойкость шифра
  • ГЛАВА 2. РАЗРАБОТКА СОБСТВЕННОЙ ПРОГРАММЫ ШИФРОВАНИЯ НА DELPHI7
  • 2.1 Программы шифрования данных
  • 2.1.1 TrueCrypt
  • 2.1.2 AxCrypt
  • 2.1.3 FineCrypt
  • 2.2 Разработка собственной программы шифрования на Delphi 7
  • 2.2.1 Выбор и обоснование среды программирования
  • 2.2.2 Выбор и обоснование алгоритма шифрования
    • 2.2.3 Необходимые визуальные компоненты для создания
    • 2.2.4 Cоздание приложения шифрования/дешифрования
    • 2.3 Тестирование программы «FileCoder»
    • ЗАКЛЮЧЕНИЕ
    • СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

ВВЕДЕНИЕ

Проблемa защиты информации путeм ее преобразования, исключающего ее прочтение посторонним лицом волновала человеческий ум с давних времен. История криптографии ровесница истории человеческого языка. Более того, первоначально письменность сама по себе была криптографической системой, так как в древних обществах ею владели только избранные. Священные книги Древнего Египта, Древней Индии тому примеры.

С широким распространением письменности криптография стала формироваться как самостоятельная наука. Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже систематический шифр, получивший его имя.

Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день появление вычислительных средств ускорило разработку и совершенствование криптографических методов.

Проблема использования криптографических методов в информационных системах (ИС) стала в настоящий момент особо актуальна потому что:

1) с одной стороны, расширилось использование компьютерных сетей, в частности глобальной сети Internet, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц;

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

Целью курсовой работы является автоматизация процесса шифрования на базе современных информационных технологий.

Для достижения поставленной цели необходимо решить следующие задачи:

1) изучить современные системы шифрования;

2) выбрать и обосновать криптостойкий алгоритм, подходящий для шифрования разнородных данных;

3) провести тестирование разработанной программы;

4) разработать демонстрационный вариант программы, позволяющий шифровать данные;

5) закрепить знания в области разработки приложений на языке Delphi.

Актуальность и важность проблемы обеспечения информационной безопасности обусловлена следующими факторами:

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

2) Высокие темпы роста персональных компьютеров, применяемых в разнообразных сферах человеческой деятельности.

Объектом исследования являются алгоритмы шифрования.

Курсовая работа состоит из введения, двух глав, и заключения.

В первой главе проводится анализ криптографии и её возможностей.

Во второй главе описаны программы шифрования данных, демонстрируется разработка собственной программы шифрования, производится анализ выбора среды программирования, а так же алгоритма шифрования, проводится тестирование разработанной программы.

В заключении изложены основные результаты работы и выводы.

ГЛАВА 1. КРИПТОГРАФИЯ И ЕЕ ВОЗМОЖНОСТИ

1.1 Формулировка и основные понятия

Криптография применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищенным каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса:

1) перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифрованию;

2) для восстановления исходных данных из зашифрованных к ним применяется процедура расшифрования[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].

Схема реализации.

Задача. Есть два собеседника -- А и Б, они хотят обмениваться конфиденциальной информацией.

1) Генерация ключа.

Собеседник Б (или А) выбирает ключ шифрования d и алгоритм шифрования или расшифрования, затем посылает эту информацию собеседнику А (Б).

2) Шифрование и передача сообщения.

Собеседник А шифрует информацию с использованием полученного ключа d и передает ему полученный шифротекст. То же самое делает собеседник Б, если хочет отправить собеседнику А сообщение.

3) Расшифрование сообщения.

Собеседник Б (А), с помощью того же ключа d, расшифровывает шифротекст. Недостатками симметричного шифрования является проблема передачи ключа собеседнику и невозможность установить подлинность или авторство текста. Поэтому, например, в основе технологии цифровой подписи лежат асимметричные схемы.

Рисунок 1.3 - Симметричное шифрование

1.5.2 Асимметричные алгоритмы

В системах с открытым ключом используются два ключа -- открытый и закрытый, связанные определенным математическим образом друг с другом. Открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для шифрования сообщения и для проверки ЭЦП. Для расшифровки сообщения и для генерации ЭЦП используется секретный ключ [1].

Данная схема решает проблему симметричных схем, связанную с начальной передачей ключа другой стороне. Если в симметричных схемах злоумышленник перехватит ключ, то он сможет как «слушать», так и вносить правки в передаваемую информацию. В асимметричных системах другой стороне передается открытый ключ, который позволяет шифровать, но не расшифровывать информацию. Таким образом решается проблема симметричных систем, связанная с синхронизацией ключей [5].

Первыми исследователями, которые изобрели и раскрыли понятие шифрования с открытым кодом, были Уитфилд Диффи и Мартин Хеллман из Стэнфордского университета, и Ральф Меркле из Калифорнийского университета в Беркли. В 1976 году их работа «Новые направления в современной криптографии» открыла новую область в криптографии, теперь известную как криптография с открытым ключом.

Схема реализации

Задача. Есть два собеседника -- А и Б. Собеседник А хочет передавать собеседнику Б конфиденциальную информацию.

1) Генерация ключевой пары.

Собеседник Б выбирает алгоритм шифрования или расшифрования и пару открытый, закрытый ключи и посылает открытый ключ собеседнику А по открытому каналу.

2) Шифрование и передача сообщения.

Собеседник А шифрует информацию с использованием открытого ключа собеседника Б и передает ему полученный шифротекст.

3) Расшифрование сообщения.

Собеседник Б, с помощью закрытого ключа, расшифровывает шифротекст.

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

Рисунок 1.4 - Ассиметричное шифрование

1.6 Сравнение симметричных и асимметричных алгоритмов шифрования

В асимметричных системах необходимо применять длинные ключи (512 битов и больше). Длинный ключ резко увеличивает время шифрования. Кроме того, генерация ключей весьма длительна. Зато распределять ключи можно по незащищенным каналам.

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

Поэтому при проектировании защищенной системы часто применяют и симметричные, и асимметричные алгоритмы. Так как система с открытыми ключами позволяет распределять ключи и в симметричных системах, можно объединить в системе передачи защищенной информации асимметричный и симметричный алгоритмы шифрования. С помощью первого рассылать ключи, вторым же - собственно шифровать передаваемую информацию [6, c. 53].

Обмен информацией можно осуществлять следующим образом:

1) получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным;

2) отправитель, используя открытый ключ получателя, зашифровывает сеансовый ключ, который пересылается получателю по незащищенному каналу;

3) получатель получает сеансовый ключ и расшифровывает его, используя свой секретный ключ;

4) отправитель зашифровывает сообщение сеансовым ключом и пересылает получателю;

5) получатель получает сообщение и расшифровывает его.

1.7 Электронные подписи

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

Электронная подпись предназначена для идентификации лица, подписавшего электронный документ, и является полноценной заменой (аналогом) собственноручной подписи в случаях, предусмотренных законом [7].

Существует несколько схем построения цифровой подписи:

1) на основе алгоритмов симметричного шифрования. Данная схема предусматривает наличие в системе третьего лица -- арбитра, пользующегося доверием обеих сторон. Авторизацией документа является сам факт зашифрования его секретным ключом и передача его арбитру [8].

2) На основе алгоритмов асимметричного шифрования. На данный момент такие схемы ЭП наиболее распространены и находят широкое применение.

Симметричные схемы имеют следующие преимущества:

1) стойкость симметричных схем ЭП вытекает из стойкости используемых блочных шифров, надежность которых также хорошо изучена;

2) если стойкость шифра окажется недостаточной, его легко можно будет заменить на более стойкий с минимальными изменениями в реализации.

Однако у симметричных ЭП есть и ряд недостатков:

1) нужно подписывать отдельно каждый бит передаваемой информации, что приводит к значительному увеличению подписи. Подпись может превосходить сообщение по размеру на два порядка;

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

Асимметричные схемы ЭП относятся к криптосистемам с открытым ключом. В отличие от асимметричных алгоритмов шифрования, в которых шифрование производится с помощью открытого ключа, а расшифровка -- с помощью закрытого, в схемах цифровой подписи подписание производится с применением закрытого ключа, а проверка подписи -- с применением открытого.

1.8 Стойкость шифра

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

Из более специфических приведем еще три примера возможностей противника:

1) противник может перехватывать все шифрованные сообщения, но не имеет соответствующих им открытых текстов;

2) противник может перехватывать все шифрованный сообщения и добывать соответствующие им открытые тексты;

3) противник имеет доступ к шифру (но не к ключам!) и поэтому может зашифровывать и дешифровывать любую информацию.

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

Абсолютно стойкие системы.

Доказательство существования абсолютно стойких алгоритмов шифрования было выполнено Клодом Шенноном и опубликовано в работе «Теория связи в секретных системах» [10].

Злоумышленник не сможет извлечь никакой полезной информации об открытом тексте из перехваченного шифротекста. Шифр, обладающий таким свойством, называется абсолютно стойким [11]. Стойкость этих систем не зависит от того, какими вычислительными возможностями обладает криптоаналитик. Практическое применение систем, удовлетворяющих требованиям абсолютной стойкости, ограничено соображениями стоимости и удобства пользования.

Достаточно стойкие системы.

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

1) вычислительная сложность полного перебора для данной системы

2) известные на данный момент слабости (уязвимости) системы и их влияние на вычислительную сложность [11].

ГЛАВА 2. РАЗРАБОТКА СОБСТВЕННОЙ ПРОГРАММЫ ШИФРОВАНИЯ НА DELPHI7

2.1 Программы шифрования данных

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

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

2.1.1 TrueCrypt

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

Рисунок 2.1 - программа для шифрования файлов TrueCrypt

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

Кроме этого программа для шифрования файлов TrueCrypt позволяет шифровать и реальные физические носители информации. В этом случае все данные помещенные на такой диск будут автоматически зашифрованы, включая имена папок и файлов.

TrueCrypt поддерживает такие алгоритмы шифрования как AES, Serpent и Twofish. Также возможно использования каскадного шифрования одних и тех же данных различными алгоритмами.

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

2.1.2 AxCrypt

AxCrypt - более простая программа для шифрования файлов.

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

Рисунок 2.2 - программа для шифрования файлов AxCrypt

После установки программы AxCrypt в контекстном меню появляется пункт «AxCrypt», с помощью которого пользователь может зашифровать любую папку или отдельный файл. Для доступа к зашифрованным данным может использоваться пароль или ключевой файл. Шифрование происходит с использованием алгоритма AES-128.

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

2.1.3 FineCrypt

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

Можно зашифровать некоторые файлы в единственный зашифрованный архив, или в различные зашифрованные файлы. С архивами FineCrypt пользователь может работать таким же образом, как он работает с архивами zip. Пользователь может прибавить файлы или переместить их от архива и дешифровать требуемые файлы.

С FineCrypt пользователь может создать зашифрованный и не зашифрованные самораспаковывающиеся исполняемые файлы.

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

2.2 Разработка собственной программы шифрования на Delphi 7

2.2.1 Выбор и обоснование среды программирования

При выборе среды реализации сравнивают программные продукты и пользуются различными средствами разработки приложений. Использование возможностей средств разработки приложений позволяет автоматизировать процесс разработки. Инструментальные средства позволяют:

1) создавать интерфейс, используя стандартные компоненты;

1) передавать управление процессам, в зависимости от состояния системы; разрабатывать более надежные программы путем обработки исключительных ситуаций возникающих при некорректной работе программы. Современные средства разработки характеризуются параметрами: поддержка объектно-ориентированного стиля программирования; возможность использования CASE-технологий, как для проектирования разрабатываемой системы, так и для разработки моделей реляционных баз данных;

2) использование визуальных компонент для наглядного проектирования интерфейса;

3) поддержка БД.

Выше перечисленными свойствами обладают языки программирования:

· Visual Fox Pro;

· Delphi;

· Visual C++.

Каждое из этих средств содержит весь спектр современного инструментария, который был перечислен ранее. Главное отличие состоит в области использования рассматриваемых средств.

Для реализации курсовой работы был выбран язык программирования Delphi, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения

Delphi - это продукт Borland International для быстрого создания приложений. Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic или в других инструментах визуального проектирования.

Преимущества Delphi по сравнению с аналогичными программными продуктами: быстрота разработки приложения;

1) высокая производительность разработанного приложения;

2) низкие требования разработанного приложения к ресурсам компьютера;

3) наращиваемость за счет встраивания новых компонентов и инструментов в среду Delphi;

4) возможность разработки новых компонентов и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);

5) удачная проработка иерархии объектов.

К тому же при создании программ важна скорость и качество создания, а эти характеристики может обеспечить только среда визуального проектирования, способная взять на себя значительные объемы рутинной работы по подготовке приложений, а также согласовать деятельность группы постановщиков, кодировщиков, тестеров и технических писателей. Возможности Delphi полностью отвечают подобным требованиям и подходят для создания систем любой сложности.

2.2.2 Выбор и обоснование алгоритма шифрования

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

1) криптостойкость. Алгоритм должен быть тщательно проанализирован мировым криптографическим сообществом в течение длительного времени и признан криптостойким к различным видам атак;

2) длина ключа. Ключ, используемый в алгоритме шифрования, должен быть не короче 256 бит для алгоритмов симметричного шифрования и 2048 бит для алгоритмов с открытым ключом. Это сделано для того, чтобы шифр невозможно было вскрыть методом прямого перебора;

3) скорость шифрования. Скорость шифрования данных по выбранному алгоритму должна быть настолько высокой, чтобы не возникало простоев при передаче данных на максимальной скорости.

В качестве шифрования используется алгоритм шифрования с симметричным ключом т.е. один ключ используется как для шифрования, так и для расшифрования данных. Длина ключа (пароля) может составлять от 1 до 255 символов. Используемый в программе криптографический алгоритм является устойчивым к любым возможным типам взлома: несмотря на многолетние усилия исследователей.

2.2.3 Необходимые визуальные компоненты для создания

Для создания программы для шифрования/дешифрования понадобятся следующие стандартные компоненты:

Label: TLabel;

Edit: TEdit;

SpeedButton: TSpeedButton;

Open: TOpenDialog;

BitBtn: TBitBtn;

Компонент Delphi Label предназначен для показа текста на форме программы, которые не будет меняются в течение работы программы. Текст надписи компонента Label можно изменить, но делается это только программно. Текст, отображаемый в компоненте, определяется значением свойства Caption. Он прописывается в процессе проектирования или задается программно во время выполнения программы [13].

Компонент Delphi Edit предназначен для ввода пользовательских данных и представляет собой однострочное поле.

Рисунок 2.3 - Компоненты Label и Edit

Компонент Delphi BitBtn это пиктографическая кнопка, представляющая собой один из вариантов стандартной кнопки Button. В отличие от неё кнопка Delphi BitBtn умеет отображать на своей поверхности не только надпись, но и изображение, которое задаётся свойством Glyph. В состав Delphi входит большое количество готовых изображений, которые можно размещать на кнопках Delphi BitBtn [13].

Компонент Delphi SpeedButton (быстрая кнопка) расположен на странице Additional Палитры компонентов. Он по функционалу и виду похож на кнопку с рисунком BitBtn. Но является не оконным элементом, вследствие чего не может получить фокус ввода. Используется для создания панелей с "быстрыми" командными кнопками [13].

Рисунок 2.4 - Компоненты BitBnt и SpeedButton

С помощью компонента Delphi OpenDialog можно выбрать файл для его открытия. Запуская данный диалог, открывается окно, в котором происходит выбор открываемого файла.

Рисунок 2.5 - Компонент OpenDialog

2.2.4 Cоздание приложения шифрования/дешифрования

Создадим новый проект (File | New Project). Поместим на форму 2 компонента Edit: один для указания пути к файлам, другой для ввода пароля; 2 компонента Label для подписи компонентов Edit; 2 компонента BitBtn для выполнения основных действий приложения, т.е шифрование/дешифрование и закрытия программы; TOpenDialog для выбора открытия нужного файла; TXPManifest-стилизация под Windows XP. В итоге должно получиться так:

Рисунок 2.6 - Форма программы

Приступим к разработке всех компонентов программы, т.е. прописыванию всех необходимых кодов. Программа начинается с объявления используемых стандартных библиотек и глобальных переменных:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls, XPMan;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

SpeedButton1: TSpeedButton;

Open: TOpenDialog;

Label2: TLabel;

Edit2: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

XPManifest1: TXPManifest;

procedure SpeedButton1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Алгоритм шифрования выглядит следующим образом:

procedure SimmetricEx(FN:string; pass:string);

var

i:integer; //позиция байта в файле

j,k:byte; //вспомогательные переменные

MS:TMemoryStream; //поток

begin

MS:=TMemoryStream.Create; //создание экземпляра класса TMemoryStream

MS.LoadFromFile(FN); //загрузка файла в поток

MS.Position:=0; //позиционирование в потоке на старт

for i:=1 to MS.Size do //от 1 до последнего байта

begin

k:=(i mod Length(pass))+1; //определяем номер символа ключа,

//по которому будем шифровать

MS.Read(j,1); //читаем 1 байт из потока

j:=j xor Ord(pass[k]); //шифруем прочитанный байт

MS.Position:=i-1; //возвращаемся назад на 1 байт

MS.Write(j,1); //записываем зашифрованный байт

end;

MS.Position:=0;

MS.SaveToFile(FN); //сохраняем содержимое потока

//в файле под тем же именем

MS.Free; //уничтожаем экземпляр потока

end;

Свяжем кнопку BitBtn2 с уже написанным алгоритмом шифрования. Так как в программе используется симметричный алгоритм шифрования, то компонент BitBtn2 будет выполнять 2 различных действия - шифрование или дешифрование:

procedure TForm1.BitBtn2Click(Sender: TObject);

var

MS:TMemoryStream;

begin

if not FileExists(Edit1.Text) then

begin

ShowMessage('Файл не найдет!!!');

Exit;

end;

if Edit2.Text='' then

begin

ShowMessage('Введите пароль для шифрования!!!');

Exit;

end;

SimmetricEx(Edit1.Text,Edit2.Text);

ShowMessage('Файл зашифрован!');

Close;

end;

BitBtn1 - закрытие программы:

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Close;

end;

Здесь происходит открытие окна для выбора файла в каталоге:

procedure TForm1.FormCreate(Sender: TObject);

begin

Open.InitialDir:=ExtractFileDir(Application.ExeName);

end;

2.3 Тестирование программы «FileCoder»

Тестирование программного обеспечения -- процесс исследования, испытания программного продукта.

Процесс отладки включает:

1) действия, направленные на выявление ошибок (тестирование);

2) диагностику и?локализацию ошибок (определение характера ошибок и?их местонахождение);

3) внесение исправлений в?программу с?целью устранения ошибок.

Невозможно гарантировать отсутствие ошибок в?программе. В?лучшем случае можно попытаться показать наличие ошибок. Если программа правильно ведет себя для большого набора тестов, нет оснований утверждать, что в?ней нет ошибок. Если считать, что набор тестов способен с?большой вероятностью обнаружить возможные ошибки, то можно говорить о?некотором уровне уверенности (надежности) в?правильности работы программы, устанавливаемом этими тестами.

После прописывания всех кодов и настройки расположения компонентов, можно компилировать приложение, для этого надо нажать F9 в среде Delphi, запустится окно программы:

Рисунок 2.7 - Итоговый вид программы

Кнопка позволяет выбрать файл для шифрования. После выбора нужного файла вводится пароль в соответствующее поле и нажимается кнопка «Шифровать». В результате появляется окно, с информацией о том, что файл зашифрован:

Рисунок 2.8 - Результат шифрования

Если файл был не выбран или не указан пароль программа выдаст соответствующее окно:

Рисунок 2.9 - Результат программы при невыбранном файле

Рисунок 2.10 - Результат программы при не введенном пароле

ЗАКЛЮЧЕНИЕ

В ходе курсовой работы были решены следующие задачи:

1) изучить системы шифрования;

2) проанализировать программы шифрования;

3) выбрать наиболее подходящие средства реализации;

4) провести тестирование разработанного демонстрационного варианта программы шифрования;

5) закрепить практические навыки программирования на языке Delphi.

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

Поставленная задача была выполнена. Данная программа является наиболее простым вариантом программы шифрования данных. Она является законченным программным продуктом, хотя возможна ее доработка.

Программа имеет удобный пользовательский интерфейс, интуитивно понятный пользователю любого уровня подготовки.

В целом задача была выполнена в полной мере, и программа может быть использована на практике.

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

1. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Delphi/ Под ред. А. Б. Васильева. -- М.: Триумф, 2002. -- 816 с.

2. Жельников В. Кpиптогpафия от папиpуса до компьютеpа / Под ред. А. Б. Васильева. -- М.: ABF, 1996. -- 335 с.

3. Панасенко С. П. Алгоритмы шифрования. Специальный справочник. -- СПб.: БХВ-Петербург, 2009. -- 576 с.

4. Павел Исаев. Некоторые алгоритмы ручного шифрования (рус.) // КомпьютерПресс. -- 2003. -- В. 3.

5. Уитфилд Диффи, Мартин Хеллман Новые направления в криптографии (англ.). -- 1976.

6. Мафтик С. Механизмы защиты в сетях ЭВМ. - М.: Мир, 1993.

7. Гражданский кодекс Российской Федерации, часть 1, глава 9, статья 160.

8. Электронно цифровая подпись [Электронный ресурс]// URL: http://eregex.ru/2009/06/electronic-signature/ (дата обращения 20.03.2014).

9. Венбо Мао Современная криптография. Теория и практика = Modern Cryptography: Theory and Practice. -- М.: Вильямс, 2005. -- 768 p. -- 2000 экз.

10. Клод Шеннон. "Работы по теории информации и кибернетике", М., ИЛ, 1963, с. 333-369 (Перевод В.Ф.Писаренко).

11. К. Шеннон Теория связи в секретных системах // Работы по теории информации и кибернетике / Перевод С. Карпова. -- М.: ИЛ, 1963. -- 830 с.

12. М.Э.Смид, Д.К.Бранстед. Стандарт шифрования данных: прошлое и будущее. /пер. с англ./ М., Мир, ТИИЭР.-1988.-т.76.-N5.

13. Help Delphi. В помощь начинающим [Электронный ресурс]// URL: http://helpdelphi.ru/(дата обращения 05.05.2014).

14. Википедия, свободная энциклопедия [Электронный ресурс]// Тестирование программного обеспечения: статья. URL: http://ru.wikipedia.org/wiki/Тестирование_программного_обеспечения (дата обращения 22.04.2014).

15. Википедия, свободная энциклопедия [Электронный ресурс]// Симметричные криптосистемы: статья. URL: http://ru.wikipedia.org/wiki/Симметричные_криптосистемы (дата обращения 22.04.2014).

Размещено на Allbest.ru


Подобные документы

  • Шифрование с использованием симметричных алгоритмов. Генерация зарытого ключа для асимметричных алгоритмов шифрования. Применение асимметричных алгоритмов шифрования. Управление цифровыми сертификатами и управление списками отзыва сертификатов.

    учебное пособие [677,6 K], добавлен 13.10.2015

  • Сравнение производительности программных реализаций алгоритмов шифрования с оптимизациями под языки С и Java. История разработки, сущность, принципы шифрования и успехи в криптоанализе таких алгоритмов шифрования как AES, RC4, RC5, RC6, Twofish и Mars.

    реферат [1,3 M], добавлен 13.11.2009

  • История криптографии. Сравнение алгоритмов шифрования, применение в операционной системе. Анализ продуктов в области пользовательского шифрования. Включение и отключение шифрования на эллиптических кривых. Использование хеш-функции. Электронная подпись.

    курсовая работа [492,6 K], добавлен 18.09.2016

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

  • История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как способы преобразования бит данных. Алгоритмы шифрования DES и IDEA, их основные достоинства и недостатки.

    лабораторная работа [335,9 K], добавлен 18.03.2013

  • Криптография и шифрование. Симметричные и асимметричные криптосистемы. Основные современные методы шифрования. Алгоритмы шифрования: замены (подстановки), перестановки, гаммирования. Комбинированные методы шифрования. Программные шифраторы.

    реферат [57,7 K], добавлен 24.05.2005

  • Принцип программной реализации классических криптографических методов. Метод шифрования с использованием таблицы Виженера. Создание текстового редактора "Блокнот", содержащего методы шифрования. Вербальный алгоритм и программа для методов шифрования.

    курсовая работа [2,0 M], добавлен 20.01.2010

  • Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.

    курсовая работа [564,3 K], добавлен 09.05.2012

  • Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.

    лабораторная работа [24,3 K], добавлен 20.02.2014

  • Краткая история развития криптографических методов защиты информации. Сущность шифрования и криптографии с симметричными ключами. Описание аналитических и аддитивных методов шифрования. Методы криптографии с открытыми ключами и цифровые сертификаты.

    курсовая работа [1,2 M], добавлен 28.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.