Кроме того, упомянутые выше Ленстра и Манасси не
только поколебали стойкость RSA, разложив девятое число Ферма на простые
множители за неприлично короткое время, но и, как было замечено некоторыми
экспертами, указали "брешь" в способе ЭльГамаля. Дело в том, что
подход, применявшийся при разложении на множители девятого числа Ферма,
позволяет существенно усовершенствовать методы дискретного логарифмирования для
отдельных специальных простых чисел. То есть тот, кто предлагает простое Р для
алгоритма ЭльГамаля, имеет возможность выбрать специальное простое, для
которого задача дискретного логарифмирования будет вполне по силам обычным ЭВМ.
Следует заметить, что этот недостаток алгоритма ЭльГамаля не фатален.
Достаточно предусмотреть процедуру, гарантирующую случайность выбора простого Р
в этой системе, и тогда только что высказанное возражение теряет силу. Стоит
отметить, что чисел специального вида, ослабляющих метод ЭльГамаля, очень мало
и случайным их выбором можно пренебречь.
.2 Открытое распределение ключей
Пока преимущества методов шифрования с открытым ключом не были очевидны. Однако на их основе легко решать задачу выработки общего секретного ключа для сеанса связи любой пары пользователей информационной системы. Еще в 1976 году Диффи и Хеллман предложили для этого протокол открытого распределения ключей. Он подразумевает независимое генерирование каждым из пары связывающихся пользователей своего случайного числа, преобразование его посредством некоторой процедуры, обмен преобразованными числами по открытому каналу связи и вычисление общего секретного ключа на основе информации, полученной в процессе связи от партнера. Каждый такой ключ существует только в течение одного сеанса связи или даже части его. Таким образом, открытое распределение ключей позволяет каждой паре пользователей системы самим выработать свой общий секретный ключ, упрощая тем процедуру распределения секретных ключей. Хотя все не так просто - отсутствие у абонентов перед сеансом связи заблаговременно распределенного общего секретного ключа в принципе не дает им возможности удостовериться в подлинности друг друга при помощи обмена сообщениями по открытому каналу. Например, пересылать ключи можно и по описанному выше алгоритму ЭльГамаля в модификации Шамира, но как убедиться в том, что имеешь дело с партнером, а не перехватчиком? Для подтверждения подлинности каждый из участников секретной сети все же должен иметь собственный секретный ключ, известный только ему и отличающий его от всех других абонентов. В этом случае алгоритмом Диффи-Хеллмана будет обеспечена такая процедура предъявления пароля, что его многократное использование не снижало надежности доказательства подлинности владельца. В результате две функции общего секретного ключа, обычно доставляемого по секретному каналу, как защита информации в канале связи от третьей стороны и подтверждение подлинности каждого из абонентов партнеру, разделяются.
Алгоритм открытого распределения ключей Диффи-Хеллмана выглядит так:
. Пусть имеются два абонента открытой сети А и В, знающие пару открытых ключей Р и D. Кроме того, у А есть секретный ключ X из интервала (1, N), а у В есть секретный ключ Y из того же интервала.
. Абонент А посылает В шифровку своего ключа Z'=DX MOD Р, а абонент В посылает А шифровку своего ключа Z"=DY MOD P.
. После этого общий ключ Z они вычисляют как Z=Z'Y =Z"X.
При помощи специальных приемов время формирования общего ключа в системе Диффи-Хеллмана может быть сокращено в 5 раз по сравнению с системой ЭльГамаля в модификации Шамира, и в 30 раз по сравнению с RSA при том же уровне стойкости. Это, с точки зрения большинства практических приложений, оказывается заметным преимуществом, так как шифрование и расшифровывание по алгоритму RSA примерно в, тысячу раз медленнее классических алгоритмов типа DES. Отметим, что для многих применений криптографических систем с открытым ключом время вычислений при криптографических преобразованиях не имеет большого значения. Например, при идентификации пользователей по кредитным карточкам не будет разницы потребует ли она одну микросекунду или одну секунду. То же относится и к выбору общего ключа шифрования для другой, более быстродействующей, но не обладающей способностью обмена ключами криптографической системы.
Необходимость в системах открытого распределения
ключей иметь заранее распространенные из центра индивидуальные секретные пароли
для подтверждения подлинности пользователей не выглядит столь уж обременительной
задачей, как изготовление и распределение из центра пар секретных ключей для
связи абонентов меж собой. Срок действия такого пароля может быть существенно
больше, чем срок действия ключа для связи, скажем год, а их общее число в сети
связи равно числу абонентов. Кроме того, при некоторых видах связи,
подтверждение подлинности партнера может достигаться за счет узнавания его по
физическим признакам. Например, по голосу при телефонной связи или по внешнему
виду и голосу при связи по телевизионным каналам. Следует отметить, что
распределение ключей с помощью криптографических систем с открытым ключом имеет
единственное достоинство необходимость на каждом узле секретной связи иметь
лишь по одному ключу. Для классических же симметричных криптографических систем
ключей должно быть столько, сколько у узла абонентов. Вместе с тем, системы с
открытым ключом имеют слабые места. Так, если взлом шифровки, содержащей ключ,
в классической системе принципиально невозможен, так как открытый текст не
смысловой и не содержит избыточной информации, то в системах с открытым ключом
у криптоаналитика всегда есть надежда на успех. Далее, если число D общее для
всех участников сети, то его компрометация, в виде обнаружения специальных
свойств, облегчающих логарифмирование, приведет к компрометации всей сети. Если
же D индивидуально для каждой пары абонентов, то, во-первых, из-за обилия
ключей проще найти среди них слабый, и, во-вторых, хотя рассылка и хранение
несекретных ключей несравнимо легче, чем секретных, но тоже доставляет массу
хлопот. Поэтому если у криптографа есть возможность воспользоваться услугами
секретного канала, то он всегда предпочтет его открытому распределению ключей.
.3 Цифровая подпись
Решение проблемы авторства документа может быть достигнуто лишь с использованием электронной цифровой подписи - средства, позволяющего на основе криптографических методов надежно установить авторство и подлинность документа. Это средство позволяет заменить при безбумажном документообороте традиционные печать и подпись. Электронная цифровая подпись зависит от текста документа, требующего заверения, секретного ключа, доступного только заверяющему, и несекретного общедоступного ключа. Преобразование, используемое для выработки цифровой подписи, является криптографической функцией от указанных величин. Оно выбирается таким образом, чтобы при отсутствии у злоумышленника секретного ключа сделать невозможным подделку цифровой подписи, незаметное изменение документа, а также дать возможность любому лицу при наличии у него общедоступного ключа, документа и цифровой подписи удостовериться в подлинности документа и соответствующей цифровой подписи. Только секретный ключ гарантирует невозможность подделки злоумышленником документа и цифровой подписи от имени заверяющего. Каждый пользователь системы цифровой подписи должен обеспечивать сохранение в тайне своей секретный ключ. Общедоступный несекретный ключ используется для проверки подлинности документа и цифровой подписи, а также предупреждении мошенничества со стороны заверяющего в виде отказа его от подписи документа.
Цифровая подпись не имеет ничего общего с последовательностью символов, соответствующих изображениям печати или подписи, приписанной к документу. Если бы это было так, то, перехватив один раз эту последовательность, злоумышленник мог бы впредь приписывать ее к произвольному документу от чужого имени. При построении цифровой подписи вместо обычной связи между печатью или рукописной подписью и листом бумаги выступает сложная математическая зависимость между документом, секретным и общедоступным ключами, а также цифровой подписью. Невозможность подделки электронной подписи опирается не на отсутствие специалиста, который может повторить рукописную подпись и обычную печать, а на большой объем необходимых математических вычислений.
Другое приложение цифровая подпись находит при снабжении абонентов криптографической информационной сети ключами. Простейший способ выделить группу пользователей сети - снабдить их общим секретным ключом. Недостатком такого подхода является то, что компрометация пароля у одного из членов группы ведет к краху всей системы подтверждения подлинности. Простейший вариант усиления системы - снабжение пользователей индивидуальными секретными паролями. Однако при таком варианте возникает проблема надежного хранения большого количества секретных паролей, а это приемлемо лишь для крупных абонентских пунктов. К тому же пользователи не могут непосредственно представляться друг другу, минуя центр. Чтобы обеспечить возможность непосредственного представления пользователей друг другу, процедура проверки пароля должна быть общедоступной. В то же время алгоритм должен быть устроен так, чтобы подделать пароль на основании известной процедуры проверки было невозможно. Для использования цифровых подписей при обмене ключами требуется общедоступный каталог секретной сети, где хранятся процедуры проверки подписи всех абонентов. Для системы RSA этот каталог содержит имена-идентификаторы абонентов ID с парой чисел (N, D). Для системы ЭльГамаля в каталоге против каждого имени ID записываются простое число Р и целые числа N и Y. Подлинность каталога с подписями может быть обеспечена путем подписывания каждой записи в каталоге или всего каталога сразу центром и выдачей в таком виде их абоненту. При установлении связи абоненты обмениваются этими подписанными сообщениями и на этом основании проверяют полномочия друг друга: просят партнера подписать случайное сообщение. Для системы ЭльГамаля общий объем ключевой информации в сети может быть сокращен за счет использования всеми одних и тех же чисел Р и N. Для системы RSA общим можно сделать только число N, а числа D должны быть у всех различными. Из-за перестановочности операции умножения в алгоритме RSA не имеет значения, будет ли опубликовано D или Е, для него функции шифрования и расшифровывания одинаковы. Это позволяет реализовать процедуру получения цифровой подписи сменой Е и D. Если отправитель хочет, чтобы получатели его сообщений могли удостовериться, что эти сообщения действительно исходят от него, то он посылает шифровку S' вместе с подписью R, вычисленной как:
= RE MOD N
Для разрешения споров между отправителем и получателем информации, связанных с возможностью искажения ключа проверки подписи [S1, R], достоверная копия этого ключа выдается третьей стороне арбитру и применяется им при возникновении конфликта. Каждый может расшифровать сообщение S', но так как ключ Е известен только отправителю, то никто другой кроме него не мог бы послать шифрованное сообщение или подтвердить подпись как:
= RD MOD N
Для того чтобы обеспечить подобную процедуру подтверждения подлинности отправителя сообщения, ЭльГамаль предложил следующий простой протокол:
. Отправитель А и получатель В знают Р и случайное число N из интервала (1,Р). А генерирует случайные числа- X и Y из того же интервала. X нужно хранить в секрете, a Y должно быть взаимно простым с Р-1.
. Далее А вычисляет Q=NX MOD Р и R=NY MOD P, решает относительно S уравнение
=X-R+Y-S MOD (P-1)
и передает В документ с подписью [Q, R, S, Т].
. Получатель проверяет подпись, контролируя тождество As =B -RT MOD P.
В этой системе секретным ключом для подписывания
сообщений является число X, а открытым ключом для проверки достоверности
подписи число Q.Особенностью этих протоколов, как нетрудно видеть, является
наличие у абонента секретного ключа, служащего цифровой подписью
идентификатора, который не позволяет абоненту самому сменить свой идентификатор
или выработать подпись для другого идентификатора, а также то, что он
предъявляет контролеру не сам секретный элемент, а некоторое значение функции,
вычисляемое с помощью декретного ключа из случайного запроса, тем самым
доказывая, что обладает секретом, путем его косвенной демонстрации при
вычислениях. Именно отсюда происходит рассматриваемое ниже название
"доказательство при нулевом знании", то есть абонент доказывает, что
обладает секретом, на раскрывая самого секрета.
.4 Доказательство при нулевом знании
На основании описанных алгоритмов шифрования, распределения ключей и электронной подписи можно организовывать более сложные протоколы взаимодействия пользователей криптографической сети, реализующие подтверждение подлинности и доказательство при нулевом знании. Так называемые системы "доказательства при нулевом знании" не являются собственно криптографическими системами. Они служат для передачи сообщений типа "Я знаю эту информацию" без раскрытия самого сообщения. Общая идея этих протоколов заключается в том, что обладатель секретного ключа доказывает, что он может вычислять некоторую функцию, зависящую как от секретного ключа, так и аргументов, задаваемых проверяющим. Проверяющий, даже зная эти аргументы, не может по данному ему значению функции восстановить секретный ключ. При этом функция должна быть такой, чтобы проверяющий мог удостовериться в правильности ее вычисления, например, представляла цифровую подпись выбранных им аргументов. Действие такой системы рассмотрим на приведенном ниже алгоритме, где подтверждение подлинности при использовании алгоритма RSA организовано следующим образом:
1. Доказывающий А и контролер В оба знают идентификатор I и открытый ключ (N, Е), но А кроме того знает еще секретное число S=ID MOD N, сформированное по секретному ключуD. Сначала А генерирует случайное число X и вычисляет
=XE MOD N.
Затем он отсылает [I, Y] к В.
. После этого В генерирует и передает А случайное число V.
. Затем А вычисляет и передает В число
=X-YV MOD N.
. Контролер В проверяет принадлежность идентификатора
I к А, контролируя тождество
WE =Y·IV MOD P.
Случайный запрос обычно представлен вектором, координаты которого
принимают значения О или 1, но он может быть любым вектором, координаты
которого вычисляются по модулю числа Е.
Литература
1. Мельников В.П.: Информационная безопасность и защита информации. - М.: Академия, 2011 под ред. проф. В.В. Трофимова: Информационные технологии в экономике и управлении. - М.: Юрайт, 2011
. Мельников В.П.: Информационная безопасность и защита информации. - М.: Академия, 2011 под ред. С.Я. Казанцева; рец.: Р.З. Матиев, Г.Е. Корчагин: Информационные технологии в юриспруденции. - М.: Академия, 2011
. Ю.А. Белевская и др.; рец.: В.И. Шаров, А.С. Овчинский; под общ. ред. А.П. Фисуна и др.; М-во образования и науки РФ, Гос. ун-т учебно-научно-производственный комплекс, Орловский гос. ун-т: Правовые основы информационной безопасности. - Орел: ГУ-УНПК: ОГУ, 2011
. Ю.А. Белевская и др.; рец.: В.И. Шаров, А.С. Овчинский ; под общ. ред. А.П. Фисуна и др.; М-во образования и науки РФ, Гос. ун-т учебно-научно-производственный комплекс, Орловский гос. ун-т: Правовые основы информационной безопасности. - Орел: ГУ-УНПК: ОГУ, 2011
. Акперов И.Г.: Казначейская система исполнения бюджета в Российской Федерации. - М.: КНОРУС, 2010
. Б.В. Соболь и др.; рец.: Каф. "Информационные системы в строительстве" РГСУ, А.В. Аграновский: Информатика. - Ростов н/Д: Феникс, 2010
. Бардаев Э.А.: Документоведение. - М.: Академия, 2010
. Гашков С.Б.: Криптографические методы защиты информации. - М.: Академия, 2010
. Корнеев И.К.: Защита информации в офисе. - М.: Проспект, 2010
. Л.К. Бабенко и др.: Защита данных геоинформационных систем. - М.: Гелиос АРВ, 2010
. Степанова Е.Е.: Информационное обеспечение управленческой деятельности. - М.: ФОРУМ, 2010
. Фуфаев Д.Э.: Разработка и эксплуатация автоматизированных информационных систем. - М.: Академия, 2010
. Владимиров С.Н.: Нелинейно-динамическая криптология; Радиофизические и оптические системы. - М.: ФИЗМАТЛИТ, 2009
. Грушо А.А.: Теоретические основы компьютерной безопасности. - М.: Академия, 2009
. Иванов М.А. и др.; Под ред. И.Ю. Жукова: Стохастические методы и средства защиты информации в компьютерных системах и сетях. - М.: КУДИЦ-ПРЕСС, 2009
. Саак А.Э.: Информационные технологии управления. - СПб.: Питер, 2009
. Алешин Л.И.: Информационные технологии. - М.: Литера, 2008
. Бабенко Л.К.: Алгоритмы "распределенных согласований" для оценки вычислительной стойкости криптоалгоритмов. - М.: ЛКИ, 2008
. Балашов А.И.: Правоведение. - СПб.: Питер, 2008
. Городов О.А.: Информационное право. - М.: Проспект, 2008