Все о геологии :: на главную страницу! Геовикипедия 
wiki.web.ru 
Поиск  
  Rambler's Top100 Service
 Главная страница  Конференции: Календарь / Материалы  Каталог ссылок    Словарь       Форумы        В помощь студенту     Последние поступления
   Геология | Курсы лекций
 Обсудить в форуме  Добавить новое сообщение
Вперед Вверх Назад Содержание Предметный указатель
Вперед: 6.3 Теоретические результаты Вверх: 6.2 Виды протоколов распределения ключей Назад: 6.2.2.2 Стойкость против многоканального подслушивания   Содержание   Предметный указатель

6.2.3 Иерархические схемы распределения ключей

Рассмотрим теперь следующую задачу. Пусть абоненты сети связи не равноправны между собой, а разделены на "классы безопасности" (security classes) $ C_1,C_2,\ldots,C_n$. На множестве этих классов определен некоторый частичный порядок; если $ C_j<C_i$, то говорят, что $ C_i$ доминирует (dominates) $ C_j$, т. е. имеет более высокий уровень безопасности, чем $ C_j$. Задача состоит в том, чтобы выработать секретные ключи $ k_i$ для каждого класса $ C_i$ таким образом, чтобы абонент из $ C_i$ мог вычислить $ k_j$ в том и только том случае, когда $ C_j\leqslant C_i$. Эта задача была решена в общем виде Эклом и Тейлором [AT] в связи с проблемой контроля доступа. В их методе каждый класс безопасности получает, кроме секретного, также и открытый ключ, который вместе с секретным ключом класса, доминирующего данный, позволяет последнему вычислить секретный ключ данного класса. В дальнейшем было предложено несколько схем для этой цели (см. [McKTMA], [HL], [CHW]), однако все они обладают тем недостатком, что при добавлении или удалении класса безопасности необходимо заново вырабатывать ключи для всех доминирующих классов. Для случая, когда частичный порядок $ \leqslant$ является деревом, имеется схема Сандху [San], которая позволяет добавлять новые классы безопасности без изменения ключей существующих классов. См. также [LWL].

Мы приведем описание иерархической схемы распределения ключей, предложенной Ву и Чангом [WC] для случая, когда частичный порядок $ \leqslant$ является деревом. Как заявляют авторы этой схемы, она сохраняет достоинства схемы Сандху. Введем необходимые определения. Пусть $ p$ -- большое простое число, $ V=\mathbb{Z}_p\times\mathbb{Z}_p\times\mathbb{Z}_p$ -- множество всех трехмерных векторов над $ \mathbb{Z}_p$. Если $ i\in\mathbb{Z}_p$, $ X=(x_1,x_2,x_3),\ Y=(y_1,y_2,y_3)\in V$, то определим следующие векторы из $ V$:

$\displaystyle i^X$ $\displaystyle =(i^{x_1}\bmod p,\,i^{x_2}\bmod p,\,i^{x_3}\bmod p),$    
$\displaystyle N(X)$ $\displaystyle =\left(x_1^{-1}\bmod p,\,x_2x_1^{-1}\bmod p,\,x_3x_1^{-1}\bmod p\right),$   если $\displaystyle x_1\ne0,$    
$\displaystyle X\circ Y$ $\displaystyle =((x_2y_3-y_2x_3)\bmod p,\,(x_1y_3-y_1x_3)\bmod p,\,(x_1y_2-y_1x_2)\bmod p).$    

Предположим, что каждому классу безопасности сопоставлен идентификатор $ i\in\mathbb{Z}_p\setminus\{0\}$; класс с идентификатором $ i$ мы будем обозначать через $ C_i$. Ввиду того, что частичный порядок на множестве классов безопасности является деревом, для описания протокола достаточно описать процедуры выработки секретного ключа для корневого класса безопасности (т. е. класса с наиболее высоким уровнем безопасности) и для произвольного класса $ C_j$ при условии, что секретный ключ для класса $ C_i$, непосредственно доминирующего $ C_j$ (т. е. такого, что $ C_j<C_i$ и не существует класса $ C_r$ такого, что $ C_j<C_r<C_i$), уже выработан.     I. Для корневого класса безопасности (скажем, $ C_1$) выбирается произвольный секретный ключ $ K_1\in
V\setminus\{(0,0,0)\}$.

    II. Пусть класс $ C_i$ непосредственно доминирует класс $ C_j$ и для $ C_i$ уже выработан секретный ключ $ K_i\in V$. Тогда в качестве секретного ключа для $ C_j$ выбирается вектор

$\displaystyle K_j=N\left(j^{K_i}\circ P_j\right),$ (1)

где $ P_j$ -- вектор из $ V$, выбранный случайно так, чтобы $ N(j^{K_i}\circ P_j)$ было определено (т. е. $ j^{k_{i2}}p_{j3}-j^{k_{i3}}p_{j2}\not\equiv 0\mkern5mu({\rm mod}\,\,p)$, где $ k_{im}$ и $ p_{jm}$ -- $ m$-е координаты векторов $ K_i$ и $ P_j$ соответственно; очевидно, что число векторов $ P_j$, удовлетворяющих этому условию, равно $ p^3-p^2$). После этого вектор $ P_j$ делается общедоступным.

Таким образом, в процессе выполнения протокола для каждого класса безопасности $ C_i$ вырабатываются секретный ключ $ K_i$ и открытый ключ $ P_j$ (кроме корневого класса). Если теперь $ C_j<C_i$, то абонент из $ C_i$ может вычислить $ K_j$ следующим образом. Существует цепь классов безопасности $ C_i=C_{r_0}>C_{r_1}>C_{r_2}>\ldots>C_{r_n}=C_j$, где $ C_{l-1}$ непосредственно доминирует $ C_l$ для всех $ l=1,\ldots,n$. Абонент из $ C_i$, зная $ K_i$ и $ P_{r_1}$, вычисляет $ K_{r_1}$ по формуле (1), затем, зная $ K_{r_1}$ и $ P_{r_2}$, вычисляет $ K_{r_2}$ по той же формуле и т. д.; после $ n$ шагов будет вычислен $ K_{r_n}=K_j$.

Авторы [WC] также пытаются доказать, что если класс $ C_i$ непосредственно доминирует класс $ C_j$, то абоненты из $ C_j$ не могут вычислить $ K_i$, даже если вступят в сговор с абонентами из двух других классов, которые также непосредственно доминирует $ C_i$. Однако доказательство содержит грубые логические ошибки и не может быть признано состоятельным.


Вперед Вверх Назад Содержание Предметный указатель
Вперед: 6.3 Теоретические результаты Вверх: 6.2 Виды протоколов распределения ключей Назад: 6.2.2.2 Стойкость против многоканального подслушивания   Содержание   Предметный указатель


Проект осуществляется при поддержке:
Геологического факультета МГУ,
РФФИ
   
TopList Rambler's Top100