Схема Блома: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Добавил ссылки на источники, написал более подробно описание схемы, расписал подробнее математические формулы.
Строка 1: Строка 1:
{{Другие значения|Блом}}
{{Другие значения|Блом}}
'''Схема Блома''' — в [[криптография|криптографии]], схема распределения ключей. Данная схема была представлена Рольфом Бломом в начале 1980-ых<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-1-4757-0602-4_22|автор=Rolf Blom|заглавие=Non-Public Key Distribution|год=1983|место=Boston, MA|издание=Advances in Cryptology|издательство=Springer US|страницы=231–236|isbn=978-1-4757-0604-8, 978-1-4757-0602-4}}</ref><ref>{{Статья|ссылка=http://link.springer.com/10.1007/3-540-39757-4_22|автор=Rolf Blom|заглавие=An Optimal Class of Symmetric Key Generation Systems|год=1985|ответственный=Thomas Beth, Norbert Cot, Ingemar Ingemarsson|язык=en|место=Berlin, Heidelberg|издание=Advances in Cryptology|издательство=Springer Berlin Heidelberg|том=209|страницы=335–338|isbn=978-3-540-16076-2|doi=10.1007/3-540-39757-4_22}}</ref>.
'''Схема Блома''' — в [[криптография|криптографии]], схема распределения ключей.


В схеме Блома доверенная сторона раздаёт каждому участнику [[открытый ключ|открытый]] и [[закрытый ключ]]. Участники, обмениваясь между собой только открытыми ключами по незащищённым каналам связи, могут сгенерировать секретный [[сеансовый ключ]] для общения между собой.
В схеме Блома доверенная сторона генерирует секретную симметричную [[Матрица (математика)|матрицу]] над [[Конечное поле|конечным полем]]. Далее участники самостоятельно или при помощи доверенной стороны создают себе [[открытый ключ]]. После этого доверенная сторона, используя секретную матрицу, создает [[закрытый ключ]] каждому пользователю. Участники, обмениваясь только открытыми ключами по незащищённым каналам связи, могут сгенерировать секретный [[сеансовый ключ]] для общения между собой.


Надёжность схемы напрямую зависит от размера секретной матрицы, используемой в схеме. Для восстановления секретной матрицы (точнее, любой выполняющей аналогичную функцию) необходимо иметь число ключей, равное количеству строк матрицы.
Присоединение новых участников к схеме строго контролируется доверенной стороной, что позволяет защитить сеть от нелегальных пользователей. Надёжность данной схемы основывается на сложности восстановления секретной матрицы. Для восстановления матрицы необходимо иметь число ключей, равное количеству строк матрицы<ref>{{Книга|автор=Владимиров С.М. и др.|заглавие=Учебное пособие по защите информации кафедры радиотехники и систем управления МФТИ|год=2019}}</ref>


Схема используется в протоколе [[HDCP]] в целях защиты видео от копирования.
Схема Блома используется в протоколе [[HDCP]] в целях защиты видео от копирования<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/3-540-47870-1_12|автор=Scott Crosby, Ian Goldberg, Robert Johnson, Dawn Song, David Wagner|заглавие=A Cryptanalysis of the High-Bandwidth Digital Content Protection System|год=2002|место=Berlin, Heidelberg|издание=Security and Privacy in Digital Rights Management|издательство=Springer Berlin Heidelberg|страницы=192–200|isbn=978-3-540-43677-5, 978-3-540-47870-6}}</ref>.


== Описание протокола ==
== Описание протокола ==
Строка 21: Строка 21:
Если два участника хотят установить между собой секретный канал, они посылают друг другу по открытому каналу свои открытые ключи. Далее каждый из них умножает свой закрытый ключ на открытый ключ другой стороны. Если <math>I_A, g_A</math> — открытый и закрытый ключ одной стороны, <math>I_B, g_B</math> — ключи другой стороны, то:
Если два участника хотят установить между собой секретный канал, они посылают друг другу по открытому каналу свои открытые ключи. Далее каждый из них умножает свой закрытый ключ на открытый ключ другой стороны. Если <math>I_A, g_A</math> — открытый и закрытый ключ одной стороны, <math>I_B, g_B</math> — ключи другой стороны, то:
: <math>\begin{align}
: <math>\begin{align}
D &= D^T\\
s_A &= (g^t_A I_B)^t &= (I^t_A D I_B)^t &= I^t_B D I_A\\
s_B &= (g^t_B I_A)^t &= (I^t_B D I_A)^t &= I^t_A D I_B\\
s_A &= g^T_A I_B = I^T_A D I_B = (I_B D I^T_A)^T = I^T_B D^T I_A = I^T_B D I_A \\
s_B &= g^T_B I_A = I^T_B D I_A\\
s_A &= s_B \\
s_A &= s_B \\
\end{align}</math>
\end{align}</math>


В результате у них получится одно и тоже число (это следует из симметричности матрицы <math>D</math>), которое и будет использоваться как общий сеансовый ключ.
В результате у них получится одно и тоже число, которое и будет использоваться как общий сеансовый ключ. Выражение <math>\begin{align} D = D^T \end{align}</math>следует из симметричности матрицы.


=== Надёжность схемы ===
=== Надёжность схемы ===
Строка 33: Строка 34:
== Пример ==
== Пример ==
; Инициализация
; Инициализация
Доверенный центр выбирает размер конечного поля и секретную матрицу:
Пусть Алиса и Боб хотят выработать общий сеансовый ключ для общения между собой. Доверенный центр выбирает размер конечного поля и секретную матрицу:
:<math>\begin{align}
:<math>\begin{align}
p &= 17\\
p &= 17\\
Строка 47: Строка 48:


; Вычисление общего секретного ключа
; Вычисление общего секретного ключа
Пусть теперь Алисе и Бобу нужно вычислить общий секретный ключ. Алиса передаёт Бобу свой идентификатор, а Боб — свой Алисе. После чего каждая из сторон вычисляет секретный ключ, умножая свой закрытый ключ на идентификатор второй стороны:
Алиса передаёт Бобу свой идентификатор, а Боб — свой Алисе. После чего каждая из сторон вычисляет секретный ключ, умножая свой закрытый ключ на идентификатор второй стороны:


<math>\begin{align}
<math>\begin{align}
k_{\mathrm{Alice / Bob}} &= g_{\mathrm{Alice}}^t I_{\mathrm{Bob}} &= \begin{pmatrix} 0\\0\\6 \end{pmatrix}^t \begin{pmatrix} 1\\3\\15 \end{pmatrix} &= 0 \times 1 + 0 \times 3 + 6 \times 15 &= 5\ \mathrm{mod}\ 17\\
k_{\mathrm{Alice / Bob}} &= g_{\mathrm{Alice}}^T I_{\mathrm{Bob}} &= \begin{pmatrix} 0\\0\\6 \end{pmatrix}^T \begin{pmatrix} 1\\3\\15 \end{pmatrix} &= 0 \times 1 + 0 \times 3 + 6 \times 15 &= 5\ \mathrm{mod}\ 17\\
k_{\mathrm{Bob / Alice}} &= g_{\mathrm{Bob}}^t I_{\mathrm{Alice}} &= \begin{pmatrix} 15\\16\\5 \end{pmatrix}^t \begin{pmatrix} 3\\10\\11 \end{pmatrix} &= 15 \times 3 + 16 \times 10 + 5 \times 11& = 5\ \mathrm{mod}\ 17
k_{\mathrm{Bob / Alice}} &= g_{\mathrm{Bob}}^T I_{\mathrm{Alice}} &= \begin{pmatrix} 15\\16\\5 \end{pmatrix}^T \begin{pmatrix} 3\\10\\11 \end{pmatrix} &= 15 \times 3 + 16 \times 10 + 5 \times 11& = 5\ \mathrm{mod}\ 17
\end{align}</math>
\end{align}</math>


== Литература ==
== Литература ==
# Blom, Rolf. Non-public key distribution. In Proc. CRYPTO 82, pages 231–236, New York, 1983. Plenum Press
* {{source|Q27134582|ref=Blom|ref-year=1985}} <!-- An optimal class of symmetric key generation systems // EUROCRYPT ’84 -->
* {{source|Q21725116|ref=Menezes, Oorschot, Vanstone|ref-year=1996}} <!-- Handbook of Applied Cryptography -->
# {{source|Q27134582|ref=Blom|ref-year=1985}}
# ''Владимиров С.М. и др.'' Учебное пособие по защите информации кафедры радиотехники и систем управления МФТИ (6 сентября 2013).

# Crosby, Scott; Goldberg, Ian; Johnson, Robert; Song, Dawn; Wagner, David (2002). ''A Cryptanalysis of the High-Bandwidth Digital Content Protection System''. ''Security and Privacy in Digital Rights Management. DRM 2001.''
# {{source|Q21725116|ref=Menezes, Oorschot, Vanstone|ref-year=1996}}
[[Категория:Криптографические протоколы]]
[[Категория:Криптографические протоколы]]

Версия от 14:27, 22 февраля 2022

Схема Блома — в криптографии, схема распределения ключей. Данная схема была представлена Рольфом Бломом в начале 1980-ых[1][2].

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

Присоединение новых участников к схеме строго контролируется доверенной стороной, что позволяет защитить сеть от нелегальных пользователей. Надёжность данной схемы основывается на сложности восстановления секретной матрицы. Для восстановления матрицы необходимо иметь число ключей, равное количеству строк матрицы[3]

Схема Блома используется в протоколе HDCP в целях защиты видео от копирования[4].

Описание протокола

Инициализация

Доверенная сторона выбирает симметричную матрицу над конечным полем .

Добавление участника

Когда новый участник хочет присоединиться к группе, доверенная сторона выбирает для него новый открытый ключ, который представляет собой вектор (столбец) размера . Далее доверенная сторона вычисляет закрытый ключ :

Открытый и закрытый ключ сообщаются участнику по надёжному каналу без прослушивания.

Установление сессии

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

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

Надёжность схемы

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

Пример

Инициализация

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

Алиса и Боб выбирают себе идентификаторы (также могут выдаваться доверенным центром):

Доверенный центр вычисляет Алисе и Бобу закрытые ключи:

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

Алиса передаёт Бобу свой идентификатор, а Боб — свой Алисе. После чего каждая из сторон вычисляет секретный ключ, умножая свой закрытый ключ на идентификатор второй стороны:

Литература

  1. Blom, Rolf. Non-public key distribution. In Proc. CRYPTO 82, pages 231–236, New York, 1983. Plenum Press
  2. Blom R. An optimal class of symmetric key generation systems (англ.) // Advances in Cryptology — EUROCRYPT ’84: A Workshop on the Theory and Application of Cryptographic Techniques Paris, France, April 9–11, 1984. Proceedings of / T. Beth, N. Cot, I. IngemarssonSpringer-Verlag New York, 1985. — P. 335—338. — ISBN 978-3-540-16076-2doi:10.1007/3-540-39757-4_22
  3. Владимиров С.М. и др. Учебное пособие по защите информации кафедры радиотехники и систем управления МФТИ (6 сентября 2013).
  4. Crosby, Scott; Goldberg, Ian; Johnson, Robert; Song, Dawn; Wagner, David (2002). A Cryptanalysis of the High-Bandwidth Digital Content Protection System. Security and Privacy in Digital Rights Management. DRM 2001.
  5. Menezes A. J., Oorschot P. v., Vanstone S. A. Handbook of Applied Cryptography (англ.)CRC Press, 1996. — 816 p. — (Discrete Mathematics and Its Applications) — ISBN 978-0-8493-8523-0
  1. Rolf Blom. Non-Public Key Distribution // Advances in Cryptology. — Boston, MA: Springer US, 1983. — С. 231–236. — ISBN 978-1-4757-0604-8, 978-1-4757-0602-4.
  2. Rolf Blom. An Optimal Class of Symmetric Key Generation Systems (англ.) // Advances in Cryptology / Thomas Beth, Norbert Cot, Ingemar Ingemarsson. — Berlin, Heidelberg: Springer Berlin Heidelberg, 1985. — Vol. 209. — P. 335–338. — ISBN 978-3-540-16076-2. — doi:10.1007/3-540-39757-4_22.
  3. Владимиров С.М. и др. Учебное пособие по защите информации кафедры радиотехники и систем управления МФТИ. — 2019.
  4. Scott Crosby, Ian Goldberg, Robert Johnson, Dawn Song, David Wagner. A Cryptanalysis of the High-Bandwidth Digital Content Protection System // Security and Privacy in Digital Rights Management. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2002. — С. 192–200. — ISBN 978-3-540-43677-5, 978-3-540-47870-6.