Криптографическое преобразование конфеенциальной информации представленной в виде файлов по методу Гронсфельда
Министерство Образования и Науки Республики Казахстан
Международная Бизнес Академия
Бизнес-колледж
Кафедра ИТ и ОТД
Курсовая Работа
По дисциплине: «Программирование»
Тема: «Криптографическое
преобразование конфеенциальной информации
представленной в виде файлов по методу
Гронсфельда »
Оценка: _______
Караганда
2010
Содержание.
1.Введение ..……………………....…………………………………………
2.История метода..………..…….……………………......
4.Математическая модель.………………….………………………………..5
5.Блок схема алгоритма работы программы.……………………………….6
6.Описание Интерфейса……………………………………………………
7.Описание работы программы……………………………………………..13
8.Вывод……………………………………………………………
9.Список литературы…………………….……………………………
10.Приложение……………………………………………
1.Введение
Историю криптографии можно
Возникла потребность в
С развитием ЭВМ
2.История Метода
Шифр Гронсфельда.
Этот шифр сложной замены, называемый шифром Гронсфельда, представляет собой модификацию шифра Цезаря числовым ключом. Для этого под буквами исходного сообщения записывают цифры числового ключа. Если ключ короче сообщения, то его запись циклически повторяют. Шифротекст получают примерно, как в шифре Цезаря, но отсчитывают по алфавиту не третью букву (как это делается в шифре Цезаря), а выбирают ту букву, которая смещена по алфавиту на соответствующую цифру ключа. Например зашифруем слово «Гронсфельд», ключом будет – 2531, и слово при шифровке будет выглядеть следующим образом(рис.1):
| Сообщение | Г | Р | О | Н | С | Ф | Е | Л | Ь | Д | |
| Ключ | 2 | 5 | 3 | 1 | 2 | 5 | 3 | 1 | 2 | 5 | |
| Шифртекст | Е | Х | С | О | У | Щ | З | П | Ю | И |
Рис.1 Пример шифрования.
Чтобы зашифровать первую букву сообщения Г, используя первую цифру ключа 2 , нужно отсчитать вторую по порядку букву от Г в алфавите получается первая буква Е(рис.2).
| Г | Д | Е |
| 0 | 1 | 2 |
Рис.2 Шифрование одного символа.
Следует отметить, что шифр Гронсфельда вскрывается относительно легко, если учесть, что в числовом ключе каждая цифра имеет только десять значений, а значит, имеется лишь десять вариантов прочтения каждой буквы шифртекста. С другой стороны, шифр Гронсфельда допускает дальнейшие модификации, улучшающие его стойкость, в частности двойное шифрование разными числовыми ключами.
3. Актуальность и Проблематика программы
Шифрование методом Гронсфельда решает такую проблему как, преобразование конфиденциальной информации в не пригодную для чтения другим лицам. Чтобы защитить важную нам информацию, можно создать специальное программное обеспечение, которое будет работать на основе метода Гронсфельда. С помощью такой программы будет легче, быстрее и надежнее защитить нужную информацию, чем преобразовывать такую шифровку вручную каждый раз.
Метод Гронсфельда использует в шифровке довольно простые, но разнообразные ключи, и не придётся хранить файлы-таблицы или т.п., что делает программу более удобной, для простого пользователя.
Актуальность программы заключается в том, что она:
- У программы достаточно простой интерфейс что позволит пользоваться программой любому, умеющему обращаться с компьютером человеку.
- Ключом шифрования и дешифровки могут быть: слова, простой набор символов или просто любые числа, что довольно упрощает использование программы и крайне усложняет процесс взлома. Т.к. если изначальный метод Гронсфельда учитывает только 10 символов 0-9, то в данном случае подобрать ключ почти невозможно, т.к. в шифре используются коды символов и могут быть использованы различные символы и количество возможных вариантов значительно увеличивается.
- Может шифровать от простой текстовой информации до больших аудио и видео файлов, что значительно расширяет круг возможных пользователей.
4.Математическая модель
Алгоритм
программы будет выглядеть
При шифровании:
Для шифрования одного символа используется
формула.
Yi=Xi+Kj;
формула
1
X – массив с кодами
символов открытого текста;
K – массив с кодами символов ключа;
Y – массив с кодами символов закрытого текста;
i – счетчик для массивов X,Y;
j – счетчик для
массива K.
При
шифровании из данного файла будут
читаться байты и складываться с
кодом символа, приведённого в ключе.
Для второго байта будет
При дешифровании: открытый текст будет равен разности шифрованного символа и символа ключа.
Примечание:
При дешифровке должен использоваться
тот же ключ, что использовался при
шифровании, с учётом регистра (т.к. от
регистра тоже зависит код символа).
5.Блок схема алгоритма
Шифрование будет
происходить по следующей схеме(рис.3):
Рис.3 Блок
схема шифрования.
Процесс дешифровки
будет происходить практически одинаково,
с разницей в том что будет не сложение
а разность символов.(рис.4):
Рис.4
Блок схема дешифрования.
6.Описание
Интерфейса
Для создания полноценной и дееспособной программы потребуются две формы, в одной будут происходить все действия, а в другой будет содержаться информация как эти действия выполнять. Назовём главную форму Метод Гронсфельда(рис.5):
Рис.5 Главная форма.
1- Название формы.
2- Объект «LabeledEdit», это поле будет используется для отображается пути Исходного файла, , а в Caption написано пояснение к назначению данного компонента.
3- Объект «LabeledEdit», это поле будет используется для отображается пути Результирующего файла, , а в Caption написано пояснение к назначению данного компонента.
4- Объект «TButton», при нажатии на эту кнопку будет осуществляться открытие исходного файла, посредством запуска компонента OpenDialog.
5- Объект «TButton», при нажатии на эту кнопку будет осуществляться открытие результирующего файла,посредством запуска компонента SaveDialog.
6- Объект «LabeledEdit», это поле будет используется для ввода ключа по которому будет идти процесс шифрования и дешифровки, а в Caption написано пояснение к назначению данного компонента.
7- Объект «TButton», при нажатии на эту кнопку будет происходить запуск процедуры шифрования открытого, нешифрованного файла.
Для этой кнопки выставлен выделяющийся стиль Italic Bold, что подчёркивает её важность.
8- Объект «TButton», при нажатии на эту кнопку будет происходить запуск дешифровки зашифрованного файла.
Для этой кнопки выставлен выделяющийся стиль Italic Bold, что подчёркивает её важность.
9- Объект «TBitBtn», кнопка при нажатии на которую, будет происходить выход из приложения. Для этой кнопки выставлен выделяющийся красный цвет и стиль Bold, что подчёркивает её важность а сам тип TBitBtn учитывает остдельное оформление кнопки, для этой выставлено оформление bkClose, что подчёркивает её важность.
10- Объект «MainMenu», объект главного меню, в котором выставлена кнопка «Помощь», при нажатии на которую на экран будет выводиться отдельная форма со справкой т.е указанием как пользоваться приложением, на форме справки в MainMenu1 выставлена кнопка «Выход», закрывающая форму.
11- Объект «OpenDialog», невидимый пользователю компонент, запускающий открытие используемого файла, запускающийся от процедуры нажатия кнопки.
12- Объект «SaveDialog», невидимый пользователю компонент, запускающий сохранение результирующего файла, запускающийся от процедуры нажатия кнопки.
13- Объект «TMemo»,
текстовое поле, предназначенное для вывода
справочной информации на форме «Справка».
В основном
всё действие программы
Это позволяет не использовать глобальные переменные, наличие которых можешь замедлить ход работы программы. Вторая форма же предназначена только как справочная.
Принцип работы программы такой:
- После нажатия кнопки «Открыть» открывается диалоговое окно выбора файла, посредством использования компонента «OpenDialog».
- После выбора файла адрес к этому файлу записывается в свойство Text Компонента «Labeled Edit1».
- При нажатии кнопки «Сохранить» открывается диалоговое окно сохранения файла, посредством использования компонента «SaveDialog».
- После выбора результирующего файла адрес к этому файлу записывается в свойство Text Компонента «Labeled Edit2».
- Далее вводится ключевое слово.
- После ввода ключевого слова нажимается кнопка «Шифровать». При нажатии этой кнопки адреса к файлам из LabeledEdit1,2 связываются с переменными, обозначающими файлы, причём если в этих компонентах ничего не указано, то будет выведено сообщение об ошибке.Далее происходит чтение байт из первого файла, сложение их с кодом символа ключа и запись во второй файл. При завершении процедуры происходит вывод сообщения «Шифрование Завершено».
- Процесс дешифровки подобен, но при выборе файлов исходным будет шифрованный, и вместо сложения числа байт с кодом символа, будет происходить вычитание. Следует напомнить что чтобы дешифрованный файл был читаемым его разрешение должно быть таким же как и у исходного файла.
- Для справки можно нажать на кнопку главного меню первой формы. Откроется вторая форма, с компонентом «Мемо», Текст Справки в который передаётся с нажатием кнопки открытия справки. Выход их формы справки осуществляется посредством нажатия подобной кнопки на главном меню.
7. Описание работы программы
Чтобы проверить работает программа или нет, произведём шифрование текстового файла, содержащего в себе произвольный текст.
- При запуске программы на экране появится главная форма(рис.6).
Рис.6 Форма Метода Гронсфельда.
- Для начала выберем исходный файл нажатием на кнопку открыть(рис.7).
Рис.7 Кнопка открытия исходного файла.
- В появившемся окне выберем файл который будем шифровать (Рис.8)
Рис. 8 Открытие Файла
- На главной форме появится путь исходного файла (Рис. 9)
Рис. 9 Форма с выбранным исходным файлом
- Нажмём на кнопку сохранить, чтобы выбрать результирующий файл (рис.10).
Рис.10 Кнопка
выбора результирующего файла.
- Выберем директорию и введём имя результирующего файла, расширение предлагается ввести пользователю (но для дешифровки ОБЯЗАТЕЛЬНО знать расширение исходного файла, что повышает сложность взлома информации).
- После выбора результирующего файла мы увидим его путь, т.е. куда он будет сохранён. (Рис. 11)
Рис. 11 Форма с выбранным
результирующим файлом
- Далее пишем ключ на основе которого будет идти шифровка, например слово «текст». (Рис. 12)
Рис. 12 Форма с Набранным ключом
- Если по каким то причинам не были введены: ключевое слово, исходный файл или результирующий файл то на экран выведется сообщение об ошибке и процесс шифрования и дешифровки будет не выполним.
Процесс Дешифрования зашифрованного текста проходит также за исключением того, что Исходным файлом будет шифрованный файл, а результирующим любой другой файл и ключом должно быть такое же ключевое слово, что использовалось при шифровке. (Рис. 13)
Рис. 13 Заполененная
форма процесса Дешифрования
Так же
для пользователей добавлен пункт
«Справка» который открывается
через кнопку «Помощь» в меню. (Рис.
14)
Рис. 14 Форма
окна справки
Покажем наглядно, как происходит процесс шифрования. Зашифруем фразу «Метод Гронсфельда», за ключевое слово возьмём «текст»:
- Буква «М», символ буквы «204» + символ ключа «т(242)»будет символ «190».
- «е(229)» + «е(229)»= «202».
- «т(242)» + «к(234)»= «220».
- «о(238)» + «с(241)»= «223».
- «д(228)» + «т(242)»= «214».
- «_(32)» + «т(242)»= «18».
- «Г(195)» + «е(229)»= «168».
- «р(240)» + «к(234)»= «218».
- «о(238)» + «с(241)»= «223».
- «н(237)» + «т(242)»= «223».
- «с(241)» + «т(242)»= «227».
- «ф(244)» + «е(229)»= «217».
- «е(229)» + «к(234)»= «207».
- «л(235)» + «с(241)»= «220».
- «ь(252)» + «т(242)»= «238».
- «д(228)» + «т(242)»= «214».
- «а(224)» + «е(229)»= «197».
8. Вывод
Следует отметить, что шифр Гронсфельда вскрывается относительно легко, если учесть, что в числовом ключе каждая цифра имеет только десять значений, а значит, имеется лишь десять вариантов прочтения каждой буквы шифртекста. С другой стороны, шифр Гронсфельда допускает дальнейшие модификации, улучшающие его стойкость, в например двойное шифрование разными числовыми ключами.
В нашем случае в качестве ключа используется алфавит, содержащий 256 символов, что делает данный метод шифрования достаточно криптостойким.
Простой
интерфейс программы позволит
пользоваться ею любому
Программа
позволяет шифровать файлы
Ключевое
слово может состоять из различных символов,
что упрощает работу с программой.
9.Список
используемой литературы
- А. В. Яковлев, А. А. Безбогов, В. В. Родин, В. Н. Шамкин «Криптографическая защита информации».
- . http://academout.ru/
courseworks/information1/3.php
3. http://ru.wikipedia.org/wiki/%
10.Приложение
Текст
программы.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Buttons, ComCtrls, Menus;
type
{ TForm1
}
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
MainMenu1: TMainMenu;
MenuItem1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
if form1.OpenDialog1.Execute then
form1.LabeledEdit1.Text:=
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if form1.SaveDialog1.Execute then
form1.LabeledEdit2.Text:=
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i,j,size,q,k:integer;
stcol:byte;
f1,f2:file of byte;
b1,b2:array[0..4095] of byte;
st,x:string;
begin
if (form1.LabeledEdit3.Text='')or
(form1.LabeledEdit1.Text='')or (form1.LabeledEdit2.Text='')
begin
showmessage('Не выбранны используемые файлы или не введён ключ.Процесс не будет выполнен!');
exit;
end;
x:=form1.LabeledEdit1.Text;
st:=form1.LabeledEdit3.Text;
stcol:=length(st);
AssignFile(f1,form1.
AssignFile(f2,form1.
reset(f1);
rewrite(f2);
while not eof(f1) do
begin
if (fileSize(x)-filepos(f1))>4095 then
size:=4095

- Криптография
- Криптография
- Криптография
- Криптография, введение в предмет
- Криптография в России
- Криптография и шифрование
- Криптографиялық кілттермен басқару
- Криптографические методы защиты информации и их использование при работе в сети
- Криптографические методы защиты информации и их использование при работе в сети
- Криптографические методы защиты информации и их использование при работе в сети
- Криптографические методы защиты информации и их использование при работе в сети
- Криптографические системы защиты данных
- Криптографические системы защиты данных
- Криптографический алгоритм защиты