Помимо того, что сам шифр Виженера неуязвим для частотного анализа, здесь может использоваться гигантское количество ключей. Отправитель и получатель могут договориться об использовании любого слова из словаря, любой комбинации слов или даже придумать свои слова. А криптоаналитик не сможет дешифровать сообщение перебором всех возможных ключей, так как число возможных вариантов просто слишком огромно.
«Трактат о шифрах», который был опубликован в 1586 году, явился венцом работы Виженера. По иронии судьбы это произошло в тот самый год, когда Томас Фелиппес взломал шифр Марии, королевы Шотландии. Если бы только секретарь Марии прочел этот трактат, он бы узнал о шифре Виженера, и Фелиппес тщетно бы старался дешифровать сообщения Марии Бабингтону, а жизнь Марии могла бы быть спасена.
Благодаря стойкости этого шифра и тому, что он гарантировал секретность, представлялось вполне естественным, если бы шифр Виженера был немедленно принят на вооружение шифровальщиками всей Европы. Разве не помогло бы им, обрети они вновь надежный способ шифрования? Шифровальщики же, напротив, похоже, с презрением отнеслись к шифру Виженера. Этой, казалось бы, безупречной системой в течение двух последующих веков по большей частью пренебрегали.
От отвергнутого Виженера к человеку в железной маске
Традиционные виды шифров замены, которые существовали до появления шифра Виженера, назывались одноалфавитными шифрами замены, поскольку для зашифровывания сообщения в них использовался только один шифралфавит. В отличие от них шифр Виженера относится к классу шифров, известных как многоалфавитные, поскольку здесь для зашифровывания сообщения применяется несколько шифралфавитов. Многоалфавитность шифра Виженера как раз и обеспечивает ему стойкость, но из-за этого же пользоваться им значительно сложнее — вот эта-то необходимость применения дополнительных усилий многим отбивала охоту от его использования.
Одноалфавитный шифр замены прекрасно подходил для многих целей семнадцатого века. Если вы хотели, чтобы ваш слуга не смог прочесть вашу частную переписку или если вы хотели защитить свой дневник от любопытствующих глаз своей жены или мужа, тогда вполне годился этот тип шифра. Одноалфавитная замена выполнялась быстро, она отличалась простотой и обеспечивала защиту от людей, не сведущих в криптоанализе. Фактически простой одноалфавитный шифр замены в той или иной форме служил в течение многих столетий (см. Приложение D). Для более серьезных целей, как, например, военная или правительственная связь, где обеспечение секретности является важнейшей задачей, использование одноалфавитного шифра было явно недостаточно. Профессиональным криптографам в противоборстве с профессиональными криптоаналитиками необходимо было что-то получше, однако они все еще не были расположены применять многоалфавитный шифр из-за его сложности. В частности, для военной связи требовались скорость и простота, а в дипломатических учреждениях ежедневно отправляли и получали сотни сообщений, поэтому время имело существенное значение. Вследствие этого криптографы искали некий промежуточный шифр, взломать который было бы сложнее, чем простой одноалфавитный шифр, но пользоваться которым было бы проще, чем многоалфавитным шифром.
Среди различных кандидатов на такой шифр был поразительно эффективный омофонический шифр замены. Здесь каждая буква заменяется различными подставляемыми символами, причем количество возможных подставляемых символов для какой-либо буквы пропорционально частотности этой буквы. К примеру, частота появления буквы a в английских текстах составляет около 8 процентов, поэтому мы поставим в соответствие этой букве восемь символов. Всякий раз, как в открытом тексте появится буква a, она будет заменена в шифртексте одним из восьми выбираемых случайным образом символов, так что к концу зашифровывания частотность каждого символа в зашифрованном тексте будет составлять примерно 1 процент.
Для сравнения, частотность буквы b составляет всего 2 процента, поэтому этой букве будут соответствовать только два символа. Каждый раз, как в открытом тексте появляется буква b, для ее замены будет выбираться один из двух символов, и к концу зашифровывания частотность каждого символа в зашифрованном тексте также будет составлять около 1 процента. Данный способ назначения каждой букве различного количества символов, заменяющих эти буквы, проводится для всего алфавита, пока мы не доберемся до буквы z, которая появляется настолько редко, что для ее замены потребуется всего один символ. В примере, приведенном в таблице 5, подставляемыми символами в шифралфавите служат двузначные числа, и для каждой буквы в алфавите открытого текста имеется от одного до двенадцати подставляемых символов в зависимости от распространенности каждой из букв.