Лекция
Привет, Вы узнаете о том , что такое протоколы распределения ключей, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое протоколы распределения ключей , настоятельно рекомендую прочитать все из категории Шифры в криптографии.
Различают следующие типы протоколов распределения ключей:
— протоколы передачи (уже сгенерированных) ключей;
— протоколы (совместной) выработки общего ключа (открытое распределение ключей);
— схемы предварительного распределения ключей.
Различают также протоколы распределения ключей между отдельными участниками и между группами участников информационного взаимодействия.
Имеются протоколы, в которых стороны осуществляют передачу ключей при непосредственном взаимодействии, то есть двусторонние протоколы или, иначе, протоколы типа "точка-точка", и протоколы с централизованным распределением ключей, в которых предусмотрена третья сторона, играющая роль доверенного центра.
Двусторонние протоколы.
Различают протоколы, в которых стороны заранее располагают какой-либо известной им обоим секретной информацией, и протоколы, не требующие этого условия.
Пусть стороны А и В заранее обладают общей секретной информацией. Допустим, что это — секретный ключ kАВ.
Тогда для передачи ключа k стороны могут использовать одностороннюю передачу:
А→В: EkAB(k,t,B),
где Е — алгоритм шифрования, t — метка времени, В — идентификатор абонента В (для краткости вместо id(B) будем использовать лишь один символ В).
Если не передавать метки времени, то злоумышленник может осуществить повторную передачу того же сообщения. Если же не указывать идентификатора адресата, то злоумышленник может вернуть отправителю перехваченное сообщение, что в некоторых ситуациях может быть опасным, поскольку абонент А не сможет установить, что это сообщение получено не от абонента В.
В приведенном протоколе вместо шифрования можно было использовать ключевую хэш-функцию, зависящую от общего ключа:
А→В: k hkAB(t,B).
Если дополнительно требуется аутентификация сеанса, то можно использовать следующий протокол типа "запрос-ответ":
В→А:rB,
А→В:ЕkАВ(k,rB,В),
где rB — случайное число, сгенерированное абонентом В и переданное абоненту А в начале сеанса. При использовании хэш-функции подобный протокол может выглядеть так:
B→A: rB,
A→B: k hkAB(rB,B).
Если требуется двусторонняя аутентификация, то можно модифицировать последний протокол, предоставив возможность стороне А путем генерации своего случайного числа rА и введения его в сообщение на шаге 2 протокола убедиться в том, что он имеет дело именно с абонентом В.
Исходный протокол можно модифицировать так, чтобы искомый ключ k генерировался не одной стороной, а являлся результатом двустороннего обмена.
Пусть абонентами А и В помимо случайных чисел rА и rB генерируют также случайные числа kA и kB соответственно. Тогда в результате выполнения протокола
В→А:rв,
A→B:EkAB(kA,rA,rB,B),
B→A:EkAB(kB,rB,rA,A),
каждая из сторон может вычислить общий ключ с помощью некоторой функции f по правилу k = f(kA,kB). В этом протоколе ни одна из сторон не может знать заранее значения ключа.
Приведем теперь "бесключевой" протокол А. Шамира, позволяющий передать ключ без использования какой-либо общей секретной информации.
Пусть имеется некоторое коммутирующее шифрующее преобразование Е. Это означает, что при всех сообщениях х и ключах k1 и k2 выполняется равенство
Тогда пользователи А и В могут реализовать следующий трехшаговый протокол для передачи секретного ключа k от А к В:
А→В: ЕkА(k),
В→А: ЕkB(ЕkА(k)),
А→В: DkА(ЕkB(ЕkA(k))).
В этом протоколе можно использовать не каждое коммутирующее преобразование Е. Например, легко заметить, что для преобразования Ек (к) = k Г протокол оказывается заведомо нестойким. Поэтому в протоколе Шамира рекомендуется использовать преобразование вида ЕkA(k) = ka mod p, в котором константа а определяется ключом kа.
Трехсторонние протоколы.
Рассмотрим протоколы распределения ключей между парами участников с использованием третьей стороны Т, называемой центром. В этом качестве обычно выступает некоторый выделенный узел сети, или сервер, которому доверяют все участники. Центр Т хранит ключи всех абонентов сети. Поэтому схема ключевых взаимоотношений графически представляет собой звезду.
Один из первых протоколов такого типа заключается в выполнении следующих шагов:
А→Т: А,В,rA,
T→A: EkAT(rA,B,k,EkBT(k,A)),
A→B: EkBT(k,A),
B→A: Ek(rB),
A→B: Ek(rB - 1).
В результате выполнения трех первых шагов протокола пользователи А и В получают сгенерированный центром Т общий ключ к для организации взаимодействия. Четвертый и пятый шаги предназначены для аутентификации пользователя А и подтверждения правильности получения ключа обеими сторонами.
Слабость этого протокола заключается в возможности повторной передачи абоненту В сообщения, переданного на шаге 3. При этом абонент В не имеет возможности установить, что полученный ключ k уже был использован. Поэтому в случае компрометации этого ключа злоумышленник может аутентифицироваться и передавать сообщения от имени A.
Недостаток этого протокола устранен в протоколе Kerberos. Рассмотрим сначала базовый протокол, применяемый в протоколе аутентификации и распределения ключей Kerberos. Он состоит из следующих шагов:
А→Т: А,В,rА,
Т→А: ЕкBT (k, rA ,L,B), билет,
A→В: билет, аутентификатор,
В→А: Ek(t,kB).
Здесь "билетом" названа величина EkBT(k,A,L), "ayтентификатором" — величина Ek(A,t,kA), t — метка времени; L — период времени действия билета, rА — случайное число, сгенерированное абонентом А и вставленное в передаваемое сообщение для взаимной аутентификации, а kА и kB — случайные числа, сгенерированные абонентами А и В соответственно, и используемые либо в качестве ключа шифрования информации другой стороне, либо для выработки общего ключа kАВ = f(kA,kB) с помощью некоторой функции f.
В полном протоколе Kerberos описанный выше базовый протокол используется два раза. Дело в том, что в нем предусмотрено два сервера. Первый - "сервер аутентификации", обозначаемый AS, выдает так называемые "билеты для получения билетов" (tgt), содержащие ключи, предназначенные для длительного использования. Второй сервер, TGS, — "сервер выдачи билетов", выдает обычные билеты для доступа к сетевым ресурсам и обращения к другим пользователям.
Рис.36. Протокол Kerberos
Сообщения, передаваемые согласно этому протоколу, выглядят следующим образом:
A→AS: A,TGS,rA, ,
AS→A: EkA,AS(kA,TGS,rA,L1,TGS), tgt,
A→TGS: tgt, аутентификатор1, B, rA’,
TGS→ A: EkA,TGS(k,rA’,L2,B), билет,
A→В: билет, аутентификатор2,
B→A: Ek(t2,kB),
где
tgt = ЕkАS,TGS(kА,TGS, А, L1),
аутентификатор1 = EkA,TGS(A,t1),
билет = ЕkB,TGS(К, A,L2),
аутентификатор2 = Ek (A, t2, kA ) .
Благодаря введению второго сервера нагрузка на первый сервер уменьшается во много раз. Первый сервер должен быть наиболее защищенным, поскольку он хранит главные ключи всех пользователей. Серверов второго типа может быть несколько, и они могут соответствовать определенной подсети или определенному типу ресурса.
Приведем еще один протокол распределения ключей с использованием сервера, предпочтительный для случая, когда сервер находится в более удобном расположении для второго абонента. Протокол состоит в выполнении следующих действий:
A→B: r,A,B,EkAT(rA,r,A,B),
В →Т: r, А,В,EkAT (rA,r, А,В),ЕkBT(rB,r, А,В),
T→B: EkAT(rA,k),EkBT(rB,k),
В→А: ЕкАТ(rА,к).
Пользователь А генерирует два случайных числа: первое (rА) используется, как и раньше, для взаимной аутентификации, а второе (r) — для аутентификации сеанса связи (вместо него может быть использована метка времени).
Этот протокол можно дополнить еще одним шагом для обеспечения взаимной аутентификации сторон и подтверждения правильности полученного ключа:
4’. Об этом говорит сайт https://intellect.icu . B→A: ЕkAT (rА,k),Еk(r,rв),
5. А→В: Еk(r).
Рассмотрим варианты использования асимметричного шифрования для передачи секретных ключей симметричных криптосистем.
Протоколы без использования цифровой подписи.
Для передачи ключа k можно использовать следующий одношаговый протокол:
А→В: ЕkB(k,t,А),
где Е — алгоритм шифрования с открытым ключом, t — метка времени, вставляемая для предотвращения возможности повторного использования ключа.
Для осуществления взаимной аутентификации и подтверждения правильности получения ключа можно воспользоваться протоколом из [Nee78]:
A→В: ЕB(k1,А),
В→А: ЕА(k1,k2),
А→В: ЕB(k2).
Производя расшифрование полученных сообщений на втором и третьем шагах, стороны убеждаются в том, что они имеют дело именно с нужной стороной и что другая сторона правильно расшифровала полученное значение ключа.
Протоколы с использованием цифровой подписи.
При использовании цифровой подписи аутентифицированный протокол передачи ключей может содержать только одно сообщение и иметь, например, один из следующих трех видов:
А→В: EB(k,t,SA(B,k,t))
(шифрование подписанного ключа);
А→В: EB(k,t,),SA(B,k,t)
(зашифрование и подпись ключа);
А→В: t,EB(A,k),SA(B,t,EB(A,k))
(подпись зашифрованного ключа).
Сертификаты открытых ключей
Как правило, при использовании открытых ключей хранят не сами ключи, а их сертификаты. Сертификат представляет собой набор данных
CA=(A,kA,t,SkTA(A,kA,t)),
состоящий из идентификатора абонента А, его открытого ключа kА и, быть может, еще какой-либо дополнительной информации, например, времени t выдачи сертификата и срока его действия, заверенных цифровой подписью доверенного центра ТА или заслуживающего доверия лица. Сертификат предназначен для исключения возможности подмены открытого ключа при его хранении или пересылке.
Получив такой сертификат и проверив цифровую подпись, можно убедиться в том, что открытый ключ действительно принадлежит данному абоненту.
Международный стандарт CCITT X.509 определяет следующий протокол аутентификации с одновременным распределением ключей:
A→B:Ca,Da,Sa(Da),
В→А: CB,DB,SB(DB),
A→B:rB,B,SA(rB,B),
где СА и СB — сертификаты сторон, SA и SB — цифровые подписи сторон,
DA = (tА ,rA,B, data1, ЕB (k1)),
DВ = (tВ, rB, A,rA, data2,ЕА (k2))
- наборы передаваемых и подписываемых данных. В поля data заносится дополнительная информация для аутентификации источника. Третий шаг протокола требуется стороне В для подтверждения того, что она действительно взаимодействует со стороной А.
Открытое распределение ключей позволяет двум абонентам выработать общий секретный ключ путем динамического взаимодействия на основе обмена открытыми сообщениями без какой-либо общей секретной информации, распределяемой заранее. Важным преимуществом открытого распределения является также то, что ни один из абонентов заранее не может определить значения ключа, так как ключ зависит от сообщений, передаваемых в процессе обмена.
Первый алгоритм открытого распределения ключей был предложен У. Диффи и М. Хеллманом. Для его выполнения стороны должны договориться о значениях большого простого числа р и образующего элемента α мультипликативной группы . Для выработки общего ключа k они должны сгенерировать случайные числа х, 1≤ х ≤ р - 2, и у, 1 ≤ у ≤ р - 1, соответственно. Затем они должны обменяться сообщениями в соответствии с протоколом:
А→В: α х mod p,
В→А: α y mod p.
Искомый общий ключ теперь вычисляется по формуле:
k = (α у)х = (α х)у mod p.
Недостатком этого протокола является возможность атаки типа "злоумышленник в середине", состоящей в следующем. Предположим, что злоумышленник имеет возможность осуществлять подмену передаваемых абонентами сообщений.
Рассмотрим два протокола, устраняющие этот недостаток. Первый протокол, называемый STS (station-to-station), предполагает, что пользователи применяют цифровую подпись, которой подписываются передаваемые по протоколу Диффи—Хеллмана сообщения:
А →В: α х mod p,
В→А: α y mod p, Ek(SB(α y, α x)),
A→B: Ek(SA(α x, α y)).
Здесь SA и SB — цифровые подписи пользователей А и В соответственно, k — искомый общий ключ. Они позволяют гарантировать достоверность получения сообщения именно от того пользователя, от которого это сообщение получено. Шифрование значений подписей пользователей введено для того, чтобы обеспечить взаимное подтверждение правильности вычисления значения ключа.
Еще один подход также предполагает наличие у абонентов открытых ключей, но вместо цифровой подписи предлагается использовать модифицированную процедуру выработки общего ключа. Рассмотрим протокол MTI (Мацумото-Такашима-Имаи).
Предположим, что пользователи А и В имеют секретные ключи а, 1 ≤ а ≤ р - 2, и b, 1≤ b ≤ р - 2 , соответственно, и публикуют свои открытые ключи zA = αa mod p и zB = αb mod p. Для выработки общего секретного ключа k они должны сгенерировать случайные числа х, 1≤ х ≤ р - 2, и у, 1≤ у ≤ р - 2, соответственно, а затем обменяться следующими сообщениями:
А→В: αх mod p,
В→А: αy mod p.
Искомый общий ключ вычисляется по формуле:
Теперь любая подмена сообщений приведет к тому, что все стороны получат различные значения ключа, что, в свою очередь, приведет к невозможности чтения всей передаваемой информации.
Большинство криптографических систем требуют проведения предварительного распределения секретных ключей. Для предварительного распределения стороны могут обменяться ключами при личной встрече, либо поручить доставку ключей специально назначенному доверенному курьеру, либо использовать для передачи некоторый выделенный защищенный канал. В зависимости от назначения криптографической системы иногда оказывается удобным распределять не сами ключи, а некоторые вспомогательные ключевые материалы, на основании которых каждый участник или группа участников могут самостоятельно вычислить необходимый ключ, используя для этого некоторую установленную заранее процедуру.
Схемы предварительного распределения ключей в сети связи
Если число абонентов сети засекреченной связи невелико, то и число распределяемых ключей также невелико. Для больших же сетей распределение ключей становится очень серьезной проблемой. Она заключается в том, что для сети, в которой работают п абонентов, необходимо выработать заранее и хранить в дальнейшем п(п-1)/2 ключей. Кроме того, каждому абоненту сети необходимо передать ключи для связи с остальными n - 1 абонентами, которые абонент должен постоянно хранить. Например, для сети со 100 абонентами нужно сгенерировать и хранить почти 5000 ключей, причем каждый абонент при этом должен хранить у себя 99 ключей.
Для уменьшения объема хранимой ключевой информации применяются различные схемы предварительного распределения ключей в сети связи. Их суть заключается в том, что в действительности вначале происходит распределение не самих ключей, а некоторых вспомогательных ключевых материалов, занимающих меньшие объемы. На основании этих материалов каждый абонент сети может самостоятельно вычислить по некоторому алгоритму необходимый для связи ключ. Такой подход позволяет уменьшить объемы как хранимой, так и распределяемой секретной информации.
В качестве примера рассмотрим схему Блома распределения ключей между п абонентами, для которой процедура вычисления ключа заключается в вычислении значения некоторого симметрического многочлена над конечным полем.
Выберем поле F, имеющее конечное, но достаточно большое число элементов, и зафиксируем п различных элементов r1, ..., rnF, отличных от нуля. Каждый элемент ri
припишем i-му абоненту сети, i = . Эти элементы не являются секретными и могут храниться на общедоступном сервере сети. Выберем теперь многочлен над полем F степени 2т, 1 ≤ т < п, вида
где аij = aji, i ≠ j, i,j = . Его коэффициенты являются секретными и должны храниться только в центре распределения ключей. Каждый абонент А получает в качестве ключевых
материалов набор , состоящий из коэффициентов многочлена
Для связи между абонентами А и В теперь можно использовать общий ключ kAB:
kAB = kВА = f(rA,rB) = gB(rA) = gA (rB),
вычисляемый по формуле:
в матричном виде:
где матрица составлена из коэффициентов многочлена f(x, y) и является симметричной.
При использовании данной схемы каждый абонент должен хранить т+1 секретных значений вместо п - 1, общее же число секретных коэффициентов многочлена f равно т(т+1)/2.
Для заданного числа т схема Блома дает минимальное по объему количество хранимых у абонента ключевых материалов.
Схема предварительного распределения ключей KDP (key distribution patterns) основана на схеме пересечений множеств.
Пусть имеется п, п > 2, абонентов (пользователей) и множество секретных ключей К, |К| = q. Будем считать, что все ключи перенумерованы числами 1,2,..., q. Выберем некоторое семейство {S1,...,Sn} подмножеств множества {1,2,..., q}. Предварительно абоненту i по защищенному каналу передается множество секретных ключей с номерами из подмножества Si, . Таким образом, семейство {S1,...,Sn} представляет собой таблицу с номерами ключей каждого пользователя. Хотя данная таблица является несекретной, она должна быть защищена от модификаций и подделок.
Если абонент i хочет связаться с абонентом j, то он использует для выработки общего ключа множество ключей, номера которых содержатся в пересечении Si Sj. Если каждый ключ представлен некоторой битовой строкой, то для формирования общего связного ключа можно взять, например, их сумму, или значение некоторой хэш-функции от строки, составленной из ключей, номера которых входят в пересечение множеств Si Sj.
Схемой распределения ключей типа KDP, или KDP(n,q)-схемой, назовем всякое семейство {S1,...,Sn} подмножеств множества К, удовлетворяющее следующему условию:
если при некоторых i,j, r {1 ≤ i < j ≤ n} выполнено включение Si Sj Sr, то либо i = r, либо j= r.
Это условие означает, что общий ключ двух абонентов не должен быть известным никакому другому абоненту.
Семейство подмножеств называется семейством Шпернера, если ни одно из них не содержится в другом.
Семейство {S1,...,Sn} подмножеств множества К, |К| = q, образует KDP(n,q)-cxeмy в том и только в том случае, если множество { Si Sj | 1 ≤ i < j ≤ n } образует семейство Шпернера.
Если подмножества {S1,...,Sm} множества К, |К| = q, образуют семейство Шпернера, то
Равенство достигается только в случае, если множество {S1,...,Sm} совпадает с множеством всех w-элементных подмножеств множества К, где w = q/2 при четном q и w = (q+1)/2 или (q- l)/2 при нечетном q.
Для любой KDP(n,q)-cxeмы каждый абонент должен иметь не менее log2п ключей. Если п 4, то q 2 log2n.
Схема разделения секрета представляет собой схему предварительного распределения ключей между уполномоченными группами пользователей, в которой ключ заранее определен и одинаков для каждой уполномоченной группы. При этом каждый пользователь получает свою долю или "часть секрета". Схема включает два протокола: протокол формирования долей (разделения секрета) и распределения их между пользователями и протокол восстановления секрета группой пользователей. Схема должна позволять восстанавливать ключ только тем группам пользователей, которые имеют на это полномочия, и никакая другая группа не должна иметь возможности для восстановления ключа или получения о нем какой-либо информации.
Основное назначение схемы разделения секрета — защита ключа от потери. Обычно для защиты от потери делают несколько копий ключа. С возрастанием числа копий ключа возрастает вероятность его компрометации. Если число копий мало, то велик риск потери ключа. Поэтому лучше "разделить" ключ между несколькими лицами так, чтобы допускалась возможность восстановления ключа при различных обстоятельствах несколькими уполномоченными группами с заранее оговоренным составом участников. Тем самым исключается риск безвозвратной потери ключа.
Еще одно положительное качество схем разделения секрета заключается в разделении ответственности за принятие решения, которое автоматически вводится при определении состава уполномоченных групп. Такая коллективная ответственность нужна для многих приложений, включая принятие важных решений, касающихся применения систем оружия, подписания корпоративных чеков или допуска к банковскому хранилищу.
В простейшем случае, когда имеется только одна группа, состоящая из t пользователей, уполномоченная формировать ключ, схему разделения секрета можно построить следующим образом. Предположим, к примеру, что ключ представляет собой двоичный вектор s длины т. Выберем случайным образом t векторов s1, ...,st так, чтобы их сумма совпадала с вектором s, и распределим их между пользователями. Теперь, собравшись вместе, они могут легко восстановить значение ключа s, в то время как никакая группа, состоящая из меньшего числа пользователей, не сможет этого сделать. Действительно, в данном случае отсутствие хотя бы одной доли приводит к полной неопределенности относительно значения секрета, поскольку для каждого значения искомого секрета найдется возможный вариант значения отсутствующей доли.
Заметим, что если бы мы в предыдущем примере просто разбили вектор на t частей, то такая схема не могла быть схемой разделения секрета, так как знание любой доли давало бы частичную информацию о секрете s.
Другой пример схемы разделения секрета дает пороговая схема Шамира. Пусть 1 < t ≤ п. Схема разделения секрета между п пользователями называется (n,t)-пороговой, если любая группа из t пользователей может восстановить секрет, в то время как никакая группа из меньшего числа пользователей не может получить никакой информации о секрете.
Для построения (n,t)-пороговой схемы А. Шамир предложил использовать многочлен степени t – 1 над конечным полем с достаточно большим числом элементов. Многочлен степени t - 1 можно однозначно восстановить по его значениям в t различных точках, но при этом меньшее число точек использовать для интерполяции нельзя.
Выберем поле F и зафиксируем п различных несекретных элементов r1,...,rnF, отличных от нуля. Каждый элемент ri, приписан i-му абоненту сети, . Выберем также t случайных элементов а0,...,аi-1 поля F и составим из них многочлен f(х) над полем F степени t - 1, 1< t ≤ n ,
Положим s = f(0) = а0. Вычислим теперь значения
s1 = f(r1),…, sn = f(rn)
и распределим в качестве долей между участниками наборы
Для восстановления секрета S можно воспользоваться интерполяционной формулой Лагранжа. Путь имеются t пар (хi, уi), где yi = f(xi). Тогда формула Лагранжа имеет вид
Так как s = f(0), то из формулы Лагранжа получаем равенства
причем коэффициенты с, не зависят от коэффициентов многочлена f(x) и могут быть вычислены заранее.
С помощью полученной формулы любая группа из t пользователей может легко восстановить секрет. В то же время можно показать, что никакая группа из меньшего числа пользователей не может получить никакой информации о секрете (докажите это самостоятельно).
Схема Шамира удобна тем, что она позволяет легко увеличивать число пользователей. Для этого не нужно ничего менять, кроме множества {r1,..., rп}, к которому следует добавить новые элементы rn+1,..., rn+ w. Компрометация одной доли делает из (n,t)-пороговой схемы (п -1, t -1)-пороговую схему.
Еще один тип распределения ключей между группами пользователей дают протоколы распределения ключей для проведения конференц-связи. Несмотря на внешнюю схожесть с протоколами разделения секрета, они имеют несколько принципиальных отличий. Если протоколы разделения секрета осуществляют предварительное распределение одного и того же ключевого значения (секрета) по секретным каналам между привилегированными группами пользователей, то протоколы конференц-связи осуществляют динамическое распределение ключей по открытым каналам связи между привилегированными группами пользователей. При этом ключи должны быть различными для каждой группы.
Тривиальный пример распределения ключей для проведения конференц-связи дает использование централизованного распределения ключей с помощью одного из трехсторонних протоколов передачи ключей, используемых для симметричных шифрсистем. Для реализации такого подхода нужно выделить одного из пользователей группы и возложить на него функции центра генерации и распределения ключей. Естественно, что при этом возрастают требования к доверенности и безопасности выделенного пользователя, что вносит серьезную асимметрию между участниками конференц-связи.
Другой подход основан на использовании идеи открытого распределения ключей.
Приведем примеры протоколов, в которых все участники группы имеют одинаковые полномочия и выполняют симметричные функции.
Простейший пример такого протокола для группы из трех участников можно получить, слегка модифицировав протокол открытого распределения ключей Диффи — Хеллмана. Участники протокола заранее договариваются о значениях большого простого числа р и образующего элемента α мультипликативной группы Z*p = {1,2,..., р - 1} . Для выработки общего ключа k пользователи А, В и С должны сгенерировать соответственно случайные числа х, у и z, 1 ≤ x,y,z ≤ p - 2 . Затем они должны обменяться сообщениями согласно следующему протоколу:
А→В: X = αx mod p,
В→С: Y = αу mod p,
С→А: Z = αz mod p,
А→В: Z'=Zx mod p,
В→С: X'=Xy mod p,
С→А: Y'=Yz mod p.
Искомый общий ключ k = αxyz mod p теперь вычисляется пользователями А, В и С по формулам:
k = (Y')x mod p,
k = (Z')y mod p,
k = (X')z mod p
соответственно.
Протокол формирования общего ключа для конференц-связи группы из t пользователей U0,...,Ut-1. Как и в предыдущем протоколе, каждый пользователь Ui; должен сгенерировать секретное случайное число ri, 1 ≤ rt ≤ р - 2 , и вычислить открытую экспоненту . Положим
Тогда общий ключ k имеет вид
Протокол состоит из следующих шагов:
1. каждый пользователь U, рассылает zi остальным t - 1 пользователям;
2. каждый пользователь U, вычисляет значение
и рассылает его остальным t - 1 пользователям;
3. каждый пользователь Ui, вычисляет значение общего ключа k по формуле
k =
Протокол требует передачи 2t(t - 1) сообщений, причем каждый пользователь должен отправлять сообщения всем остальным. Можно модифицировать протокол для случая обмена сообщениями по схеме двунаправленного кольца.
Рассмотренный протокол не решает задачи аутентификации, поскольку в нем не заложено процедур для взаимной аутентификации сторон.
Исследование, описанное в статье про протоколы распределения ключей, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое протоколы распределения ключей и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Шифры в криптографии
Комментарии
Оставить комментарий
Информационная безопасность, Шифры в криптографии
Термины: Информационная безопасность, Шифры в криптографии