Криптоанализ произвольного шифра табличного гаммирования во многом схож с криптоанализом шифра модульного гаммирования. Рассмотрим основные идеи анализа на примере шифра с уравнением (1).
Занумеруем буквы алфавита А числами от 0 до п –1 и воспользуемся формальными моделями рассматриваемых последовательностей (см. гл. 2). Пусть рi, ri, и si, — вероятности появления знака i в открытом тексте, гамме и в шифрованном тексте соответственно. Тогда задание вероятностных распределений на знаках открытого текста и гаммы (которые естественно считать независимыми) индуцирует распределение вероятностей знаков шифртекста по формуле:
(5)
в которой разность j-i берется по модулю п. (Достаточно заметить, что b = j <=> а = j – i, g =i, и воспользоваться формулой полной вероятности.)
Из формулы (5) следует, что если ri = 1/п при всех i =0,…, п -1, то и sj =1/п при всех j = 0,…, п — 1. Это означает, что при зашифровании открытого текста равновероятной гаммой получается шифртекст, вероятностные свойства которого не отличаются от самой равновероятной гаммы. Это обстоятельство не оставляет шансов криптоаналитику использовать диаграмму повторяемости букв открытого текста, поскольку при наложении гаммы эта информация как бы стирается. Поэтому на практике стремятся к тому, чтобы по своим вероятностным свойствам гамма была близка к случайной равновероятной последовательности.
Возникает естественный вопрос о том, можно ли при использовании неравновероятной гаммы восстановить ее вероятностные характеристики непосредственно по шифртексту и можно ли эту информацию использовать при криптоанализе шифра гаммирования.
Попытаемся сначала оценить вероятности ri непосредственно по шифртексту. При этом мы должны располагать достаточно точными приближениями распределений
р=(р0,...,рn-1),s=(s0,...,sn-1)
(получаемыми с помощью подсчета частот встречаемости знаков).
Рассмотрим соотношение (5) как систему линейных уравнений относительно неизвестных ri, i == 0,…,п –1. Нетрудно заметить, что матрица рассматриваемой системы имеет вид
Такая матрица называется циркулянтом. В ней каждый столбец получается циклическим сдвигом предыдущего столбца. Известно, что определитель |Р| циркулянта равен произведению
f(e0)•f(e1)•…•f(en -1),
где {e0,…,en-1} – множество всех корней степени n из 1 (в поле комплексных чисел), причем
f(х) = р0+ pn -1 • х + ... + р1 • хn-1.
В том случае, когда ½Р½¹0, вектор rоднозначно определяется из соотношения
r =P -1• s. (6)
Приведем (без доказательства) формулу для Р-1:
(7)
где
Условие ½Р½¹0 можно проверить непосредственно по данному распределению вероятностей букв открытого текста.
Пользуясь (6) и (7), можно вычислить приближение r' для r , подставляя вместо sв (6) вектор v = 1/l(v0,...,vn-1), где vi – число вхождений символа i в шифрованный текст (длиной l):