Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жельников Владимиp Кpиптогpафия от папиpуса до компьютеpа .doc
Скачиваний:
77
Добавлен:
20.05.2014
Размер:
1.53 Mб
Скачать

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 первому,

взломавшему их шифр. Пока еще не было сообщений о его вскрытии и,

может, ктонибудь из читателей захочет попробовать и свои силы в

расшифровке?

Доказательство при нулевом знании

На основании описанных алгоритмов шифрования, распределения

ключей и электронной подписи можно организовывать более сложные

протоколы взаимодействия пользователей криптографической сети,

реализующие подтверждение подлинности и доказательство при

нулевом знании. Так называемые системы "доказательства при

нулевом знании" не являются собственно криптографическими

системами. Они служат для передачи сообщений типа "Я знаю эту

информацию" без раскрытия самого сообщения.

Общая идея этих протоколов заключается в том, что обладатель

секретного ключа доказывает, что он может вычислять некоторую

функцию, зависящую как от секретного ключа, так и аргументов,

задаваемых проверяющим. Проверяющий, даже зная эти аргументы, не

может по данному ему значению функции восстановить секретный

ключ. При этом функция должна быть такой, чтобы проверяющий мог

удостовериться в правильности ее вычисления, например,

представляла цифровую подпись выбранных им аргументов. Действие

такой системы рассмотрим на приведенном ниже алгоритме, где

подтверждение подлинности при использовании алгоритма RSA

организовано следующим образом:

1. Доказывающий А и контролер В оба знают

идентификатор I и открытый ключ (N, Е), но А

кроме того знает еще, секретное число S=I**D

MOD N, сформированное по секретному ключу

D. Сначала А генерирует случайное число Х и

вычисляет Y=X**E MOD N. Затем он отсылает [I, Y]

к В.

2. После этого В генерирует и передает А случай-

ное число V.

3. Затем А вычисляет и передает В число

W=X*(Y**V) MOD N.

4. Контролер В проверяет принадлежность иден-

тификатора I к А, контролируя тождество

W**E=Y*(I**V) MOD P.

Случайный запрос обычно представлен вектором, координаты

которого принимают значения 0 или 1, но он может быть любым

вектором, координаты которого вычисляются по модулю числа Е.

На этом можно подвести итоги краткого рассмотрения

криптографических систем с открытым ключом. Их изобретение,

похоже, лишь добавило головную боль криптографам по следующим

веским причинам:

1. Вместо одного ключа стало два и то обстоя-

тельство, что только один из них секретен,

лишь усугубляет проблему. А ну как по ошибке

в открытый каталог будет помещен не обще-

доступный, а секретный ключ? Чтобы исклю-

чить такого рода казусы нужна полностью ав-

томатизированная система, плохо контроли-

руемая в своих действиях человеком-наблю-

дателем.

2. Как неоднократно упоминалось выше, и сек-

ретные ключи, и их рассылку по закрытому ка-

налу (топ-топ-топ курьеры!) отменить нельзя.

Свойство же обладания одним секретным клю-

чом для всех абонентов тоже сомнительно - в

принципе нет большой разницы между пере-

правкой единственного ключа или тысячи, ес-

ли только они представлены информационно, а

не физически.

3. Наконец, принципиальная возможность крип-

тоаналитической атаки на шифровку несим-

метричных систем, содержащую несмысловую

информацию в виде ключа, указывает слабое

место гибридных систем. Итак, приобретя но-

вые возможности, криптографы получили еще и

несколько новых источников угроз.

4. Системы шифрования с открытым ключом не

решают всех проблем, которые стоят перед кри-

тографами. Например, нечестному пользователю

ничего не стоит под своей настоящей подпи-

сью поставить фальшивую дату. Для финансо-

вых документов это может быть катастрофой.

Поэтому цифровая подпись с датой обязатель-

но должна заверяться третьим лицом, как но-

тариусом. Без его участия цифровая подпись

недействительна.

Классификация криптографических систем

Предыдущее рассмотрение шифров разных типов позволяет сделать

несколько выводов. Крайне желательно, чтобы как можно меньший

объем информации шел по закрытому каналу, требующему больших

затрат на поддержание и являющемуся наименее надежным участком.

Однако совсем обойтись без него нельзя. Количество переданной по

нему информации связано со сложностью вскрытия шифровок следующим

образом. Предполагается, что злоумышленникам и любопытным

досконально известны используемые процедуры шифрования и

расшифровывания, а также статистические свойства сообщения.

Обычно считают, что это им известно даже лучше, чем отправителю с

получателем, но неизвестен секретный ключ. Его будем

рассматривать как число, например, набор нулей и единиц, которые

означают определенные действия над сообщением. Сложность подбора

ключа зависит лишь от объема информации, которую он занимает.

Одним битом можно передать лишь два ключа, двумя - четыре, тремя

- восемь и так далее. Специально отметим, что речь здесь идет об

информации, а не физической длине ключа, которая может быть

довольно большой. Следовательно, чем больше информации в ключе,

тем сложнее его подобрать.

Нет невзламываемых шифров. Все системы шифрования просто

делают взламывание шифровок или заведомо дороже содержащейся в

сообщении информации, или затягивают расшифровывание на

неприемлемо большой срок по времени. При разработке шифра

устанавливают приемлемые цену или время взламывания и дальше уже

не обращают внимания на очень богатых или терпеливых взломщиков.

Необходимую сложность ключа в классических криптографических

системах вычислить нетрудно, если знать технические возможности

источника угрозы и плату за ошибку в оценке надежности шифра.

Например, любопытствующий не переберет вручную и сотни ключей -

устанет, а больших неприятностей от него ждать не приходится.

Поэтому тысяча вариантов ключей достаточна, что эквивалентно

информационной длине ключа 10 бит или ключевому слову из 3-5

букв. Если же информация представляется стратегической и устареет

не быстрее чем за 5 лет, а источник угрозы - крупная фирма,

которая может нанять криптоаналитиков и получить доступ к

сверхбыстродействующей ЭВМ, то и ключ нужен посложнее. Можно

допустить, что они обеспечат проверку миллиона ключей в секунду.

Тогда, если оставить противнику один шанс из миллиона, то число

ключей должно быть записано с 22 десятичными разрядами, что

примерно соответствует 70 битам или ключевому слову из 30-35

букв. Таким образом, число необходимых ключей можно записать в

виде формулы:

N=[время жизни шифра]/[скорость подбора ключей]/[шанс взлома]

Время жизни шифра вряд ли целесообразно задавать больше 25

лет. В Британии секретнейшие правительственные решения по

истечении этого срока публикуют для историков. А вот скорость

подбора ключей всегда вызывает споры. Например, публикация

американского стандарта шифрования DES вызвала у ряда

криптографов призывы его бойкотировать, так как они утверждали,

что за 20 миллионов долларов можно создать ЭВМ, перебирающую

миллион ключей в секунду и раскалывающую шифр скорее чем за

сутки. Правда, представители национального бюро стандартов

возражали, что на создание такой сверхбыстродействующей ЭВМ уйдет