Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Шифры простой замены

Название: Шифры простой замены
Раздел: Рефераты по государству и праву
Тип: реферат Добавлен 18:19:41 14 июля 2011 Похожие работы
Просмотров: 1053 Комментариев: 20 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

ЛАБОРАТОРНАЯ РАБОТА №1

ШИФРЫ ПРОСТОЙ ЗАМЕНЫ

1. ШИФР ЦЕЗАРЯ

В 1 в. н.э. Ю. Цезарь во время войны с галлами, переписываясь со своими друзьями в Риме, заменял в сообщении первую букву латинского алфавита (А) на четвертую (D), вторую (В) – на пятую (Е), наконец, последнюю – на третью:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Пример 1.1. Донесение Ю. Цезаря Сенату об одержанной им победе

над Понтийским царем выглядело так:

YHQL YLGL YLFL ("Veni, vidi, vici" – лат. "Пришел, увидел, победил").

Император Август (1 в. н. э.) в своей переписке заменял первую букву на вторую, вторую – на третью и т. д., наконец, последнюю – на первую:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

B C D E F G H I J K L M N O P Q R S T U V W X Y Z A

Пример 1.2. Любимое изречение императора Августа выглядело так:

GFTUJOB MFOUF ("Festina lente" – лат. "Торопись медленно").

Таким образом, множество отображений шифра Цезаря – это циклическая подгруппа симметрической группы , состоящая из подстановок сдвига:

,

где . (Определение математическое, для многих не понятное.)

Система Цезаря – это моноалфавитная подстановка (т.к. каждой букве открытого текста ставится в соответствие одна буква шифртекста), преобразующая открытый текст в криптограмму . При использовании для шифрования подстановки символ открытого текста заменяется символом шифрованного текста.

Цезарь использовал подстановку . Величина сдвига может выступать в качестве ключа. Шифр Цезаря является очень неустойчивым к вскрытию: для расшифровки достаточно осуществить перебор всех ключей, число которых меньше (для латинского алфавита их будет 26).

Для улучшения криптографической стойкости шифра Цезаря можно в качестве преобразующего алфавита задать его рандомизированную версию. В этом случае будет 26! способов упорядочивания алфавита. Но в качестве ключа будет не величина сдвига (одна цифра), а рандомизированный вариант алфавита.

2. МОДИФИЦИРОВАННЫЙ ШИФР ЦЕЗАРЯ

Аббат Тритемеус – автор первой печатной книги о тайнописи (1518 г.) – предложил несколько шифров и среди них шифр, который можно считать усовершенствованием шифра Цезаря. Все буквы алфавита нумеруются по порядку (от 1 до 31 в русском варианте).

Затем выбирают какое-нибудь слово, называемое "ключом", и подписывают под сообщением с повторением.

Чтобы получить шифрованный текст, складывают номер очередной буквы с номером соответствующей буквы ключа. Если полученная сумма больше 31, то из нее вычитают 31. В результате получают последовательность чисел от 1 до 31. Вновь заменяя числа этой последовательности соответствующими буквами, получают шифрованный текст. Разбивая этот текст на группы одной длины, получают шифрованное сообщение.

Пример 1.3. Выбираем ключевое слово "Пособие". Составляем сообщение "сессия начинается в конце семестра"

с е с с и я н а ч и н а е т с я в к о н ц е с е м е с т р а

п о с о б и е п о с о б и е п о с о б и е п о с о б и е п о

Шифруем, разбиваем текст на группы длины 6, и получаем шифрованное сообщение:

в ф д а и и у р з ь э в о ш в о ф щ р ц э х б ч ы з ь ш б п

Чтобы получить шифрованный текст, складывают номер очередной буквы с номером соответствующей буквы ключа. Если полученная сумма больше 33, то из нее вычитают 33. В результате получают последовательность чисел от 1 до 33. Вновь заменяя числа этой последовательности соответствующими буквами, получают шифрованный текст. Разбивая этот текст на группы одной длины, получают шифрованное сообщение.

Если под ключом шифра понимать однобуквенное слово “В” (в русском варианте), то мы получим шифр Цезаря.

Пример 1.4. Для сообщения из примера 1.3, получим:

ф и ф ф л в р г ь л р г и х ф в в н т р щ и ф и п и ф х у г

3. ШИФР АТБАШ

Шифр Атбаш . Коды появились в глубокой древности в виде криптограмм. Порой священные иудейские тексты шифровались методом замены. Вместо первой буквы алфавита писалась последняя буква, вместо второй - предпоследняя и т.д. Этот древний шифр назывался Атбаш.

Если попытаться изобразить механизм шифра Атбаш наглядно, то это может выглядеть следующим образом:

А Б В Г Д Э Ю Я _

Рис. 1

Так, например, для текста, состоящего только из букв кириллического алфавита и пробела, замена будет осуществляться по правилу: А-пробел, Б-Я, В-Ю и т.д. Абсолютно аналогично справедлива обратная замена. При программной реализации методов шифрования текста на языке ObjectPascal целесообразно использовать таблицу ASCII и функции работы с ней (ord и chr). В данном случае ключ шифрования не задан явным образом, но подразумевается, что он равен 1.

Можно вполне модифицировать данный простейший шифр и добавить некоторые дополнительные параметры (изменить первичный ключ или способ его генерации).

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

Function Atbash(openchar:char):char;

Begin

Atbash := 255 – ord(openchar);

End;

Как видно из фрагмента программы функция Atbash переводит символ открытого текста в шифр путем зеркального отражения по таблице ASCII, состоящей из 256 символов (0..255).

ЗАДАНИЕ

1. Реализовать все описанные варианты шифра Цезаря (циклический сдвиг алфавита, рандомизированный алфавит замены, шифрование с ключевым словом).

2. Реализовать шифр Атбаш.

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Ниже приводится пример реализации шифра Цезаря в среде Delphi.

Общая схема шифра для латинского алфавита изображена на рис. 2.


А B C D E F G H I

Рис. 2

То есть, отображение происходит по правилу: A-D, B-E, C-F, D-G и т.д.

Например, слово BAG будет зашифровано в EDJ. Очевидно, что для обратного преобразования необходимо «сдвинуть» символы в обратную сторону на количество, равное исходному ключу.

Шифрование можно выразить общей формулой:

, где

С – шифрованный символ,

О – открытый текст,

key – ключ (сдвига).

Обратное же преобразование будет выполняться по формуле:

, где

С – шифрованный символ,

О – открытый текст,

key– ключ (сдвига).

Теперь приступим непосредственно к программированию данных шифров.

1. Запустите инструментальную объектно-ориентированную среду программирования Delphi. (Пуск/Программы/ Borland Delphi / Delphi )

2. Создайте новый проект и сохраните его в новой папке AtbashCezar .

3. Поместите на форму следующие компоненты со страниц:

a. Standard :

b. Additional :

c. Dialogs:

4. Задайте следующие свойства данным компонентам:

Компонент Свойство Значение
Form1 Caption Шифрование текста
Label1 Caption Выберите шифр
Label2 Caption Исходный текст
Label3 Caption Результат
ComboBox1 Items

Атбаш

Шифр Цезаря

ComboBox1 ItemIndex 0
RadioGroup1 ItemIndex 0
RadioGroup1 Items

Шифровать

Расшифровать

RadioGroup1 Caption Действие
CheckBox1 Name Clr
CheckBox1 Caption Всегда очищать результат
BitBtn1 Caption Выполнить
BitBtn2 Caption Очистить
BitBtn3 Caption Очистить
BitBtn4 Caption Поменять
BitBtn5 Caption Выход
BitBtn6 Caption Открыть исх. текст из файла
BitBtn7 Caption Сохранить результат в файл
SaveDialog1 Filter Текстовые файлы|*.txt
OpenDialog1 Filter Текстовые файлы|*.txt
ActionList1 Name Crypto

Свойства Glyph (иконка, файл *.ico) компонента BitBtn заполните самостоятельно. Стандартныеиконкидлякнопок Delphi расположенывC:\Program files\Common files\Borland Shared\Images\Buttons . Также вы можете изменить свойство Font компонентов Label1 и Label2.

5. Расположите компоненты на форме по образцу:

6. Создайте следующие подпрограммы шифрования строк (после implementation ):

{ Шифр Атбаш . Симметричный }

function catbash(s:string):string;

var i:integer; c,d:char;rez:string;

begin

rez:='';

for i:=1 to length(s) do

begin

c:=s[i];

d:=chr(255-ord(c));

rez:=rez+d;

end;

catbash:=rez;

end;

{ Шифр Цезаря . Шифрование }

function cEcezar(s:string; key:byte):string;

var i:integer; c,d:char;rez:string;

begin

rez:='';

for i:=1 to length(s) do

begin

c:=s[i];

d:=chr((ord(c)+ key)mod 255);

rez:=rez+d;

end;

cEcezar:=rez;

end;

{ Шифр Цезаря . Расшифрование }

function cDcezar(s:string;key:byte):string;

var i:integer; c,d:char;rez:string;

begin

rez:='';

for i:=1 to length(s) do

begin

c:=s[i];

d:=chr((ord(c)- key)mod 255);

rez:=rez+d;

end;

cDcezar:=rez;

end;

7. Двойным щелчком вызовите редактор компонента Crypto (TActionList) и создайте следующие действия:

Для переименования в соответствии с образцом измените свойство Name у каждого действия.

8. Для каждого из действий опишите подпрограммы:

procedure TForm1.AtbashExecute(Sender: TObject);

var i:integer;

begin

for i:=0 to memo1.Lines.Count do

memo2.Lines.Add(catbash(memo1.Lines[i]));

end;

procedure TForm1.ECezarExecute(Sender: TObject);

var i:integer;key:byte;

begin

key:=strtoint(inputbox('ШифрЦезаря','Введитезначениеключа - толькоцелоечисло','3'));

for i:=0 to memo1.Lines.Count do

memo2.Lines.Add(cEcezar(memo1.Lines[i],key));

end;

procedure TForm1.DCezarExecute(Sender: TObject);

var i:integer;key:byte;

begin

key:=strtoint(inputbox('ШифрЦезаря','Введитезначениеключа - толькоцелоечисло','3'));

for i:=0 to memo1.Lines.Count do

memo2.Lines.Add(cDcezar(memo1.Lines[i],key));

end;

procedure TForm1.clearExecute(Sender: TObject);

begin

memo2.Clear;

end;

procedure TForm1.changeExecute(Sender: TObject);

begin

memo1.Lines:=memo2.Lines;

memo2.Clear;

end;

9. Опишите подпрограммы для каждой из кнопок BitBtn :

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

if clr.Checked then memo2.clear;

if combobox1.ItemIndex=0 then atbash.Execute

else if action.ItemIndex=0 then ECezar.Execute

else DCezar.Execute;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

memo1.Clear;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

memo2.Clear;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

change.Execute;

end;

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

close;

end;

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

if Opendialog1.Execute then

memo1.Lines.LoadFromFile(opendialog1.FileName);

end;

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

if Savedialog1.Execute then

memo2.Lines.SaveToFile(savedialog1.FileName);

end;

10. Запустите проект.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита23:15:27 04 ноября 2021
.
.23:15:25 04 ноября 2021
.
.23:15:24 04 ноября 2021
.
.23:15:23 04 ноября 2021
.
.23:15:20 04 ноября 2021

Смотреть все комментарии (20)
Работы, похожие на Реферат: Шифры простой замены

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(294402)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте