Автор: Пользователь скрыл имя, 30 Марта 2013 в 09:07, реферат
Все мы в детстве использовали алгоритм простой замены и переписывались, таким образом, со своими друзьями, что бы «недоброжелатели» не узнали о наших планах. Время идет, а  мы все так же переписываемся и  пытаемся скрыть свои послания сложными криптографическими алгоритмами, сегодня уже ни кого не удивить такими протоколами как ssl, tsl, https. В этой статье я хочу рассказать об одном из самых легкий и понятных криптографических алгоритмах.
Шифр  Цезаря один из самых известных алгоритмов в криптографии. Свое название шифр получил от Гая Юлия Цезаря, который применял его в военных целях, шифр является одним из простейших случаем алгоритма простой замены.
Все мы в детстве использовали алгоритм простой замены и переписывались, таким образом, со своими друзьями, что бы «недоброжелатели» не узнали о наших планах. Время идет, а мы все так же переписываемся и пытаемся скрыть свои послания сложными криптографическими алгоритмами, сегодня уже ни кого не удивить такими протоколами как ssl, tsl, https. В этой статье я хочу рассказать об одном из самых легкий и понятных криптографических алгоритмах.
Шифр Цезаря один из самых известных алгоритмов в криптографии. Свое название шифр получил от Гая Юлия Цезаря, который применял его в военных целях, шифр является одним из простейших случаем алгоритма простой замены.
Цезарь применял следующий алгоритм, для шифрования своих посланий он брал первую букву открытого текста и сдвигал ее на 3 позиции вперед в алфавите, таким образом, получал букву шифралфавита.
Новые понятия могут вас отпугнуть, но на самом деле все довольно банально:
открытый текст – это текст, который нужно зашифровать;
шифралфавит – буквы, которые подставляются за место открытого текста;
| Открытый алфавит | а | б | в | г | д | е | ё | ж | з | и | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ъ | ы | ь | э | ю | я | 
| Шифралфавит | Г | Д | Е | Ё | Ж | З | И | К | Л | М | Н | О | П | Р | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ъ | Ы | Ь | Э | Ю | Я | А | Б | В | 
Попробуем зашифровать сообщение «привет как дела»:
| Открытый текст | п | р | и | в | е | т | к | а | к | д | е | л | а | 
| Шифртекст | Т | У | М | Е | З | Х | Н | Г | Н | Ж | З | О | Г | 
Текст превратился в «бессмысленный» набор букв «ТУМЕЗХ НГН ЖЗОГ»!
Казалось бы, такой бессмысленный набор символов невозможно прочитать. Это не совсем так.
Если вы знаете что данный набор букв является шифром Цезаря и вам известен открытый алфавит то перебрав все возможные комбинации (в нашем примере их всего 33, по количеству букв в алфавите) вы с легкостью найдете ключь.
Стойкость любого криптографического алгоритма измеряется не сложностью алгоритма, а стойкостью ключа! В нашем случае количество возможных ключей на столько мало что даже обычный человек, имея азбуку в руках за 10-20 минут сможет расшифровать данный шифртекст.
Но мы же не обычные люди ;-) поэтому «пойдем в гору» и напишим криптор шифра Цезаря. Для написания его я выбрал самый легкий и понятный ЯП Delphi 7. Хотя исподники легко можно перенести и на любой другой паскаля подобный язык.
Математическая формулировка алгоритма цезаря выглядит на столько просто, что ее с легкостью поймет ученик 5 класса.
i + 3 = j где,
i – буква открытого алфавита;
j – буква шифралфавита;
В качестве алфавита мы возьмем всем извесные кодировки cp866 для русского языка и ansi для английского. Зделано это что бы не усложнять алгоритм массивами со своими алфавитами.
program crypt; 
 
{$APPTYPE CONSOLE} 
 
uses 
  SysUtils; 
 
var 
    str,sh:String; 
    j,i,len:Integer; 
 
Begin 
  ReadLn(str); 
    len := length(str); //узнаем 
длину строки 
 
    for i:=1 to len do 
    Begin 
 
        sh := sh + chr(ord(str[i]) + 3); 
//зашифровываем согласно формуле 
 
    end; 
 
    WriteLn('open text - '+str); 
    WriteLn('shifr - '+sh); 
  ReadLn; 
end.