Вход

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

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 192045
Дата создания 2012
Страниц 46
Источников 16
Мы сможем обработать ваш заказ (!) 29 марта в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 820руб.
КУПИТЬ

Содержание

Содержание
Введение
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)
НЕТ
Определить количество строк
ДА
Задан ключ?
Счетчик>кол-ва строк?
ДА
НЕТ
Текстовое поле не пусто?
ДА
Сохранить?
Перейти в стартовое окно программы

Список литературы [ всего 16]

Библиографический список
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
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.0047
© Рефератбанк, 2002 - 2024