Каталог@Mail.ru - каталог ресурсов интернет HitMeter - счетчик посетителей сайта, бесплатная статистика

Система Цезаря с ключевым словом

Другие шифры Хеш-функции На главную

Коротко о шифре Цезаря

Есть такая хрень - шифр Цезаря. Суть его вот в чём. Есть открытый текст T, его символы - из n-символьного алфавита A (скажем, n=33 для русского алфавита). Символы алфавита пронумерованы от 0 до n-1 (в русском алфавите: номер a - 0, номер я - 32). Если очередной символ открытого текста является s-ым по счёту в алфавите A, он заменяется на s+K-ый символ алфавита A, где K - число от 1 до n-1 - наперёд для всего текста заданный ключ шифрования.

Например, для русского алфавита и K=2 получаем следующую систему замен:

АБ...ЭЮЯ
ВГ...ЯАБ


Так, Б заменяется на Г, а Ю заменяется на А.

Наверное, всякой блондинке ясно, что ломать такой шифр легко - если есть русский алфавите, имеем 32 варианта K (от 1 до 32) - можно даже вручную проверить для 15-20 символов шифрованного текста каждый вариант. Где при "расшифровке" получается не бред, такой вариант и берём в качестве ключа и дальше спокойно читаем оставшуюся часть того, что было зашифровано.

Улучшение шифра Цезаря за счёт ключевого слова

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

Поясним на примере, суть будет ясна. Пусть K=3, ключевое слово - шифровка. Алфавит - русский, но как сейчас модно, пошлём букву Ё. Создаём таблицу замен. Первые три ячейки заменяющих символов пока что не трогаем (K=3) - см. первую картинку ниже. Дальше в ячейки, начиная с 4-ой (то есть 3-ей, если нумеровать с нуля), выписываем буквы ключевого слова (вторая картинка). Дальше в оставшиеся незаполненными ячейки справа заполняем буквами алфавита, которых нет в ключевом слове. На все буквы места не хватит (третья картинка), поэтому когда упрёмся в правый край, переходим к левому и заполняем ещё бывшие свободными 3 ячейки (последняя картинка).

Теперь давайте что-нибудь шифранём, скажем, слово БАГ. Под Б находится Ю, под А находится Э, под Г находится Ш, получаем ЮЭШ. Легко понять, что мы смотрели сначала на верхние символы, а дальше какие под ними. Расшифровка производится наоборот - смотрим на нижний ряд (заменяющих символов) и смотрим, кого они заменяют. Элементарно, Ватсон!

Ах да, чуть память не подвела... Надобно сказать, то, о чём мы сейчас говорили, и есть система Цезаря с ключевым словом. Это не единственное улучшение шифра Цезаря, которое было придумано. Есть ещё, скажем, аффинная система подстановок Цезаря, но её рассмотрим в другой статье.

Напоследок немного про выбор ключей. Если в алфавите n символов, можно брать K любое от 0 до n-1 (заметьте, при K=0 простой шифр Цезаря по сути не работал бы, поскольку ничего бы не заменялось, а система Цезаря с ключевым словом в принципе работоспособна). Наконец, что делать, если в ключевом слове есть повторяющиеся буквы? А вот что: если буква уже была выписана, её просто пропускаем. Например, при выборе ключевого слова блондинка выписываем Б, Л, О, Н, Д, И, К, А.

Ключевые слова лучше выбирать не очень короткие, плюс хорошо, чтобы они "выдернули" побольше букв из алфавита, чтобы сделать более качественное "перемешивание". В этом смысле лучше, чтобы в ключевом слове было поменьше одинаковых букв. Уж постарайтесь найти в себе фантазию.

Халявная прога

Ну, собственно, полезное дополнение к описанию системы Цезаря с ключевым словом. Только здесь алфавит А...ЕЖ...Я._,-, то есть можно по-нормальному зашифровать не только отдельные слова, но и фразы. Можете побаловаться) Успехов в тыканьи на кнопки!

Выберите K

Ключ

Исходный алфавит

Алфавит  замены 

Открытый  текст  

Шифрованный текст

copyright © Исканцев Н.В., 2012

ССЫЛКО ПРИ КОПИРОВАНИИ ОБЯЗАТЕЛЬНО

На главную
X