forked from vlsergey/infosec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsecret-sharing-xor.tex
27 lines (21 loc) · 3.52 KB
/
secret-sharing-xor.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$ последовательностей не определяет секрета, а перебор невозможен, так как данная схема разделения секрета аналогична криптосистеме Вернама и обладает совершенной криптостойкостью.