ПОЛИАЛФАВИТНЫЕ ШИФРЫ

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

  1. Используется набор связанных моноалфавитных подстановок.
  2. Имеется некоторый ключ, по которому определяется, какое конкретное преобразование должно применяться для шифрования на данном этапе.

Самым широко известным и одновременно самым простым алгоритмом такого рода является шифр Виженера. Этот шифр базируется на наборе правил моноалфавитной подстановки, представленных 26 шифрами Цезаря со сдвигом от 0 до 25. Каждый из таких шифров можно обозначить ключевой буквой, являющейся буквой шифрованного текста, соответствующей букве аоткрытого текста. Например, шифр Цезаря, для которого смещение равно 3, обозначается ключевой буквой d.

Для облегчения понимания и применения этой схемы рассмотрим матрицу, названную «табло Виженера».

  a b c d e f g h i j k l m n o p q r s t u v w x y z
a a b c d e f g h i j k l m n o p q r s t u v w x y z
b b c d e f g h i j k l m n o p q r s t u v w x y z a
c c d e f g h i j k l m n o p q r s t u v w x y z a b
d d e f g h i j k l m n o p q r s t u v w x y z a b c
e e f g h i j k l m n o p q r s t u v w x y z a b c d
f f g h i j k l m n o p q r s t u v w x y z a b c d e
g g h i j k l m n o p q r s t u v w x y z a b c d e f
h h i j k l m n o p q r s t u v w x y z a b c d e f g
i i j k l m n o p q r s t u v w x y z a b c d e f g h
j j k l m n o p q r s t u v w x y z a b c d e f g h i
k k l m n o p q r s t u v w x y z a b c d e f g h i j
l l m n o p q r s t u v w x y z a b c d e f g h i j k
m m n o p q r s t u v w x y z a b c d e f g h i j k l
n n o p q r s t u v w x y z a b c d e f g h i j k l m
o o p q r s t u v w x y z a b c d e f g h i j k l m n
p p q r s t u v w x y z a b c d e f g h i j k l m n o
q q r s t u v w x y z a b c d e f g h i j k l m n o p
r r s t u v w x y z a b c d e f g h i j k l m n o p q
s s t u v w x y z a b c d e f g h i j k l m n o p q r
t t u v w x y z a b c d e f g h i j k l m n o p q r s
u u v w x y z a b c d e f g h i j k l m n o p q r s t
v v w x y z a b c d e f g h i j k l m n o p q r s t u
w w x y z a b c d e f g h i j k l m n o p q r s t u v
x x y z a b c d e f g h i j k l m n o p q r s t u v w
y y z a b c d e f g h i j k l m n o p q r s t u v w x
z z a b c d e f g h i j k l m n o p q r s t u v w x y

Всего 26 шифров располагаются по горизонтали, и каждому из шифров соответствует своя ключевая буква, представленная в крайнем столбце слева. Алфавит, соответствующий буквам открытого текста, находится в первой строке таблицы. Процесс шифрования прост – необходимо по ключевой букве хи букве открытого текста унайти букву шифрованного текста, которая находится на пересечении строки х и столбца у. В данном случае такой буквой является v.

Чтобы зашифровать сообщение, нужен ключ, имеющий ту же длину, что и само сообщение. Обычно ключ представляет собой повторяющееся нужное число раз ключевое слово, чтобы получить строку подходящей длины. Например, если ключевым словом является deceptive, сообщение “we are discovered save yourself” шифруется следующим образом.

ключ:   d e c e p t i v e d e c e p t i v e d e c e p t i v e
открытый текст:   w e a r e d i s c o v e r e d s a v e y o u r s e l f
шифрованный текст:     z i c v t w q n g r z g v t w a v z h c q y g l m g j

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

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

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

Прежде всего предположим, что противник уверен в том, что шифрованный текст был получен либо с помощью моноалфавитной подстановки, либо с помощью шифра Виженера. Чтобы выяснить, какой именно из этих двух методов был использован, можно провести простой тест. Если использовалась моноалфавитная подстановка, статистические показатели шифрованного текста не будут отличаться от соответствующих показателей языка, на котором написан открытый текст. Если для анализа имеется лишь одно сообщение, точного совпадения может не быть. Но если статистика достаточно точно повторяет статистику обычного открытого текста, можно предположить, что используется моноалфавитная подстановка.

Если же наоборот, все указывает на то, что был применен шифр Виженера, то успех дальнейшего анализа текста зависит от того, удастся ли определить длину ключевого слова. Решение этой задачи основано на следующей особенности данного шифра: если начальные символы двух одинаковых последовательностей открытого текста находятся друг от друга на расстоянии, кратном длине ключа, эти последовательности будут представлены одинаковыми последовательностями и в шифрованном тексте. в рассматриваемом примере имеется две последовательности ‘red’, и начало второй из них оказывается на девять символов дальше относительно начала первой. Следовательно, в обоих случаях r будет зашифровано с использованием ключевой буквы е, е– с помощью буквы р, а d– с помощью ключевой буквы t. Таким образом, в обоих случаях для шифрованного текста будет получена последовательность vtw.

Аналитик, имеющий в своем распоряжении только шифрованный текст, обнаружит повторяющуюся последовательность vtw со смещением в девять символов, и поэтому может предположить, что длина ключа равна либо трем или девяти. Определив общий множитель для смещения начала таких последовательностей, аналитик получит достаточно надежную основу для предложений о длине ключевого слова. Дальнейший анализ базируется на другой особенности данного шифра. Если ключевое слово имеет длину N, то шифр состоит из N моноалфавитных подстановочных шифров. Т.е имеется возможность использовать известные характеристики частных распределений букв открытого текста для взлома каждого моноалфавитного шифра по отдельности.