10 Лекция - Методы и средства управления криптоключами
.pdf11
3. A B:E k,Sign ka,ax ||ay , где величина k ay x mod p
Цифровая подпись в данном протоколе используется для обеспечения аутентичности участников протокола, поскольку позволяет однозначно связать вычисленную подпись с владельцем секретного ключа. Алгоритм блочного шифрования используется для проверки правильности вычисления общего ключа. Такую проверку принято называть подтверждением ключа
(key confirmation).
Семейство протоколов MTI
В 1986 году Мацумото, Такашима и Имаи предложили (Matsumoto Т., Takashima Y., Imai Н. On seeking smart public-key- distribution systems // Trans, of the IECE of Japan - 1986.1 E69.1 pp. 99-106) целое семейство протоколов,
которые могут рассматриваться как вариант схемы Диффи-Хеллмана с аутентификацией, в котором пользователи имеют открытые ключи и вместо процедуры цифровой подписи используют модифицированный алгоритм выработки общего ключа. Данное семейство протоколов принято называть MTI — по первым буквам авторов.
Далее будем считать, что во всех протоколах пользователи A и B имеют секретные ключи kA , kB из GF(q)* соответственно и публикуют в открытом доступе свои открытые ключи
zA akA mod p , zB akB mod p .
В варианте протокола, получившего в англоязычной литературе название MTI-A(r), для выработки общего ключа k участники протокола вырабатывают случайные числа, соответственно x, у из GF(q)*, и для любого фиксированного заранее целого неотрицательного числа r обмениваются сообщениями:
1.A B:sA akAr x mod p ;
2.B A:sB akBr y mod p
Далее искомый общий ключ находится по формуле
k sB kA zB xkAr mod p sA kB zA ykBr mod p axkArkB ykBrkA mod p ,
Наибольшую известность получил протокол МТI-А(0), в котором величина r = 0, а формула для вычисления общего ключа принимает вид
k sB kA zB x mod p sA kB zA y mod p axkB ykA mod p
Аналогично в варианте протокола MTI-B(r) участники протокола вырабатывают случайные числа, соответственно x, у из GF(q)*, и для любого фиксированного заранее целого неотрицательного числа r обмениваются сообщениями:
1.A B:sA zBkAr x mod p ;
2.B A:sB zAkBr y mod p
12
Далее искомый общий ключ находится по формуле
k sB kA1 |
axkAr mod p sA kB1 |
aykBr mod p axkAr ykBr mod p |
где величины kA1 , kB1 удовлетворяют сравнениям kAkA1 kBkB1 1 modq .
В варианте протокола MTI-C(r) участники также вырабатывают случайные числа, соответственно x, у из GF(q)*, и для любого фиксированного заранее целого неотрицательного числа r обмениваются сообщениями:
1.A B:sA zBkAr x mod p ;
2.B A:sB zAkBr y mod p
Вместе с тем для вычисления общего ключа k используются другие соотношения:
k sB xkAr 1 mod p sA ykBr 1 mod p axykArkBr mod p (***)
Упражнение. Проверьте корректность соотношений, позволяющих вычислить общий ключ в приведенных выше семействах протоколов МТI- B(r) и MTI-C(r).
С момента появления протоколов семейства MTI к ним были разработаны атаки, которые иллюстрируют различные уязвимости. Остановимся на некоторых из них более подробно.
Атака в подгруппе малого порядка
В начале раздела мы зафиксировали, что вычет a образует циклическую подгруппу простого порядка q в мультипликативной группе простого поля GF(p).
Предположим, что a является первообразным корнем по модулю p, то есть порождает все множество вычетов {1,2,...,р - 1}- Тогда его показатель по модулю р, очевидно, равен р — 1.
Рассмотрим целое число w такое, что w|p-1, p-1= wv и целая величина v принимает небольшое значение. Легко видеть, что всегда существует такое w, для которого v = 2.
Теперь опишем атаку в подгруппе малого порядка (small subgroup attack) применительно к протоколу МТI-C(1). Нарушитель С имеющий возможность перехватывать и заменять сообщения в линии связи, выполняет следующую последовательность действий
1 A C :sA zBkAr x mod p ;
2C B:sAw mod p
3B C:sB zAkBr y mod p
4C A:sBw mod p
Тогда оба участника протокола вырабатывают общий ключ в
13
соответствии с (***)
k axywkAkB mod p .
Вместе с тем, поскольку показатель элемента aw по модулю p равен v, а величина v мала, нарушитель может перебрать все возможные значения
a,a2,...,av 1 mod p
и опробовать их в качестве ключа k . При v = 2 нарушителю будет необходимо опробовать всего 2 значения. Очевидно, что данная атака применима к протоколу MTI-C(r) для любого значения г.
Возможность проведения атаки в подгруппе малого порядка привела к необходимости выбирать образующий элемент a простого порядка q. Этого, однако, недостаточно для обеспечения стойкости протокола.
Действительно, если нарушитель на втором и четвертом шагах соответственно приведенной атаки вычислит
sqA mod p , sbq mod p ,
то участники протокола все равно выработают одинаковый общий ключ k , равный 1. Защита от подобных действий нарушителя заключается в проверке условий sA,sB 1 mod p .
Упражнение. Примените атаку в подгруппе малого порядка для анализа базового протокола Диффи-Хеллмана.
В явном виде атака в подгруппе малого порядка неприменима к протоколам семейства MTI-A(r) и MTI-B(r). Однако при некоторых дополнительных допущениях о возможностях нарушителя возможна компрометация и этих протоколов.
Будем считать, что нарушитель может изменять открытые ключи zA ,. и zB участников протокола. Такая ситуация может возникнуть в случае, когда участники протокола получают ключи из некоторого удаленного хранилища. Предположим, что для определенного выше значения w нарушителю удалось заменить указанные ключи на
z*A zAw mod p , z*B zBw mod p .
Тогда реализация атаки в подгруппе малого порядка на протокол MTI- А(г), то есть
замена нарушителем сообщения sA akAr x mod p на сообщение s*A sAw mod p и
замена нарушителем сообщения sB akBr y mod p на сообщение
s*B sBw mod p ,
приведут к тому, что частник A вычислит ключ
k xkr r kA xkr ykrk xk kr
k s*B A z*B A mod p aywkB awkB A mod p aw B A B A mod p
14
и участник В вычислит тот же общий ключ
k s*A kB z*A ykBr |
mod p axwkAr kB awkA ykBr |
mod p aw ykBr kA xkBkAr |
mod p |
|
. |
что показатель элемента aw по модулю p мал, нарушитель |
|||
Учитывая, |
||||
может эффективно опробовать все возможные значения общего ключа k . |
||||
Описанная |
нами атака, использующая |
подмену открытых |
ключей |
|
участников протокола, называется атакой на открытые параметры протокола. Способ защиты от подобных действий нарушителя заключается в использовании доверенных значений открытых ключей.
Как правило, доверенность ключей реализуется с помощью сертификатов открытых ключей, представляющих собой совокупность ключа и его цифровой подписи, выработанной доверенным удостоверяющим центром. Если один или оба участника протокола не доверяют удостоверяющему центру, то гарантировать стойкость данного семейства протоколов невозможно.
Атака в подгруппе простого порядка
Описанная нами выше атака в подгруппе малого порядка применима в случае, когда элемент a является первообразным корнем по модулю p и его показатель, очевидно, не является простым числом. Однако использование элементов с простым показателем q, где q|p-1, не всегда может гарантировать стойкость протокола, что было продемонстрировано в 1997 году китайскими криптографами (Lim С.Н., Lee P.J. A key recovery attack on discrete logarithm based schemes using a prime order subgroup // In B. Kaliski, editor, Advances in Cryptology - Crypto ’97. - Lecture Notes in Computer Science Volume 1294. - 1997. pp. 249-263).
|
Будем считать, что показатель элемента a по модулю p равен q, а |
||||
величина |
p 1 |
имеет много маленьких простых делителей r,...,r |
таких, что |
||
|
|||||
|
|
q |
1 |
u |
|
|
|
|
|
|
|
u |
|
|
|
|
|
ri |
q. |
Такая ситуация может возникнуть, например, |
|
в случае |
|
i 1 |
|
|
|
|
|
использования параметров, удовлетворявших устаревшему отечественному стандарту ГОСТ Р 34.10-94, когда log2 q 256 и log2 q 1024.
Предположим, что нарушитель C может являться легитимным участником протокола, то есть обладать некоторым секретным kС из GF(q)* и открытым ключом, удовлетворяющим равенству
zС akС mod p .
Опишем атаку нарушителя на протокол МТI-A(0). Перед проведением атаки нарушитель выбирает некоторый делитель r r1,...,ru и вычисляет
элемент b из GF(q)* показатель которого равен r, тогда bl 1 mod p для всех 1=1,... ,r-1 и br 1 mod p .
Теперь нарушитель выполняет с участником В, который подвергается
15
атаке, следующий протокол.
C B:sC bax mod p
B C :sB ay mod p
Далее в соответствии с соотношениями МТI-A(0) участник В вычисляет общий ключ
k sC kB zC y mod p bkB axkB ykC mod p .
Одновременно нарушитель С вычисляет другой ключ
k1 sB kC zB x mod p axkB ykC mod p ,
для которого, очевидно, выполнено равенство k1bkB k mod p .
Поскольку показатель элемента b по модулю p равен r, и r невелико, то нарушитель может эффективно подобрать такое значение l, что
k1bl k mod p
Для определения верного значения l необходимо иметь возможность отбраковывания ложных значений. Такая возможность обычно появляется, если участники протокола должны выполнять обмен зашифрованными сообщениями на общем ключе k .
Одновременно для найденного нарушителем значения l выполнено сравнение
kB l modr .
Следовательно, повторяя подобную атаку |
для всех значений |
||
r r1,...,ru , нарушитель может вычислить значения |
kB li modr ,i |
|
и |
1,u |
|||
далее, с использованием китайской теоремы об остатках, вычислить точное значение секретного ключа участника B.
Меры защиты от указанной атаки могут заключаться в следующем. Каждый раз, когда участник протокола получает сообщение, он должен
проверить, принадлежит ли данное сообщение подгруппе порядка q. Как легко заметить, направляемое нарушителем сообщение sC bax mod p
такой проверке не удовлетворяет.
Другой способ заключается в выборе параметров p и q так, чтобы
делители величины p 1 были по возможности минимальны. Наиболее q
оптимальный вариант в этом случае — положить p = 2q +1, то есть взять в качестве р и q простые - близнецы.
Однако даже при таком выборе нарушитель сможет получить информацию об одном бите секретного ключа kB , а именно kB (mod 2).
Атака на выработку ключа с третьим участником
Существует целый класс атак на протоколы обмена ключевой информацией, в которых нарушителем достигается следующая ситуация. Два участника протокола A и B вырабатывают общий ключ k , но при этом участник A считает, что он выработал ключ k с участником B, а участник B
16
считает, что он выработал общий ключ с третьим участником, скажем, C. В англоязычной литературе такие атаки носят название unknown key-share attack, которое можно перевести на русский язык как атака на выработку ключа с третьим участником.
В 1995 году появилась работа (Menezes AJ., Qu М., Vanstone S.A. Some new key agreement protocob providing implicit authentication. // Workshop on Selected Areas in Cryptography (SAC’95). 1 1995. | pp. 22-32.), в который были приведены атаки на выработку ключа с третьим участником, применимые ко всем протоколам семейства MTI. Мы опишем одну из таких атак применительно в протоколу МТI-В(0).
Снова предположим, что нарушитель C может являться легитимным участником протокола, то есть обладать некоторым секретным ключом kС из GF(q)* и открытым ключом, удовлетворяющим равенству
zС zAkC akAkС mod p , где zA — открытый ключ участника Ф. При этом нарушителю С известно точное значение величины kAkС (mod q).
Тогда атака на выработку ключа с третьим участником протокола может быть записана следующим образом.
x
1 A C :sA zB mod p ;
2C B:sC sA mod p
3B C :sB zC y mod p
4C A:s1B sBkC1 mod p
Далее, участник А вычисляет общий ключ k в соответствии с равенствами
k s1B kA1 |
ax mod p zC ykC1 |
ax mod p ax y mod p , |
и участник B вычисляет тот же общий ключ k
k s |
kB1 |
ay mod p z |
B |
xkB1 |
ay mod p ax y mod p . |
C |
|
|
|
|
Таким образом, участники протокола А и В могут обмениваться сообщениями, зашифрованными на общем ключе k, но при этом участник А считает, что он обменивается с В, а участник В считает, что он обменивается сообщениями с С.
Упражнение Предложите аналогичные атаки на протоколы семейства МТI-A(0) и МТI-С(0).
Для защиты от подобного класса атак можно использовать несколько способов
При генерации сертификатов открытых ключей участников протокола реализовать процедуру, в ходе которой участник обязан предъявить или продемонстрировать знание своего секретного ключа. Например, удостоверяющий центр Т может реализовать следующий протокол подтверждения знания секретного ключа абонентом С без раскрытия секретного
17
значения kС (x из GF(q)* случайное число):
1.T C:sT zC x mod p
k 1
;
2.C T :sC sT C mod p
После получения сообщения sC удостоверяющий центр Т должен проверить выполнение сравнения ax sC mod p . В случае, если
данное сравнение выполнено, то удостоверяющий центр принимает решение о том, что участник С владеет корректным секретным ключом kС .
Другим способом защиты от атаки на выработку общего ключа с третьим участником является добавление к передаваемым сообщениям кода аутентичности, выработанного с использованием общего ключа k. В этом случае участник В должен отправлять на последнем шаге не одно значение zA y , а
пару значений zA y , |
MAC k,sA |
|
|
|
zA y В этом случае |
|
|
нарушитель, не зная ключа k, не сможет подделать код аутентичности.
Фактически использование кодов аутентичности является операцией подтверждения ключа k.
Упражнение Покажите, что описанный выше протокол проверки знания участником С своего секретного ключа является корректным.
Выработка ключа для конференц-связи Простейшим примером схемы распределения ключей для проведения
конференц-связи является использование централизованного распределения ключей с помощью трехстороннего протокола передачи ключей с использованием доверенного центра. Для реализации такого подхода можно возложить на одного из пользователей функции центра генерации и распределения ключей. Однако это вносит серьезную асимметрию между участниками конференцсвязи.
Приведем пример протокола для трех участников А, В, С, в котором все участники имеют одинаковые полномочия и выполняют симметричные функции. Будем считать, как и ранее, что зафиксирован вычет а из GF(p), показатель которого по модулю р равен q, где q - простое число.
Для выработки общего ключа k участники протокола генерируют соответственно случайные числа х, у, z из GF(q)* и обмениваются сообщениями согласно схеме:
1.A B: X ax mod p ,
2.B C:Y ay mod p ,
3.C A:Z az mod p ,
18
4.A B: X1 Zx mod p ,
5.B C:Y1 X y mod p ,
6.C A:Z1 Yz mod p ,
Общий ключ k вычисляется участниками протокола по формулам:
k X1 z mod p Y1 x mod p Z1 y mod p axyz mod p
Упражнение Возможна ли на рассмотренный протокол атака «человек посередине», атака в подгруппе малого порядка, атака на выработку ключа с третьим (в данном случае — четвертым участником? Ответ обоснуйте приведением конкретной схемы действий нарушителя.
ПРОТОКОЛЫ ПЕРЕДАЧИ КЛЮЧЕЙ Двусторонние протоколы с помощью симметричного шифрования
Будем считать, что участники протокола А и В имеют общий секретный ключ kAB - Тогда передачу ключа k от участника А к участнику В можно проводить по схеме:
A B:E kAB,k ||t ||ID B
где Е(k,*) - алгоритм зашифрования на ключе kAB , t - метка времени, ID B -
идентификатор получателя ключа.
Отметим, что метка времени предотвращает повторную передачу того же сообщения.
Можно использовать также протокол типа «запрос-ответ»:
B A:r B ;
A B:E kAB,k ||r B || ID B ,
где r B - случайный двоичный вектор заданной длины, выработанный
получателем ключа - участником протокола В.
Указанный протокол можно модифицировать так, чтобы в выборе ключа kAB участвовали обе стороны:
B A:r B ;
A B:E kAB,kA ||r A ||r B || ID B , B A:E kAB,kB ||r B ||r A || ID A
далее общий ключ k вычисляется с помощью некоторой заранее согласованной функции выработки производного ключа
k Kdf kA,kB .
Трехсторонние протоколы
Пусть в сети имеется центр Т, у которого имеется индивидуальная связь на секретных ключах k DT с каждым из абонентов D и который
обязан снабжать абонентов А и В ключами для связи друг с другом. Приведем пример такого протокола для случая, когда связь с центром
более удобна для абонента В:
19
1. |
A B:r,ID A ,ID B ,Ek A |
|
r A ||r ||ID A || ID B ; |
|
|
|
T |
r A ||r|| ID A ||ID B , а также |
|
2. |
B T :r,ID A ,ID B ,Ek A |
|
||
|
|
T |
|
|
|
Ek B |
r B ||r ||ID A || ID B |
; |
|
|
T |
|
|
|
3.T B:Ek AT r A ||k ,Ek BT r B ||k ;
4.B A:Ek AT r A ||k .
Случайные числа r A , r B генерируется абонентами для
аутентификации центра Т, а случайное число r играет роль метки времени (для аутентификации сеанса связи).
Передача ключей с помощью асимметричного шифрования
Протоколы без использования электронной подписи Начнем с протоколов, не использующих электронную подпись (ЭП)
для аутентификации отправителя ключа. Полагаем, что абонент D обладает алгоритмом асимметричного шифования ED с открытым ключом k(D). Тогда передачу ключа k от А к В можно выполнить за один шаг:
1. A B:EBk B k ||t|| ID A , здесь t - метка времени,
предназначенная для предотвращения повторного использования ключа.
Упражнение Объясните, при каких условиях метка времени t может гарантировать корректность данного протокола, т.е. предотвратить от повторного использования ключа k, а при каких условиях — нет.
Упражнение Предложите атаку на данный протокол, в которой нарушитель может навязать абоненту В использование ложного ключа k*, отличного от k.
Для подтверждения правильности получения ключа и взаимной аутентификации можно использовать следующий протокол:
A B:EBk B k || ID A , B A:EAk A k ||r B , A B:EBk B r B
Протоколы с использованием электронной подписи
Для передачи ключа k с аутентификацией отправителя можно
использовать следующие типы протоколов. |
|
|
|||
|
Зашифрование подписанного ключа |
|
|
||
|
A B:EBk B k ||t||SA ID B ||k ||t , |
|
|||
|
Зашифрование |
|
и |
подпись |
ключа. |
|
A B:EBk B k ||t ,SA ID B ||k ||t |
|
|
||
|
Зашифрование |
и |
подпись |
зашифрованного |
ключа. |
|
A B:t,EBk B ID A ||k ,SA ID B ||k || EBk B ID A ||k |
||||
где SA - алгоритм выработки электронной подписи, t - метка времени.
20
Протокол CCITT X.S09
Международный стандарт CCITT Х.509 регламентирует следующий протокол аутентификации и распределения ключей:
A B:CA,DA,SA DA ,
B A:CB,DB,SB DB ,
A B:r B ,ID B ,SA r B ,ID B ,
где DA и DB - наборы передаваемых и подписываемых данных,
DA t A ||r A || ID B ||data A || EBk B k A ,
DB t B ||r B || ID A ||data B || EAk A k B ,
(в поля data() заносится дополнительная информация), SA, SB - электронные подписи, а СА, СВ - сертификаты открытых ключей абонентов. При этом сертификат СН представляет набор данных
CH ID H ||k H ||t ||Sk T ID H ||k H ||t
который состоит из идентификатора абонента H, его открытого ключа и срока его действия, заверенных цифровой подписью центра сертификации Т.
Транспортный протокол Шамира Пусть имеется коммутирующее преобразование Е такое, что при
любых ключах k1,k2 и любом сообщении x выполняется равенство
E k1,E k2,x E k2,E k1,x .
Тогда для передачи ключа kAB от абонента А к абоненту В можно применить следующий протокол:
A B:Ek A kAB ,
B A:Ek B Ek A kAB ,
AB:Dk A Ek B Ek A kAB
Вкачестве коммутирующего преобразования Е можно, например, использовать преобразование:
Ek m mk mod p , р - простое, НОД (k, р — 1) = 1.
Или более общий случай:
Ek m mk modn , НОД (k , n ) = 1, где n — функция Эйлера. Упражнение Покажите криптографическую несостоятельность
данного протокола, если в качестве коммутирующего преобразования Е используется шифр гаммирования: Ek m m k mod p (алфавит
шифрования и гамма наложения являются элементами абелевой группы). Необходимым условием хороших криптографических качеств
протокола Шамира является стойкость коммутирующего преобразования Е к атаке на ключ по открытому и шифрованному текстам.
