Автор: Пользователь скрыл имя, 27 Декабря 2011 в 09:03, реферат
Историческим примером шифра замены является шифр Цезаря (1 век до н.э.), описанный историком Древнего Рима Светонием. Гай Юлий Цезарь использовал в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Выписывался алфавит: А, Б, В, Г, Д,Е,...,; затем под ним выписывался тот же алфавит, но со сдвигом на 3 буквы влево.
Введение 2
Исторические основы криптологии 2
Криптология в современном мире 3
Криптология 3
Основные понятия криптологии 3
Требования к криптосистемам 5
Симметрические криптосистемы 6
Системы шифрования Виженера 7
Постановка задачи 10
Реализация задачи 10
Листинг программы с комментариями: 10
Пример 12
Заключение 13
Список литературы: 14
Открытый текст обычно имеет произвольную длину если его размер велик и он не может быть обработан вычислительным устройством шифратора целиком, то он разбивается на блоки фиксированной длины, и каждый блок шифруется в отдельности, не зависимо от его положения во входной последовательности. Такие криптосистемы называются системами блочного шифрования.
На
практике обычно используют два общих
принципа шифрования: рассеивание и перемешивание.
Рассеивание заключается в распространении
влияния одного символа открытого текста
на много символов шифртекста: это позволяет
скрыть статистические свойства открытого
текста. Развитием этого принципа является
распространение влияния одного символа
ключа на много символов шифрограммы,
что позволяет исключить восстановление
ключа по частям. Перемешивание состоит
в использовании таких шифрующих преобразований,
которые исключают восстановление взаимосвязи
статистических свойств открытого и шифрованного
текста. Распространенный способ достижения
хорошего рассеивания состоит в использовании
составного шифра, который может быть
реализован в виде некоторой последовательности
простых шифров, каждый из которых вносит
небольшой вклад в значительное суммарное
рассеивание и перемешивание. В качестве
простых шифров чаще всего используют
простые подстановки и перестановки.
Все многообразие существующих криптографических методов можно свести к следующим классам преобразований:
Многоалфавитная подстановка - наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей.
Перестановки - несложный метод криптографического преобразования. Используется как правило в сочетании с другими методами.
Гаммирование - этот метод заключается в наложении на исходный текст некоторой псевдослучайной последовательности, генерируемой на основе ключа.
Блочные шифры представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем “чистые” преобразования того или иного класса в силу их более высокой криптостойкости, а также потому, что этот метод позволяет шифровать тексты практически любой длины, разбивая их на блоки. Российский и американский стандарты шифрования основаны именно на этом классе шифров.
Шифр Виженера (фр. Chiffre de Vigenиre) — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова.
Шифр Виженера достаточно прост для использования в полевых условиях, особенно если применяются шифровальные диски. Например, «конфедераты» использовали медный шифровальный диск для шифра Виженера в ходе Гражданской войны.
Рис.1
Репродукция шифровального диска Конфедерации
Метод Вижинера является следствием подстановки Цезаря. В системе Виженера задается некая конечная последовательность ключа
k = (k0 ,k1 ,...,kn),
которая называется ключом пользователя, она продолжается до бесконечной последовательности, повторяя цепочку. Таким образом, получается рабочий ключ.
При длине пользовательского ключа R:
1) исходный текст x делится на R фрагментов
xi = (xi , xi+r , ..., xi+r(n-1)), 0 ≤ i < r;
2) i-й фрагмент исходного текста xi шифруется при помощи подстановки Цезаря в зависимости от пользовательского ключа :
(xi , xi+r , ..., xi+r(n-1)) → (yi , yi+r , ..., yi+r(n-1)),
Очень распространена плохая с точки зрения секретности практика использовать слово или фразу в качестве ключа для того, чтобы k=(k0 ,k1 ,...,kк-1) было легко запомнить. В информационных системах для обеспечения безопасности информации это недопустимо. Для получения ключей должны использоваться программные или аппаратные средства случайной генерации ключей.
Если буквы A-Z соответствуют числам 0-25, то шифрование Виженера можно записать в виде формулы:
Расшифровка:
Рис.2 таблица Виженера
Пример. Преобразование текста с помощью подстановки Вижинера
Исходный текст :
НЕ_СЛЕДУЕТ_ВЫБИРАТЬ_
Ключ: КЛЮЧ
Разобьем исходный текст на блоки по 4 символа:
НЕ_С ЛЕДУ ЕТ_В ЫБИР АТЬ_ НЕСЛ УЧАЙ НЫЙ_ КЛЮЧ
и наложим на
них ключ (используя таблицу Вижинера):
H+К=Ч, Е+Л=Р и т.д.
Получаем зашифрованный текст:
ЧРЭЗ ХРБЙ ПЭЭЩ ДМЕЖ КЭЩЦ ЧРОБ ЭБЮ_ ЧЕЖЦ ФЦЫН
Криптостойкость метода резко убывает с уменьшением длины ключа. Тем не менее такая система как шифр Виженера допускает несложную аппаратную или программную реализацию и при достаточно большой длине ключа может быть использован в современных ИС.
Разработать
программу шифрующую и
Для реализации поставленной задачи мной был выбран язык программирования Turbo Pascal. Программа представляет собой шифровщик и дешифровщик одновременно. Используется метод симметрического кодирования, то есть кодирование и декодирование осуществляется с помощью одного ключа.
{Программа шифрования
по методу Виженера}
program Vigener;
var
inf, outf, keyf:string; //имена файлов
{ loz:string; } //лозунг
loz,cd,ch:char;
//символ
procedure Code (inf, outf,key:string; loz:char); //процедура кодирования
var
infile, outfile,keyfile: file of char;
loz,ch: char;
t1,t2,t3: integer;
begin
assign (infile, inf);
assign (outfile, outf);
assign (keyfile, keyf);
reset (infile); //открыт для чтения
reset (keyfile); //открыт для чтения
rewrite (outfile); //открыт для перезаписи
while not eof (infile) do
begin
read (infile, ch);
read (keyfile, loz);
t1:=ord(ch) mod 256;
t2:=ord(loz) mod 256;
t3:=t1+t2;
ch:=chr(t3);
write (outfile, ch);
end;
writeLn('Файл закодирован');
close(infile);
close(outfile);
close(keyfile);
end;
procedure DeCode (inf, outf,key:string; loz:char); //процедура декодирования
var
infile, outfile,keyfile: file of char;
ch,loz: char;
t1,t2,t3: integer;
begin
assign (infile, inf);
assign (outfile, outf);
assign (keyfile, keyf);
reset (infile); //открыт для чтения
reset (keyfile); //открыт для чтения
rewrite (outfile); //открыт для перезаписи
while not eof (infile) do
begin
read (infile, ch);
read (keyfile, loz);
t1:=ord(ch) mod 256;
t2:=ord(loz) mod 256;
t3:=t1-t2;
ch:=chr(t3);
write (outfile, ch);
end;
writeLn('Файл декодирован');
close(infile);
close(outfile);
close(keyfile);
end;
begin //реализация интерфейса
write('Введите имя входного файла:');
readLn(inf);
write('Введите имя выходного файла:');
ReadLn(outf);
write('Введите имя файла с ключем:');
ReadLn(keyf);
{ Write('Введите лозунг:');
ReadLn(loz); }
write('Кодировать или декодировать?(С or D):');
ReadLn(cd);
if upcase(cd)='C' then code(inf, outf,keyf, loz)
else if upcase(cd)='D' then decode(inf, outf, keyf, loz);
end.
Исходный текст: good morning;
Ключ: key;
Результат кодирования: ТФиП…жЪЧзФУа;
Результат обратного декодирования: good morning.
Итак, итогом работы является симметрическая криптосистема, работающая на методе шифрования Виженера.
Обоснованный выбор той или иной системы защиты должен опираться на какие-то критерии эффективности:
В любом случае выбранный комплекс кpиптогpафических методов должен сочетать как удобство, гибкость и оперативность использования, так и надежную защиту от злоумышленников циркулирующей в ИС информации. Поэтому на настоящий момент наиболее оптимальны смешанные криптосиситемы, в которых текст кодируется симметрически, а ключ кодируется ассиметрически и помещается вместе с кодированным текстом.
1. Петров А.А
«Компьютерная безопасность. Криптографические
методы защиты» ДМК Москва, 2000 г.
2. "Методы и средства защиты информации" (курс лекций) Авторские права: Беляев А.В.
(http://www.citforum.ru/
3. Криптография
(http://www.citforum.ru/
4. Бобровский
С. Delphi 7. Учебный курс. Из-во Питер, 2004г.
5. Шифр Виженера
(http://ru.wikipedia.org/wiki/
6. Соловьева Ю.А. «Элементы криптографии. Часть I Симметричные криптосистемы» Уч.пособие,
Новокузнецк, 2003г.
Информация о работе Криптология. Шифрование методом Виженера