Программа шифрования методом сдвига (Цезаря)
Шифр Цезаря как один из древнейших шифров, история его создания, применяемые закономерности. Описание программы и предъявляемые к ней требования. Формирование и содержание ключа, принципы его подбора. Сфера практического использования программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 25.05.2014 |
Размер файла | 67,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Контрольная работа
Программа шифрования методом сдвига (Цезаря)
Д.В. Наумов
1. Шифрование методом Цезаря
Шифр Цезаря - один из древнейших шифров. При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций. Шифр Цезаря можно классифицировать как шифр подстановки, при более узкой классификации - шифр простой замены.
Шифр Цезаря называют в честь Юлия Цезаря, который согласно «Жизни двенадцати цезарей» Светония использовал его со сдвигом 3, чтобы защищать военные сообщения. Хотя Цезарь был первым зафиксированным человеком, использующим эту схему, другие шифры подстановки, как известно, использовались и ранее.
«Если у него было что-либо конфиденциальное для передачи, то он записывал это шифром, то есть так изменял порядок букв алфавита, что нельзя было разобрать ни одно слово. Если кто-либо хотел дешифровать его и понять его значение, то он должен был подставлять четвертую букву алфавита, а именно, D, для A, и так далее, с другими буквами»
2. Описание программы
Чтобы открыть программу «Шифрование», нужно запустить файл Шифрование.exe.
Рис. 1
На данном рисунке изображена программа для шифрования текста методом цезаря. Она включает в себя:
1. Поле «Исходный текст», где вводится текст для зашифровки.
2. Поле «Результат», где мы получаем зашифрованный текст.
3. Поле «Ключ» с ключем для шифрования текста.
4. Поле «Словарь» со словарем, где мы можем расшифровать слово обойдя ключ, если оно имеется в словаре программы.
Рис. 2
На Рис. 2 изображен пример кодировки текста. Мы использовали слово «привет» из словаря. При нажатии на кнопку «зашифровать» мы получаем закодированное слово в поле результат с ключом «1».
Чтобы расшифровать данное слово мы вставляем его в поле «Исходный текст» и выбрав ключ «1» и нажав на кнопку «Расшифровать» мы получим искомое слово «привет», как и показано на Рис. 3
Рис. 3
Чтобы нам расшифровать слово без ключа, нужно воспользоваться словарем, если там есть данное слово. В нашем случае такое слово есть, поэтому мы просто нажимаем на кнопку «Использовать словарь» и он нам расшифровывает слово, обходя (взламывая) ключ. См. Рис. 4
Рис. 4
программа шрифт цезарь
Для того чтобы подобрать ключ для зашифрованного слова, необходимо ввести его в поле «Результат», тогда мы увидим «ключ». См. Рис. 5
Рис. 5
Заключение
При выполнении лабораторной работы была написана программа, которая может шифровать текст методом цезаря.
Исходный код
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit3: TEdit;
Label1: TLabel;
Button3: TButton;
Memo1: TMemo;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo2: TMemo;
Memo3: TMemo;
Button4: TButton;
UpDown1: TUpDown;
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedure Button3Click (Sender: TObject);
procedure Button4Click (Sender: TObject);
procedure UpDown1Changing (Sender: TObject; var AllowChange: Boolean);
private
procedure findKey;
function Success (s:string):Boolean;
function Code (s:string; aKey:integer):string;
function UnCode (s:string; aKey:integer):string;
public
{Public declarations}
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{TForm1}
function TForm1. Code (s: string; aKey: integer): string;
var i: Integer;
begin
result:='';
for i:=1 to Length(s) do
result:=result+char (Ord(s[i])+akey);
end;
function TForm1. UnCode (s: string; aKey: integer): string;
var i:integer;
begin
result:='';
for i:=1 to Length(s) do
result:=result+char (Ord(s[i]) - akey);
end;
procedure TForm1. Button1Click (Sender: TObject);
begin
Memo3. Text:=Code (Memo2. Text, StrToInt (Edit3. Text));
end;
procedure TForm1. Button2Click (Sender: TObject);
begin
Memo3. Text:=UnCode (Memo2. Text, StrToInt (Edit3. Text));
end;
function TForm1. Success (s: string): Boolean;
var t:string;
i: Integer;
begin
Result:=False;
t:=LowerCase(s);
i:=Memo1. Lines. IndexOf(t);
if i<>-1 then
Result:=True;
end;
procedure TForm1. UpDown1Changing (Sender: TObject;
var AllowChange: Boolean);
begin
Edit3. Text:=IntToStr (UpDown1. Position);
end;
procedure TForm1.findKey;
var i, j: Integer;
t, g:string;
begin
g:='';
t:=Memo2. Text;
for j:=1 to Length(t) do
begin
g:=g+t[j];
i:=1;
while not Success (UnCode(g, i)) and (i<100) do
Inc(i);
if i<>100 then
begin
Edit3. Text:=IntToStr(i);
Memo3. Text:=UnCode (Memo2. Text, i);
Break;
end;
end;
end;
procedure TForm1. Button3Click (Sender: TObject);
begin
findKey;
end;
procedure TForm1. Button4Click (Sender: TObject);
begin
Memo3. Clear;
Memo2. Clear;
Edit3. Text:='0';
end;
end.
Размещено на Allbest.ru
Подобные документы
Разработка программы "Шифр Цезаря", позволяющая зашифровывать тексты методом Юлия Цезаря и дешифровать тексты, закодированные данным способом. Имеет возможность автоматического нахождения или выбора ключа и самостоятельного ввода ключа пользователем.
курсовая работа [710,9 K], добавлен 23.12.2010Разработка эскизного и технического проектов программы "Шифр Цезаря": назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка, тест и внедрение программы.
курсовая работа [563,7 K], добавлен 15.07.2012Понятие информационной безопасности. История развития криптографии. Функции информационных моделей. Переменные, используемые при разработке прикладной программы для шифрования и дешифрования сообщений с помощью шифра Цезаря. Блок-схема общего алгоритма.
курсовая работа [975,5 K], добавлен 11.06.2014История появления и развития шифрования текста. Проблема шифрования и дешифрования текстовых сообщений в современности. Создание программы для зашифровки и расшифровки вводимого текста пятью методами: Атбаш, Цезаря, Полибия, Гронсфельда и Винжера.
курсовая работа [923,6 K], добавлен 26.12.2011Реализация программы, кодирующей входную строку, используя аффинный и аффинный рекуррентный шифр. Пример шифрования с помощью аффинного шифра. Описание алгоритма работы программы. Ознакомление с криптоанализом. Частота использования английских букв.
отчет по практике [445,6 K], добавлен 22.11.2016Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.
курсовая работа [24,7 K], добавлен 20.10.2014Кодирование информации в двоичном коде. Разработка приложения, реализующего следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу. Алгоритм работы программы.
курсовая работа [1,2 M], добавлен 20.12.2015Создание приложения для шифрования–дешифрования текста тремя алгоритмами (алгоритм "Цезаря","Модифицированного Цезаря", "Скитала"). Исходный текст компонента. Инструкция пользователя, возможность просмотра примерного алгоритма. Исходный текст программы.
курсовая работа [2,8 M], добавлен 27.02.2015Ознакомление с различными способами шифрования информации. Рассмотрение кодов Цезаря, Гронсфельда, Тритемиуса, азбуки Морзе, цифровые, табличные и шифров перестановки. Книжный, компьютерный коды и шифр Масонов. Изучение алгоритма сложных протоколов.
реферат [1,8 M], добавлен 14.05.2014Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009