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

Щерба В.В. Криптографическая защита информации

.pdf
Скачиваний:
58
Добавлен:
07.01.2021
Размер:
931.06 Кб
Скачать

101

1 шаг

А → В

id(А), EkAB (k, tА, id(B))

2 шаг

В

DkAB (k, tА, id(B)),

где E, D – алгоритмы зашифрования и расшифрования; tА – метка времени пользователя А;

id(А), id(B) – идентификаторы пользователя А и В соответственно. Напомним, что включение в сообщение метки времени позволяет проводить контроль единственности и своевременности получения сообщения и предотвращает возможные попытки повторной передачи сообщения, а использование значения идентификатора В предот-

вращает атаки отражения.

Этот протокол может быть модифицирован таким образом, чтобы новый секретный ключ генерировался не одной стороной, а стал результатом двустороннего обмена. Пусть пользователи А и В в процессе протокола выбирают случайные числа kA и kB, тогда:

1 шаг

А → В

id(А), EkAB (kА, tА, id(B))

2 шаг

В → А

id(В), EkAB (kВ, tВ, id(А))

3 шаг

А

D(EkAB (kВ, tВ, id(А))); k = f(kA, kB)

 

В

D(EkAB (kА, tА, id(В))); k = f(kA, kB).

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

Ek1 (Ek2 (х)) = Ek2 (Ek1 (х)).

В этой ситуации пользователи А и В могут реализовать следующий протокол для передачи секретного ключа k от пользователя А к В.

1 шаг

А → В

EkA (k)

2 шаг

В → А

E(EkA (k))

3 шаг

А → В

DkA (E(EkA (k)))

4 шаг

В

D(DkA (E(EkA (k))))

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

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

102

 

 

1 шаг

А → Т

A, B, rA

2 шаг

Т → А

EkАТ (rA, B, k, EkBT(k, A))

3 шаг

А → В

EkBT(k, A)

4 шаг

В → А

Ek (rB)

5 шаг

А → В

Ek (rB-1).

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

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

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

вый протокол:

 

 

1 шаг

А → В

EB (k, t, A).

Естественно, зашифрование передаваемого сообщения осуществляется на открытом ключе пользователя В. Временная метка t включена в сообщения для контроля своевременности его передачи и предотвращения повторного использования ключа.

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

дующим протоколом:

 

1 шаг

А → В

EB (k, A)

2 шаг

В → А

EА (r)

3 шаг

А

DА (r)

4 шаг

А → В

Ek (r)

5 шаг

В

Dk (Ek (r)).

Проводя на 4 и 5 шаге зашифрование и расшифрование случайного числа r, стороны убеждаются в правильности приема ключа, а выполнение 2 и 3 шага подтверждает аутентичность стороны А.

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

 

 

103

1 шаг

А → В

EB (A, k, t, SA, k, t))

1 шаг

А → В

EB (A, k), SA(EB (A, k)).

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

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

Первый алгоритм открытого распределения ключей был предложен У. Диффи и М. Хеллманом1. Для выполнения протокола взаимодействующие стороны должны договориться о значениях большого простого числа p и образующего элемента α некоторого множества

Zp={1, 2, ..., p-1}.

Множество Zp должно являться конечным полем. Для любого конечного поля существует так называемый образующий или примитивный элемент α, такой, что все ненулевые элементы поля представляются в виде его степеней. Наличие в конечном поле примитивного элемента α позволяет ввести понятие логарифма для ненулевых элементов поля. Логарифм элемента p по основанию α определяется как наименьшее неотрицательное число k, удовлетворяющее равенству p = α k. В настоящее время задача вычисления логарифма в конечном поле не имеет эффективных алгоритмов решения, по этой причине соответствующее свойство широко используется при построении стойких криптографических алгоритмов и протоколов.

Для выработки общего секретного ключа k абоненты А и В должны сгенерировать случайные числа х, 1 х р-2, и у, 1 у р-2, соответственно. Затем они должны обменяться сообщениями согласно правилу:

1 шаг

А В

х

( mod p)

α

2 шаг

B A

αу ( mod p).

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

3 шаг

А, В

у х

х у

k =(α ) mod p= (α ) mod p.

1 Алфёров А. П., Зубов А. Ю., Кузьмин А. С., Черёмушкин А. В. Основы криптографии : учебное пособие. М. : «Гелиос АРВ», 2002. С. 388.

104

Недостатком этого протокола является возможность атаки типа «противник в середине», а именно: предположим, что противник осуществляет контроль канала связи, способен осуществлять подмену передаваемых абонентами сообщений. Тогда, выбрав числа х* и у* и

подменив сообщения αх (mod p) и αу (mod p) на αх* (mod p) и αу* (mod p)

соответственно, он может инициировать формирование ключей: k =(αх)у* mod p

и

k =(αу)х* mod p

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

Рассмотрим протокол, устраняющий этот недостаток. Он называется STS (station-to-station) и предполагает применение цифровой подписи.

1 шаг

А В

х

( mod p)

 

α

 

2 шаг

B A

αу ( mod p),

 

3 шаг

 

 

у х

х у

 

k =(α ) mod p= (α ) mod p

4 шаг

В А

Ek (SB у, αх))

 

5 шаг

А В

Ek (SА ( αх, αу,)).

 

Здесь SА и SB – цифровые подписи пользователей А и В соответственно; k – искомый общий секретный ключ. Шифрование значений подписей введено для того, чтобы обеспечить взаимное подтверждение правильности вычисления секретного ключа.

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

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

105

Если число абонентов сети засекреченной связи невелико, задача распределения ключей не является сложной. Для больших же сетей распределение ключей становится серьезной проблемой. Для сети, в которой работают n абонентов, необходимо заранее сформировать n(n-1)/2 ключей. Кроме того, каждому пользователю необходимо передать ключи для связи с остальными n-1 абонентами, которые пользователь обязан постоянно хранить. Например, для сети всего лишь со 100 абонентами необходимо сгенерировать и хранить около 5 000 ключей, причем каждый пользователь должен хранить у себя 99 ключей независимо от наличия или отсутствия контактов с определенными абонентами.

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

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

Исходно выбирается множество элементов1 r, размещенных в матрице размерностью nхm, 1 m < n. Каждый столбец матрицы ri приписывается i-ому абоненту сети, i=1, n. Эти элементы не являются секретными и могут храниться на общедоступном сервере сети.

Далее выбирается многочлен степени 2m: f(х,у) = ∑∑aijхi,j ,

где i, j = 0, m-1;

aij = aji, для i ≠ j.

В матричном виде коэффициенты многочлена могут быть записаны в виде:

а00

а01

а02

а0m-1

а10

а11

а12

а1m-1

Ω=

а10

а11

а12

а1m-1

аm-10 аm-11 аm-12 … а m-1m-1

1 Элементы множества должны являться ненулевыми элементами конечного поля F.

106

Коэффициенты введенного многочлена являются секретными и должны храниться только в центре распределения ключей.

Каждый абонент сети, например А, получает в качестве ключевых материалов секретный набор = (a0(A), a1(A), …, am-1(A)), состоящий из коэффициентов многочлена f(х, rA) = a0(A) + a1(A) х + … + am-1(A)хm или

в матричном виде: ║А(A)║= ║RA║•║Ω║ .

Для связи между абонентами А и В используется общий секретный ключ kAB, вычисляемый по формуле:

kAB= kВА = f(rA, rВ) =RA║•║Ω║•║RB║ .

Таким образом, для формирования секретного ключа сеанса связи

каждый из абонентов А и В, получив на общедоступном сервере на-

бор rВ и rА соответственно, выполняет следующие действия:

А

kAB = А(A)║•║RB

В

k= А(В)║•║RА║ .

Распределение ключей для телеконференций

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

Другой подход основан на использовании идеи открытого распределения ключей. Соответствующий протокол для группы из трех участников можно получить, незначительно изменив протокол открытого распределения ключей Диффи-Хеллмана.

Участники протокола заранее договариваются о значении большого простого числа p и образующего элемента α некоторого множества Zp={1, 2, ..., p-1}. Для выработки общего секретного ключа k пользователи А, В и С должны образовать случайные числа х, у и z соответственно. Случайные числа должны удовлетворять условию: 1≤ х, у, z ≤ p-2. Затем они должны сформировать значение ключа k согласно следующему протоколу:

107

1 шаг

А В

х

Х = α ( mod p)

2 шаг

B С

У = αу ( mod p)

3 шаг

С А

Z = αz ( mod p)

4 шаг

А В

х

Z*=Z ( mod p)

5 шаг

B С

Х*=Ху ( mod p)

6 шаг

С А

У*=Уz ( mod p).

Искомое значение общего секретного ключа k= αхуz( mod p) теперь вычисляется пользователями А, В и С с применением формул:

k= (У*)х( mod p), k= (Z*)у( mod p), k= (Х*)z( mod p).

Рассмотрим еще одну схему протокола распределения ключей для телеконференций1.

Пусть группе t пользователей U0, U1, Ut-1 требуется сформировать общий секретный ключ для проведения телеконференции с использованием незащищенных каналов связи.

Участники протокола должны заранее договориться о значении большого простого числа p и образующего элемента α множества {1, 2, …, p-1}. Каждый пользователь Ui должен выбрать секретное случайное число ri исходя из условия 1≤ ri p-2 и вычислить zi = αri mod

p. Положим:

Ai = αriri+1 .

Тогда общий секретный ключ телеконференции имеет вид:

kобщ = αr0•r1+ r0•r2+ r2•r3+ …+ rt-1•r0 mod p = A0 • A1 • … • At-1 mod p .

Протокол состоит из следующих шагов:

1.Каждый пользователь Ui рассылает zi остальным t-1 пользователям.

2.Каждый пользователь Ui вычисляет значение Хi = (zi+1 / zi-1)ri mod p и рассылает его значение остальным t-1 пользователям.

3.Каждый пользователь вычисляет значение общего секретного

ключа k по формуле:

kобщ = (zi-1) t•ri imodt)t-1 (i+1)modt)t-2 • …• (i+t-3)modt)2 (i+t-3)modt)1

mod p .

Покажем, что данное значение является искомым ключом. Дейст-

вительно:

Ai-1t imodt)t-1 (i+1)modt)t-2 • …• (i+t-3)modt)2 (i+t-3)modt)1 =

= Ai-1

• (Ai-1•Хi) • (Ai-1•Хi•Хi+1) • … • (Ai-1•Хi•Хi+1• … Х(i+t-3)modt ) =

= Ai-1

• Ai • Ai+1• … • Ai-2 = A0 • A1 • A2 • … • At-1 .

1 Burmtster M., Desmedt Y. A secure and efficient conference key distribution system. / Advances in Cryptology – EUROCRYPT`89. LNCS 434. 1990.

108

Заметим, что протокол требует передачи 2t•(t-1) сообщений, причем каждый пользователь должен отправлять сообщения всем остальным.

Схемы разделения секрета

Схема разделения секрета представляет собой разновидность протокола предварительного распределения ключей. При этом каждый пользователь получает свою «долю» или часть «секрета». Схема включает два протокола: формирования «долей» (разделения «секрета») и распределения их между пользователями, а также протокол восстановления секрета группой пользователей. Схема формируется таким образом, чтобы обеспечить восстановление секретного ключа только тем группам пользователей, которые имеют на это полномочия, не допуская восстановления ключа никаким другим группам.

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

Еще одно положительное качество схемы разделения секрета – защита ключа от потери. Обычно для защиты от потери делают несколько копий ключа. Однако с возрастанием числа копий увеличивается вероятность компрометации секретного ключа. С другой стороны, если число копий мало, то увеличивается риск потери ключа. В связи с этим одним из решений проблемы является «разделение» ключа между несколькими лицами с возможностью его восстановления. Тем самым исключается риск безвозвратной потери ключа.

В простейшем случае, когда имеется только одна группа, состоящая из t пользователей, уполномоченная формировать секретный ключ, схема разделения секрета может быть сформирована следующим образом. Предположим для определенности, что секретный ключ представляет собой двоичный вектор s. Выберем случайным образом t векторов s1, s2, st так, чтобы их сумма совпадала с вектором s. Векторы si распределим между пользователями. Теперь собравшись вместе, они могут легко восстановить значение ключа s. В то же время никакая группа, состоящая из меньшего числа пользова-

109

телей, не может этого сделать. Действительно, отсутствие хотя бы одной «доли» приводит к полной неопределенности относительно значения секрета, поскольку для каждого значения искомого секрета найдется возможный вариант значения отсутствующей доли.

Заметим, что в рассмотренном примере разбиение исходного вектора на t частей не позволило бы создать схему разделения секрета, так как знание любой «доли» давало бы частичную информацию о секрете s.

110

Ле к ц и я 12. ОРГАНИЗАЦИОННО-ПРАВОВЫЕ АСПЕКТЫ

ПРИМЕНЕНИЯ КРИПТОГРАФИЧЕСКИХ СИСТЕМ

Вфеврале 2002 г. в нашей стране вступил в силу Федеральный закон от 8 августа 2001 г. № 128-ФЗ (ред. от 29 декабря 2010 г.) «О лицензировании отдельных видов деятельности». В соответствии со ст. 4 Закона к лицензируемым видам деятельности относятся те, «… осуществление которых может повлечь за собой нанесение ущерба правам, законным интересам, здоровью граждан, обороне и безопасности государства, культурному наследию народов Российской Федерации

ирегулирование которых не может осуществляться иными методами, кроме как лицензированием».

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

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

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

Уже в 1993 г. на этапе подготовки и принятия закона Российской Федерации «О государственной тайне» было принято решение трансформировать прежние государственные регулирующие функции в сфере защиты информации, а в качестве механизма такого регулирования были выбраны институты лицензирования этой деятельности и сертификации соответствующей продукции.

Развитие информационных технологий, объективная тенденция перехода с традиционного бумажного документооборота на элек-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]