Саймон Сингх - Книга шифров .Тайная история шифров и их расшифровки
По всей видимости, первым крупным европейским криптоаналитиком был Джованни Соро, назначенный на должность венецианского секретаря-шифровалыцика в 1506 г. Репутация Соро была известна во всей Италии, и дружественные государства пересылали в Венецию перехваченные сообщения для проведения их криптоанализа. Даже из Ватикана, пожалуй, второго по активности центра криптоанализа, направляли Соро попадающие в их руки сообщения, которые, как им представлялось, дешифровать было невозможно. В 1526 году папа Климент VII послал ему два зашифрованных письма, и оба они вернулись успешно дешифрованными. И когда одно из зашифрованных личных писем папы было перехвачено флорентийцами, папа направил его копию Соро в надежде, что тот его успокоит, сказав, что дешифровать его невозможно. Соро объявил, что он не смог взломать шифр папы, дав понять, что и флорентийцы также не смогут дешифровать его. Возможно, однако, что это была уловка, чтобы успокоить криптографов Ватикана и внушить им ложное чувство безопасности — Соро просто не хотел показать слабость папского шифра, поскольку это только подтолкнуло бы Ватикан к созданию более стойкого шифра, шифра, который Соро, может, и не сумел бы раскрыть.
И другие дворы Европы также стали приглашать на службу искусных криптоаналитиков, таких как Филибер Бабу, который был криптоаналитиком короля Франции Франциска I. Бабу приобрел репутацию невероятно упорного человека, который способен работать круглые сутки неделями напролет, чтобы раскрыть перехваченное сообщение. К несчастью для Бабу, это дало возможность королю вступить в длительную любовную связь с его женой. К концу шестнадцатого века, с появлением Франсуа Виета, который получал особое удовлетворение от взлома испанских шифров, французы повысили свое мастерство по дешифрованию сообщений. Испанские криптографы, которые выглядели простодушными по сравнению со своими противниками в Европе, не могли поверить, когда узнали, что их сообщения становились известны французам. Испанский король Филипп II даже обратился с прошением в Ватикан, заявив, что единственным объяснением успешности применения криптоанализа Виета является то, что он — «сатана, вступивший в сговор с дьяволом». Филипп убеждал, что Виет должен предстать перед судом кардиналов из-за своих дьявольских дел, но папа, который знал, что его собственные криптоаналитики уже не первый год вскрывали испанские шифры, отверг прошение испанцев. Новость о прошении вскоре стала известна криптоаналитикам различных стран, и испанские криптографы оказались посмешищем всей Европы.
Ситуация с испанцами наглядно характеризовала состояние противоборства между криптографами и криптоаналитиками. Это был переходный период, когда криптографы все еще полагались на одноалфавитный шифр замены, в то время как криптоаналитики уже начали применять частотный анализ, чтобы взломать этот шифр. Криптографам еще только предстояло узнать все могущество частотного анализа, а пока что они продолжали верить в одноалфавитную замену, не представляя, в какой степени такие криптоаналитики, как Соро, Бабу и Виет, были способны прочесть их сообщения.
Между тем государства, которые получили предупреждение о слабости одноалфавитного шифра замены, стремились создать более стойкий шифр, который смог бы защитить их сообщения от раскрытия криптоаналитиками неприятеля. Одним из простейших приемов повышения стойкости одноалфавитного шифра замены является использование «пустых» знаков — символов или букв, которые не заменяли реальные буквы, а являлись просто пустыми, ничего не обозначающими символами. Например, можно заменить каждую букву открытого текста числами от 1 до 99, из которых 73 ничего не означают и могут случайным образом появляться с разной частотой в зашифрованном тексте. «Пустые» знаки не представляют никакой сложности для получателя, кому предназначено данное сообщение, кто знает, что эти символы не следует принимать во внимание. Однако наличие таких знаков будет сбивать с толку противника, перехватившего сообщение, потому что они усложняют атаку с применением частотного анализа. Ради повышения стойкости криптографы иногда сознательно перед зашифровыванием сообщения писали слова неправильно. Thys haz thi ifekkt off diztaughting thi ballans off fnkwenseas — усложняет криптоаналитику возможность применения частотного анализа. Однако получатель данного сообщения, если он знает ключ, сможет расшифровать его, после чего в его распоряжении окажется неверно написанный, но все же вполне понятный текст.
К попыткам усилить одноалфавитный шифр замены относится и введение кодовых слов. Термин код имеет очень широкое значение в обыденной речи, и он часто употребляется для описаниялюбых способов, используемых для тайной передачи информации. Однако, как было упомянуто в Введении, в действительности он имеет весьма специфическое значение и применяется только для определенного вида замены. До сих пор мы рассматривали шифр замены, посредством которого каждая буква заменяется на другую букву, число или символ.
Однако замену можно осуществлять на гораздо более высоком уровне, когда каждое слово представляется другим словом или символом — это и будет код. Например:
Исходное сообщение = убить короля сегодня вечером. Закодированное сообщение = D-Ω-28
Формально код определяется как замена, выполняемая на уровне слов или фраз, в то время как шифр определяется как замена на уровне букв. Поэтому термин зашифровать означает «сделать сообщение секретным с помощью шифра», в то время как закодировать означает «сделать сообщение секретным с помощью кода». Аналогично термин расшифровать/дешифровать применяется для рассекречивания зашифрованного сообщения, а раскодировать/декодировать — для рассекречивания закодированного сообщения. Термины зашифровать и расшифровать/дешифровать более общие и охватывают засекречивание и рассекречивание, выполняемое как с помощью кодов, так и с помощью шифров. На рисунке 7 показана краткая сводка этих определений. В целом я буду придерживаться этих определений, но когда смысл ясен, я могу воспользоваться, например, таким термином, как «криптографический анализ», чтобы описать процесс, который на самом деле является «взломом шифра» — последний термин может быть формально более точным, но первый является более употребимым.
На первый взгляд представляется, что коды обеспечивают более высокую степень стойкости, чем шифры, так как слова гораздо менее уязвимы для частотного анализа, чем буквы. Чтобы дешифровать одноалфавитный шифр, вам потребуется установить точные значения каждой из всего лишь 26 букв, а чтобы взломать код, вам потребуется определить точные значения сотен и даже тысяч кодовых слов. Однако если мы более внимательно рассмотрим коды, мы увидим, что они, по сравнению с шифрами, обладают двумя существенными с практической точки зрения недостатками. Во-первых, после того как отправитель и получатель согласуют 26 букв в шифралфавите (ключ), они смогут зашифровать любое сообщение, но чтобы добиться той же гибкости при применении кода, им придется проделать кропотливую работу по заданию кодового слова для каждого из тысяч возможных слов незашифрованного текста. Кодовая книга будет состоять из сотен страниц и напоминать словарь. Другими словами, составление кодовой книги — это изрядная задача, держать же ее при себе представляет значительное неудобство.
Рис. 7 Наука тайнописи и ее основные направления.
Во-вторых, последствия того, что противник завладеет кодовой книгой, поистине ужасающи. Все закодированные сообщения сразу же станут известны противнику. Отправители и получатели должны будут заново пройти через кропотливый процесс создания совершенно новой кодовой книги, а затем этот объемистый новый том необходимо будет передать всем в коммуникационной сети, то есть секретно доставить его всем послам во всех странах. Сравните: если противнику удастся завладеть ключом шифра, то сравнительно несложно составить новый шифралфавит из 26 букв, который можно запомнить и легко передать.
Даже в шестнадцатом веке криптографы хорошо осознавали присущие кодам слабости и вместо них больше полагались на шифры, или, иногда, на номенклаторы. Номенклатор — это система шифрования, основанная на шифралфавите, который применяется для зашифровывания большей части сообщения, плюс небольшой набор кодовых слов. К примеру, номенклаторная книга могла бы состоять из титульного листа с шифралфавитом и со списком кодовых слов на второй странице. Несмотря на добавление кодовых слов, номенклатор ненамного надежнее, чем просто один шифр, поскольку основная часть сообщения может быть дешифрована с помощью частотного анализа, а смысл оставшихся зашифрованными слов может быть определен по контексту.