Шифрование и дешифрование текстовых данных

Основные понятия и определения криптографии и шифрования информации. Криптографические примитивы и программные шифраторы. Шифрование и дешифрование в Net Framework. Алгоритмическая блок-схема процесса криптографии текстовых данных в программной среде.

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

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

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

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

23

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

федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Международный институт экономики, менеджмента и информационных систем

Кафедра прикладной информатики в экономике, государственном и муниципальном управлении

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

Шифрование и дешифрование текстовых данных

Выполнила студентка

1 курса, 2227 группы

Селютина Е.П.

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

к.ф.-м.н., доцент

Юдинцев А.Ю.

Барнаул 2013 г.

Оглавление

  • шифрование криптография программный
  • Введение
  • 1. Криптография и шифрование информации
  • 2. Основные понятия и определения криптографии
  • 3. Основные современные методы шифрования
  • 4. Программные шифраторы
  • 5. Шифрование и дешифрование в . Net Framework
    • 6. Криптографические примитивы
  • 7. Блок-схема шифрования и дешифрования текстовых данных
  • 8. Разработка программы шифрования и дешифрования
  • Заключение
  • Используемый список литературы

Введение

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

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

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

За последние десятилетия информационные потоки постоянно увеличиваются и применение компьютерных технологий, что ведет к тенденции защиты информации с помощью криптографии через программное обеспечение. Использование ПО(программного обеспечения) не требует крупных финансовых затрат в сравнении с аппаратными криптосистемами. ПО по криптографии постоянно обновляются и создаются все более новые алгоритмы, которые обеспечивают почти 100% защиту информации, но проблема надежности реализации программы остается так же актуальна на сегодняшний день. Нередко ПО вызывает недоверие пользователей при выведении сообщений об ошибках, "дырах"алгоритма, и взломе данной программы. Следует сделать вывод, что для написания программы криптографии нужно знать методы хакерских атак и наиболее уязвимые места криптосистем. Так же проблемой защиты информации при использовании ПО являются сами разработчики. Они нарушают конфиденциальность разработки и алгоритм становится легкой добычей недоброжелателей.

1. Криптография и шифрование информации

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

Кодирование -преобразование естественного языка на программный.

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

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

Шифрование появилось с момента появления секретной информации. Впервые термин шифр был употреблен в 15 веке в арабской энциклопедии Шауба Аль-Аща (в этой книге рассматриваются подстановочные шифры). Греческий историк Плутарх(45-127) приводит пример использования шифровальных устройств (так называемых скитал и сцитал) греками во время войны Спарты против Афин(4-5 века до н.э.). Скиталы -это две палки одинаковой длины и толщины. Одну палку использовал источник информации, другую адресат. Источник информации наматывал на свою палку ленту из папируса(не оставляя промежутков) и записывал сообщение на этой ленте вдоль оси скиталы. Лента разматывалась и отсылалась адресату, который брал такую же скиталу и, намотав на нее ленту, прочитывал посланное сообщение.

В России в 13 веке использовалась так называемая тарабарская грамота, смысл который в том, что в исходном сообщении гласные буквы не менялись, а согласные заменялись так: согласная буква с начала алфавита заменялась на согласную букву с конца алфавита. Заметный вклад в криптографию внесли такие известные ученые, как математик Х. Гольдбах(за дешифровку писем иностранных послов императрица Елизавета Петровна пожаловала ему титул тайного советника), Ф.Виет, Д. Кардано, В.Валлис и философ Б. Бэкон.

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

пароли для доступа к сетевым ресурсам (домен, принтер, компьютеры в сети и т.п.);

пароли для доступа в Интернет с помощью DialUр;

кэш паролей (в браузере есть такая функция -- кэшировать пароли, и Windows сохраняет все когда-либо вводимые вами в Интернете пароли);

сертификаты для доступа к сетевым ресурсам и зашифрованным данным на самом компьютере

2. Основные понятия и определения криптографии

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

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

Текст - упорядоченный набор из элементов алфавита.

В качестве примеров алфавитов, используемых в современных ИС можно привести следующие:

v алфавит Z33 - 32 буквы русского алфавита и пробел;

v алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;

v бинарный алфавит - Z2 = {0,1};

v восьмеричный алфавит или шестнадцатеричный алфавит;

Шифрование - преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.

Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.

Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.

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

Криптографическая система с открытым ключом (или Асимметричное шифрование, Асимметричный шифр) -- система шифрования или электронной цифровой подписи (ЭЦП), при которой открытый ключ передаётся по открытому то есть незащищённому, доступному для наблюдения каналу, и используется для проверки ЭЦП и для шифрования сообщения. Для генерации ЭЦП и для дешифрования сообщения используется секретный ключ. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL, лежащих в основе HTTPS, в SSH. Также используется в PGP, S/MIME.

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

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

v количество всех возможных ключей;

v среднее время, необходимое для криптоанализа.

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

3. Основные современные методы шифрования

Среди различный методов шифрования информации можно выделить несколько основных методов:

v * Алгоритмы замены или Шифром замены называется алгоритм шифрования, который производит замены каждой буквы открытого текста, на какой-либо символ шифрованного текста. Получатель сообщения расшифровывает его путем обратной замены. Обычно этот метод не используется в наше время т.к. он имеет низкую криптостойкость. Примером является шифр Цезаря. Такой шифр обладает недостатком: число различных ключей равно числу букв в алфавите. Другим примером шифра замены является лозунговый шифр. Основой запоминания ключевой последовательности является лозунг- легко запоминающиеся словосочетание. Записывается лозунг, затем выписываются в алфавитном порядке буквы, не вошедшие в лозунг.

v Алгоритмы перестановки -- символы исходного текста складываются с символами некой случайной последовательности. Самым распространенным примером считается шифрование файлов «имя пользователя.рwl», в которых операционная система Microsoft Windows 95 хранит пароли к сетевым ресурсам данного пользователя.

v Алгоритмы шифрования текста по некоторой формуле широко используемый в Интернете алгоритм шифрования RSA основан на свойствах простых чисел. Простыми числами называются числа, не имеющие делителей кроме самих себя и 1. А взаимно простыми не имеющие общих делителей и 1. Шифрование RSA широко применяете в интернете для шифрования сертификатов WEB Money.

v Комбинированные методы шифрования используются для увеличения стойкости шифрования с помощью сочетания нескольких способов шифрования.

v Одним из примеров является национальный стандарт США закрытия данных (DES).Этот алгоритм использует 64-битовые векторы, называемые блоками открытого текста, преобразуя в 64-битовые векторы, называемые блоками шифротекста, с помощью двоичного 56-битового ключа. Число ключей равно 256/7*1016. DES алгоритм применяется в хранении данных на компьютере, электронных системах платежа, электронным обмене информации.

v Так же примером комбинированного способа шифрования является ГОСТ-28147-89

v Этот алгоритм был разработан в СССР и начал применяться в 1990 году. Он лежит в основе банковской системе. ГОСТ-28147-89 является медлительным, но достаточно обладает стойкостью. Этот алгоритм похож на DES. Разница состоит в том, что отсутствует первоначальная перестановка и число циклов шифрования 32, вместо 16 в DeS.

4. Программные шифраторы

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

Некоторые программы шифрования содержат такой элемент, как цифровая подпись. Два алгоритма создания цифровой подписи принадлежат компании RSA и второй DSS, поддерживаемый национальным институтом стандартов и технологии США.

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

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

1. TRUECRYPT - программа с открытым исходным кодом шифрования диска.

2. Создает виртуальный зашифрованный диск внутри файла и монтирует его как реальный диск.

a. Шифрует весь раздел или устройства хранения, такие как USB флэш-накопителя или жесткого диска.

b. Шифрует раздел или диск, на котором установлен Windows (до загрузки аутентификации).

c. Шифрование осуществляется автоматически, в режиме реального времени (на лету) и является прозрачным.

d. Распараллеливание процессов и конвейерная обработка позволяют данным обрабатываться так, как если бы диск не был зашифрован.

e. Обеспечивает правдоподобное оправдание, в случае если заставляет вас раскрыть пароль. Скрытые тома (стеганография) и скрытые операционной системы.

f. Алгоритмы шифрования: AES-256, Serpent и Twofish. Режим работы: XTS. Дополнительную информацию о возможностях программы можно найти в документации.

5. Шифрование и дешифрование в . Net Framework

В .Net Framework можно найти криптографические службы, которые дают возможность безопасно кодировать и декодировать данные, а так же хэширование, генерация случайных чисел и проверка подлинности сообщений .Классы шифрования находятся в пространстве имен System.Security.Cryptography и реализует несколько симметричных и ассиметричных алгоритмов. Существуют некоторые классы, которые были добавлены в .Net 3.5 и имеют префикс или суффикс Cng(сокращенное от Cryptography Next Generation) и могут использоваться в Windows Vista и Windows Server 2008 и далее.

6. Криптографические примитивы

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

Криптография реализует следующие цели:

· Конфиденциальность- защита данных от несанкционированного просмотра;

· Целостность данных- сохранения данных от несанкционированного изменения;

· Проверка подлинности- передача сообщения исходит действительно от определенных адресатов.;

· Неотрекаемость- адресаты не должны отрицать передачу данных;

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

Таблица1.Криптографические примитивы

Криптографический приметив

Классы

Описание

Хеширование

MD5, MD5Cng, SHA1,SHA1Manage, SHA1Cng,SHA256, SHA256Managed,SHA256Cng, SHA384,SHA384Managed, SHA384Cng,SHA512, SHA512Managed,SHA512Cng

Отображает данные любого размера в байтовую последовательность фиксированной длины. Результаты хэширования статистически уникальны; отличающаяся хотя бы одним байтом последовательность не будет преобразована в то же самое значение. MD5 (Message Digest Algorithm 5) был разработан в RSA Laboratories и работает быстрее, чем SHA1. Алгоритм SHA1 является более устойчивым к атакам с применением методов грубой силы. Алгоритмы SHA разрабатывались в NSA (National Security Agency -- Агентство национальной безопасности). В MD5 размер хеш-значения составляет 128 бит, а в SHA1 -- 160 бит. В других алгоритмах SHA размер хеш-значения указан прямо в названии. Алгоритм SHA512 является самым надежным из всех, потому что подразумевает использование хеш-значения размером 512 бит, но при этом, конечно же, и работает медленнее всех остальных.

Симметричное шифрование

DES, DESCryptoServiceProvider,TripleDES,TripleDESCryptoServiceProvider,Aes, AesCryptoServiceProvider,AesManaged, RC2,RC2CryptoServiceProvider,Rijandel, RijandelManaged

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

Алгоритм DES (Data Encryption Standard -- стандарт шифрования данных) теперь считается небезопасным, поскольку основан на применении для ключа значения размером всего лишь 56 бит, которое может быть взломано меньше, чем за 24 часа.

Алгоритм Triple-DFS является следующей версией DFS и предусматривает использование ключей размером 168 бит, но эффективно обеспечивает безопасность только при 112 битах. Алгоритм AES (Advanced Encryption Standard -- усовершенствованный стандарт шифрования) поддерживает ключи размером 128,192 и 256 бит.

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

Ассиметричное шифрование

DSA, DSACryptoServiceProvider ECDsa, ECDsaCng, ECDiffieHellman, ECDiffieHellmanCng, RSA, RSACryptoServiceProvider

Осуществляет преобразование данных с целью предотвращения их просмотра третьей стороной. В данном способе шифрования для шифрования и расшифровки используется набор, состоящий из открытого и закрытого ключей. DSA (Digital Signature Algorithm -- алгоритмцифровой подписи) является утвержденным федеральным правительством США стандартом для цифровых подписей.

ECDSA (Elliptic Curve DSA) и ECDiffieHellman используют алгоритмы, основанные на группах эллиптических кривых. Эти алгоритмы обеспечивают большую безопасность в случае применения более коротких ключей. Например, использование ключа длиной 1024 бита для DSA по уровню безопасности аналогично применению ключа длиной 160 бита для ECDSA. В результате получается, что ECDSA будет работать гораздо быстрее. ECDiffieHellman -- это алгоритм, который применяется для обеспечения безопасного обмена секретными ключами по открытому каналу.

Криптографическая подпись

ECDSA

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

7. Блок-схема шифрования и дешифрования текстовых данных

Рисунок1.Блок-схема работы программы шифрования и дешифрования

8. Разработка программы шифрования и дешифрования

Для разработки программы шифрования и дешифрования я использовала среду разработки Microsoft Visual Studio.Net 2008. Программа выполнена на языке программирования С#.

При создании программы я использовала Консольное приложение Visual C#. Консольное приложение выполняет ввод/вывод данных через командную строку, она отлично подходит для программирования служебных программ. При создании нового консольного приложения автоматически создаются директивы. using System - это директива, которая разрешает использовать имена стандартных классов из пространства имен System непосредственно без указания имени пространства, в котором они были определены.:

Листинг 1//

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

Далее автоматические создается собственное пространство имен:

Листинг 2//

namespace shifr_cezar_algoritm_gammirov

С# - объектно-ориентированный язык, поэтому написанная на нем программа будет представлять собой совокупность взаимодействующих между собой классов. Автоматически был создан класс с именем Program. Данный класс имеет только один статистический метод Main. С данного метода начинается разработка программы.

Листинг 3//

class Program

{

static void Main(string[] args)

{

Далее подключаем новую директорию, которая нам понадобится для работы с файлами- using System.IO;

В методе Main задаем две строки переменными s и q. Переменной s присваиваем путь, находящегося файла, текст которого нужно зашифровать. Переменной q присваиваем путь файла, в котором располагается слово, словосочетание или предложение, являющийся ключом нашего шифрования и дешифрования. Считываем информацию с текстовых файлов, указывая кодировку Windows-1252.

Листинг 4//

string s = System.IO.File.ReadAllText("TestFile.txt", System.Text.Encoding.GetEncoding("windows-1252"));// считываем весь текст в файла и указываем кодировку "windows-1251"

string q = System.IO.File.ReadAllText("KeyTestFile.txt", System.Text.Encoding.GetEncoding("windows-1252"));// считываем весь текст в файла и указываем кодировку "windows-1251"

Далее задаем переменные разных типов:

Листинг 5//

byte[] charsNEW;// - 8ми битовые числа без знака будут использоваться для вывода asii кода шифрованных символов.

int код_строки = 0; //- задаем целочисленный тип в размере 32х-разрядное число

Encoding targetEncoding; //- переменная, предоставляющая кодировку символов.

byte[] encodedChars; //- 8ми битовые числа без знака будут использоваться для ввода asii кода символов.

Присваиваем нашим новым переменным кодирование для указанной кодовой странице и представление байта указанной последовательности.

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

Листинг 6//

targetEncoding = Encoding.GetEncoding(код_строки);

encodedChars = targetEncoding.GetBytes(s);

Console.WriteLine("строка = {0} кода символов {1}:", s, код_строки);

Повторяем данные действия для считывания ключа, изменяя переменные.

Листинг 7//

int код_строки2 = 0;

Encoding targetEncoding2;

byte[] encodedChars2;

targetEncoding2 = Encoding.GetEncoding(код_строки2);//Получает кодирование для указанной кодовой страницы.

encodedChars2 = targetEncoding2.GetBytes(q);//Получает представление байта указанной последовательности.

Console.WriteLine("строка = {0} кода символов {1}:", q, код_строки2);

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

for (int i = 0; i < encodedChars.Length; i++) //- здесь мы задаем переменную i(индекс массива символов).Пока i будет меньше размера кол-ва байтов строки s, будет выполнятся заданный ниже процесс.

Console.WriteLine("код символа {0}: {1}", i, encodedChars[i]); // печатает код буквы // отображено байтовое представление строки на конкретной кодовой странице

for (int j = 0; j < encodedChars2.Length; j++)

Console.WriteLine("код символа ключа {0}: {1}", j, encodedChars2[j]); //- тоже самое и для массива ключа

using System;

using System.IO;

using System.Security;

using System.Security.Cryptography;

using System.Runtime.InteropServices;

using System.Text;

namespace CSEncryptDecrypt

{

class Class1

{

[System.Runtime.InteropServices.DllImport("KERNEL32.DLL", EntryPoint = "RtlZeroMemory")]// удаляем ключ из памяти после использования для безопасности

public static extern bool ZeroMemory(IntPtr Destination, int Length);

static string GenerateKey()// фунция, чтобы сгенерировать ключ, 64 битовый

{

DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();// автоматически создается симметрический ключ

return ASCIIEncoding.ASCII.GetString(desCrypto.Key);// возвращает автоматически сгенерированный ключ для шифрования

}

static void EncryptFile(string sInputFilename, string sOutputFilename, string sKey)// представление вводимого, выводимого и ключа файла в виде строки

{

FileStream fsInput = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);

//ВВодимый файл, Использование класса FileStream для чтения, записи, открытые и закрытие файлов в файловой системе, а также манипулировать другими файлами

FileStream fsEncrypted = new FileStream(sOutputFilename, FileMode.Create, FileAccess.Write);// редим файла, режим доступа к файлу

//зашифрованный файл, создавание нового потока, Использование класса FileStream для чтения, записи, открытые и закрытие файлов в файловой системе, а также манипулировать другими файлами

DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey); // переод в asii коды

DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

ICryptoTransform desencrypt = DES.CreateEncryptor();

CryptoStream cryptostream = new CryptoStream(fsEncrypted, desencrypt, CryptoStreamMode.Write); //запись в cryptostream, связывание потоков данных криптографических преобразований.

byte[] bytearrayinput = new byte[fsInput.Length];// ввод байтового массива размером длины fsInput

fsInput.Read(bytearrayinput, 0, bytearrayinput.Length); // считывание байтового массива от 0 до длины байтового массива

cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);// запись зашифрованного потока от 0 до длины байтового массива

cryptostream.Close();

fsInput.Close();

fsEncrypted.Close();// закрываем вводимые и зашифрованные

}

Разработка шифрования и дешифрования .....

static void DecryptFile(string sInputFilename, string sOutputFilename, string sKey) // статическй метод дисшифровки

{

DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);// преобразование в asii код 64 бит ключ

DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

FileStream fsread = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read); // создаем поток файла, чтобы считывать зашифрованный

ICryptoTransform desdecrypt = DES.CreateDecryptor();

CryptoStream cryptostreamDecr = new CryptoStream(fsread,desdecrypt,CryptoStreamMode.Read);

StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);

fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());

fsDecrypted.Flush();

fsDecrypted.Close();

}

static void Main()

{

string sSecretKey; // создаем строку

sSecretKey = GenerateKey();// присваиваем строке сгенерированный ключ

GCHandle gch = GCHandle.Alloc(sSecretKey, GCHandleType.Pinned);

EncryptFile(@"файл для шифрования.txt", @"файл для зашифрованный.txt", sSecretKey);// из файла для шифрования, записываем ключ в файл для зашифрованный

DecryptFile(@"файл для зашифрованный.txt",@"фаил для расшифровки.txt",sSecretKey);

ZeroMemory(gch.AddrOfPinnedObject(), sSecretKey.Length * 2);

gch.Free();

}

}

}

Заключение

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

Используемый список литературы

Интернет-ресурсы:

1. http://msdn.microsoft.com/ru-RU/goglobal/

2. http://upport.microsoft.com

3. http://ecm-journal.ru

4. http://www.ixbt.com/soft/

5. http://oitzi.ru/

Учебники:

1. Элементы Дискретной Математики. Элементы Комбинаторики, Теории графов, Теории Кодирования и Криптографии.// Ю.Н. Мальцев, Е.П. Петров. Барнаул: Издательство Алт. университета,2004.

2. Программирование на языке С#: разработка консольных приложений

3. Авторы: Е.В. Кудрина, М.В. Огнева , М.С. Портенко (www.intuit.ru)

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

...

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

  • История развития криптографии, ее основные понятия. Простейший прием дешифровки сообщения. Основные методы и способы шифрования, современный криптографический анализ. Перспективы развития криптографии. Создание легкого для запоминания и надежного пароля.

    курсовая работа [3,9 M], добавлен 18.12.2011

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

    дипломная работа [44,9 K], добавлен 08.07.2009

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

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

  • Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.

    курсовая работа [48,5 K], добавлен 19.12.2009

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

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

  • Понятие и значение информационной безопасности, принципы и методы ее обеспечения. Главные понятия и определения криптографии. Модели симметричного шифрования данных и их функциональные особенности. Криптосистема DES как одна из современных и популярных.

    курсовая работа [326,8 K], добавлен 09.06.2014

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

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

  • Основные способы криптографии, история ее развития. Принцип шифрования заменой символов, полиалфавитной подстановкой и методом перестановки. Симметричный алгоритм шифрования (DES). Открытое распределение ключей. Шифры Ривеста-Шамира-Алдемана и Эль Гамаля.

    реферат [39,3 K], добавлен 22.11.2013

  • Основные инструменты и приемы для аутентификации клиента и шифрования информации. Шифрование и дешифрование методом одиночной и двойной перестановки, методом Кордано и Гронсфельда. Маловероятные сочетания букв и истинная последовательность столбцов.

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

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

    курсовая работа [19,0 K], добавлен 30.04.2011

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

    реферат [77,1 K], добавлен 10.12.2011

  • Формирование ключей для шифрования сообщения. Описание алгоритма RSA: шифрование и дешифрование. Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Сущность цифровой подписи.

    лабораторная работа [326,0 K], добавлен 04.11.2013

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

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

  • Шифрование и дешифрование с помощью сети Фейстеля. Процесс блочного преобразования открытой информации в зашифрованную информацию. Таблица перевода чисел и букв. Криптостойкость шифра как показатель его эффективности. Подстановки и перемещение битов.

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

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

    курсовая работа [809,4 K], добавлен 30.09.2016

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

    курсовая работа [795,7 K], добавлен 02.12.2014

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

    контрольная работа [1,1 M], добавлен 02.02.2012

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

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

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

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

  • Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.

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

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