Шифр Вернама (одноразовый блокнот) — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 5: Строка 5:
 
Легко заметить, что нельзя использовать один и тот же ключ несколько раз - при кодировании одинаковых сообщений с одинаковым ключом, полученные сообщения также будут одинаковыми, что позволит анализировать передаваемые сообщения.
 
Легко заметить, что нельзя использовать один и тот же ключ несколько раз - при кодировании одинаковых сообщений с одинаковым ключом, полученные сообщения также будут одинаковыми, что позволит анализировать передаваемые сообщения.
  
<tex>E_k(x_1) = x_1 xor k</tex>
+
Доказательство:
 
+
Пусть кодируемое слово -- <tex>x</tex>, ключ <tex>k</tex>, <tex> y = x \xor k </tex>. Таким образом <tex>P(y=y_0) = P(k = y_o \xor x)</tex>
<tex>D_k(x_2) = x_2 xor k</tex>
+
Заметим, что при фиксированном <tex>x</tex>, каждому случайному <tex>k</tex> соответствует ровно один <tex>y</tex>, а значит и распределение y будет совпадать с распределением ключа, из чего следует, что <tex>\forall x_1 \neq x_2  f(y_1 \xor k) =  f(y_2 \xor k)</tex>, что и требовалось доказать.
 +
<tex>E_k(x_1) = x_1 \xor k</tex>
 +
<tex>D_k(x_1 \xor k \xor k) = x_1</tex>

Версия 14:40, 27 мая 2010

Шифр Вернама (одноразовый блокнот) - единственный известный абсолютно секретный шифр. Он основан на том, что сообщение кодируется побитовым xor с одноразовым ключом, длина которого не меньше длины передаваемого сообщения.

Шифр назван в честь телеграфиста Гильберта Вернама, который сконструировал телеграфный аппарат, автоматически кодирующий сообщения таким методом (ключ подавался на отдельной ленте).

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

Доказательство: Пусть кодируемое слово -- [math]x[/math], ключ [math]k[/math], [math] y = x \xor k [/math]. Таким образом [math]P(y=y_0) = P(k = y_o \xor x)[/math] Заметим, что при фиксированном [math]x[/math], каждому случайному [math]k[/math] соответствует ровно один [math]y[/math], а значит и распределение y будет совпадать с распределением ключа, из чего следует, что [math]\forall x_1 \neq x_2 f(y_1 \xor k) = f(y_2 \xor k)[/math], что и требовалось доказать. [math]E_k(x_1) = x_1 \xor k[/math] [math]D_k(x_1 \xor k \xor k) = x_1[/math]