Вам нужна курсовая работа?
Интересует Программирование?
Оставьте заявку
на Курсовую работу
Получите бесплатную
консультацию по
написанию
Сделайте заказ и
скачайте
результат на сайте
1
2
3

Разработка программы шифровки и дешифровки текста. Алгоритм - любой.

  • 46 страниц
  • 16 источников
  • Добавлена 13.07.2012
1 100 руб. 2 200 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание
Введение
1. Основы теории шифрования
1.1 Терминология
1.2 Методы криптографического скрытия информации
1.2.1 Математическая модель шифрования
1.2.2 Ключ шифрования
1.2.3 Классификация методов шифрования
1.3 Классификация алгоритмов шифрования
1.3.1 Симметричные и асимметричные алгоритмы шифрования
1.3.2 Потоковые и блочные алгоритмы шифрования
Шифры перестановок
Шифры замены
1.4 Криптосистемы
2. Разработка программы шифрования текста
2.1 Общие положения разработки. Постановка требований
2.2 Алгоритм шифрования – шифр Вижинера
2.3 Средство разработки - Delphi
2.4 Проект программы шифрования
2.5 Блок-схемы основных алгоритмов программы
2.6 Иллюстрация режимов работы программы
2.6.1 Режим шифрования текста из файла
2.6.2 Режим шифрования текстового блока
2.7 Программная реализация
2.7.1 Обработка текстового файла
2.7.2 Обработка текстового блока
Выводы
Библиографический список


Фрагмент для ознакомления

Ключ при этом повторяется необходимое число раз:
С Е Г О Д Н Я Х О Р О Ш А Я П О Г О Д А К А М Е Н Ь К А М Е Н Ь К А М Е Н Ь К А
Каждая буква шифруемого текста заменяется по подматрице (рис. 9) буквами, находящимися на пересечении линий, соединяющих буквы шифруемого текста в первой строке подматрицы и находящихся под ними букв ключа.

Рис. 9 Иллюстрация операции замены символа исходного текста

Шифротекст – ЫЕПУСИИХЩХЫФКЯЫУРКОА.

Полученный текст может разбиваться на группы по нескольку знаков:
ЫЕПУ СИИХ ЩХЫФ КЯЫУ РКОА.
Расшифровка текста производится в следующей последовательности:
над буквами зашифрованного текста последовательно надписываются буквы ключа, причем ключ повторяется необходимое число раз;
в строке подматрицы Вижинера, соответствующей букве ключа, отыскивается буква, соответствующая знаку шифрованного текста. Находящаяся под ней буква первой строки подматрицы и будет буквой исходного текста;
полученный текст группируется в слова по смыслу.
Достоинством описанного способа является то, что процедуры как прямого, так и обратного преобразования являются строго формальными, что позволяет реализовать их алгоритмически.
Недостатком метода является то, что при небольшой длине ключа надежность шифрования становится невысокой.
2.3 Средство разработки - Delphi
В качестве средства разработки программы, заявленной в курсовом проекте, была использована одна из самых стабильных версий среды программирования фирмы Borland – Delphi версии 7.
Borland Delphi - средство разработки приложений под Windows. Достоинство Delphi - это быстрый компилятор, большие возможности для работы с базами данных и большой набор компонентов. Простота, скорость и эффективность Delphi объясняют её выбор. Есть и другие достоинства: простота изучения Object Pascal; программы, написанные на Delphi , не требуется снабжать дополнительными библиотеками. Также Delphi7 это не только прекрасный инструмент разработки программного обеспечения, но и язык программирования, позволяющий писать как небольшие программы и утилиты для персонального использования, так и крупные корпоративные системы, работающие с базами данных на различных платформах, распределённые приложения и вебсервисы.

Рис. 10 Рабочее окно среды разработки Delphi с загруженным проектом программы шифрования
2.4 Проект программы шифрования

Рис. 11 Проект формы стартового окна программы (Form2) Рис. 12 Проект формы окна шифрования текста из файла (Form1)


Рис. 13 Проект формы окна шифрования текстового блока

2.5 Блок-схемы основных алгоритмов программы
В качестве основных алгоритмов программы можно выделить: шифрование \ дешифрование файла и шифрование \ дешифрование текстового блока.

Рис. 14 Блок-схема шифрования \ дешифрования файла

Рис. 15 Блок-схема шифрования \ дешифрования текстового блока

2.6 Иллюстрация режимов работы программы
Для иллюстрации работы программы и тестирования ее работоспособности был использован файл 1.txt:

Рис. 16 Тестовый файл

2.6.1 Режим шифрования текста из файла

Рис. 17 Стартовое окно программы – выбор режима работы программы


Рис. 18 Загрузка файла на обработку

Рис. 19 Сохранение результата преобразования

Рис. 20 Результат шифрования

2.6.2 Режим шифрования текстового блока

Рис. 21 Задание текста для шифрования


Рис. 22 Результат выполнения шифрования


2.7 Программная реализация
2.7.1 Обработка текстового файла
Загрузка файла на обработку
if OpenDialog1.Execute then
begin
AssignFile(f,OpenDialog1.FileName);
Reset(F);
FN:=OpenDialog1.FileName;
end;

Кнопка «Выполнить»
if FN='' then begin
ShowMessage('Не задан файл-источник шифрования!');
exit;
end;
alphabet:='абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789';
{заполнение 1-й строки таблицы Вижинера исходной строкой алфавита}
for i:=1 to length(alphabet) do
tablV[1,i]:=alphabet[i];
{проверка на наличие введенного ключа}
if Edit1.Text<>'' then
begin
key:=Edit1.Text;
{формирование матрицы для заданного ключа }
for k:=1 to length(key) do
begin
pos_ch:=pos(key[k],alphabet);
for i:=1 to length(alphabet) do
begin
if pos_ch+1>length(alphabet) then pos_ch:=1;
tablV[k+1,i]:=alphabet[pos_ch];
pos_ch:=pos_ch+1;
end;
end;
end
else begin
ShowMessage('Не задан ключ шифрования!');
exit;
end;
case RadioGroup1.ItemIndex of
0: shifr;
1: deshifr;
end;

Процедура шифрования
procedure shifr;
var
i,j,k,pos_ch,kol:integer;
tem,str_new:string;
begin
{шифрование}
while not eof(F) do
begin
readln(F,tem);
str_new:='';
kol:=1;
while kol<=length(tem) do
for i:=2 to length(key)+1 do
begin
pos_ch:=pos(tem[kol],alphabet);
if pos_ch<>0 then str_new:=str_new+tablV[i,pos_ch]
else str_new:=str_new+tem[kol];
kol:=kol+1;
end;
Form1.Memo1.Lines.Add(str_new);
end;
CloseFile(F);
if Form1.SaveDialog1.execute then
Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName);
end;

Процедура дешифрования
procedure deshifr;
var
i,j,pos,i1:integer;
tem,str_new:string;
b:boolean;
begin
while not eof(F) do
begin
readln(F,tem);
str_new:='';
j:=1;
for i:=1 to length(tem) do
begin
b:=false;
j:=j+1;
for i1:=1 to length(alphabet)-1 do
if tablV[j,i1]=tem[i] then
begin
str_new:=str_new+tablv[1,i1];
b:=true;
end;
if b=false then str_new:=str_new+tem[i];
if j=length(key)+1 then j:=1;
end;
Form1. Memo1.Lines.Add(str_new);
end;
CloseFile(F);
if Form1.SaveDialog1.Execute then Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName);
end;

2.7.2 Обработка текстового блока
Кнопка «Выполнить»
Form3.Memo2.Clear;
alphabet:='абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789';
{заполнение 1-й строки таблицы Вижинера исходной строкой алфавита}
for i:=1 to length(alphabet) do
tablV[1,i]:=alphabet[i];

{проверка на наличие введенного ключа}
if Edit1.Text<>'' then
begin
key:=Edit1.Text;
{формирование матрицы для заданного ключа }
for k:=1 to length(key) do
begin
pos_ch:=pos(key[k],alphabet);
for i:=1 to length(alphabet) do
begin
if pos_ch+1>length(alphabet) then pos_ch:=1;
tablV[k+1,i]:=alphabet[pos_ch];
pos_ch:=pos_ch+1;
end;
end;
end
else begin
ShowMessage('Не задан ключ шифрования!');
exit;
end;
Label1.Caption:='Результат';
case RadioGroup1.ItemIndex of
0: shifr;
1: deshifr;
end;

Процедура шифрования
procedure shifr;
var
i,j,k,pos_ch,kol,kol_str,str_made:integer;
tem,str_new:string;
begin
{шифрование}
kol_str:=Form3.Memo1.Lines.Count;
str_made:=0;
while str_made<=kol_str-1 do
begin
str_new:='';
tem:=Form3.Memo1.Lines.Strings[str_made];
kol:=1;
while kol<=length(tem) do
for i:=2 to length(key)+1 do
begin
pos_ch:=pos(tem[kol],alphabet);
if pos_ch<>0 then str_new:=str_new+tablV[i,pos_ch]
else str_new:=str_new+tem[kol];
kol:=kol+1;
end;
Form3.Memo2.Lines.Add(str_new);
str_made:=str_made+1;
end;
Form3.Memo1.Clear;
for i:=0 to kol_str-1 do
Form3.Memo1.Lines.Add(Form3.Memo2.Lines.Strings[i]);
case Application.MessageBox('Сохранить результат?','Сообщение',MB_ICONQUESTION+MB_YESNO) of
IDYES: if Form3.SaveDialog1.Execute then Form3.Memo1.Lines.SaveToFile(Form3.SaveDialog1.FileName);
end;
end;

Процедура дешифрования
procedure deshifr;
var
i,i1,j,k,pos_ch,kol,kol_str,str_made:integer;
tem,str_new:string;
b:boolean;
begin
kol_str:=Form3.Memo1.Lines.Count;
str_made:=0;
while str_made<=kol_str-1 do
begin
str_new:='';
j:=1;
tem:=Form3.Memo1.Lines.Strings[str_made];
for i:=1 to length(tem) do
begin
b:=false;
j:=j+1;
for i1:=1 to length(alphabet)-1 do
if tablV[j,i1]=tem[i] then
begin
str_new:=str_new+tablv[1,i1];
b:=true;
end;
if b=false then str_new:=str_new+tem[i];
if j=length(key)+1 then j:=1;
end;
Form3.Memo2.Lines.Add(str_new);
str_made:=str_made+1;
end;
Form3.Memo1.Clear;
for i:=0 to kol_str do
Form3.Memo1.Lines.Add(Form3.Memo2.Lines.Strings[i]);
case Application.MessageBox('Сохранить результат?', 'Сообщение', MB_ICONQUESTION+MB_YESNO) of
IDYES: if Form3.SaveDialog1.Execute then Form3.Memo1.Lines.SaveToFile(Form3.SaveDialog1.FileName);
end;
end;
Выводы
В представленном курсовом проекте была спроектирована и реализована программа шифрования текста на основе полиалфавитного алгоритма шифрования заменой – шифра Винера.
Представленная в проекте программа позволяет производить шифрование и дешифрование текста, введенного в программе, и текста, загруженного в программу из внешнего текстового файла. В программе реализован симметричный метод шифрования – шифрование с открытым ключом.
Для достижения поставленной цели и результата в виде работоспособной программы в ходе выполнения курсового проекта была изучена основная терминология шифрования, изучены методы и алгоритмы шифрования, принцип работы шифра Вижинера, определены основные требования к программе шифрования текста, разработать интерфейс программы, разработан алгоритм программы и реализован программный код программы шифрования текста, проведено тестирование работоспособности программы.
Для проверки работы программы разработан и представлен в работе тестовый пример. Результаты тестирования доказывают, что программа правильно выполняет все операции по обработке входных данных и формирования выходных данных.

Библиографический список
Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии. Учебное пособие, 2-е изд., испр. И доп. – М.: Гелиос АРВ, 2002 – 480 с.
Асосков А.В., Иванов М.А., Мирский А.А., Рузин А.В., Сланин А.В., Тютвин А.Н. Поточные шифры. – М.: КУДИЦ-ОБРАЗ, 2003 – 336 с.
Бабаш А.В., Шанкин Г.П. Криптография. Под ред. В.П. Шерстюка, Э.А. Применко / А.В. Бабаш, Г.П. Шанкин. – М.: СОЛОН-ПРЕСС,2007 – 512 с.
Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии. М., Горячая линия – Телеком, 2001 – 122 с.
Брассар Ж. Современная криптология: пер. а снгл. – М., Издательско-полиграфическая фирма ПОЛИМЕД, 1999 – 176 с.
Жельников В. «Кpиптогpафия от папиpуса до компьютеpа» - М., ABF, 1996 – 190 с.
Мао, Венбо Современная криптография: теория и практика.: пер. с англ. – М.: Издательский дом «Вильямс», 2005 – 768 с.
Панасенко С.П. Алгоритмы шифрования. Специальный справочник. = Спб.: БХВ-Петербург, 2009 – 576 с.
Панасенко С.П., Батура В.П. Основы криптографии для экономистов: учебное пособие. Под. Ред. Л.Г. Гагариной. – М.: Финансы и статистика, 2005 – 176 с.
Партыка Т. Л., Попов И. И. Информационная безопасность. Учебное пособие для студентов учреждений среднего профессионального образования. — М.: ФОРУМ: ИНФРА-М, 2002. - 368 с.
Ростовцев А.Г., Маховенко Е.Б. Теоретическая криптография – С-Пб.: АНО НПО «Профессионал», 2005 – 485 с.
Фомичев В.М. Дискретная математика и криптология. Курс лекций / под общ. ред. д-ра физ.-мат. н. Н.Д. Подуфалова. – М.: Жиалог-Мифт, 2003 – 400 с.
Смарт Н. Криптография. Москва: Техносфера, 2005 - 528 с.
Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002 - 816 с
Щербаков Л. Ю., Домашен А. В. Прикладная криптография. Использование и синтез криптографических интерфейсов. - М: Издательско-торговый дом «Русская Редакция», 2003 - 416 с.
статья «Программы шифрования данных» Грегори С. Смит «Мир ПК» , № 03, 1997









3

1


КРИПТОГРАФИ-ЧЕСКИЕ МЕТОДЫ

Замена (подстановка)

Простая (одноалфавитная)

Многоалфавитная одноконтурная обыкновенная


Многоалфавитная одноконтурная монофоническая


Многоалфавитная многоконтурная

ШИФРОВАНИЕ

Перестановка

Простая

Усложненная по таблице

Усложненная по маршрутам

Аналитическое преобразование

С использованием алгебры матриц

По особым зависимостям

Гаммирование

С конечной короткой гаммой

С конечной длинной гаммой

С бесконечной гаммой

Комбинирован-ные методы

замена+перестановка

замена+гаммирование

перестановка+гаммирование

гаммирование+гаммирование

КОДИРОВАНИЕ

Смысловое

по словарю

по кодовому алфавиту

Символьное

КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ

Бесключевые

Одноключевые

Двухключевые

Методы криптографического контрольного суммирования

Генерация случайных чисел

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

Методы криптографического контрольного суммирования

Генерация псевдослучайных чисел

Аутентификация

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

Электронная подпись

Аутентификация

АЛГОРИТМЫ ШИФРОВАНИЯ

Симметричные алгоритмы

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

Потоковые

Блочные

Составные

с одноразовым или бесконечным ключом


с конечным ключом

на основе генератора ПСЧ

шифры перестановки


шифры замены

моноалфавитные шифры

полиалфавитные шифры

горизонтальная перестановка

вертикальная перестановка

перестановка по маршрутам

решетки, ялабиринты

Открытый текст

шифратор

шифротекст

(

ключ

110010101

Генератор ключевого потока

101001110

поток ключей

011011011



Генератор потока ключей


Генератор потока ключей




Pi

Pi

открытый текст

поток ключей Ki

шифротекст
Ci

открытый текст

ШИФРОВАНИЕ

ДЕШИФРОВАНИЕ

Сохранить Memo1 в файл

Memo1=Memo2

ДА

НЕТ

ДА

Конец строки?

Н

Д

О

Г

Е

С

Ш

О

Р

О

Х

Я

О

Г

О

П

Я

А

*

*

*

*

А

Д

Перейти на следующий символ

Записать новый символ в Memo2 (Visible:=false)

О

П

Я

А

Ш

Р

О

Х

Я

Н

Д

О

Г

Е

С

О

а)

б)

замена тек. символа исх. строки на символы таблицы Вижинера строка j столбец i

конец

Сформировать рабочую матрицу

Закрыть файл

Сохранить Memo в файл

ДА

НЕТ

ДА

Сформировать рабочую матрицу

Конец строки?

НЕТ

конец

Перейти на следующий символ

Открыть файл

ДА

Задан ключ?

Записать новый символ в Memo (Visible:=false)

замена тек. символа исх. строки на символы таблицы Вижинера строка j столбец i

Считать строку
(до маркера eoln)

EOF?

ДА

НЕТ

Задан путь к файлу?

Запись преобразованного текста в файл

Вывод результата

ДА

Сохранение?



Операция:
шифрование
дешифрование

Запрос ключа

Запрос операции:
шифрование
дешифрование

Запрос текста

Сохранение преобразованных данных в файл

Операция:
шифрование
дешифрование

Запрос ключа

Запрос операции:
шифрование
дешифрование

Загрузка файла

обработка текстового блока

обработка файла

Определение режима работы программы:

Считать строку
(до маркера eoln)

НЕТ

Определить количество строк

ДА

Задан ключ?

Счетчик>кол-ва строк?

ДА

НЕТ

Текстовое поле не пусто?

ДА

Сохранить?

Перейти в стартовое окно программы

Библиографический список
1. Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии. Учебное пособие, 2-е изд., испр. И доп. – М.: Гелиос АРВ, 2002 – 480 с.
2.Асосков А.В., Иванов М.А., Мирский А.А., Рузин А.В., Сланин А.В., Тютвин А.Н. Поточные шифры. – М.: КУДИЦ-ОБРАЗ, 2003 – 336 с.
3.Бабаш А.В., Шанкин Г.П. Криптография. Под ред. В.П. Шерстюка, Э.А. Применко / А.В. Бабаш, Г.П. Шанкин. – М.: СОЛОН-ПРЕСС,2007 – 512 с.
4.Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии. М., Горячая линия – Телеком, 2001 – 122 с.
5.Брассар Ж. Современная криптология: пер. а снгл. – М., Издательско-полиграфическая фирма ПОЛИМЕД, 1999 – 176 с.
6.Жельников В. «Кpиптогpафия от папиpуса до компьютеpа» - М., ABF, 1996 – 190 с.
7.Мао, Венбо Современная криптография: теория и практика.: пер. с англ. – М.: Издательский дом «Вильямс», 2005 – 768 с.
8.Панасенко С.П. Алгоритмы шифрования. Специальный справочник. = Спб.: БХВ-Петербург, 2009 – 576 с.
9.Панасенко С.П., Батура В.П. Основы криптографии для экономистов: учебное пособие. Под. Ред. Л.Г. Гагариной. – М.: Финансы и статистика, 2005 – 176 с.
10.Партыка Т. Л., Попов И. И. Информационная безопасность. Учебное пособие для студентов учреждений среднего профессионального образования. — М.: ФОРУМ: ИНФРА-М, 2002. - 368 с.
11.Ростовцев А.Г., Маховенко Е.Б. Теоретическая криптография – С-Пб.: АНО НПО «Профессионал», 2005 – 485 с.
12.Фомичев В.М. Дискретная математика и криптология. Курс лекций / под общ. ред. д-ра физ.-мат. н. Н.Д. Подуфалова. – М.: Жиалог-Мифт, 2003 – 400 с.
13.Смарт Н. Криптография. Москва: Техносфера, 2005 - 528 с.
14.Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002 - 816 с
15.Щербаков Л. Ю., Домашен А. В. Прикладная криптография. Использование и синтез криптографических интерфейсов. - М: Издательско-торговый дом «Русская Редакция», 2003 - 416 с.
16.статья «Программы шифрования данных» Грегори С. Смит «Мир ПК» , № 03, 1997

Четырнадцать

КУРСЫ

дисциплина "Технологии программирования"

Тема: "Разработка программы шифрования и дешифровка текста методом простой замены"

2009

Содержание

Цель

Текст программы шифрования

Алгоритм шифрования

Текст программа расшифровки

программа Алгоритм расшифровки

Содержание файла с исходным текстом

Содержание файл с шифротекстом

Содержание файла с дешифрованным текстом

Цель

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

Требования к программам шифрования и дешифрования

это Программа шифрования и дешифрования текста должны быть независимые программные единицы, разработанные на языке программирования C/C . Разработка программ должна быть выполнена как консольное приложение, при использовании компиляторов MS Visual C или C Builder, или как DOS-программа, при разработке с использованием компиляторов BC или TC .

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

14

рис.1

Соответственно варианту работы, дополнительные требования к работе есть такие:

· текст-ключ, введенный пользователем в качестве параметра в командной строке при запуске программы;

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

· все персонажи ключевые и оригинальный текст заглавными буквами;

· подстановке символов ключа напрямую использовать подстановку.

Текст программы шифрования

#include

#include

#include

#include

#include

#include<мать.ч>

void main(int argc, char **kluch)

{

clrscr();

суд<<"Key: "<

ifstream in("E:\\\\Input.txt");

Узнать стоимость работы