Найти тему
ProMath

Самая скрытная наука. Криптография.

Криптография(с др. Греч. – скрытое(тайное) писание) – наука, изучающая методы передачи данных скрытым путем для посторонних лиц.

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

Прежде чем начать говорить подробнее о методах кодирования информации, давайте познакомимся с базовыми понятиями.

Исходное послание(ИП) – то, что мы хотим передать.

Зашифрованное послание(ЗП) – исходное послание, закодированное определенными алгоритмами(шифром)

Ключ – параметр шифра(чаще всего это число), который позволяет зашифровать или расшифровать послание.

Шифрование – процесс получения ЗП из ИП, применяя шифр и ключ

Один самых первых алгоритмов шифрования – шифр Цезаря.

В чем его суть?

Есть ИП и есть алфавит (а, б, в, г...)

Каждой букве алфавита соответствует его порядковый номер (а–1, б–2, в–3...).

Есть ключ(k) – какое-то число, которое "сдвигает" порядковый номер буквы алфавита на число k. Например если k=1, наш алфавит поменяет вид (а->б, б->в, в->г...)

Стоит заметить: буква "я" ->"а"

Сколько всего ключей возможно?

Да сколько угодно, но есть маленький ньюанс: при k = 33 буква "а" ->"а", она останется на своем месте. Мы "пробежали" весь алфавит с 33 буквами. Такая же ситуация будет при k={66,99,132... n*33; где n целое число}

При получении большого значения k, нас будут интересовать только его остатки от деления k на размер алфавита(в нашем случае, в русском алфавите 33 буквы), т.е остатки – числа [0;32].

Если не понятно, то давайте используем аналогию с днями неделями. Если к понедельнику добавить 7 дней, мы получим следующий понедельник, 14 - та же ситуация, и т.д.(размер алфавита равен 7)

Если добавить 8 дней мы получим вторник, также как если бы мы добавили +1 день.

Давайте зашифруем и расшифруем послание с таким шифром.

ИП – "Привет"

k=497

Сначала надо узнать насколько необходимо "сдвинуть" наши буквы:

Найдем остаток от деления k на 33.

Поделим число 497 на 33, берём целую часть, целую часть умножаем на 33, и полученное число отнимаем от 497.

497/33 =15.06

15*33=495

497-495=2

В теории чисел(также в информатике) есть следующая запись: 497=2 (mod33)

При делении на 33 они дадут один и тот же остаток – 2.

Следовательно, исходный алфавит примет вид (а->в, б->г, в->д...)

Перепишем слово "Привет" согласно новому шифру.

Получили ЗП: "Сткджф"

Можем отправлять: "Сткджф" и k=497.

Получатель, заранее узнавший про шифр Цезаря, без труда расшифрует послание. Для этого: найдет остаток при делении k на 33 и сместит влево на k(mod33)=2 номерной порядок алфавита.

Есть большое множество подобных шифров, но в наши дни их не используют на практике, только теоретически, в процессе обучения (историческая справочка всегда помогает лучше понять предмет).

Этому классу шифров несколько тысяч лет, в наши дни взламываются меньше чем за секунду(в пересчете на работу компьютера).

К примеру, можно назвать еще один известный шифр как шифр Виженера. Этот шифр немного сложнее шифра Цезаря. В чем его суть?

При шифре Цезаря, мы букве одного алфавита сопоставляли букву другого алфавита.

При шифре Виженера мы будем сопоставлять буквам одного алфавита, буквы нескольких алфавитов.

У нас есть ИП, ключ,обычный алфавит(абвгд...) и ещё несколько алфавитов(например, 10); буквы в последних 10 алфавитах перемешанны определённым образом(можно по шифру Цезаря, можно произвольно).

Зашифровка сообщения:

ИП – "Привет"

Ключ - 762543.

Каждой букве нашего послания соответствует в ключе определенная цифра – номер алфавита.

Проще говоря, мы берем первую букву – "П" и будем ее шифровать по 7 алфавиту, в котором букве "П" соответствует буква "А". Второй букве "р" будет соответствовать буква "г" из 6 алфавита, и т.д.

Получим сообщение, например –"Агниьт".

Минус такого шифра – количество исходных данных, целых 10 алфавитов(а может еще больше)!

Расшифровать просто – подставить буквы по ключу обратно.