Механизм

Механизм, который позволит это реализовать, базируется на математических принципах, в том числе на так называемых «необратимых функциях» (one-way functions) и «шифровании по общему ключу» (public-key encryption). Это весьма «продвинутые» концепции, так что я обрисую их лишь в самых общих чертах. Главное, запомните: несмотря на техническую сложность этой системы, пользоваться ею будет чрезвычайно просто. От Вас потребуется всего лишь сообщить информационному устройству, что именно Вы хотите сделать, а остальное – дело техники.

Необратимая функция – нечто, что сделать гораздо легче, чем отменить. Например, Вам разбивают оконное стекло; этот процесс тоже описывается необратимой функцией, правда, бесполезной для шифрования. В криптографии же применяется тот вид необратимых функций, который позволяет легко отменить действие, если известна некая дополнительная информация, и в то же время крайне затрудняет отмену при отсутствии подобной информации. В математике существует целый ряд таких необратимых функций. Одна из них связана с простыми числами, которые дети изучают в школе. Простое число нельзя поделить без остатка ни на какое другое число, кроме единицы и самого себя. В первой дюжине следующие простые числа: 2, 3, 5, 7 и 11. Числа 4, 6, 8 и 10 простыми не являются, поскольку всех их можно разделить на 2 без остатка. А число 9 не относится к простым, потому что делится без остатка на 3. Простых чисел существует великое множество, и, когда перемножают два таких числа, получают значение, которое делится без остатка только на эти же простые числа. Например, перемножив 5 и 7, Вы получите 35, и это значение можно разделить без остатка только на 5 и 7. Поиск простых чисел называется в математике «разложением на множители».

Умножить простые числа 11927 на 20903 и получить результат 249310081 совсем нетрудно, куда сложнее восстановить два его множителя – простые числа. Тут-то и проявляется эффект необратимой функции – сложность разложения чисел на множители, что и лежит в основе самой изощренной на сегодняшний день криптографической системы. Даже самые мощные компьютеры тратят немало времени на разложение действительно крупного произведения на составляющие его простые числа. В системе кодирования, основанной на разложении на множители, используются два разных ключа: один для шифровки сообщения, а второй – отличный от первого, но связанный с ним, – для расшифровки. Располагая только ключом шифрования, сообщение легко закодировать, но раскодировать его в пределах разумного времени практически невозможно. Расшифровка требует отдельного ключа, доступного только определенному получателю сообщения – точнее, компьютеру получателя. Ключ шифрования основан на произведении двух огромных простых чисел, а ключ дешифрования – на самих этих простых числах. Компьютер способен формировать новую пару уникальных ключей буквально в мгновение ока, ему ведь ничего не стоит сгенерировать два больших простых числа и перемножить их. Созданный таким образом ключ шифрования можно без особого риска сделать общим, учитывая, насколько сложно даже другому компьютеру разложить его на составные простые числа и тем самым получить ключ дешифрования.