Дорога в будущее - Билл Гейтс
Шрифт:
Интервал:
Закладка:
Прошлые войны заканчивались для кого-то победами, для кого-то поражениями отчасти и потому, что у большинства сильных держав не было тех криптологических мощностей, которые сегодня есть у эрудированного школьника с персональным компьютером. А вскоре любой ребенок – в том возрасте, когда он уже способен пользоваться персональным компьютером, – сможет передавать сообщения, зашифрованные так, что ни одно государство не сможет быстро его раскодировать. Это одно из последствий повсеместного распространения фантастической вычислительной мощи.
При отправке по информационной магистрали какого-то сообщения Ваш компьютер или другое информационное устройство «поставит» на нем цифровую подпись, которую применять можете только Вы, и зашифрует сообщение так, чтобы его сумел прочитать только Ваш адресат. В сообщении может содержаться информация любого вида, в том числе речь, видео или цифровые деньги. Получатель будет уверен (почти на 100%), что сообщение исходит именно от Вас, что оно отправлено точно в указанное время, что оно не поддельное и что никто другой не расшифровал его.
Механизм, который позволит это реализовать, базируется на математических принципах, в том числе на так называемых «необратимых функциях» (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 совсем нетрудно, куда сложнее восстановить два его множителя – простые числа. Тут-то и проявляется эффект необратимой функции – сложность разложения чисел на множители, что и лежит в основе самой изощренной на сегодняшний день криптографической системы. Даже самые мощные компьютеры тратят немало времени на разложение действительно крупного произведения на составляющие его простые числа. В системе кодирования, основанной на разложении на множители, используются два разных ключа: один для шифровки сообщения, а второй – отличный от первого, но связанный с ним, – для расшифровки. Располагая только ключом шифрования, сообщение легко закодировать, но раскодировать его в пределах разумного времени практически невозможно. Расшифровка требует отдельного ключа, доступного только определенному получателю сообщения – точнее, компьютеру получателя. Ключ шифрования основан на произведении двух огромных простых чисел, а ключ дешифрования – на самих этих простых числах. Компьютер способен формировать новую пару уникальных ключей буквально в мгновение ока, ему ведь ничего не стоит сгенерировать два больших простых числа и перемножить их. Созданный таким образом ключ шифрования можно без особого риска сделать общим, учитывая, насколько сложно даже другому компьютеру разложить его на составные простые числа и тем самым получить ключ дешифрования.
Практически этот вид шифрования встанет в центр системы защиты на информационной магистрали. Весь мир будет во многом полагаться на эту сеть, поэтому значимость должного уровня защиты информации очевидна. Информационную магистраль можно сравнить с сетью почтовых предприятий, где у каждого есть свой бронированный почтовый ящик с не поддающимся взлому замком. В щель почтового ящика любой может опустить письмо, но только у владельца этого ящика есть ключ, который позволит достать оттуда корреспонденцию. (Некоторые правительства, наверное, будут настаивать, чтобы у каждого почтового ящика была вторая, запасная дверца с отдельным ключом, который бы хранился у какой-то правительственной организации, но мы пока не станем обращать внимания на политические соображения, а сосредоточимся на защите, обеспечиваемой программными средствами.)
Каждый пользовательский компьютер (или другое информационное устройство) на основе простых чисел будет генерировать ключ шифрования, сообщаемый всем желающим, и ключ дешифрования, известный только конкретному пользователю. Вот как это будет выглядеть на практике. У меня есть информация, которую я хочу Вам передать. Моя система (на базе информационного устройства или компьютера) отыскивает Ваш общий ключ и с его помощью шифрует сообщение перед посылкой. Никто, кроме Вас, это сообщение прочитать не сможет, несмотря на то что этот ключ давно стал достоянием гласности. Почему? А потому, что принадлежащий Вам общий ключ не содержит информацию, необходимую для дешифрования. Вы получаете сообщение, и компьютер декодирует его на основе личного ключа, соответствующего общему.
Но вот Вы захотели ответить на послание. Ваш компьютер отыскивает общий ключ и с его помощью кодирует ответ. Никто другой это сообщение не сумеет прочитать, невзирая на то что уж этот ключ – точно общий. И тем не менее только я один узнаю содержание Вашей записки, потому что только у меня есть личный ключ дешифрования. Такая система весьма практична, поскольку никому не придется заблаговременно обмениваться ключами.
Насколько велики должны быть простые числа и их произведения, чтобы необратимая функция работала по-настоящему эффективно?
Концепция шифрования по общему ключу изобретена Уитфилдом Диффи (Whitfield Diffie) и Мартином Хеллманом (Martin Hellman) в 1977 году. Чуть позже другая группа ученых в области компьютерных наук, Рон Ривест (Ron Rivest), Ади Шамир (Adi Shamir) и Леонард Эдельман (Leonard Adelman), стала использовать разложение произведений простых чисел на множители как часть того, что теперь известно под названием «криптосистема RSA» (где RSA – первые буквы фамилий этих ученых). Они считали: чтобы разложить 13О-разрядное произведение простых чисел на множители, понадобятся миллионы лет – независимо от вычислительных мощностей. Для доказательства они предложили всем скептикам найти 2 множителя в 129-разрядном числе (среди тех, кто имеет отношение к криптографии, его называют RSA 129):