Код (криптография) - Code (cryptography)

Часть " Телеграммы Циммермана ", расшифрованная взломщиками кодов британской военно-морской разведки . Слово « Аризона» не было в немецкой кодовой книге, поэтому его пришлось разбить на фонетические слоги.

В криптологии , A - код представляет собой метод , используемый для шифрования сообщения , которое работает на уровне значимости; то есть слова или фразы преобразуются во что-то другое. Код может преобразовать «изменение» в «CVGDK» или «коктейль-бар». Агентство национальной безопасности США определило код как «криптосистему замещения, в которой элементы открытого текста в основном являются словами, фразами или предложениями, а эквиваленты кода (так называемые« группы кодов ») обычно состоят из букв или цифр (или того и другого) в противном случае бессмысленные комбинации одинаковой длины ". Кодовая книга необходима для шифрования и расшифровки фразы или слова.

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

Другое сравнение между кодами и шифрами заключается в том, что код обычно представляет собой букву или группы букв напрямую, без использования математики. Таким образом, числа настроены для представления этих трех значений: 1001 = A, 1002 = B, 1003 = C, .... В результате получится сообщение 1001 1002 1003 для передачи ABC. Шифры, однако, используют математические формулы для представления букв или групп букв. Например, A = 1, B = 2, C = 3, .... Таким образом, сообщение ABC получается путем умножения значения каждой буквы на 13. Тогда сообщение ABC будет 13 26 39.

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

Напротив, поскольку коды являются репрезентативными, они не поддаются математическому анализу отдельных элементов кодовой книги. В нашем примере сообщение 13 26 39 можно взломать, разделив каждое число на 13, а затем ранжируя их в алфавитном порядке. Однако в центре внимания криптоанализа кодовой книги находится сравнительная частота отдельных элементов кода, совпадающих с одинаковой частотой букв в сообщениях с открытым текстом, с использованием частотного анализа . В приведенном выше примере кодовая группа 1001, 1002, 1003 может встречаться более одного раза, и эта частота может соответствовать количеству раз, которое ABC встречается в текстовых сообщениях.

(В прошлом или в нетехнических контекстах код и шифр часто использовались для обозначения любой формы шифрования ).

Одно- и двухчастные коды

Коды определяются "кодовыми книгами" (физическими или условными), которые представляют собой словари кодовых групп, перечисленных с их соответствующим открытым текстом. Кодам изначально были присвоены кодовые группы в «порядке открытого текста» для удобства разработанного кода или кодировщика. Например, в коде, использующем группы числовых кодов, простое текстовое слово, начинающееся с «a», будет иметь группу с низким значением, а слово, начинающееся с «z», будет иметь группу с высоким значением. Та же самая кодовая книга может использоваться для «кодирования» сообщения с открытым текстом в закодированное сообщение или «кодовый текст» и «декодирования» кодового текста обратно в сообщение с открытым текстом.

Чтобы усложнить жизнь взломщикам кодов, создатели кодов разработали коды без предсказуемой связи между кодовыми группами и порядком совпадающего открытого текста. На практике это означало, что теперь требовались две кодовые книги: одна для поиска кодовых групп для кодирования, другая для поиска кодовых групп для поиска открытого текста для декодирования. Такие «двухкомпонентные» коды требовали больше усилий для разработки и вдвое больше усилий для распространения (и безопасного удаления при замене), но их было труднее взломать. Телеграмма Циммерман в январе 1917 г. использовала немецкую дипломатическую «0075» систему из двух частей коды , в котором содержится свыше 10000 фраз и отдельных слов.

Одноразовый код

Одноразовый код - это заранее подготовленное слово, фраза или символ, который предназначен для использования только один раз для передачи простого сообщения, часто сигнала для выполнения или отмены какого-либо плана или подтверждения того, что он был успешным или неудачным. Одноразовые коды часто предназначены для включения в то, что может показаться невинным разговором. При правильном исполнении их почти невозможно обнаружить, хотя обученный аналитик, отслеживающий общение кого-то, кто уже вызвал подозрение, мог бы распознать такой комментарий, как «Тетя Берта рожала», как имеющий зловещий смысл. Известные примеры одноразовых кодов включают:

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

«Оперирован сегодня утром. Диагностика еще не завершена, но результаты кажутся удовлетворительными и уже превзошли ожидания. Необходим местный пресс-релиз, так как интерес распространяется очень далеко. Доктор Гроувс доволен. Он вернется завтра. Я буду держать вас в курсе».

См. Также одноразовый блокнот , несвязанный алгоритм шифрования.

Идиотский код

Идиот код является кодом , который создается сторонами его использования. Этот тип связи сродни ручным сигналам, используемым армиями в полевых условиях.

Пример: любое предложение, в котором используются слова «день» и «ночь», означает «нападение». Местоположение, указанное в следующем предложении, указывает место, которое будет атаковано.

  • Открытый текст: Атака X.
  • Codetext: Мы гуляли днем ​​и ночью по улицам, но не могли его найти! Завтра мы отправимся в X.

Раннее использование термина , как представляется, Джордж Перро, персонаж в научной фантастики книги в пятницу по Роберт Хайнлайн :

Самый простой вид [кода], который невозможно взломать. В первой рекламе соответствующему лицу или лицам предлагалось выполнить номер семь или ожидать номер семь, или в нем что-то говорилось о чем-то, обозначенном как семь. Этот говорит то же самое в отношении кодовой позиции номер десять. Но значение чисел не может быть выведено с помощью статистического анализа, потому что код может быть изменен задолго до того, как станет доступным полезный статистический универсум. Это идиотский код ... и идиотский код нельзя сломать, если у пользователя есть здравый смысл, чтобы не заходить слишком часто к колодцу.

Эксперт по терроризму Магнус Рансторп сказал, что люди, совершившие теракты 11 сентября в Соединенных Штатах, использовали обычную электронную почту и то, что он называет «идиотским кодом», для обсуждения своих планов.

Криптоанализ кодов

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

Удерживать простой код можно потому, что некоторые слова встречаются чаще, чем другие, например, «the» или «a» в английском языке. В телеграфных сообщениях кодовая группа для «STOP» (т. Е. Конец предложения или абзаца) обычно очень распространена. Это помогает определить структуру сообщения в терминах предложений, если не их значения, и это полезно с криптоаналитической точки зрения.

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

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

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

Шпаргалки могут быть незамедлительным свидетельством определений кодовых групп. По мере определения кодовых групп они могут постепенно наращивать критическую массу, при этом все больше и больше кодовых групп раскрываются из контекста и обоснованных предположений. Односоставные коды более уязвимы для таких обоснованных догадок, чем двухчастные коды, поскольку, если кодовый номер «26839» односоставного кода определен как «бульдозер», то младший кодовый номер «17598», вероятно, будет обозначать текстовое слово, начинающееся с «a» или «b». По крайней мере, для простых кодов одной детали.

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

  • Самый очевидный и, по крайней мере, в принципе, самый простой способ взлома кода - это украсть кодовую книгу с помощью взяточничества, кражи со взломом или рейдерства - процедуры, иногда прославляемые фразой «практическая криптография» - и это слабость как для кодов, так и для шифров, хотя кодовые книги обычно больше и используются дольше, чем ключи шифрования . Хотя хороший код сложнее взломать, чем шифр, необходимость писать и распространять кодовые книги вызывает серьезные проблемы.

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

После создания кодов распространение кодовой книги неуклюже с точки зрения логистики и увеличивает вероятность взлома кода. Есть поговорка: «Три человека могут хранить секрет, если двое из них мертвы» ( Бенджамин Франклин - Викицитатник ), и хотя это может быть чем-то вроде преувеличения, секрет становится труднее сохранить, если он делится между несколькими людьми. Коды можно считать достаточно безопасными, если они используются только несколькими осторожными людьми, но если целые армии используют одну и ту же книгу кодов, безопасность становится намного сложнее.

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

Супершифрование

Было обычным делом зашифровать сообщение после его первого кодирования, чтобы увеличить сложность криптоанализа. С числовым кодом это обычно делалось с «добавкой» - просто длинным ключевым числом, которое цифра за цифрой добавлялось к кодовым группам по модулю 10. В отличие от кодовых книг, добавки менялись часто. Знаменитый код ВМС Японии, JN-25 , был именно этой конструкции.

использованная литература

  1. ^ История безопасности связи США; Лекции Дэвида Г. Боука , Агентство национальной безопасности (АНБ), тома I, 1973 г., тома II, 1981 г., частично выпущены в 2008 г., дополнительные части рассекречены 14 октября 2015 г.
  2. ^ «16.2: Замещающие шифры» . Математика LibreTexts . 2020-01-22 . Проверено 19 сентября 2021 .
  3. ^ "Zimmermann Telegram: The Original Draft" , 2007, Иоахим фон цур Гатен, "Cryptologia", том 31, выпуск 1
  4. ^ Пятница (1982) Роберта А. Хайнлайна
  5. Radio Free Europe / Radio Liberty: «Ближний Восток: исламские боевики переносят джихад в Интернет» Джеффри Донован , 16 июня 2004 г.

Источники

  • Кан, Дэвид (1996). Взломщики кодов: всеобъемлющая история секретной коммуникации с древних времен в Интернет . Скрибнер.
  • Пиковер, Клифф (2000). Cryptorunes: коды и секретное письмо . Гранатовые коммуникации. ISBN 978-0-7649-1251-1.
  • Боак, Дэвид Г. (июль 1973 г.) [1966 г.]. «Коды» (PDF) . История безопасности связи США; Лекции Дэвида Г. Боака, Vol. I (редакция рассекречивания 2015 г.). Ft. Джордж Г. Мид, доктор медицины: Агентство национальной безопасности США. С. 21–32 . Проверено 23 апреля 2017 .

Смотрите также