Неоспоримая цифровая подпись
Довольно легко получить точную копию обычной цифровой подписи. Иногда это приходится очень кстати, особенно если цифровая подпись стоит под объявлением, предназначенным для всеобщего ознакомления. Однако свободно циркулирующее личное или деловое письмо, в подлинности которого в состоянии убедиться всякий, может поставить его автора в довольно неловкое положение, не говоря уже об опасности прямого шантажа. Поэтому лучше применять такую цифровую подпись, которую можно проверить, но нельзя продемонстрировать посторонним лицам без согласия ее владельца.
Предположим, что Антон возглавляет компанию "ПрограммКомп", которая торгует универсальным текстовым редактором "УниЛекс'97" собственного изготовления. Чтобы исключить заражение компьютерным вирусом машин, принадлежащих покупателям этого программного продукта, "ПрограммКомп" снабжает каждую копию "УниЛекса'97" цифровой подписью. Однако необходимо, чтобы только легальные покупатели "УниЛекса'97" могли проверить подлинность цифровой подписи. Если в купленной на законных основаниях копии "УниЛекса'97" вдруг обнаружится вирус, "ПрограммКомп" не сможет оспорить подлинность своей цифровой подписи.
Для этого "ПрограммКомп" должна воспользоваться неоспоримой цифровой подписью. Подобно обыкновенной цифровой подписи, неоспоримая подпись определяется содержанием подписанного документа и зависит от тайного ключа ее автора. Основное отличие неоспоримой цифровой подписи от обыкновенной состоит в том, что неоспоримую подпись нельзя проверить без согласия поставившего ее человека. С этой точки зрения ее лучше было бы назвать "подписью без права передачи". Тем не менее, свое название неоспоримая цифровая подпись получила благодаря другому своему свойству: если Антон будет вынужден либо признать подлинность предъявленной ему неоспоримой цифровой подписи, либо отвергнуть ее, то он не сможет отказаться от нее в случае, если эта подпись является настоящей.
Математический аппарат, используемый для конструирования неоспоримой цифровой подписи, довольно сложен и громоздок, однако основная идея соответствующего протокола достаточно прозрачна:
- Антон знакомит Бориса со своей цифровой подписью.
- Борис генерирует случайное число и передает его в распоряжение Антона.
- На основе полученного от Бориса случайного числа и собственного тайного ключа Антон выполняет специальные вычисления, результат которых отсылает обратно Борису. Антон может сделать это только в том случае, если цифровая подпись является подлинной.
- Борис подтверждает получение вычисленного Антоном значения.
С помощью дополнительных математических ухищрений можно добиться, чтобы Антон мог доказать, что он не подписывал документ, авторство подписи под которым необоснованно приписывается ему, и не смог "отвертеться", если подпись действительно принадлежит ему.
Один из недостатков протокола, позволяющего ставить неоспоримую цифровую подпись под документом, состоит в том, что Борис не в состоянии убедить третьего участника этого протокола (Владимира) в подлинности цифровой подписи Антона. А все потому, что Владимир не имеет возможности удостовериться, насколько случайно число, сгенерированное Борисом на шаге 2. С таким же успехом Борис мог выполнить все шаги протокола в обратном порядке без участия Антона, а затем продемонстрировать Владимиру полученный результат. Владимиру необходимо принять участие во всех шагах протокола самому (вместо Бориса), чтобы проверить 100-процентную подлинность цифровой подписи Антона.
В результате Борис может на законных основаниях приобрести копию "УниЛекса'97", сделать с нее пиратскую копию и перепродать Владимиру. Как только Владимир захочет проверить подлинность цифровой подписи под пиратской копией "УниЛекса'97", Борис обратится к Антону с просьбой произвести проверку подписи под купленной легально копией этого текстового редактора. Сгенерированное Владимиром случайное число Борис переадресует Антону, а поступивший от Антона ответ он перешлет Владимиру.
Но даже с учетом присущих ей изъянов неоспоримая цифровая подпись может быть с успехом использована там, где Антону не требуется, чтобы кто-либо имел возможность проверять эту подпись бесконтрольно. Например, если Антон продал конфиденциальную информацию, заверенную с помощью неоспоримой цифровой подписи, то с его стороны вполне естественно потребовать, чтобы только покупатель этой информации мог проверить подлинность подписи Антона.