91
Л е к ц и я 10. ЦИФРОВЫЕ ПОДПИСИ
Общие положения
Цифровая подпись для сообщения является числом, зависящим от самого сообщения и от некоторого секретного, известного только подписывающему субъекту, ключа. При этом предполагается, что она должна быть легко проверяемой и что осуществить проверку подписи должен иметь возможность каждый без получения доступа к секретному ключу. При возникновении спорной ситуации, связанной с отказом подписывающего от факта подписи им некоторого сообщения либо с попыткой подделки подписи, третья сторона должна иметь возможность разрешить спор.
Цифровая подпись позволяет решить следующие три задачи:
–осуществить аутентификацию источника сообщения,
–установить целостность сообщения,
–обеспечить невозможность отказа от факта подписи конкретного сообщения.
Использование термина «подпись» в данном контексте оправдано тем, что цифровая подпись имеет много общего с собственноручной подписью на бумажном документе Собственноручная подпись также решает три перечисленные задачи, однако между обычной и цифровой подписями имеются существенные различия.
Для реализации схемы цифровой подписи необходимы два алгоритма:
–алгоритм вычисления цифровой подписи,
–алгоритм ее проверки.
Главные требования к этим алгоритмам заключаются в исключении возможности получения подписи без использования секретного ключа и гарантировании возможности проверки подписи без знания какой-либо секретной информации.
Надежность схемы цифровой подписи определяется сложностью следующих трех задач:
–подделки подписи, т. е. нахождения значения подписи под заданным документом лицом, не являющимся владельцем секретного ключа;
–создания подписанного сообщения, т. е. нахождения хотя бы од-
ного сообщения с правильным значением подписи;
–подмены сообщения, т. е. подбора двух различных сообщений с одинаковыми значениями подписи.
92
Принципиальной сложностью, возникающей при использовании цифровой подписи на практике, является проблема создания инфраструктуры открытых ключей. Дело в том, что для алгоритма проверки подписи необходима дополнительная открытая информация, связанная с обеспечением возможности открытой проверки подписи и зависящая от секретного ключа автора подписи. Эту информацию можно назвать открытым ключом цифровой подписи. Для исключения возможности подделки этой информации (открытого ключа) лицами, которые хотят выступить от лица законного владельца подписи (секретного ключа), создается инфраструктура, состоящая из центров сертификации открытых ключей и обеспечивающая возможность своевременного подтверждения достоверности принадлежности данной открытой информации заявленному владельцу и обнаружения подлога.
Создание сертификационных центров с технической точки зрения не представляет большой сложности. Они строятся во многом аналогично центрам сертификации, которые используются в криптографических системах с открытыми ключами. Однако с юридической точки зрения здесь имеется множество проблем. Дело в том, что в случае возникновения споров, связанных с отказом от авторства или подделки подписи, такие центры должны нести юридическую ответственность за достоверность выдаваемых сертификатов. В частности, они должны возмещать понесенные убытки в случае конфликтных ситуаций, когда алгоритм проверки подписи подтверждает ее правильность. В связи с этим сложилась практика заключения договоров между участниками информационного взаимодействия с применением цифровых подписей. В таком договоре должно быть четко указано:
–кто должен нести ответственность в случае, если подписанные сделки не состоятся;
–кто должен нести ответственность в случае, если система окажется ненадежной и будет взломана, т. е. будет выявлен факт подделки секретного ключа;
–какова ответственность уполномоченного по сертификатам в случае, если открытый ключ будет сфальсифицирован;
–какова ответственность владельца секретного ключа в случае его утраты;
–кто несет ответственность за плохую реализацию системы в случае повреждения или разглашения секретного ключа;
93
– каков порядок разрешения споров и т. п.
Поскольку данные проблемы носят юридический, а не технический характер, то для их разрешения нужен юридически правильно заключенный договор, оформленный стандартным образом на бумаге.
В настоящее время предложено несколько принципиально различных подходов к созданию схем цифровой подписи. Их можно разделить на три группы:
1)схемы на основе систем шифрования с открытыми ключами;
2)схемы со специально разработанными алгоритмами вычисления
ипроверки подписи;
3)схемы на основе симметричных систем шифрования.
Цифровые подписи на основе шифрсистем с открытыми ключами
Идея использования систем шифрования с открытыми ключами для построения систем цифровой подписи как бы заложена в постановке задачи. Действительно, пусть имеется пара преобразований (Е, D), первое из которых зависит от открытого ключа, а второе – от секретного. Чтобы вычислить цифровую подпись S для сообщения, владелец секретного ключа может применить к сообщению М второе преобразование D : S = D(М). В таком случае вычислить подпись может только владелец секретного ключа, в то время как проверить равенство Е(S) = М может каждый. Основными требованиями к преобразованиям Е и D являются:
–выполнение равенства М = Е(D(М)) для всех сообщений M;
–невозможность вычисления значения D(М) для заданного сообщения М без знания секретного ключа.
Отличительной особенностью предложенного способа построения цифровой подписи является возможность отказаться от передачи самого подписываемого сообщения М, так как его можно восстановить по значению подписи. В связи с этим подобные системы называют
схемами цифровой подписи с восстановлением текста.
Если при передаче сообщение дополнительно шифруется с помощью асимметричного шифра, то пара преобразований (Е, D), используемая в схеме цифровой подписи, должна отличаться от той, которая используется для шифрования сообщений. В противном случае появляется возможность передачи в качестве шифрованных ранее подписанных сообщений. При этом более целесообразно шифровать под-
94
писанные данные, чем делать наоборот, т. е. подписывать шифрованные данные, поскольку в первом случае противник получит только шифртекст, а во втором – и открытый, и шифрованный тексты.
Очевидно, что рассмотренная схема цифровой подписи на основе пары преобразований Еncryption и Dtcryption удовлетворяет требованию невозможности подделки, в то время как требование невозможности создания подписанного сообщения не выполнится: для любого значения S электронной подписи каждый может вычислить значение М = Е(S) и тем самым получить подписанное сообщение. Требование невозможности подмены сообщения заведомо выполняется, так как преобразование Е взаимно однозначно.
Для защиты от создания противником подписанного сообщения можно применить некоторое взаимно-однозначное отображение R: М → M’, вносящее избыточность в представление исходного сообщения, например, путем увеличения его длины, а затем уже вычислять подпись S = D(M’). В этом случае противник, подбирая S и вычисляя значения M’ = Е(S), будет сталкиваться с проблемой отыскания таких значений M’, для которых существует прообраз М. Если отображение R выбрано таким, что число возможных образов M’ значительно меньше числа всех возможных последовательностей той же длины, то задача создания подписанного сообщения будет сложной.
Другой подход к построению схем цифровых подписей на основе систем шифрования с открытым ключом состоит в использовании бесключевых хэш-функций. Для заданного сообщения М сначала вычисляется значение ХФ h(М), а затем уже значение подписи S = D(h(М)). Ясно, что в таком случае по значению подписи уже нельзя восстановить сообщение. Поэтому подписи необходимо передавать вместе с сообщениями. Такие подписи получили название цифровых подписей с дополнением. Заметим, что системы подписи, построенные с использованием бесключевых хэш-функций, заведомо удовлетворяют всем требованиям, предъявляемым к цифровым подписям. Например, невозможно создание сообщения с известным значением подписи, поскольку бесключевая хэш-функция должна быть однонаправленной.
В качестве системы шифрования с открытыми ключами можно использовать, например, систему RSA.
Одноразовые цифровые подписи
Рассмотренные системы цифровой подписи, основанные на сложности задач разложения целых чисел на множители, вычисления
95
квадратного корня или логарифмирования в конечных полях, имеют один потенциальный недостаток. Он состоит в возможности построения новых эффективных алгоритмов для решения этих математических задач. Поэтому в реальных схемах длину ключа выбирают с определенным превышением необходимой величины для обеспечения достаточного запаса стойкости. Это, в свою очередь, значительно усложняет алгоритмы вычисления и проверки подписи. Поэтому представляется весьма привлекательной задача построения схем цифровой подписи на основе симметричных систем шифрования, свободных от подобных недостатков.
Вместе с тем, подобные модификации не устраняют главного недостатка рассматриваемых подписей, состоящего в том, что после проверки подписи либо весь секретный ключ, либо его часть становятся известными проверяющему. Поэтому рассмотренная схема цифровой подписи является по существу одноразовой.
Отечественный стандарт цифровой подписи ГОСТ 3410
Подписи, созданные с использованием стандартов ГОСТ 3410 или DSS, называются рандомизированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будут создаваться разные подписи (r, s), поскольку каждый раз будет использоваться новое значение k. Подписи, созданные с применением алгоритма RSA, называются детерминированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будет создаваться одна и та же подпись.
Контрольные вопросы
1.Что общего между обычной и цифровой подписями? Чем они различаются?
2.Какие задачи позволяет решить цифровая подпись?
3.В чем заключается принципиальная сложность в практическом применении систем цифровой подписи?
4.Почему в криптографических системах, основанных на открытых ключах, нельзя использовать одинаковые ключи для шифрования
ицифровой подписи?