LogoHome   >>   Compress   >>   XLAT   >>   Caesar code

Caesar code

Великий полководец, Юлий Цезарь (Gaius Julius Caesar) оставил нам не только юлианский календарь и "Записки о галльской войне" ("De Bello Gallico", 58-50 BC), но и одну из первых систем шифрования, которая так и называется "Код Цезаря". Вот исчерпывающее описание из Encyclopaedia Britannica: > The simplest of all substitution ciphers are those in which the > cipher alphabet is merely a cyclical shift of the plaintext alphabet. > Of these, the best known is the Caesar cipher, used by Julius Caesar, > in which A is encrypted as D, B as E, and so forth. As many a > schoolchild has discovered to his sorrow, cyclical-shift substitution > ciphers are not secure. As is pointed out in the section on > cryptanalysis (see below Cryptanalysis), neither is any other > monoalphabetic substitution cipher in which a given plaintext symbol > is always encrypted into the same ciphertext symbol. Because of the > redundancy of the English language, only about 25 symbols of > ciphertext suffice to permit the cryptanalysis of monoalphabetic > substitution ciphers. The explanation for this weakness is that the > frequency distributions of symbols in the plaintext and in the > ciphertext are identical, only the symbols having been relabeled. In > fact, any given structure or pattern in the plaintext is always > preserved intact in the ciphertext, so that the cryptanalyst's task > is an easy one. Код Цезаря (простейший подстановочный код) состоит в замене (подстановке) буквы, отстоящей от заменяемой на фиксированное число позиций. Сам Цезарь (во время галльской войны) использовал число 3 (A заменялось на D, B на E, C на F итд), но может быть использовано и любое другое число. Обратите внимание на цикличность подстановки - дойдя до конца алфавита мы переходим к его началу. Это можно представить так, словно у нас есть циферблат с 26 латинскими буквами (вместо 12 арабских цифр) и сделав полный круг стрелка снова показывает на первую букву. Понятно, что секретность (криптостойкость) такого кода очень мала, но он иногда применяется как часть более сложных криптосхем. С математической точки зрения, используется операция сложения по модулю 26 (число букв латинского алфавита). Это можно записать так: CipherLetter = (PlainLetter + 3) mod 26 Новая (кодированная) буква получается из старой (оригинальной) буквы сдвигом на три позиции с учетом цикличности подстановки. То есть, вместо 27-й буквы снова используется первая итд. Легко понять, что по модулю можно не только складывать, но и вычитать. На нашем "циферблате" это просто будет обозначать перевод стрелки не вперед, а назад. А как выглядит вычитание по модулю 2 ? В двоичном алфавите только 2 буквы - 0 и 1. При циклическом сдвиге после 1 снова следует 0, а после 0 снова 1. Это означает, что в двоичной системе сложение и вычитание по модулю 2 неразличимы (совпадают). Благодаря этому, сложение по модулю 2 (XOR) очень широко используется в различных криптографических схемах, так как зашифровка и расшифровка выполняются с использованием той же самой операции - XOR.
xlat_encaesar
encaesar
xlat_decaesar
decaesar

© Gazlan 2011 * gazlan@yandex.ru

Hit Counter