Шифры.

Шифры.

Будни Учёного

Предположим, Вы - тайный агент, который похитил секретные данные у государства-соперника. Нужно срочно их передать, причём так, чтобы этого никто не заметил. Как это сделать?

Нет, Билл Сайфер (С англ. cipher - шифр) Вам вряд ли поможет. Хотя об этом позже. Поможет вторая часть его имени - Cypher или шифр.

Шифр — какая-либо система преобразования текста с секретом (ключом) для обеспечения секретности передаваемой информации.

Иными словами, у Вас есть кодовое сообщение, и если Вы знаете, как его расшифровать, то Вы сможете прочесть само сообщение.

Криптография как раз и занимается шифрами, это и есть наука о способах защиты информации.

Здесь мы рассмотрим самые простые, самые лёгкие шифры.


Шифр Цезаря

Каждую букву заменяют на N-ю по алфавиту после нее.

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

То есть каждую букву "двигают вперёд" на столько, каким именно числом задан шифр.

Сообщение: scienceeveryday

Шифр ROT3:       pzfbkzbbsbovaxv


Шифр пар

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

Пример таблицы: 

Сообщение: хабрахабр

Шифр:       эчмлчэчмл


Транспозиция.

шифр транспозиция

В транспозирующих шифрах буквы переставляются по заранее определенному правилу. Например, если каждое слово пишется задом наперед, то из «all the better to see you with» получается «lla eht retteb ot ees joy htiw». Другой пример — менять местами каждые две буквы. Таким образом, предыдущее сообщение станет «la tl eh eb tt re ot es ye uo iw ht». Подобные шифры использовались в Первую Мировую и Американскую Гражданскую Войну, чтобы посылать важные сообщения. Сложные ключи могут сделать такой шифр довольно сложным на первый взгляд, но многие сообщения, закодированные подобным образом, могут быть расшифрованы простым перебором ключей на компьютере. Попробуйте расшировать «THGINYMROTSDNAKRADASAWTI»!


Матричный шифр.

Подготавливаем матрицу MxN. Подготавливаем два ключа KM и KN.

1) Сообщение по строкам записываем в матрицу MxN.

2) По краям матрицы записываем ключи.

3) Строки переставляем так, чтобы буквы ключа стали упорядоченными по алфавиту. То же самое делаем со столбцами.

4) Списываем буквы из матрицы по столбцам.

Пример: Размеры матрицы: M=4, N=5, Ключ KM: пуля, KN: дурак.

Сообщение: заголовок должен быть наполнен смыслом

Шифр:       еокьозобнлднжготлавымлмосаеооныооосолпно

Если ничего не поняли, объясняю ещё раз: каждая буква в новой матрице соответствует положению букв в ключах. К примеру, дуРак (3 буква) и пУля (2 буква) в первой матрице говорят, что это буква О. А в следующей те же самые буквы ответственны за букву О, но теперь она находится в другом месте из-за того, что буквы в ключе поменялись местами ;).


Шифр Виженера

На алфавите длиной N вводят операцию добавления (циклического сдвига) букв.

Пронумеровав буквы, добавляем их по модулю N (для англ. алфавита N=26).

Заменяем цифры на буквы

Выбираем слово-ключ (пускай pass) и подписываем его под сообщением сколько нужно раз

Сообщение: search twitter

Шифр:       hesjrhloxtlwg 


А ещё есть вот такой шрифт. По мне, это просто гениально.

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

Алгоритм шифрования, применяющийся сегодня в различных модификациях буквально во всех компьютерных системах. Есть два ключа: открытый и секретный. Открытый ключ — это некое очень большое число, имеющее только два делителя, помимо единицы и самого себя. Эти два делителя являются секретным ключом, и при перемножении дают публичный ключ. Например, публичный ключ — это 1961, а секретный — 37 и 53. Открытый ключ используется для того, чтобы зашифровать сообщение, а секретный — чтобы расшифровать. Без секретного ключа расшифровать сообщение невозможно.

Когда вы отправляете свои личные данные, допустим, банку, или ваша банковская карточка считывается банкоматом, то все данные шифруются открытым ключом, а расшифровать их может только банк с соотвествующим секретным ключом. Суть в том, что математически очень трудно найти делители очень большого числа. Вот относительно простой пример. Недавно RSA выделила 1000 долларов США в качестве приза тому, кто найдет два пятидесятизначных делителя следующего числа:

1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139.

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

Report Page