Это один из самых древних шифров, в своё время он был очень популярен и даже сам Цезарь его использовал и своё название он получил именно поэтому.
Принцип работы:
Шифрование:
- Для начала необходимо взять язык, на котором будет написано сообщение, для примера возьмём русский язык.
- Теперь каждую букву нужно пронумеровать.
Таблица 1. Русский алфавит
1. А | 2. Б | 3. В | 4. Г | 5. Д | 6. Е | 7. Ё | 8. Ж | 9. З | 10. И | 11. Й |
12. К | 13. Л | 14. М | 15. Н | 16. О | 17. П | 18. Р | 19. С | 20. Т | 21. У | 22. Ф |
23. Х | 24. Ц | 25. Ч | 26. Ш | 27. Щ | 28. Ъ | 29. Ы | 30. Ь | 31. Э | 32. Ю | 33. Я |
- Далее берём сообщение, которое требуется зашифровать, например, мои имя и фамилию: "ВЛАДИСЛАВ ЗЮЗИН".
- После этого полагается выбрать ключ. В данном случае ключом может быть любое целое число от 1 до n-1, где n - количество букв в алфавите, то есть от 1 до 32 в нашем случае, например, "7".
- Берём первую букву нашего сообщения и смотрим какое число ей соответствует.
- Букве "В" принадлежит число "3", теперь к этому числу прибавляем значение ключа, то есть 3+7=10. Значит первая буква зашифрованного текста соответствует позиции 10 в таблице 1, это буква "И". Точно так же делаем с остальными буквами. Получается "ИТЖКПШТЖИ ОЕОПФ".
- Расшифровывание:
- Имеется сообщение "ИТЖКПШТЖИ ОЕОПФ" и ключ "7". Делается всё то же самое, что и в шифровании, но с одним условием - если при шифровании мы прибавляли значения ключа, то при расшифровывании необходимо его вычитать. Например, букве "И" соответствует позиция "10" в таблице 1, значит 10-7=3 - это буква "В". Проделываем то же самое и с остальными буквами и получаем исходное сообщение "ВЛАДИСЛАВ ЗЮЗИН".
Вывод:
Как можно заметить шифр Цезаря в реализации очень прост.
Атака на шифр Цезаря
Атака на шифрованный текст называется криптоанализом. Но стоит отметить, что этот шифр очень ненадёжен, то есть очень слабый и даже в 9 веке появились методы, которые позволяли спокойно его вскрывать. Таких методов очень много, но мы разберем самый простой.
Например, есть зашифрованное сообщение "АБЯТХФХЮЩХ ЮРДЗЮЯЪ ЫЯЮЕХБХЮЖЩЩ ШРЮПЬЯ ИХВГЮРФЖРГМ ФЮХЪ" и нам неизвестен ключ. Берем из этого текста любое слово, например - "ФЮХЪ".
Мы знаем, что для русского языка количество возможных ключей - 32. Берем зашифрованное слово и пытаемся расшифровать его всеми 32 ключами, получаем 32 разных слова и ищем среди них осмысленное. В данном случае - это "ДНЕЙ" и ему соответствует ключ "28". Теперь берём весь текст и пытаемся расшифровать с вышесказанным ключом. Получаем исходный текст - "ПРОВЕДЕНИЕ НАУЧНОЙ КОНФЕРЕНЦИИ ЗАНЯЛО ШЕСТНАДЦАТЬ ДНЕЙ".
Шифр простой замены
Термины:
Шифр и Криптосистема, это одно и то же, это сам алгоритм, который указывает на то в каком количестве и какие буквы будут представляться, куда они будут представляться, насколько они будут сдвигаться и т.д.
Криптоаналитик - это атакующий, то есть человек, который пытается вскрыть зашифрованное послание, ему не предназначенное.
Атака, взлом, вскрытие - сам процесс расшифрования криптоаналитиком зашифрованного сообщения.
Дешифрование - этот термин, использующийся на постсоветском пространстве в качестве взлома. На западе это означает обычную законную расшифровку.
Шифр простой замены или моноалфавитный шифр - это криптосистема, в которой каждая буква исходного текста при шифровании будет заменяться на одну, строго определённую букву. Это значит то, что мы имеем две таблицы. Первая - это таблица 1, в которой пронумерованы все буквы русского алфавита, а во вторую таблицу заносим те буквы, только переставленные в другом порядке, при чём порядок может быть каким угодно, например, как в таблице 2.
1. О | 2. Н | 3. М | 4. Ё | 5. Ы | 6. З | 7. Щ | 8. Ц | 9. Е | 10. Ь | 11. Т |
12. Я | 13. Ч | 14. Й | 15. Б | 16. А | 17. Ф | 18. В | 19. Ю | 20. Р | 21. К | 22. П |
23. Ъ | 24. Ж | 25. Л | 26. Э | 27. Г | 28. Х | 29. Д | 30. И | 31. Ш | 32. С | 33. У |
То есть данное шифрование сводится к элементарной замене букв согласно таблицам 1 и 2. Попробуем зашифровать имя и фамилию моего соавтора "ВСЕВОЛОД СНАСТИН". Буква "В" находится на позиции "3" в первой таблице, а во второй таблице на позиции "3" находится буква "М", значит первая буква нашего закрытого текста будет буква "М". Делаем то же самое и для остальных букв и получаем зашифрованное сообщение "МЮЗМАЧАЫ ЮБОЮРЬБ". Но не обязательно буквы менять на буквы, так же буквы можно менять на цифры и по такой же логике производить замену.
Расшифровка происходит по такому же принципу, берем букву "М" и смотрим на какой позиции в таблице 2 она находится - "3". Число "3" в таблице 1 соответствует букве "В", с остальными буква делаем то же самое и получаем исходное сообщение "ВСЕВОЛОД СНАСТИН".
Атака по маске
Одна из возможных атак на шифр простой замены является - атака по маске.
Имеем зашифрованное слово - "ВОНАРО". Смотря на это слово, мы можем утверждать только одно - то, что оно состоит из 5 букв, но самое важное можем сказать, что оно состоит из: буква 1, буква 2, буква 3, буква 4, буква 5, буква 2. То есть не зная слова, можем сказать, что в этом слове 2 и 6 буква одинаковые, остальные 4 совершенно разные.
А теперь разберем как вскрывать зашифрованный текст. Например, имеем некий шифрованный текст и все буквы в нём переведем в числа по таблице 1 для того, когда будем дешифровывать текст, могли видеть буквы, которые уже дешифровали, то есть буквы исходного текста, потому что буквы на фоне чисел выделяются намного лучше, их видно намного легче, чем буквы на фоне букв.
После представления всех букв в виде чисел заканчивается криптография и начинается аналитика. Нашей основной задачей является сбор информации и любая информация будет полезна. С помощью аналитики дешифровываем текст (пример со словом "ВОНАРО").
Атака частотным криптоанализом
Вторая из возможных атак на шифр простой замены, а также и на некоторые другие шифры - является частотным криптоанализом. Этот метод основывается на том, что некоторые буквы в произвольном тексте встречаются намного чаще, чем другие.
На рисунке 1 показана закономерность распределения букв в русском алфавите.
Например, рассмотрим самую распространённую букву - "О", ей соответствует число 10.98. Это число показывает, что произвольный текст на 10.98% состоит из буквы "О". То есть если мы возьмем любую букву в тексте, то с вероятностью 10.98% будет буква "О".
Но так как мы дело имеем со статистикой все эти цифры будут отличаться от статистики, если брать определённый текст. При этом иногда погрешности этих цифр могут быть существенные и из-за этого принимаются неправильные решения, и это намного усложняет процесс дешифрования данным методом.
Но у метода частотного криптоанализа есть существенные минусы:
- Для того, чтобы можно было исключительно на нём и не используя ничего больше дешифровать текст, нужно чтобы этот текст был действительно большим (10000 символов, не меньше), что встречается очень редко.
- Даже если это условие будет соблюдаться, всё равно всё будет не так легко, как хотелось бы.
- Исходя из того, что как правильно приходится работать с небольшими кусками текста (1000 - 2000 символов или меньше) частотный анализ позволит дешифровать буквально 1-3 символа. Дальше придётся на логике, на дедукции или на других методах что-то сделать.
- Если нет специальных программ и придётся "от руки" вскрывать текст.
Исходя из всего вышеперечисленного, а в особенности 4 пункта лучше не использовать этот метод, потому что он очень трудоёмкий.
Чтобы попытаться дешифровать текст, для начала нужно сосчитать общее количество символов в нём. Затем рассчитать, используя значения из рисунка 1 примерное количество символов в тексте с определённой буквой и записываем все полученные значения в определённую таблицу. После этого считаем реальное количество символов в зашифрованном тексте и заносим в другую таблицу, затем сортируем обе таблицы по убыванию количества символов и находим примерные соответствия. Путём подстановки определённых букв в зашифрованный текст (с помощью соответствий обеих таблиц), а также с помощью логики и дедукции начинаем его дешифрование.
Делаем вывод, что метод частотного криптоанализа в чистом виде не используют.