Абсолютно стойкий шифр

Материал из testwiki
Перейти к навигации Перейти к поиску

Абсолютно стойкий шифр — шифр, характеризующийся тем, что криптоаналитик принципиально не сможет извлечь статистическую информацию относительно выбираемых ключей из перехватываемого шифротекста.

Математически понятие абсолютно стойкого шифра было введено Клодом Шенноном в 1945 году в работе «Математическая теория криптографии».

Вспомогательные понятия

Пусть X и Y — алфавиты открытого и шифрованного текста такие, что |X|>1, |Y|>1, |Y|≥|X|.

Шифрование задаётся инъективным отображением ek:X→Y, дешифрование — отображением dk:ek(X)→X, k∈K={1,2,...,n}.

E={ek,k∈K},D={dk,k∈K} — наборы правил шифрования и дешифрования.

Максимальное число |E|=n возможных отображений равно количеству размещений из |Y| по |X| (числу способов выбрать подмножества размером |X| в множестве Y, учитывая порядок элементов).

Возникновение очередного символа x∈X, выбор ключа k∈K (то есть выбор отображения ek), получение шифротекста y∈Y реализуются с некоторыми вероятностями:

P(Xl)={pXl(x→),x→∈Xl} — распределение вероятностей для открытого текста,

P(Kl)={pKl(k→),k→∈Kl} — распределение вероятностей для комбинации номеров отображений,

P(Yl)={pYl(y→),y→∈Yl} — распределение вероятностей для шифротекста, где

Xl,Kl,Yl — декартовы степени множеств X,K,Y, l — количество символов в открытом тексте.

Будем считать, что случайные величины, соответствующие появлению открытого текста x→ и ключа k→, независимыми. Тогда:

pYl(y→)=∑pXl(x→)pKl(k→), где сумма ведётся по всем x→ и k→ таким, что ek→(x→)=(ek1(x1),...,ekl(xl))T=y→.

El,Dl — множества правил шифрования и дешифрования (декартовы степени множеств E,D).

Учитывая, что не каждая комбинация символов длины l из алфавита X может появиться в открытом тексте, введём: X(l)={x→:pXl(x→)>0},Y(l)={y→:pYl(y→)>0}.

Шифр замены с неограниченным ключом — семейство шифров SH={SH(l),l∈ℕ}, где SH(l) — представляет собой совокупность X(l),Kl,Y(l),El,Dl,P(X(l)),P(Kl),P(Y(l)), при этом pKl(k→)>0,∀k→∈Kl.

Длина ключа шифра замены с неограниченным ключом совпадает с размером открытого текста l.

Пусть K~ — конечное множество некоторых ключей (некоторых наборов натуральных чисел). Длина ключа из K~ может быть меньше l. Для каждого ключа из K~ можно задать правило детерминированного построения ключевого потока k→=(k1,...,kl)T∈Kl. Полученный таким образом набор ключевых потоков для всех ключей из K~ обозначим K(l). Например, для ключа (k1,...,kp)T∈K~,1<p<l в качестве ключевого потока можно взять периодическое повторение этого ключа (k1,...,kp,k1,...,kp,...)T∈Kl. Заметим, что K(l)⊆Kl.

Шифр замены с ограниченным ключом — семейство шифров SO={SO(l),l∈ℕ}, где SO(l) есть та же совокупность, что и для определённого выше шифра с неограниченным ключом, в которой вместо Kl и P(Kl) используется множество K(l) и распределение P(K(l)).

Формальное определение

Пусть pX(l)|Y(l)(x→|y→) — вероятность, что было зашифровано сообщение x→∈X(l) при регистрации шифротекста y→∈Y(l). Шифр называется абсолютно стойким, если выполнено:

pX(l)|Y(l)(x→|y→)=pX(l)(x→) ∀x→∈X(l),∀y→∈Y(l),∀l∈ℕ.

Другими словами, апостериорное распределение вероятностей PX(l)|Y(l)={pX(l)|Y(l)(x→|y→),x∈X(l),y∈Y(l)} совпадает с априорным распределением P(X(l)). В терминах теории информации это означает, что условная энтропия сообщения при известном шифрованном тексте равна безусловной. Знание шифротекста y→ не даёт криптоаналитику никакого полезного знания для получения x→ (расшифровка возможна только полным перебором).

Основные свойства

Никакой шифр с ограниченным ключом SO не является совершенным.

Шаблон:Hider Если шифр совершенный, то |X|≤|Y|≤|K|.

Шаблон:Hider

Теорема Шеннона

Формулировка

Шифр с неограниченным ключом SH, у которого |X|=|Y|=|K| является совершенным тогда и только тогда, когда:

1. |K(x,y)|=1 ∀x∈X,∀y∈Y, где K(x,y)={k∈K:ek(x)=y}, то есть для любого x и любого y существует только один ключ k такой, что ek(x)=y;

2. pK(k)≡p(k)=1|K| ∀k∈K, то есть ключи должны быть равновероятны.

Доказательство

(⇒1)

Так как |Y|=|K|, то из |K(x,y)|≥1 следует, что при k1≠k2следует ek1(x)≠ek2(x) ∀x∈X.

(⇒2)

Занумеруем ключи следующим образом при фиксированном y: ekj(xj)=y,j=1,|X|‾. Получим:

p(xj)=p(xj|y)=p(y|xj)⋅p(xj)p(y)=p(kj)⋅p(xj)p(y)⇒p(kj)=p(y) ∀j=1,|X|‾.

(⇐1,2)

Используем ту же нумерацию, что и в предыдущем пункте, считая y фиксированным. Применяя 1:

p(y)=∑(xj,kj):ekj(xj)=yp(xj)⋅p(kj)=1N⋅∑j=1Np(xj)=1N. Применяя 1 и 2:

p(xj|y)=p(xj)⋅p(y|xj)p(y)=p(xj). Получили определение абсолютной стойкости.

Общий вид

Исходя из теоремы Шеннона, правило шифрования шифра замены SH(l) при l=1, у которого |X|=|Y|=|K|, можно представить в виде латинского квадрата:

K/X x1 ... x|X|
k1 ek1(x1) ... ek1(x|X|)
... ... ... ...
k|X| ek|X|(x1) ... ek|X|(x|X|)

При равновероятном использовании k1,...,k|X| система будет обладать абсолютной стойкостью. Практической реализацией такой системы, например, является шифр Вернама.

Замечание

Существуют абсолютно стойкие шифры, для которых количество символов в алфавите |X| открытого текста меньше |Y|. Например:

X={x1,x2},Y={1,2,3},K={k1,..,k6}

K/X x1 x2
k1,p(k1)=1980 1 2
k2,p(k2)=320 1 3
k3,p(k3)=2180 2 1
k4,p(k4)=110 2 3
k5,p(k5)=18 3 1
k6,p(k6)=18 3 2

Абсолютная стойкость данного шифра легко проверяется по определению по формуле: p(x|y)=p(y|x)p(x)∑x′p(x′)p(y|x′)=p(x)∑kp(k)∑x′,k∈K(x′,y)p(x′)p(k) .

Этот шифр остаётся абсолютно стойким для любого распределения P(X).

См. также

Литература