100 миллионов долларов за одно число!

Введение:

Алан Тьюринг и «Энигма»: прорыв в криптоанализе

История взлома немецкой шифровальной машины «Энигма», показанная в фильме «Игра в имитацию» (2014), — это пример гениального криптоанализа. Сама машина была компактной, размером с печатную машинку, с клавиатурой и панелью подсвечиваемых букв.

Принцип работы был таков: при нажатии клавиши, например, «A», на панели загоралась другая буква, допустим, «Q». Внутри три вращающихся диска меняли свою позицию после каждого нажатия, изменяя схему шифрования. В арсенале было пять дисков, из которых использовались любые три в произвольном порядке, каждый с 26 начальными положениями. Военная версия усложняла задачу коммутационной панелью с 10 кабелями, которые попарно меняли местами буквы. Общее количество возможных начальных установок достигало астрономической цифры:

158 962 555 217 826 360 000

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

Алан Тьюринг и его команда совершили революцию, научившись взламывать шифр каждое утро всего за 20 минут. Они использовали ключевые уязвимости: во-первых, буква никогда не шифровалась сама в себя, что давало первую зацепку. Во-вторых, они предполагали, что утренние сообщения часто начинаются с шаблонных фраз, например, прогноза погоды («wetterbericht»). Их гений заключался не в поиске правильного ключа, а в максимально быстром исключении всех неверных вариантов. Тьюринг создал электромеханическую машину («Бомбу»), которая автоматически отсекала целые ветви неверных предположений, основываясь на логических следствиях. Этот подход — исключение, а не прямой подбор — стал краеугольным камнем современного криптоанализа и оказал огромное влияние на ход Второй мировой войны.

Современный фундамент: схема Диффи — Хеллмана

Сегодня широко используются схемы шифрования с открытым ключом, одна из основополагающих — схема Диффи — Хеллмана, разработанная в 1970-х годах. Её математическая основа сложна, но базовую идею понять просто.

Представим, что есть публично известные параметры: большое простое число p (например, 19) и целое число g (например, 2). Участники — Алиса и Боб, которые хотят установить общий секретный ключ, и Ева, которая пытается его перехватить.

Алиса выбирает своё секретное число x (например, 6), а Боб — своё y (например, 8). Далее они вычисляют и открыто обмениваются результатами: Алиса отправляет Бобу значение A = gx mod p (остаток от деления 26=64 на 19, что равно 7), а Боб отправляет Алисе B = gy mod p (остаток от деления 28=256 на 19, что равно 9).

Затем Алиса вычисляет общий секрет как Bx mod p (96 mod 19 = 11), а Боб как Ay mod p (78 mod 19 = 11). Магия математики гарантирует, что они получат одно и то же число — общий секретный ключ. Ева, перехватившая числа 7 и 9, не сможет легко вычислить этот ключ, не зная x или y.

Алгоритм RSA: сила факторизации

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

Алиса генерирует два больших простых числа p и q, вычисляет их произведение n = p × q и делает n частью открытого ключа. Умножение выполняется мгновенно, однако обратная задача — найти p и q, золько n, — для больших чисел (например, длиной 1024 бита) является вычислительно нерешаемой за разумное время на обычных компьютерах. Это и защищает шифр.

Обратите внимание: Цифровая диктатура в Китае. У миллионов людей слишком мало шансов иметь возможность жить нормальной жизнью.

Интересно, что квантовые компьютеры теоретически способны быстро решать задачу факторизации с помощью алгоритма Шора, но пока их мощность ограничена, и они не представляют непосредственной угрозы для современных реализаций RSA, использующих очень большие числа.

Основная часть: Уязвимости в современной криптографии

Схемы вроде Диффи — Хеллмана и RSA, хотя и безопасны, работают относительно медленно. Поэтому в интернете они обычно используются только на начальном этапе соединения («рукопожатии») для безопасного обмена ключами и аутентификации. Далее всю сессию для шифрования данных применяются быстрые симметричные алгоритмы (например, AES), которые используют уже установленный общий секретный ключ.

Казалось бы, математика стоит на страже нашей безопасности. Однако надёжность системы зависит не только от теории, но и от её практической реализации (имплементации).

Для стойкого шифрования необходимы огромные простые числа (стандарт — 1024 бита, что примерно равно 308-значному числу). Хотя таких чисел бесконечно много, многие интернет-протоколы и устройства по соображениям удобства и экономии вычислительных ресурсов используют одни и те же, заранее сгенерированные простые числа. Эта практика создаёт критическую уязвимость.

В 2015 году мир криптографии потрясла статья, в которой впервые была названа конкретная цена взлома широко используемой реализации схемы Диффи — Хеллмана: 100 миллионов долларов.

Цена в 100 миллионов: атака Logjam

История с «Энигмой» задала парадигму: для взлома нужны мощные вычислительные ресурсы («машина») и эффективный алгоритм («быстро»). Атака Logjam, представленная в 2015 году, стала современным воплощением этого подхода.

Её суть в том, что самые трудоёмкие вычисления, необходимые для взлома, зависят только от публичного простого числа p, используемого в схеме. Эти вычисления можно провести заранее, один раз, затратив колоссальные ресурсы. Авторы оценили, что на оборудовании стоимостью в несколько сотен миллионов долларов можно «предвычислить» данные для одного конкретного 1024-битного (308-значного) простого числа примерно за год.

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

Насколько это опасно? По оценкам авторов, взлом всего одного самого популярного числа позволил бы пассивно расшифровывать около двух третей трафика VPN и четверти SSH-серверов. Взлом второго по популярности числа дал бы доступ к 20% HTTPS-сайтов из топ-миллиона. Существуют предположения, что подобные методы уже могут применяться государственными структурами.

Гонка вооружений в криптографии

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

Атака Logjam — яркий пример такого прогресса. Она не только выявила угрозу, но и сразу предложила меры защиты: переход на более длинные ключи (2048 бита, или 616-значные числа) и отказ от использования одних и тех же стандартных простых чисел. Многие браузеры, включая Chrome и Firefox, быстро отреагировали на эту угрозу обновлением своих протоколов.

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

Больше интересных статей здесь: Новости науки и техники.

Источник статьи: 100 миллионов долларов за одно число!.