[Сryptography for beginners] - Часть 2. Простые шифры.
@webwareВсем привет дорогие друзья и пассивные читатели нашего прекрасного форума!
Сегодня мы продолжим нашу речь о криптографии и поговорим о самых простейших алгоритмах шифрования.
[1] - Шифр цезаря.

Этот шифр подразумевает собой своеобразный сдвиг на n букв и является очень популярным(не в использовании). Давайте разберем его логику подробней. Представим что нам нужно зашифровать слово
CODEBY
Шифр цезаря - в нем каждый символ заменяется другим символом, который находится (как я говорил ранее на n позиций левее или правее) на постоянном числе позиций. Т.е. если была буква D и если ее сдвинуть на 5 позиций влево, то мы получим - Y. И в нашем случае Y - это зашифрованное D.
Немного истории.
По истории говорят, что шифр использовался Юлием Цезарем для секретных "разговоров" с генералами и защиты секретных сообщений.
Также говорят о том, что этот шифр использовали и некоторые его родственники. Самое интересное, утверждают историки, это то что Цезарь мог использовать не только его для шифрования своих сообщений.
Вернемся к заданию. Вот тут нам пригодится ключ.
Он будет состоять из целого числа!
Допустим ключ K будет равен 5. И сдвиг при этом будет на пять позиций влево.
Примерно представим исходный алфавит.

Видим что
C = 3 O = 15 D = 4 E = 5 B = 2 Y = 25
И просто прибавим к каждому числу 5. Прибавим, т.к. на 5 позиций влево.
А если бы на 5 позиций вправо, то вычитали бы.
И в конце всех изменений получаем
HTIJGD
Таким образом
Исходное слово --> CODEBY Ключ --> 5(+) Шифр --> HTIJGD
Надеюсь это вам понятно)
[2] - Модификация шифра.
Этот шифр вскоре был модифицирован графом Гронсфельдом. Тут все просто. Длина ключа должна ровнятся длине шифруемого сообщения. Давайте возьмем новое слово. К примеру
hack
Из этого мы должны понимать, что
Длинна сообщения = 4 символа => длинна ключа(K) тоже = 4
Допустим ключ будет равен
K = 1234
Тогда, воспользуясь нашей прошлой таблицей слаживаем по такой схеме
Меняем позицию символов сообщения на соответствующую этому символу цифру из ключа.
Подробней я обьяснить не могу. Думаю вы поймете все на практике
H - 8 A - 1 C - 3 K - 11
Первый символ увеличим на первую цифру нашего ключа, второй символ на вторую цифру и так далее. Соответственно
8 + 1 = 9 --> I 1 + 2 = 3 --> C 3 + 3 = 6 --> F 11 + 4 = 15 --> O Исходное сообщение = hack Ключ(K) = 1234 Шифр = icfo
Хорошенько переварите эту информацию! Сегодня статья вышла не большая, но самое интересное вас ждет в части 3.
П.С: В части 3 мы займемся взломом этих шифров и продолжим нашу тему с простыми шифрами. Также мы напишем программный код для действий описанных в этой и следующей статье.
До скорого)
Всем ДЦЁУСУЛЖ