Вызов простоты
Самые простые вопросы – самые сложные. Иначе почему математики столетиями бьются над загадками чисел, которые проходят в пятом классе? Рассказываем, почему название «простые числа» обманчиво и как решение абстрактной математической задачи угрожает не только вашему кошельку, но и всей мировой экономике

Страшный сон человека, живущего в эпоху цифровизации, – это однажды обнаружить, что персональные данные утекли в свободный доступ, аккаунты взломаны, счета пусты. Но, к сожалению, все это действительно может произойти с каждым из нас – если однажды математики решат интересную задачу и научатся быстро раскладывать любое число на простые множители.
Непростые простые числа
Знакомство с математикой начинается с умения считать. Натуральные числа – 1, 2, 3 и так далее – самые естественные и незамысловатые математические объекты, какие только можно вообразить. Более хитрые понятия – дроби, функции и т.д. – строятся на их основе: как сказал выдающийся математик Леопольд Кронекер, «Бог создал целые числа, все остальное – дело рук человеческих». А ведь натуральные числа еще проще целых – они всегда положительные.
В этом смысле натуральные числа – первоэлементы, кирпичики, из которых состоит бОльшая часть математики (не вся, так как некоторые области математики вообще не имеют дела с числами, – прим. редакции). Но и среди натуральных чисел есть собственные неделимые «кирпичики», из которых состоят остальные числа.
Рассмотрим для примера несколько вот таких чисел: 4 = 2 × 2; 6 = 2 × 3; 7843 = 11 × 23 × 31. Все эти числа относятся к составным. Смысл этого слова прозрачен: например, число 6 составлено из чисел 2 и 3 с помощью умножения. А из чего составлено само число 2? Ни из чего, кроме самого себя: 2 = 2 × 1, и все (напомним, что мы здесь говорим о натуральных числах, а не о дробях, поэтому нас сейчас не интересуют выражения, подобные таким: 2 = 1/2 × 4).
И дело не в том, что число 2 такое маленькое. Число 9929 тоже простое – так называются числа, начиная с 2, которые делятся только на единицу и на себя. Таким образом, первые 10 простых чисел выглядят так: 2, 3, 5, 7, 11, 13, 17, 19, 21, 23. А вот число 1 не считается простым!
Зачем нужны такие числа?
На свойствах простых чисел строится алгоритм, который полвека назад произвел революцию в шифровании и до сих пор применяется очень широко. Самый очевидный способ зашифровать сообщение – придумать секретное обозначение для каждой буквы. Например, буква А будет обозначаться числом 2, Б – числом 9, О – числом 7. Тогда 927929 будет означать «баобаб». Только не теряйте памятку, какая буква как обозначена! Этот листок нужен и чтобы зашифровать сообщение («замок»), и чтобы расшифровать его («ключ»). В том, что замок и ключ – одно и то же, и состоит проблема. Допустим, вы онлайн переводите деньги со счета на счет.
Чтобы вы могли зашифровать свое сообщение банку, банк присылает вам свой фирменный замок. Но что будет, если его перехватит злоумышленник? Раз замок одновременно и ключ, хакер сможет «открыть» этим ключом данные и украсть ваши деньги. Гораздо лучше, когда замок и ключ – разные вещи. Банк выдает клиентам замки, ключи от которых есть только у него. Даже если хакер перехватит замок, он не сможет им ничего открыть, только закрыть! Другими словами, банк должен сообщить вашему смартфону способ зашифровать сообщение так, чтобы никто, кроме банка – даже вы сами, – не мог его расшифровать.
Первый такой шифр придумали Рональд Ривест, Ади Шамир и Леонард Адлеман в 1970–х. По первым буквам их фамилий этот способ шифрования назвали RSA. «Ключ» в этой системе – два больших простых числа, а «замок» – их произведение. Как именно с их помощью шифруют сообщения – это технические детали, которые мы опустим. Важно, что банк сообщает вам только произведение, а сами простые множители держит в секрете.
Фокус в том, что перемножить два простых числа легко, а вот найти множители по их произведению гораздо труднее. Из каких простых чисел стоит число 87404987? Надо проверить, делится ли оно на 2, 3, 5, 7, 11… Придется перебрать немало чисел, чтобы установить, что 87404987 = 8803 × 9929. А ведь в этом числе всего 8 цифр. В RSA-шифровании используются числа длиной более 600 цифр. Разложить такое число на простые множители – непосильная задача даже для суперкомпьютера, по крайней мере, с существующими алгоритмами. Если кто-то найдет способ это сделать, он наверняка получит самые престижные математические награды – или пулю от обладателей больших капиталов.