В самом общем случае Стандарт шифрования данных с депонированием ключа реализуется с помощью следующего криптографического протокола:
1. Антон генерирует пару ключей, состоящую из открытого и тайного ключа, и делит их на n частей.
2. Антон посылает каждую часть тайного ключа и соответствующую ей часть открытого ключа отдельному доверенному лицу.
3. Каждое доверенное лицо проверяет полученные от Антона части открытого и тайного ключа и помещает их на хранение в надежное место.
4. Если правоохранительные органы добиваются разрешения ознакомиться с перепиской Антона, они обращаются к его доверенным лицам и реконструируют соответствующий тайный ключ.
Существуют различные варианты протокола шифрования данных с депонированием ключа. Например, в него можно встроить пороговую схему с тем, чтобы для восстановления тайного ключа нужно было собрать не все n, а лишь не менее m (m<n) частей этого ключа, распределенных Антоном среди своих доверенных лиц. Кроме того, протокол шифрования данных с депонированием ключа можно дополнить действиями, позаимствованными из протокола с неосознанной передачей информации, чтобы доверенные лица не знали, чей конкретно ключ они реконструируют в данный момент по просьбе правоохранительных органов.
Электронная подпись
В настоящее время любой специалист в области технологий банковских расчетов хорошо знает о такой возможности авторизации электронных документов и банковских транзакций как цифровые подписи. Многие банки широко используют цифровую подпись при межбанковских и внутрибанковских расчетах, а также при работе с клиентами. Однако, наш пятилетний практический опыт работы с очень большим числом банков России, других стран СНГ и некоторыми банками стран "дальнего зарубежья" показал, что далеко не все вопросы технологии оформления и использования официально юридически значимых электронных документов с цифровыми подписями достаточно ясны даже специалистам по автоматизации банковских расчетов. Поэтому, я попытаюсь в данной публикации дать вразумительные ответы хотя бы на небольшую часть вопросов, наиболее часто задаваемых банковскими специалистами, в ходе практической реализации технологии цифровой подписи.
1. ПРИНЦИПЫ.
Идея цифровой подписи, как законного средства подтверждения подлинности и авторства документа в электронной форме, впервые была сформулирована явно в 1976 году в статье двух молодых американских специалистов по вычислительным наукам из Стэндфордского университета Уитфилда Диффи и Мартина Хеллмана.
Суть ее состоит в том, что для гарантированного подтверждения подлинности информации, содержащейся в электронном документе, а также для возможности неопровержимо доказать третьей стороне (партнеру, арбитру, суду и т.п.), что электронный документ был составлен именно конкретным лицом, или по его поручению, и именно в том виде, в которм он предъявлен, автору документа предлагается выбрать свое индивидуальное число ( называемое обычно индивидуальным ключом, паролем, кодом, и т.д.) и каждый раз для "цифрового подписывания" сворачивать (замешивать) этот свой индивидуальный ключ, хранимый в секрете от всех, с содержимым конкретного электронного документа. Результат такого "сворачивания" - другое число, и может быть назван цифровой подписью данного автора под данным конкретным документом.
Для практического воплощения этой идеи требовалось найти конкретные и конструктивные ответы на следующие вопросы:
Как "замешивать" содержание документа с индивидуальным ключом пользователя, чтобы они стали неразделимы ?
Как проверять, что содержание подписываемого документа и индивидуальный ключ пользователя были подлинными, не зная заранее ни того, ни другого ?
Как обеспечить возможность многократного использования автором одного и того же индивидуального ключа для цифрового подписывания большого числа электронных документов ?
Как гарантировать невозможность восстановления индивидуального ключа пользователя по любому количеству подписанных с его помощью электронных документов ?
Как гарантировать, что положительным результат проверки подлинности цифровой подписи и содержимого электронного документа будет в том и только в том случае, когда подписывался именно данный документ и именно с помощью данного индивидуального ключа ?
Как обеспечить юридическую полноправность электронного документа с цифровыми подписями, существующего только в электронном виде без бумажного дубликата или заменителей ?
Для полноценных удовлетворительных ответов на все эти вопросы потребовалось около 20 лет. Сейчас мы можем точно и определенно сказать, что практические ответы на все эти вопросы получены. Мы располагаем полноценным арсеналом технических средств авторизации электронных документов, называемым цифровой подписью.
Рассмотрим эти ответы подробнее. Основная идея Диффи и Хеллмана состояла в том, чтобы искать ответы на первые четыре из списка вопросов (математические) по следующей схеме:
пользователи располагают средствами выбирать случайно свои индивидуальные ключи для подписывания из очень большого множества всех возможных ключей,
по каждому конкретно выбранному индивидуальному ключу для подписывания легко вычислить парный к нему ключ для проверки подписей,
процедура вычисления ключа проверки из ключа подписывания широко известна, практически реализуема и гарантирует невозможность восстановления ключа подписывания,
процедуры подписывания и проверки подписи широко известны, в каждой из них используется только один из пары ключей, и гарантируется невозможность получения неверного ответа, а также невозможность восстановления ключа подписывания по ключу проверки.
Самым сложным из этих условий является, конечно же, гарантирование невозможности восстановления ключа подписывания по ключу проверки и любому количеству подписанных электронных документов.
Лучший из предложенных на сегодня учеными способов его выполнения состоит в том, чтобы использовать такие процедуры подписывания и проверки, что практическое восстановление ключей подписи по ключам проверки требует решения известной сложной вычислительной задачи. Поскольку задача является общеизвестно сложной, то если ее не научились решать за обозримое время все математики мира во все предыдущие столетия, то есть некоторая надежда, что ее не сумеют решить быстро и в ближайшем будущем.
Практический результат последующих 20 лет научных поисков таких задач оказался до некоторой степени парадоксальным: при всем многообразии известных сложных вычислительных задач, практически применимой оказалась одна. Это так называемая задача дискретного логарифмирования.
В простейшем варианте ее можно сформулировать так. Если заданы три больших целых положительных числа
a, n, x,
то располагая даже несложными арифметическими устройствами типа карманного калькулятора, или просто карандашом и бумагой, можно довольно быстро вычислить число
a**x
как результат умножения числа
a
на себя
x
раз,
а затем и остаток от деления этого числа нацело на n, записываемый как
b = a**x mod n
задача же дискретного логарифмирования состоит в том, чтобы по заданным числам
a, b, n
связанным таким соотношением, найти то число
x
из которого по этой формуле было вычислено число b.
Оказывается, что задача дискретного логарифмирования при правильном выборе целых чисел настолько сложна, что позволяет надеяться на практическую невозможность восстановления числа x, - индивидуального ключа подписывания, по числу b, применяемому в качестве ключа проверки.
Чтобы говорить более определенно о практической невозможности решить ту или иную вычислительную задачу, следует предварительно договориться о том, какие вычислительные мощности и мозговые ресурсы доступны тому, кто предположительно будет эту задачу решать. Поскольку давать конкретные оценки возможностей потенциальных мозговых ресурсов будущего "взломщика" системы цифровой подписи дело весьма сложное и неблагодарное, мы будем просто исходить из предположения, что он располагает полной информацией о наилучших известных мировой науке методах решения данной задачи.
Далее, если он располагает вычислительной системой общей мощностью, скажем, 1 миллиард (10**9 = 1 000 000 000) операций в секунду, а это мощность современного суперкомпьютера типа CRAY-3, то
- за сутки непрерывной работы такой системы может быть решена задача сложностью около 100 000 миллиардов (или 10**14) операций
- за месяц - около 3*(10**15),
- за год - около 3*(10**16),
- за 10 лет - около 3*(10**17),
- за 30 лет - около 10**18 операций.
Таким образом, даже если допустить, что потенциальный взломщик цифровой подписи располагает вычислительной системой эквивалентной по мощности 1000 суперкомпьютерам типа CRAY-3, то на выполнение вычислений объемом 10**21 операций ему потребовалось бы не менее 30 лет непрерывной работы всей системы, что с практической точки зрения означает невозможность их выполнения.
Поэтому, цифровая подпись с надежностью не менее 10**21 может считаться практически неподделываемой.
В этом месте автору обычно задают вопрос: "А что, если где-то в недрах специальных служб известны более совершенные методы решения этой задачи, которые могут быть применены для фальсификации цифровых подписей?"