Помощь в написании студенческих работ
Антистрессовый сервис

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

Курсовая Купить готовую Узнать стоимостьмоей работы

Borland Delphi — средство разработки приложений под Windows. Достоинство Delphi — это быстрый компилятор, большие возможности для работы с базами данных и большой набор компонентов. Простота, скорость и эффективность Delphi объясняют её выбор. Есть и другие достоинства: простота изучения Object Pascal; программы, написанные на Delphi, не требуется снабжать дополнительными библиотеками. Также… Читать ещё >

Разработка программы шифровки и дешифровки текста. Алгоритм — любой (реферат, курсовая, диплом, контрольная)

Содержание

  • 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. Средство разработки — Delph
    • 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:='абвгдежзийклмнопрстуфхцчшщъыьэюя

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ123 456 789';

{заполнение 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:='абвгдежзийклмнопрстуфхцчшщъыьэюя

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ123 456 789';

{заполнение 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. P rotocols, Algorithms and Source Code in C. —

М.: Триумф, 2002 — 816 с Щербаков Л. Ю., Домашен А. В. Прикладная криптография. Использование и синтез криптографических интерфейсов. — М: Издательско-торговый дом «Русская Редакция», 2003 — 416 с.

статья «Программы шифрования данных» Грегори С. Смит «Мир ПК», № 03, 1997

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

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

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

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

ШИФРОВАНИЕ

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

Простая

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КОДИРОВАНИЕ

Смысловое

по словарю

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

Символьное

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

Бесключевые

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Потоковые

Блочные

Составные

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

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

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

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

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

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

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

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

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

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

шифратор

шифротекст

(

ключ

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

поток ключей

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

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
Заполнить форму текущей работой
Купить готовую работу

ИЛИ