Если ифнормация, переданная в сообщении, известна заранне, или a priori, то количество ифнормации, переданной в сообщении, равно нулю. Потому что ничего нового из сообщения мы не узнали.
Но если ифнормация, которая подтверждается сообщением, еще не известна точно, но только с некоторой вероятностью $p$? Тогда сообщение, очевидно, содержит новую информацию.
Пример: вы капитан корабля и вы знаете, что половина всех кораблей в Карибском море - пиратские. Корабль, который вы видите, еще не поднял флага, и вы не знаете, что это за корабль.
Как только флаг поднят, вы получаете повую порцию информации - так как другой корабль передал вам сообщение, обозначил себя как пиратский или "мирный".

Хороший вопрос - как измерять количество переданной в сообщении информации?
Некоторое "наивное" представление говорит, что количество переданной в сообщении информации может быть сзязано с битами. Логично предположить, что флаг корабля можно представить как один бит информации:
$$\{0 - корабль\ обычный, 1 - корабль\ пирасткий\}$$Подняли флаг - передали один бит. Но, вообще говоря, это верно не всегда, а только когда корабли рапределены поровну между пиратами и "не пиратами".
Более реалистичная ситуация - допустим, всего $\dfrac{1}{8}$ кораблей является пиратскими.
Итак, капитан корабля предполагает, что с вероятностью 1/8 другой корабль является пиратским. Равноценно ли "сообщение", которое передает флаг,
Казалось бы, все равно. Но на самом деле, информация о болеее редком, менее вероятном событии представляет больший интерес (не только с точки зрения теории информации, но и с точки зрения капитана, т.е. условного "получателя сообщения").
И сколько информации при этом будет передано?
Если товарищ подсказывает, какой из двух ответов на вопрос теста правильный, он передает вам 1 бит информации.
А если подсказать два ответа на два вопроса, с двумя вариантами ответов каждый?
По идее, должно быть два бита.
Если вероятность события $w_i$ равна 1 (всех пиратов поймали), то передача информации (подъем флага) не несет важной ифнормации; количество переданной информации должно быть равно $I(w_i) = 0$.
Если вероятность события $w_i$ меньше нуля, то количество информации $I(w_i) > 0$
Если два независимых события происходят "одновременно", то количество информации, переданное в сообщении о том, что случились эти два события, должна быть равна сумме ифнормации сообщений об отдельных событиях.
То есть, например,
$I(Пиратский, Испанский) = I(Пиратский) + I(Испанский) $
Та же логика с подсказкой ответов на тесты:
$I(Ответ\ 1, Ответ\ 2) = I(Ответ\ 1) + I(Ответ\ 2) $
Важно! В случае, если один из правильных ответов вам известен (например, ответ на второй вопрос) - количество информации, переданной во втором сообщении будет равно нулю. Потому что это событие уже определено для вас, вероятность его равна $1$.
Так что тогда, фактически, вам передали $1$ бит новой информации.
Определим функцию, которая удовлетворяет критириям, перечисленным выше, и "превращает" вероятнсоть события в собственную информацию.
$$ \begin{align} I(w_1\cap w_2) &= I(w_1) + I(w_2) \notag \\ f(P(w_1\cap w_2)) &= f(P(w_1)) + f(P(w_2)) \notag \\ &= f(P(w_1)\cdot P(w_2)) \notag \\ \end{align} $$Последнее равенство верно, потому что вероятность одновременного появления двух независимых событий равна произведению вероятнсотей этих событий.
Окей, что за функция $f(x\cdot y) = f(x) + f(y)$?
Логарифм! Точнее, здесь используется $K\log {x}$
Так как $0 \leq P(w_i) \leq 1$, их логарифм будет отрицательным. Отсюда вытекает значение константы $K < 0$. Для "бинарного" случая и двоичного логарифма используется $-1$.
В итоге,
$I(P(w_i)) = -\log_2 {P(w_i)} = \log_2 {\dfrac{1}{P(w_i)}} $
Как вариант, информацию иногда записывают через случайную переменную $X$ для состояния переменной $x$:
$I_X(x) = -\log_2 {p_X(x)} = \log_2 {\dfrac{1}{p_X(x)}} $
Для энтропии, определенной через двоичный логарифм, единица измерений - бит (что особенно хорошо совместимо с ситуацией, когда появления "значений" равновероятны и неопределны - 1 бит - 1 бит :) ).
Энтропия в теории информации - это математическое ожидание собственной ифнормации.
$$H(X) = E[I(X)] = E[-log {P(X)}]$$Если предположить, что $X$ может принимать $n$ значений с вероятностями $\{P(x_1), P(x_2), ..., P(x_n)\}$ - как записать математическое ожидание?
Энтропия Шеннона:
$H(X) = - \sum\limits_{i=1}^{n}P(x_i) \cdot \log {P(x_i)}$
Шеннон основывал свои рассуждения на следующих свойствах энтропии:
для который отлично подходит (если решить определенную систему дифференциальных уравнений) функция $I(x) = k \log{x}$.
За N сообщений конкретная реализация $w_i$ случится $NP(w_i) = n_i$ раз, тогда для всех событий будет
$$\sum\limits_{i}n_i I(w_i) = -\sum\limits_{i}NP(w_i)\log {P(w_i)}$$поделим на $N$, получим среднее количество информации (мат. ожидание) на одно событие
$$ - \sum\limits_{i}P(w_i)\log {P(w_i)}$$$$ \sum\limits_{i}P(w_i) I(w_i)$$Совместная энтропия базируется на совместной вероятности (совместное распределение). Та же идея, что и для энтропии Шеннона, но уже для набора переменных.
Например, в нашем "пиратском" случае можно говорить о совместном распределении типа корабля и национальной принадлежности корабля. При этом "пиратскость" и национальность, скорее всего, не независимые переменные.
Для броска двух игральных костей также можно построить совместное распределение.
Совместная энтропия:
$$H(X_1, ..., X_n) = - \sum\limits_{x_1 \in X_1, ..., x_n \in X_n} p(x_1, ..., x_n) \log {p(x_1, ...,x_n)}$$Условная энтропия - это энтропия события $Y$ при условии события $X$. Фактически, это матожидание количества информации, которое передается в $Y$, когда значение $X$ известно.
$$H(Y|X) = -\sum\limits_{x \in X, y \in Y} p(x,y) \log{\dfrac{p(x,y)}{p(x)}}$$$0 \log {c/0}$ по соглашению равен $0$ (также это значение $\lim\limits_{x \to +0}x \log {c/x}$)
Здесь $p(x, y)$ - вероятность совместного появления $x$ и $y$.
Условная энтропия нужна, когда события $x,y$ зависимы. Например, пиратов может быть больше среди испанцев, тогда информация о том, что капитан - испанец, несколько "снижает" ценность последующей информации о том, что корабль - пиратский.
Окей. Допустим, в акватории есть только испанские и голландские корабли, голандских кораблей - $1/4$, распределение пиратских и торговых кораблей такое:
P. M.
D. 1/8 7/8
S. 1/4 3/4
Какова энтропия $H(Y|X) = \sum\limits_{x \in X}H(Y|X = x)$?
То есть сколько в среднем мы получим информации, зная, пиратский корабль, или нет?
$$ \begin{align} H(Y,X) &= - \bigg(\dfrac{p(D,P)log(D,P) + p(D,M)log(D,M)}{p(D)} + \dfrac{p(S,P)log(S,P) + p(S,M)log(S,M)}{p(S)}\bigg) \notag \\ &= - \bigg(\dfrac{1/8 \cdot log(1/8) + 7/8 \cdot log(7/8)}{1/4} + \dfrac{1/4 \cdot log(1/4) + 3/4 \cdot log(3/4)}{3/4} \bigg) \notag \\ &=3.256 \end{align} $$Когда $H(Y|X) = H(Y)$?
(опишите зависимость $X$ и $Y$)
$H(Y|X) = 0$, когда $Y$ полностью определено $X$
$H(Y|X) = H(X,Y) - H(X)$
$H(X_1, X_2, ..., X_n) = \sum\limits_{i=1}^{n}H(X_i|X_1, X_2, ...,X_{i-1})$
Формула, аналогичная chain rule для вероятности:
$\mathrm P(X_n \cap \ldots \cap X_1) = \prod_{i=1}^n \mathrm P\left(X_i \,\Bigg|\, \bigcap_{j=1}^{i-1} X_j\right)$
Вообще, формулы для вероятности, имеющие "осмысленные" аналоги для энтропии, получаются заменой деления/умножения вычитанием/сложением.
Старая, добрая $GATTACA$. Давайте оценим оптимальность кодировки.
$M = \{A, C, G, T\}$
$P(A) = 3/7, P(T) = 2/7, P(C) = P(G) = 1/7$
$$ \begin{align} &A \to 0 \notag \\ &T \to 10 \notag \\ &C \to 111 \notag \\ &G \to 110 \notag \\ \end{align} $$Сколько бит информации в среднем требуется, чтобы передать один символ?
$\sum\limits_i p(M_i) \cdot (bits\ of\ M_i) = 2.1429$
А какой теоретический предел сжатия информации для данного набора символов и текста?
$H(M) = \sum\limits_i p(M_i) \log {p(M_i)} = 1.8424$
Уже более практическая вещь: она встретится в контексте кодировок, а так же связана с максимально возможным сжатием.
Определяется через "плотность информации" от случайного процесса (rate):
$$r = \lim\limits_{n \to \inf} \dfrac{1}{n}H(M_1, M_2, ...,M_n)$$$M = \{M_1, M_2, ...,M_n\}$ - символы алфавита
$R = \log |M|$ - максимальное количество информации, которе может быть передано при помощи алфавита $M$, если кодировка не избыточна. "Идеальные улсовия" - если текущее состояние не зависит от предыдущих, появления символов равновероятны.
Абсолютная избыточность - $D = R - r$; Относителльная избыточность -
$$\dfrac{R-r}{R} = \dfrac{\log{|M|} - \lim\limits_{n \to \inf} \dfrac{1}{n}H(M_1, M_2, ...,M_n)}{\log {|M|}}$$- равна максимальному теоретически возможному сжатию источника данных (вспомните алгоритмы, которые разбирали на прошлом занятии).
Строка 'ACACACAC...' - всегда только из 'AC'
$M = \{a, b\}$
$R = \log {2} = 1$
$r = 1/2$
$( R - r )/ R = 1/2$; строку можно сжать в два раза
TBD:
Полезна как теоретический критерий для оценки качества шифра: должна быть равна $0$ в случае, когда шифр оптимален.
$I(X,Y) = H(X) - H(X|Y)$
Вопрос: вспоминая предыдущие определения - почему $I(X,Y)$ должна быть равна нулю?
</font>
</font>
Количество бит ключа, от который зависит каждый бит зашифрованного сообщения. Запутанность делает зависимость входных данных и шифротекста нелинейной, реализуется, в основном, через S-блоки
"Рассредоточненность" части оригинального сообщения на зашиврованное, т.е. от одного бита сообщения должно зависеть состояние многих битов зашифрованной версии.
Диффузия "распределяет" избыточную информацию из исходного текста по всему шифротексту.
В идеале, изменение любого бита $i$ текста должно с вероятсностью $\dfrac{1}{2}$ менять состояние произвольного бита ключа $j$.
Изменение малого количества битов в ключе или входных данных приводит к "лавине" изменений в шифротексте.
Изменение одного бита на входе функции $f: \{0, 1\}^n \to \{0, 1\}^n$ приводит к изменению примерно полвины битов на выходе для
Для булевой функции $f(x \in \{0,1\}^n)$ изменение одного входного бита меняет состояние с вероятностью ровно $1/2$.
Напишите функцию, удовлетворяющую строгому лавинному критерию для $\{0, 1\}^2$ (двухбитовых строк)
$$ \begin{align} &00 \to ? \notag \\ &01 \to ? \notag \\ &10 \to ? \notag \\ &11 \to ? \notag \\ \end{align} $$
Подстановка одних значений на место других.

Перемешивание значений.

Основной вопрос - как включить в S- и P-боксы ключ, чтобы сделать процесс шифрования обратимым?
</font>
В DES (Data Encryption Standart) P-box и S-box объединены в одну функцию для шифрования - функцию Фейстеля.
Есть набор ключей: $K_0, K_1, ...,K_n$
Текст для шифрования разделяется на правую ($R$) и левую ($L$) части
Шифрование выполняется итеративным выполнением операций:
$L_{i+1} = R_i$
$R_{i+1} = L_i \oplus F(R_i, K_i)$
$(R_{n+1}, L_{n+1})$ представляет собой зашифрованный текст (обратите внимание не перестановку $R$ и $L$.
Для расшифровки ключи применяются в обратном порядке:
$R_i = L_{i+1}$
$L_i = R_{i+1} \oplus F(L_{i+1}, K_{i})$
$(L_0, R_0)$ - результат декодирования - расшифрованный текст, тождественный оригинальному
Набор операций шифрования, фактически, делает следующее:
$(L, R) \to (L \oplus F(R, K), R)$
Свойство операции $XOR$?
$$X \oplus Y \oplus Y = X$$Тогда
$(L \oplus F(R, K) \oplus F(R, K), R) = (L, R) $
- применение шага дешифровки!
Например, в AES для расшифровки должны использоваться обратные к S- и P-боксу функции.
Попробуем сделать 1 шаг схемы шифрования Фейстеля, а затем выполнить дешифровку.
Сообщение: $1110$
Ключ: $01$
$L = 11, R = 10$
Давайте еще определим $F$ как $F(x, k)$ = $P(S(x \oplus k))$,
$S$ как отображение
$00 \to 10$
$01 \to 11$
$10 \to 00$
$11 \to 10$
и $P$ как перестановку
$$ P = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} $$На изображении - конкретная реализация f-функции, используемая в DES.

Есть несколько особенностей, связанных с практическими аспектами - скоростью работы и тем, что на практике часть информации теряется, и, например, часть битов используется как биты четности для проверки корректности.
В DES лавинный эффект - строгий, к 4-5 раунду при изменении одного входного бита или одного бита ключа проявляется лавинный эффект.
</font>