11.4. Схемы с доверенным центром

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

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

11.4.1. Схема Жиро

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

Предварительно:

sequencediagram AliceAlice 3BobBob Alice$ I_A, P_A, t = g^{R_A} \bmod n $Bob Bob$ R_B $Alice Alice$ y = R_A + s_A \times R_B \bmod n $Bob
Рис. 11.20 — Протокол аутентификации Жиро

Протокол аутентификации сторон в общем случае выглядит следующим образом (рис. 11.20).

samepage==
  • Алиса выбирает случайное $R_A$.
  • $Alice \to \left\{ I_A, P_A, t = g^{R_A} \bmod n \right\} \to Bob$
  • Боб выбирает случайное $R_B$.
  • $Bob \to \left\{ R_B \right\} \to Alice$
  • $Alice \to \left\{ y = R_A + s_A \times R_B \bmod n \right\} \to Bob$
  • Боб вычисляет $v_A = P_A^e + I_A \bmod n $;
  • Боб проверяет, что $t = g^ y v_A^{R_B} \bmod n$.
sequencediagram AliceAlice 3BobBob Alice$ P_A, I_A $Bob Bob$ P_B, I_B $Alice
Рис. 11.21 — Схема Жиро

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

samepage==
  • $Alice \to \left\{ P_A, I_A \right\} \to Bob$
  • Боб вычисляет $K_{BA} = (P_A^e + I_A)^{s_B} \bmod n$.
  • $Bob \to \left\{ P_B, I_B \right\} \to Alice$
  • Алиса вычисляет $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), так как только легальные пользователи смогут вычислить корректное значение общего сессионного ключа.

11.4.2. Схема Блома

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

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

equation K_i = D_m,m I_i.
sequencediagram AliceAlice 3BobBob Alice$ I_A $Bob Bob$I_B $Alice callselfAlice$K_{AB} = K^T_A I_B$ callselfBob$K_{BA} = K^T_B I_A$
Рис. 11.22 — Схема Блома

Симметричность матрицы $D_{m,m}$ доверенного центра позволяет любым двум участникам сети создать общий сеансовый ключ. Пусть Алиса и Боб – легальные пользователи сети, то есть они обладают открытыми ключами $I_A$ и $I_B$ соответственно, а их закрытые ключи $K_A$ и $K_B$ были вычислены одним и тем же доверенным центром по формуле [eq:blom_center_matrix]. Тогда протокол выработки общего секретного ключа выглядит следующим образом (рис. 11.22).

samepage==
  • $Alice \to \left\{ I_A \right\} \to Bob$
  • Боб вычисляет $K_{BA} = K^T_B I_A = I^T_B D_{m,m} I_A$.
  • $Bob \to \left\{ I_B \right\} \to Alice$
  • Алиса вычисляет $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, подтвердила, что криптоаналитикам удалось найти секретную матрицу (точнее, аналогичную ей), используемую для генерации ключей в упомянутой системе предотвращения копирования высококачественного видеосигнала.