Как стать автором
Обновить

Схемы распределения ключей с доверенным центром: схемы Жиро и Блома

Время на прочтение 3 мин
Количество просмотров 3.3K
Предисловие
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам. Предыдущие разделы главы «Криптографически протоколы»: 1, 2, 3, 4

Схемы распределения ключей с доверенным центром состоят из трёх этапов.

  1. На первом этапе доверенный центр создаёт некоторый секрет, известный только ему. Это может быть некоторая секретная матрица с особыми свойствами, как в схеме Блома, или пара из закрытого и открытого ключей, как в схеме Жиро.
  2. Для каждого нового легального участника сети доверенный центр, используя свою секретную информацию, вырабатывает некоторый отпечаток или сертификат, который позволяет новому участнику вырабатывать сеансовые ключи с другими легальными участниками.
  3. Наконец, на третьем этапе, когда начинается протокол общения двух легальных участников, они предъявляют друг-другу идентификаторы и/или дополнительную информацию от доверенного центра. Используя её, без дополнительного обращения к центру, они могут сгенерировать секретный сеансовый ключ для общения между собой.

Схема Жиро


В схеме Жиро (фр. Marc Girault) надёжность строится на стойкости криптосистемы RSA (сложности факторизации больших чисел и вычисления дискретного корня).

Предварительно:
  • Доверенный центр (Трент, $T$):
    • выбирает общий модуль $n = p \times q$, где $p$ и $q$ — большие простые числа;
    • выбирает пару из закрытого и открытого ключей $K_{T, \text{public}}: (e, n)$ и $K_{T, \text{private}}: (d, n)$;
    • выбирает элемент $g$ поля $\mathbb{Z}_n^{\times}$ максимального порядка;
    • публикует в общедоступном месте параметры схемы $n$, $e$ и $g$.
  • Каждый из легальных участников:
    • выбирает себе закрытый ключ $s_i$ и идентификатор $I_i$;
    • вычисляет и отправляет доверенному центру $v_i = g^{-s_i} \bmod n$;
    • используя протокол аутентификации сторон (см. ниже) легальный участник доказывает доверенному центру, что владеет закрытым ключом, не раскрывая его значение;
    • получает от доверенного центр свой открытый ключ:

В результате для каждого участника, например, Алисы, которая владеет $P_A, I_A, s_a$ будет выполняться утверждение:

$ P_A^e + I_A = g^{-s_A} \mod n. $


Протокол аутентификации сторон в общем случае выглядит следующим образом.
Взаимодействия участников в протоколе идентификации Жиро

  1. Алиса выбирает случайное $R_A$.
    $Alice \to \left\{ I_A, P_A, t = g^{R_A} \right\} \to Bob$
  2. Боб выбирает случайное $R_B$.
    $Bob \to \left\{ R_B \right\} \to Alice$
  3. $Alice \to \left\{ y = R_A + s_A \times R_B \right\} \to Bob$
  4. Боб вычисляет $v_A = P_A^e + I_A$;
    Боб проверяет, что $g^ y v_A^{R_B} = t$.

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

  1. $Alice \to \left\{ P_A, I_A \right\} \to Bob$
  2. Боб вычисляет $K_{BA} = (P_A^e + I_A)^{s_B} \bmod n$.
    $Bob \to \left\{ P_B, I_B \right\} \to Alice$
  3. Алиса вычисляет $K_{AB} = (P_B^e + I_B)^{s_A} \bmod n$.

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

$K_{AB} = (P_A^e + I_A)^{s_B} = (g^{-s_A})^{s_B} = g^{-s_As_B} \mod n;$


$K_{BA} = (P_B^e + I_B)^{s_A} = (g^{-s_B})^{s_A} = g^{-s_As_B} \mod n;$


$K = K_{AB} = K_{BA} = g^{-s_As_B} \mod n.$


Схема обеспечивает аутентификацию ключа (цель G7), так как только легальные пользователи смогут вычислить корректное значение общего сессионного ключа.

Схема Блома


Схема Блома (англ. Rolf Blom) используется в протоколе HDCP (англ. High-bandwidth Digital Content Protection) для предотвращения копирования высококачественного видеосигнала. Предполагается, что некоторый доверенный центр распределит ключи таким образом, что легальные производители видеокарт, мониторов высокого разрешения и других компонент будут передавать видеоконтент по защищённому каналу, а «пиратские» устройства не смогут эти данные перехватить, и, например, записать на другой носитель.

На этапе инициализации доверенный центр выбирает симметричную матрицу $D_{m,m}$ над конечным полем $\mathbb{GF} p$. Для присоединения к сети распространения ключей, новый участник либо самостоятельно, либо с помощью доверенного центра выбирает новый открытый ключ (идентификатор) $I_i$, представляющий собой вектор длины $m$ над $\mathbb{GF} p$. Доверенный центр вычисляет для нового участника закрытый ключ $K_i$:

$K_i = D_{m,m} I_i.$


Симметричность матрицы $D_{m,m}$ доверенного центра позволяет любым двум участникам сети создать общий сеансовый ключ. Пусть Алиса и Боб — легальные пользователи сети, то есть они обладают открытыми ключами $I_A$ и $I_B$ соответственно, а их закрытые ключи $K_A$ и $K_B$ были вычислены одним и тем же доверенным центром по формуле выше. Тогда протокол выработки общего секретного ключа выглядит следующим образом.
Взаимодействие участников в схеме Блома

  1. $Alice \to \left\{ I_A \right\} \to Bob$
  2. Боб вычисляет $K_{BA} = K^T_B I_A = I^T_B D_{m,m} I_A$.
    $Bob \to \left\{ I_B \right\} \to Alice$
  3. Алиса вычисляет $K_{AB} = K^T_A I_B = I^T_A D_{m,m} I_B$.

Из симметричности матрицы $D_{m,m}$ следует, что значения $K_{AB}$ и $K_{BA}$ совпадут, они же и будут являться общим секретным ключом для Алисы и Боба. Этот секретный ключ будет свой для каждой пары легальных пользователей сети.

Присоединение новых участников к схеме строго контролируется доверенным центром, что позволяет защитить сеть от нелегальных пользователей. Надёжность данной схемы основывается на невозможности восстановить исходную матрицу. Однако для восстановления матрицы доверенного центра размера $m \times m$ необходимо и достаточно всего $m$ пар линейно независимых открытых и закрытых ключей. В 2010-м году компания Intel, которая является «доверенным центром» для пользователей системы защиты HDCP, подтвердила, что криптоаналитикам удалось найти секретную матрицу (точнее, аналогичную ей), используемую для генерации ключей в упомянутой системе предотвращения копирования высококачественного видеосигнала.
Послесловие
Автор будет благодарен за фактические и другие замечания к тексту.
Теги:
Хабы:
+10
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн