6–11Информатика

Шифрование: от Цезаря до замочка в браузере

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

Для 6–11 классов, информатика и математика.

Шифр Цезаря

Древнеримский историк Светоний пишет, что Юлий Цезарь в секретных письмах заменял каждую букву на ту, что стоит в алфавите на три позиции дальше. По-русски А превращается в Г, Б в Д, В в Е и так далее, а в конце алфавита счёт идёт по кругу.

КОТ → НСХ

Проблема шифра в том, что вариантов сдвига мало: в русском алфавите 33 буквы, значит, всего 32 разумных ключа. Взломщику достаточно перебрать их все, это займёт пару минут на бумаге и долю секунды на компьютере.

Разминка

Расшифруйте слово, зашифрованное шифром Цезаря со сдвигом 3 (буква Ё в алфавите учитывается): «ЫНСОГ».

Сдвигаем каждую букву на три позиции назад по алфавиту.

Ы → Ш (перед Ы стоят Ъ, Щ, Ш), Н → К, С → О.

О → Л, Г → А.

Ответ: ШКОЛА.

Зашифруйте так своё имя и дайте другу, не называя сдвиг. Скорее всего, он подберёт ключ за пару минут: именно поэтому шифр Цезаря годится только для игры.

Частотный анализ: как ломают любую замену

Можно усложнить шифр: заменять буквы не сдвигом, а по произвольной таблице, где А превращается, скажем, в Ж, Б в Щ и так далее. Вариантов таблиц здесь больше, чем звёзд в наблюдаемой Вселенной, перебрать их невозможно.

Но такой шифр всё равно вскрыли ещё в IX веке. Арабский учёный аль-Кинди заметил: в любом языке одни буквы встречаются часто, а другие редко. В русском самая частая буква О, за ней Е, А, И, Н, Т. Если в шифровке больше всего значков «Ж», почти наверняка это О. Дальше угадываются короткие слова и частые сочетания, и текст раскрывается.

Тот же метод использовал Шерлок Холмс в рассказе Артура Конан Дойла «Пляшущие человечки», а Эдгар По в рассказе «Золотой жук» описал его ещё раньше. Попробуйте взять длинный текст и посчитать буквы: частоты получатся удивительно постоянными.

«Энигма» и Тьюринг

Чтобы обойти частотный анализ, шифр должен заменять одну и ту же букву каждый раз по-разному. Так работал шифр Виженера в XVI веке и особенно немецкая шифровальная машина «Энигма» во Второй мировой войне. В ней вращающиеся диски меняли схему замены после каждой нажатой клавиши. Число начальных настроек исчислялось чудовищными числами, а ключи менялись каждый день.

Первыми «Энигму» начали взламывать польские математики ещё до войны. Потом в британском Блетчли-парке работу продолжил математик Алан Тьюринг с коллегами. Они построили электромеханические машины, которые быстро перебирали возможные настройки, отсекая невозможные с помощью логики. Например, «Энигма» никогда не шифровала букву саму в себя, и это одно свойство резко сокращало перебор. Историки считают, что эта работа сократила войну на несколько лет. Тьюринга сегодня называют одним из основателей информатики.

Главная проблема и её решение

У всех шифров выше одна беда: отправитель и получатель должны заранее договориться о ключе тайно. Но как договориться с сайтом банка, с которым вы никогда не встречались? Любое сообщение в интернете можно подслушать.

В 1976 году Уитфилд Диффи и Мартин Хеллман придумали решение. Его объясняют через смешивание красок.

  • Алиса и Борис открыто договариваются об общей краске, например жёлтой. Её видят все.
  • Каждый втайне выбирает свой цвет: Алиса красный, Борис синий.
  • Алиса смешивает жёлтую со своим красным и открыто отправляет смесь Борису. Борис смешивает жёлтую с синим и отправляет Алисе.
  • Алиса добавляет к смеси Бориса свой красный, Борис к смеси Алисы свой синий. У обоих получилась одинаковая краска: жёлтый плюс красный плюс синий.
  • Подслушивающий видел жёлтую и обе смеси, но разделить смесь обратно на цвета он не может.

В математике вместо красок используют действия, которые легко выполнить и почти невозможно обратить: например, возведение в степень по модулю большого простого числа. Через год появился алгоритм RSA, основанный на том, что перемножить два огромных простых числа легко, а разложить произведение на множители очень трудно. Подробнее о простых числах в статье о самом большом простом числе.

Что происходит при замочке в браузере

Когда вы открываете сайт по HTTPS, браузер и сервер за доли секунды договариваются об общем секретном ключе способом с открытым ключом, как в истории с красками. Сервер ещё и предъявляет сертификат, подписанный доверенной организацией, чтобы доказать, что он настоящий, а не подделка. Дальше все данные шифруются быстрым симметричным шифром с общим ключом.

Мессенджеры со сквозным шифрованием идут дальше: ключи есть только у собеседников, и даже сервер компании не может прочитать переписку.

Как хранят пароли

Хороший сайт не хранит ваш пароль. Он хранит хеш: результат особой функции, которая превращает пароль в набор символов, и обратно его не превратить. При входе сайт считает хеш от введённого пароля и сравнивает с сохранённым. Даже если базу украдут, паролей в ней не будет.

Но короткие и популярные пароли всё равно подбирают: взломщики заранее считают хеши миллионов частых паролей и сравнивают. Поэтому пароль «123456» небезопасен в любом случае, а длинная фраза из нескольких слов надёжнее короткого набора символов. И стоит включать двухфакторный вход, когда кроме пароля нужен код из приложения или СМС.

Разберём на занятии

Занимаемся по всем школьным предметам с 4 по 11 класс: живые занятия, общая доска и домашка, которую проверяет тот же преподаватель.

Первое занятие бесплатное: можно посмотреть формат вместе с ребёнком и решить, подходит ли он.

Частые вопросы

Можно ли взломать HTTPS?

Сам шифр на практике не ломается. Взламывают людей и устройства: фальшивые сайты, вирусы, украденные пароли. Поэтому проверяйте адрес сайта и не вводите пароль по ссылкам из подозрительных сообщений.

Где шифрование проходят в школе?

В информатике шифры встречаются в темах про кодирование информации, а задачи на расшифровку часто дают на олимпиадах по математике и информатике с 5 класса.