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

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

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

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

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

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

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

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

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

Возникновение очередного символа xX, выбор ключа kK (то есть выбор отображения ek), получение шифротекста yY реализуются с некоторыми вероятностями:

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

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

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

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,kKl.

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

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

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

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

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

pX(l)|Y(l)(x|y)=pX(l)(x) xX(l),yY(l),l.

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

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

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

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

Шаблон:Hider

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

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

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

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

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

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

(1)

Так как |Y|=|K|, то из |K(x,y)|1 следует, что при k1k2следует ek1(x)ek2(x) xX.

(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)=1Nj=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)xp(x)p(y|x)=p(x)kp(k)x,kK(x,y)p(x)p(k) .

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

См. также

Литература