Шифр Вернама (одноразовый блокнот)

Материал из Викиконспекты
Перейти к: навигация, поиск
НЕТ ВОЙНЕ

24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.

Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.

Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.

Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.

Антивоенный комитет России

Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки.

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

[math]E_k(x_1) = x_1 \oplus k[/math]

[math]D_k(x_1 \oplus k \oplus k) = x_1[/math]

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

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

Доказательство абсолютной секретности:

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