Кpиптогpафия от папиpуса до компьютеpа

       

Цифровая подпись


Действующие в России системы передачи данных в большинстве своем имеют недостаток, который заключается в том, что они не дают возможности проверки подлинности и авторства пересылаемых документов. С их помощью в настоящее время невозможно заключение юридически признаваемых сделок и пересылка юридически подтверждаемых документов, вроде платежных поручений. Это часто сводит на нет их преимущества по сравнению с почтовой пересьшкой. Как правило, все полученные через компьютерную связь документы копируются из памяти машины на бумажный носитель, подписываются физическими лицами и удостоверяются печатями юридических лиц. Единственное исключение представляет плата КРИПТОН, так как достоверность платежных документов, зашифрованных с ее помощью, признана арбитражным судом. В ней и ряде других шифросистем цифровая подпись сообщения образуется с помощью секретного ключа. Проще всего зашифровать сообщение этим ключом, но оно ведь может быть очень длинным. Поэтому для экономии шифруется лишь контрольная сумма, сделанная по сообщению, называемая имитоприставкой. Например, в PGP длина ее 128 бит, что обеспечивает качественный "отпечаток пальцев", который подделать практически невозможно, так как вероятность подделки меньше 10**(-38). Вместе с тем, что очень важно, восстановить оригинальное сообщение по цифровой подписи невозможно.

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


Цифровая подпись не имеет ничего общего с последовательностью символов, соответствующих изображениям печати или подписи, приписанной к документу. Если бы это было так, то, перехватив один раз эту последовательность, злоумышленник мог бы впредь приписывать ее к произвольному документу от чужого имени. При построении цифровой подписи вместо обычной связи между печатью или рукописной подписью и листом бумаги выступает сложная математическая зависимость между документом, секретным и общедоступным ключами, а также цифровой подписью. Невозможность подделки электронной подписи опирается не на отсутствие специалиста, который может повторить рукописную подпись и обычную печать, а на большой объем необходимых математических вычислений. В современной криптографии есть примеры описанных выше функций, для которых сложность подделки цифровой подписи при отсутствии секретной информации заверяющего такова, что самая мощная из существующих сверхбыстродействующих ЭВМ не сможет осуществить необходимые вычисления и за десятки лет.

Другое приложение цифровая подпись находит при снабжении абонентов криптографической информационной сети ключами. Простейший способ выделить группу пользователей сети - снабдить их общим секретным ключом. Недостатком такого подхода является то, что компрометация пароля у одного из членов группы ведет к краху всей системы подтверждения подлинности. Простейший вариант усиления системы - снабжение пользователей индивидуальными секретными паролями. Однако при таком варианте возникает проблема надежного хранения большого количества секретных паролей, а это приемлемо лишь для крупных абонентских пунктов. К тому же пользователи не могут непосредственно представляться друг другу, минуя центр. Чтобы обеспечить возможность непосредственного представления пользователей друг другу, процедура проверки пароля должна быть общедоступной. В то же время алгоритм должен быть устроен так, чтобы подделать пароль на основании известной процедуры проверки было невозможно. Для использования цифровых подписей при обмене ключами требуется общедоступный каталог секретной сети, где хранятся процедуры проверки подписи всех абонентов. Для системы RSA этот каталог содержит имена-идентификаторы абонентов ID с парой чисел (N, D). Для системы ЭльГамаля в каталоге против каждого имени ID записываются простое число Р и целые числа N и Y. Подлинность каталога с подписями может быть обеспечена путем подписывания каждой записи в каталоге или всего каталога сразу центром и выдачей в таком виде их абоненту. При установлении связи абоненты обмениваются этими подписанными сообщениями и на этом основании проверяют пол- номочия друг друга: просят партнера подписать случайное сообщение. Для системы ЭльГамаля общий объем ключевой информации в сети может быть сокращен за счет использования всеми одних и тех же чисел Р и N. Для системы RSA общим можно сделать только число N, а числа D должны бытЬ у всех различными.
     Из-за перестановочности операции умножения в алгоритме RSA не имеет значения, будет ли опубликовано D или Е, для него функции шифрования и расшифровывания одинаковы. Это позволяет реализовать процедуру получения цифровой подписи сменой Е и D. Если отправитель хочет, чтобы получатели его сообщений могли удостовериться, что эти сообщения действительно исходят от него, то он посылает шифровку S' вместе с подписью R, вычисленной как:
          S = R**E MOD N      Для разрешения споров между отправителем и получателем информации, связанных с возможностью искажения ключа проверки подписи [S', R], достоверная копия этого ключа выдается третьей стороне арбитру и применяется им при возникновении конфликта. Каждый может расшифровать сообщение S', но так как ключ Е известен только отправителю, то никто другой кроме него не мог бы послать шифрованное сообщение или подтвердить подпись как:
          S = R**D MOD N
     Для того, чтобы обеспечить подобную процедуру подтверждения подлинности отправителя сообщения, ЭльГамаль предложил следующий простой протокол:

     1. Отправитель А и получатель В знают Р и случайное число N из интервала (1, Р). А генерирует случайные числа Х и Y из того же интервала. Х нужно хранить в секрете, а Y должно быть взаимно простым с Р-1.
     2. Далее А вычисляет Q=N**X MOD Р и R=N**Y MOD Р, решает относительно S уравнение T=X*R+Y*S MOD (Р-1) и передает В документ с подписью
     [Q, R, S, Т].
     3. Получатель проверяет подпись, контролируя тождество
     А**S =(В**R)*R**T MOD Р.



В этой системе секретным ключом для подписывания сообщений является число X, а открытым ключом для проверки достоверности подписи число Q.
     Особенностью этих протоколов, как нетрудно видеть, является наличие у абонента секретного ключа, служащего цифровой подписью идентификатора, который не позволяет абоненту самому сменить свой идентификатор или выработать подпись для другого идентификатора, а также то, что он предъявляет контролеру не сам секретный элемент, а некоторое значение функции, вычисляемое с помощью секретного ключа из случайного запроса, тем самым доказывая, что обладает секретом, путем его косвенной демонстрации при вычислениях. Именно отсюда происходит рассматриваемое ниже название "доказательство при нулевом знании", то есть абонент доказывает, что обладает секретом, на раскрывая самого секрета. Как вырожденный случай алгоритма цифровой подписи можно рассматривать шифрование и расшифровывай ие передаваемой информации на общем секретном ключе абонентов, изготовленном и распространенном заранее, как это применяется в классических криптографических системах.
     Теперь вернемся к длинным числам, которые были приведены выше в описании метода RSA. Авторы этого метода в своей публикации привели и цифровую подпись, которая предлагала $100 первому, взломавшему их шифр. Пока еще не было сообщений о его вскрытии и, может, ктонибудь из читателей захочет попробовать и свои силы в расшифровке?


Содержание раздела