Из Википедии, бесплатной энциклопедии
  (Перенаправлено из Codetext )
Перейти к навигации Перейти к поиску
Фрагмент " телеграммы Циммермана ", расшифрованный взломщиками кодов британской военно-морской разведки . Слово « Аризона» не было в немецкой кодовой книге, поэтому его пришлось разбить на фонетические слоги.

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

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

Другое сравнение между кодами и шифрами заключается в том, что код обычно представляет собой букву или группы букв напрямую, без использования математики. Таким образом, числа настроены для представления этих трех значений: 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 фраз и отдельных слов. [2]

Одноразовый код [ править ]

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

  • «Один - по суше, два - по морю» в « Поездке Пола Ревира», ставшей известной в стихотворении Генри Уодсворта Лонгфелло.
  • «Поднимитесь на гору Ниитака» - сигнал японским самолетам начать атаку на Перл-Харбор.
  • Во время Второй мировой войны British Broadcasting Corporation за границей Сервиса часто включены „ личные сообщения “ в рамках своего регулярного расписания вещания. На первый взгляд бессмысленный поток сообщений, зачитываемых дикторами, на самом деле был одноразовым кодом, предназначенным для агентов Special Operations Executive (SOE), действующих в тылу врага. Примером может быть «Принцесса в красных туфлях» или «Кот Мими спит под столом». Каждое кодовое сообщение считывалось дважды. Таким образом, французское Сопротивление получило указание начать саботаж железнодорожных и других транспортных сообщений в ночь перед днем высадки .
  • «Над всей Испанией чистое небо» - это сигнал (транслировавшийся по радио) к началу националистического военного восстания в Испании 17 июля 1936 года.

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

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

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

Код идиота [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Супер-шифрование [ править ]

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

Ссылки [ править ]

  1. ^ История безопасности связи США; Лекции Дэвида Г. Боука , Агентство национальной безопасности (АНБ), Том I, 1973, Том II, 1981, частично выпущен в 2008 году, дополнительные части рассекречены 14 октября 2015 года
  2. ^ "Zimmermann Telegram: The Original Draft" , 2007, Иоахим фон цур Гатен, "Cryptologia", том 31, выпуск 1
  3. ^ Пятница (1982) Роберта А. Хайнлайна
  4. 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 .

См. Также [ править ]

  • Код , его более общее коммуникационное значение
  • Траншейный код
  • JN-25
  • Телеграмма Циммермана
  • Говорящие с кодом
  • Эта статья или ее более ранняя версия включают материал из книги Грега Гебеля « Коды, шифры и взлом кодов» .