Саймон Сингх - Книга шифров .Тайная история шифров и их расшифровки
К каждому отдельному шифру применимы понятия общего метода шифрования, известные как алгоритм и ключ, которые определяют детали конкретного способа шифрования. В этом случае алгоритм заключается в замене каждой буквы в алфавите открытого текста буквой из шифралфавита, причем шифралфавит может представлять собой любую возможную перестановку алфавита открытого текста. Ключ же определяет, какой именно шифралфавит используется для конкретного способа шифрования. Связь между алгоритмом и ключом показана на рисунке 4.
У противника, анализирующего перехваченное зашифрованное сообщение, могут иметься предположения об алгоритме, но точного ключа он знать не будет.
Рис. 4 Чтобы зашифровать исходный текст сообщения, отправитель применяет к нему алгоритм шифрования. Алгоритм является общей системой для шифрования и должен быть точно определен путем выбора ключа. При совместном применении ключа и алгоритма к открытому тексту получается зашифрованное сообщение, или шифртекст. Разумеется, зашифрованный текст во время передачи адресату может быть перехвачен противником, но противник не сможет дешифровать это сообщение. В то же время получатель, который знает и ключ, и алгоритм, использованные отправителем, сможет преобразовать зашифрованный текст сообщения обратно в исходный вид.
К примеру, он вполне может подозревать, что каждая буква в открытом тексте была заменена другой буквой в соответствии с шифралфавитом, но он не в состоянии узнать, какой именно шифралфавит был использован. Если шифралфавит — ключ — хранится отправителем и получателем в секрете, тогда противник не сможет дешифровать перехваченное сообщение. В отличие от алгоритма, важность ключа является основополагающим принципом криптографии. Он был сформулирован в 1883 году голландским лингвистом Огюстом Керкхоффом в книге «Военная криптография» («La Cryptographie militaire»); правило Керкхоффа гласит: «Стойкость криптосистемы не должна зависеть от стойкости криптоалгоритма. Она зависит только от стойкости ключа».
Помимо того, что ключ должен храниться в секрете, стойкая система шифрования должна также обладать широким набором возможных ключей. Например, если для зашифровывания сообщения отправитель применяет шифр сдвига Цезаря, то такое шифрование является сравнительно слабым, так как существует всего 25 возможных ключей. С точки зрения противника, если он перехватит сообщение и подозревает, что применялся алгоритм сдвига Цезаря, то ему следует просто проверить 25 возможных вариантов. Однако если отправитель использует более общий алгоритм замены, благодаря которому шифралфавит будет представлять собой любую возможную перестановку букв алфавита открытого текста, тогда ключ может выбираться из 400 000 000 000 000 000 000 000 000 возможных. Один из таких ключей показан на рисунке 5. Даже допуская, что противник перехватил сообщение и ему известен алгоритм, то все равно остается задача проверки всех возможных ключей. Если бы вражеский агент смог проверять ежесекундно один из 400 000 000 000 000 000 000 000 000 возможных ключей, то, чтобы проверить все ключи и дешифровать сообщение, ему понадобилось бы времени в миллионы раз больше возраста Вселенной.
Рис. 5 Пример общего алгоритма замены, при котором каждая буква в исходном тексте заменяется в соответствии с ключом другой буквой. Ключ задается шифралфавитом, который может представлять собой любую перестановку букв алфавита открытого текста.
Прелесть этого вида шифра состоит в том, что он прост в применении, но обеспечивает высокую степень защиты. Отправитель без труда может задать ключ, который просто определяет порядок следования 26 букв в шифралфавите, однако для противника по-прежнему практически невыполнимо проверить все возможные ключи с помощью так называемого метода прямого перебора всех возможных вариантов. Простота ключа важна еще и потому, что и отправитель, и получатель должны передавать друг другу информацию о ключе, а чем проще ключ, тем меньше вероятность возникновения недоразумений.
Более того, если отправитель готов согласиться с незначительным уменьшением количества возможных ключей, то ключ может быть еще проще. Для создания шифралфавита, вместо того чтобы случайным образом переставлять буквы алфавита открытого текста, отправитель выбирает ключевое слово или ключевую фразу. К примеру, в качестве ключевой можно взять фразу JULIUS CAESAR, убрать все пробелы и повторяющиеся буквы (JULISCAER), а затем подставить получившееся слово в начало шифралфавита. Часть шифралфавита, которая начинается с того места, где заканчивается ключевое слово или фраза, представляет собой просто обычную последовательность оставшихся букв алфавита. Поэтому шифралфавит будет выглядеть следующим образом:
Достоинство такого способа создания шифралфавита заключается в том, что ключевое слово или ключевую фразу, а следовательно и сам шифралфавит, легко запомнить. Это важно, так как если отправитель будет хранить шифралфавит записанным на листке бумаги, противник может завладеть этим листком, раскрыть ключ и прочесть любое сообщение, которое было зашифровано с его помощью. Но если держать ключ в памяти, то вероятность того, что он попадет в руки противника, гораздо меньшая. Разумеется, количество шиф-ралфавитов, образованных ключевыми фразами, меньше количества шифралфавитов, образуемых без каких-либо ограничений, но все равно число их огромно, и для противника по-прежнему невозможно дешифровать захваченное сообщение путем проверки всех возможных ключевых фраз.
Такая простота и одновременно стойкость означали, что на протяжении первого тысячелетия н. э. в искусстве тайнописи преобладал шифр замены. Шифровальщики разработали надежную систему обеспечения связи, поэтому никакой необходимости в дальнейшем развитии и не возникало.
Бремя легло только на тех дешифровальщиков, кто старался раскрыть шифр замены. Существовал ли какой-нибудь способ разгадать зашифрованное сообщение? Многие ученые того времени полагали, что из-за гигантского количества возможных ключей шифр
замены раскрыть невозможно, и в течение столетий казалось, что они были правы. Однако дешифровальщики в конце концов отыскали короткий путь взамен перебора всех возможных ключей. Вместо того чтобы тратить миллионы лет на взлом шифра, с помощью этого упрощенного метода сообщение можно было прочесть за нескольких минут. Прорыв произошел на Востоке, но для этого потребовался союз лингвистики, статистики и религиозного рвения.
Арабские криптоаналитики
В возрасте около сорока лет Мухаммад (Магомет) начал регулярно приходить в пещеру на горе Хира неподалеку от Мекки — уединенное место, самой природой предназначенное для молитв и размышлений. В момент глубоких раздумий, примерно в 610 году н. э., его посетил ангел Джебраил, провозгласивший Мухаммада пророком, посланником Аллаха. Это было первое из ряда откровений, которые продолжались до самой смерти Мухаммада двадцатью годами позже. На протяжении всей жизни пророка писцы записывали эти откровения, но только в виде отрывков; и на Абу Бакра (Абу Бекра), первого халифа ислама, была возложена задача собрать их в единый текст. Работа была продолжена Омаром, вторым халифом, и его дочерью Хафсой и завершена Османом, третьим халифом. Каждое из откровений стало одной из 114 сур Корана.
Правящий халиф был обязан продолжать дело Пророка, поддерживая его учение и распространяя его Слово. Между провозглашением Абу Бакра халифом в 632 году и до смерти четвертого халифа, Али, в 661 году, шло неудержимое распространение ислама, и в конце концов мусульманское государство охватило половину всего мира. В 750 году, после столетия укрепления господства, начало халифата (или династии) Аббасидов предвещало золотой век исламской цивилизации. В равной мере расцвели искусства и науки. От исламских мастеров дошли до нас великолепные картины, изысканные резные украшения и ткани исключительной отделки, а от исламских ученых мы унаследовали целый ряд арабских слов, которыми усеян язык современной науки: алгебра, щелочь, зенит и другие.
Процветание исламской культуры было в значительной степени обусловлено тем, что общество было богатым и мирным. В отличии от своих предшественников, халифы династии Аббасидов не так уж стремились завоевывать новые территории и покорять другие народы; вместо этого они приступили к созданию организованного и процветающего общества. Низкие налоги поощряли развитие коммерческой деятельности и вели к росту торговли и предпринимательства, а строгие законы сократили взяточничество и обеспечили защиту населения. Все это опиралось на эффективно действующую систему управления, чиновники же, в свою очередь, полагались на систему передачи сообщений, безопасность которой обеспечивалась за счет использования зашифровывания. Документально подтверждено, что, помимо информации государственной важности, чиновники зашифровывали также сведения о налогах, то есть уже в то время криптография широко применялась и ее использование было достаточно обыденным делом. Во многие руководства для чиновников, к примеру, в «Adab аl-Kuttab» («Руководство для секретарей») десятого века, вошли разделы, посвященные криптографии.