Облачная демократия | страница 39



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

Электронные коммуникации конца XX века сформировали новые вызовы. Появление Интернета поставило прежнюю схему обмена секретными данными под сомнение. Конечно, очень хочется уметь шифровать информацию при передаче через Интернет данных о кредитных карточках. Также очень хочется уметь на расстоянии идентифицировать покупателя в интернет-магазине. Однако какой будет смысл совершения покупки в интернет-магазине, если предварительно придется в этот магазин ехать и договариваться о секретном коде?

Иными словами, было непонятно, есть ли ответы на новые жизненные вызовы и возможны ли иные подходы к шифрованию информации и аутентификации. Однако такие подходы были найдены. В 1976 году два американских математика Уитфилд Диффи и Мартин Хеллман опубликовали работу о так называемой «односторонней функции-ловушке». Они предложили теоретическую модель инфраструктуры открытых ключей – механизма, на базе которого построены все современные системы электронной цифровой подписи. Суть работы механизма такова: представим себе, что у нас есть некая односторонняя функция, которая очень легко преобразует одно число в другое, однако обратное преобразование будет выполнить очень сложно. Классическим примером односторонней функции-ловушки служит произведение двух больших простых чисел. Умножить два больших простых числа очень легко, для компьютера это операция миллисекундная. При этом разложить большое число на простые множители очень сложно. Эта операция может занимать годы, даже столетия – в зависимости от длины числа.

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