forked from vlsergey/infosec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
xor_secret_sharing.tex
27 lines (21 loc) · 3.52 KB
/
xor_secret_sharing.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
\subsection[$(N, N)$-схема]{$(N, N)$-схема распределения секрета}
\selectlanguage{russian}
Рассмотрим пороговую схему распределения одного секрета двум легальным пользователям. Она обозначается $(2,2)$-схема -- это означает, что оба и только оба пользователя могут получить секрет. Предположим, что секрет $K_{0}$ -- это двоичная последовательность длины $M$, $K_{0} \in \Z_{M}$.
Распределение секрета $K_{0}$ состоит в следующем.
\begin{itemize}
\item Первый пользователь в качестве секрета получает случайную двоичную последовательность $A_{1}$ длины $M$.
\item Второй пользователь в качестве секрета получает случайную двоичную последовательность $A_{2} =K_{0} \oplus A_{1}$ длины $M$.
\item Для получения секрета $K_{0}$ оба пользователя должны сложить по модулю 2 свои секретные ключи (последовательности) $K_{0} = A_{2} \oplus A_{1}$.
\end{itemize}
Теперь рассмотрим пороговую $(N,N)$-схему.
Имеется общий секрет $K_{0} \in \Z_{M}$ и $N$ легальных пользователей, которые могут получить секрет только в случае, если одновременно предъявят свои секретные ключи. Распределение секрета $K_{0}$ происходит следующим образом.
\begin{itemize}
\item Первый пользователь в качестве секрета получает случайную двоичную последовательность $A_{1} \in \Z_{M}$.
\item Второй пользователь в качестве секрета получает случайную двоичную последовательность $A_{2}\in \Z_{M}$ и т.д.
\item $(N-1)$-й пользователь в качестве секрета получает случайную двоичную последовательность $A_{N-1}\in \Z_{M}$.
\item $N$-й пользователь в качестве секрета получает двоичную последовательность
\[ K_0 \oplus A_1 \oplus A_2 \oplus \dots \oplus A_{N-1}. \]
\item Для получения секрета $K_0$ все пользователя должны сложить по модулю 2 свои последовательности:
\[ A_1 \oplus A_2 \oplus \dots \oplus A_{N-1} \oplus (K_0 \oplus A_1 \oplus A_2 \dots \oplus A_{N-1}) = K_0. \]
\end{itemize}
Предположим, что собравшихся вместе пользователей меньше общего числа $N$, например всего $N-1$ первых пользователей. Тогда суммирование $N-1$ последовательностей не определяет секрета, а перебор невозможен, так как данная схема разделения секрета аналогична криптосистеме Вернама и обладает совершенной криптостойкостью.