Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии

.pdf
Скачиваний:
3580
Добавлен:
28.03.2016
Размер:
7.75 Mб
Скачать

I 1ротоколы распреОеления ключей

Тогда пользователи А и В могут реализовать следующий трехшаговый протокол для передачи секретного ключа кот А

к В:

(1)А - + В :Е кл (к),

(2)В -> А: Екв (Екл (к)),

(3)А ^ В : О кА(Екв(ЕкА(/с))).

Заметим, что в этом протоколе можно использовать не каждое коммутирующее преобразование Е. Например, легко

заметить, что для преобразования

( к ) = к 0 Г протокол

оказывается заведомо нестойким. Поэтому в протоколе Шамира рекомендуется использовать преобразование вида

Е ^ а ( к ) = к а т о й р , в котором константа а определяется

ключом кА.

Трехсторонние протоколы

Рассмотрим протоколы распределения ключей между па­ рами участников с использованием третьей стороны Г, назы­ ваемой центром. В этом качестве обычно выступает некото­ рый выделенный узел сети, или сервер, которому доверяют все участники. Центр Т хранит ключи всех абонентов сети. Поэтому схема ключевых взаимоотношений графически представляет собой звезду.

Один из первых протоколов такого типа был предложен в работе [Нее78]. Он заключается в выполнении следующих шагов:

(1)Л —>Т: А,В,гл,

(2)Т —>А: Ек^ (гл,В,к,Екв1 ( к , А)) ,

381

/ лава 1Ь

(3) А - > В : Е кй/(к,Л) ,

(4)В - у А: Ек(гв) ,

(5)А ^ В : Е к(гв - 1) .

Врезультате выполнения трех первых шагов протокола пользователи А и В получают сгенерированный центром Т общий ключ к для организации взаимодействия. Четвертый и пятый шаги предназначены для аутентификации пользователя

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

Слабость этого протокола заключается в возможности повторной передачи абоненту В сообщения, переданного на шаге (3). При этом абонент В не имеет возможности устано­ вить, что полученный ключ к уже был использован. Поэтому в случае компрометации этого ключа злоумышленник может аутентифицироваться и передавать сообщения от имени А .

Недостаток этого протокола устранен в протоколе КегЪегоз. Рассмотрим сначала базовый протокол, применяе­ мый в протоколе аутентификации и распределения ключей КегЪегоз. Он состоит из следующих шагов:

(1)А ^ Т : А,В,гЛ,

(2)Г —» А: Ек т(к,гЛ, Ь , В ) , билет,

(3)А —у В: билет, аутентификатор,

(4)В->А: Ек(/,к,).

Здесь “билетом” названа величина ЕквТ(к,А,1), ^ау­ тентификатором" — величина Ек(А ,(,к1) , I — метка вре­

мени; Ь — период времени действия билета, гА— случайное число, сгенерированное абонентом А и вставленное в переда­ ваемое сообщение для взаимной аутентификации, а кА » кц — случайные числа, сгенерированные абонентами А и В соот­

382

/ /ротоколы распределения ключей

ветственно, и используемые либо в качестве ключа шифрова­ ния информации другой стороне, либо для выработки общего ключа кАВ = / ( к п кв) с помощью некоторой функции/

В полном протоколе КегЬегох описанный выше базовый протокол используется два раза. Дело в том что в нем преду­ смотрено два сервера (см. рис. 51). Первый — “сервер аутен­ тификации”, обозначаемый А8, выдает так называемые “биле­ ты для получения билетов” (<§/)> содержащие ключи, предна­ значенные для длительного использования. Второй сервер, Т08, — “сервер выдачи билетов”, выдает обычные билеты для доступа к сетевым ресурсам и обращения к другим поль­ зователям.

Рис. 51

Сообщения, передаваемые согласно этому протоколу, вы глядят следующим образом:

(1)А-+А8: А,ТС8,гА,

(2)А8-*А: ЕкАА8(кАТ08,гА,Ц,ТС8),1%1,

(3)А —> Т08: Щ1, аутентификаторь В,ГА,

(4)Т08-+А: Е Ка т08 (к,гА',Ь 2,В ), билет,

(5)А —>В: билет, аутентификатор2,

383

I лава 1Ь

(6) В ^ А : Ек ((2,кв ),

где

 

= ЕкА8,ТС8 (кАЮ5 >Л, I , ),

 

аутентификатору = Екл

) ,

билет = Екв:гС8 (К >А,Ь2),

 

аутентификатор2 - Е^ ( А ,^2 >

) •

Благодаря введению второго сервера нагрузка на первый сервер уменьшается во много раз. Первый сервер должен быть наиболее защищенным, поскольку он хранит главные ключи всех пользователей. Серверов второго типа может быть несколько, и они могут соответствовать определенной подсети или определенному типу ресурса.

Приведем еще один протокол распределения ключей с использованием сервера (см. [01лу87]), предпочтительный для случая, когда сервер находится в более удобном расположе­ нии для второго абонента. Протокол состоит в выполнении следующих действий:

(1) А ^ В : г,А ,В ,Е кАТ(гл ,г,А,В),

(2)В-^Т: г,А ,В ,Е клт( г А,г,А,В),Еквт(гв ,г,А,В),

(3)ЕкАТ(гА, к \ Е квт{гв ,к),

(4)В —*А: Еклт(гА, к ) .

Пользователь А генерирует два случайных числа: первое (гА) используется, как и раньше, для взаимной аутентификации, а второе (г) — для аутентификации сеанса связи (вместо него может быть использована метка времени).

384

11ротоколы распреОеления ключей

Этот протокол можно дополнить еще одним шагом для обеспечения взаимной аутентификации сторон и подтвержде­ ния правильности полученного ключа:

(4') В -*А: Ек^ (гА, к), Ек (г, гв),

(5)А Ек(г ) .

§15.2. Передача ключей с использованием асимметричного шифрования

Рассмотрим варианты использования асимметричного шифрования для передачи секретных ключей симметричных криптосистем.

Протоколы без использования цифровой подписи

Для передачи ключа к можно использовать следующий одношаговый протокол:

А->В: Екв(к9{9А),

где Е — алгоритм шифрования с открытым ключом, / — метка времени, вставляемая для предотвращения возможно­ сти повторного использования ключа.

Для осуществления взаимной аутентификации и под­ тверждения правильности получения ключа можно восполь­ зоваться протоколом из |ТЧее78]:

( 1) А-+В: Е в ( к х, А ) ,

(2) В - * А : Е А (кь к 2),

(3)А —* В: Е в (к2) .

Производя расшифрование полученных сообщений на втором и третьем шагах, стороны убеждаются в том, что они имеют

385

I лава 1Ь

дело именно с нужной стороной и что другая сторона пра­ вильно расшифровала полученное значение ключа.

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

При использовании цифровой подписи аутентифициро­ ванный протокол передачи ключей может содержать только одно сообщение и иметь, например, один из следующих трех видов:

А- * В : Е и(к,1,8Л(В,к,1))

(шифрование подписанного ключа);

А- * В : Е н(к,1,),8А(В,к,1)

(зашифрование и подпись ключа);

А^ В : I, Ен(А, к), 8 А (В, (,ЕИ(А,к))

(подпись зашифрованного ключа).

Сертификаты открытых ключей

Как правило, при использовании открытых ключей хра­ нят не сами ключи, а их сертификаты. Сертификат пред­ ставляет собой набор данных

Сл ={л,кА,и8Кп(А,кА,1)),

состоящий из идентификатора абонента А, его открытого ключа кА и, быть может, еще какой-либо дополнительной информации, например, времени ( выдачи сертификата и сро­ ка его действия, заверенных цифровой подписью доверенного центра ТА или заслуживающего доверия лица. Сертификат

386

/ / ротоколы распределения ключей

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

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

Международный стандарт СС1ТТ Х.509 определяет сле­ дующий протокол аутентификации с одновременным распре­ делением ключей:

(1) А - + В : С А, ИА, ВА{ р А),

(2) В-+А: СВ, Б В, 8 в (Ов ),

(3) А - + В : гв , В , 8 а {гв , В ) ,

где СА и Св — сертификаты сторон, и — цифровые подписи сторон,

ВА = (1л ’гА ’В >^ а1а\ , Е в ( кх)),

яв = Ов ,гв ,А,га , Жг*а2, Е А(к2))

/

— наборы передаваемых и подписываемых данных. В поля с1Ма заносится дополнительная информация для аутентифи­ кации источника. Третий шаг протокола требуется стороне В для подтверждения того, что она действительно взаимодейст­ вует со стороной А.

§ 15.3. Открытое распределение ключей

Открытое распределение ключей позволяет двум абонен­ там выработать общий секретный ключ путем динамического взаимодействия на основе обмена открытыми сообщениями без какой-либо общей секретной информации, распределяе­ мой заранее. Важным преимуществом открытого распределе­ ния является также то, что ни один из абонентов заранее не

387

I лава 75

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

Первый алгоритм открытого распределения ключей был предложен У. Диффи и М.Хеллманом [01^76]. Для его вы­ полнения стороны должны договориться о значениях боль­ шого простого числа р и образующего элемента амультипли-

кативной группы Ъ р - {1,2,..., р 1} .Для выработки об­

щего ключа к они должны сгенерировать случайные числа х, \ < х < р —2 , и у , \ < у < р —2 , соответственно. Затем они должны обменяться сообщениями в соответствии с протоко­ лом:

( 1) А -+ В: а х т о й р ,

(2) В-+А: а у то ё/> .

Искомый общий ключ теперь вычисляется по формуле:

к = ( а у ) х = (р х ) у т о ё р .

Недостатком этого протокола является возможность ата­ ки типа “злоумышленник в середине”, состоящей в следую­ щем. Предположим, что злоумышленник имеет возможность

осуществлять подмену передаваемых

абонентами сообще­

ний. Тогда,

выбрав

числа х* и у*

и подменив сообщения

а х т о ё р и

а у т о ё р

на а х*т о ё р

и

а у*т о ё р соответст­

венно, он может сформировать ключи

 

 

к{ = (ах) у*т о ё р

и

для связи с пользователями А и В соответственно. В резуль­ тате злоумышленник получает возможность полностью кон­

388

/ фотоколы распреоеления ключей

тролировать обмен сообщениями между абонентами А и В. При этом они не смогут обнаружить подмену и будут увере­ ны, что связываются непосредственно друг с другом.

Рассмотрим два протокола, устраняющие этот недоста­ ток. Первый протокол, называемый 8Т8 (81аИоп-1о-81аИоп), предполагает, что пользователи применяют цифровую под­ пись, которой подписываются передаваемые по протоколу Диффи—Хеллмана сообщения:

(1)А —>В\ахтод р,

(2)

В А: а у то(1р, Ек (8в (а у , а х)),

(3)А-+В: Е к(8А(а х, а у ) ) .

Здесь 8 А и 8 в цифровые подписи пользователей А и В соответственно, к — искомый общий ключ. Они позволяют гарантировать достоверность получения сообщения именно от того пользователя, от которого это сообщение получено. Шифрование значений подписей пользователей введено для того, чтобы обеспечить взаимное подтверждение правильно­ сти вычисления значения ключа.

Еще один подход также предполагает наличие у абонен­ тов открытых ключей, но вместо цифровой подписи предла­ гается использовать модифицированную процедуру выработ­ ки общего ключа. Рассмотрим протокол МТ1 (названный так в честь его авторов: Т. Мацумото, И. Такашима и X. Имаи, см. [МаЙб]).

Предположим, что пользователи А и В имеют секретные

ключи а, 1 < а < р -

2 , и Ь, \< Ъ < р ~ 2 , соответственно, и

публикуют

свои

открытые ключи

= а а шос!р и

гв = а ь то&р. Для

выработки общего секретного ключа к

они должны

сгенерировать случайные числа

х, \ <х< р - 2 ,

389

I лава 1Ь

и у, \< у < р - 2 , соответственно, а затем обменяться сле­

дующими сообщениями:

(1)А —>В: а х шоб р,

(2)В ^ А : а у т о й р .

Искомый общий ключ вычисляется по формуле:

к = {а у ) а2 вх = {а х ) ь2уА = а хЬ+уа той р.

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

§15.4. Предварительное распределение ключей

Большинство криптографических систем требуют прове­ дения предварительного распределения секретных ключей. Для предварительного распределения стороны могут обме­ няться ключами при личной встрече, либо поручить доставку ключей специально назначенному доверенному курьеру, либо использовать для передачи некоторый выделенный защищен­ ный канал. В зависимости от назначения криптографической системы иногда оказывается удобным распределять не сами ключи, а некоторые вспомогательные ключевые материалы, на основании которых каждый участник или группа участни­ ков могут самостоятельно вычислить необходимый ключ, ис­ пользуя для этого некоторую установленную заранее проце-

ДУРУ-

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

390