Запуск шифра ключа - Running key cipher
Эта статья нужны дополнительные цитаты для проверка.Март 2016 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В классическом криптография, то бегущий ключевой шифр это тип полиалфавитная замена шифр в котором текст, обычно из книги, используется для очень длинного ключевой поток. Обычно книга, которую нужно использовать, согласовывается заранее, а отрывок, который будет использоваться, выбирается. случайно для каждого сообщения и тайно указывается где-нибудь в сообщении.
Пример
Используемый текст Язык программирования C (Издание 1978 г.), а tabula recta это таблица. Открытый текст - «Беги немедленно».
Страница 63, строка 1 выбрана как рабочая клавиша:
ошибки могут возникать в нескольких местах. У лейбла есть ...
Затем под открытым текстом записывается рабочий ключ:
Простой текст | ж | л | е | е | а | т | о | п | c | е |
---|---|---|---|---|---|---|---|---|---|---|
Бегущий ключ | E | р | р | О | р | S | C | А | N | О |
Зашифрованный текст | J | C | V | S | р | L | Q | N | п | S |
Затем сообщение отправляется как «JCVSR LQNPS». Однако в отличие от Шифр Виженера, если сообщение расширено, ключ не повторяется; сам ключевой текст используется как ключ. Если сообщение расширено, например «Бегите немедленно. Нас обнаруживают», то нажатие клавиши работает, как и раньше:
Простой текст | ж | л | е | е | а | т | о | п | c | е | ш | е | а | р | е | d | я | s | c | о | v | е | р | е | d |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Бегущий ключ | E | р | р | О | р | S | C | А | N | О | C | C | U | р | я | N | S | E | V | E | р | А | L | п | L |
Зашифрованный текст | J | C | V | S | р | L | Q | N | п | S | Y | грамм | U | я | M | Q | А | W | Икс | S | M | E | C | Т | О |
Чтобы определить, где найти работающий ключ, впоследствии добавляется поддельный блок из пяти символов зашифрованного текста, три из которых обозначают номер страницы, а два - номер строки, используя A = 0, B = 1 и т. Д. Для кодирования цифр. Такой блок называется индикаторный блок. Блок индикатора будет вставлен вторым последним в каждом сообщении. (Для скрытия индикаторных блоков возможно множество других схем.) Таким образом, стр. 63, строка 1 кодируется как «AGDAB» (06301).
Это приводит к заключительному сообщению «JCVSR LQNPS YGUIM QAWXS AGDAB MECTO».
Варианты
Современные варианты шифра с работающим ключом часто заменяют традиционные tabula recta с поразрядным Эксклюзивный или, работать в целом байты а не буквенные, и их рабочие ключи берутся из больших файлов. Помимо, возможно, большей плотности энтропии файлов и простоты автоматизации, между такими вариантами и традиционными методами практически нет различий.
Перестановка сгенерированных рабочих ключей
Более компактный рабочий ключ можно использовать, если один комбинаторно генерирует текст с использованием нескольких указателей начала (или правил комбинации). Например, вместо того, чтобы начинать с одного места (одного указателя), можно использовать несколько указателей начала и объединить потоки для формирования нового рабочего ключа, аналогично можно использовать правила пропуска. То, что обменивается, является серией указателей на текущую книгу ключей и / или серией правил для генерации нового пермутированного рабочего ключа из исходного текста ключа. (Их можно обменять через открытый ключ шифрование или лично. Их также можно часто менять, не меняя книгу рабочих ключей.)
Зашифрованный текст выглядит как открытый текст
Традиционный зашифрованный текст, по-видимому, сильно отличается от открытого текста. Чтобы решить эту проблему, один вариант выводит слова «открытого текста» вместо букв «открытого текста» в качестве вывода зашифрованного текста. Это делается путем создания «алфавита» слов (на практике каждому символу вывода зашифрованного текста может соответствовать несколько слов). Результатом является вывод зашифрованного текста, который выглядит как длинная последовательность слов открытого текста (процесс может быть вложенным). Теоретически это ничем не отличается от использования стандартных символов зашифрованного текста в качестве вывода. Однако зашифрованный текст, похожий на открытый текст, может привести к тому, что «человек в петле» попытается ошибочно интерпретировать его как декодированный открытый текст.
Примером может быть BDA (алгоритм дефлатера Беркгофа).[нужна цитата ], с каждым выходным символом зашифрованного текста связано как минимум одно существительное, глагол, прилагательное и наречие (например, (как минимум) по одному для каждого ASCII персонаж). Правдоподобные предложения с грамматической точки зрения генерируются как выходные данные зашифрованного текста. Для дешифрования требуется сопоставить слова обратно с ASCII, а затем расшифровать символы в реальный открытый текст с помощью рабочего ключа. Nested-BDA будет запускать вывод через процесс повторного шифрования несколько раз, создавая несколько слоев зашифрованного текста, выглядящего как открытый текст, каждый из которых потенциально требует "человек в петле", чтобы попытаться интерпретировать его несуществующий семантический смысл.
Шифр Громарка
"Шифр Громарка" ("Шифр Гронсфельда со смешанным алфавитом и бегущим ключом ») использует текущий цифровой ключ, образованный путем добавления последовательных пар цифр.[1]В Шифр VIC использует аналогичный запаздывающий генератор Фибоначчи.
Безопасность
Если текущий ключ действительно случайный, никогда не использовался повторно и держался в секрете, результатом будет одноразовый блокнот, метод, который обеспечивает совершенная секретность (не показывает информации об открытом тексте). Однако, если (как обычно) работающая клавиша представляет собой блок текста в естественный язык, безопасность на самом деле становится довольно низкой, так как этот текст будет иметь неслучайные характеристики, которые можно использовать для криптоанализа. В результате энтропия на символ как открытого текста, так и рабочего ключа мало, а операцию комбинирования легко инвертировать.
Чтобы атаковать шифр, криптоаналитик прогоняет предполагаемые вероятные открытые тексты по зашифрованному тексту, вычитая их из каждой возможной позиции. Когда результатом является фрагмент чего-то понятного, высока вероятность того, что предполагаемый простой текст является правильным для этой позиции (либо как фактический открытый текст, либо как часть текущего ключа). Затем «кусок чего-то понятного» часто может быть расширен с любого конца, обеспечивая тем самым еще более вероятный открытый текст, который, в свою очередь, может быть расширен, и так далее. В конце концов, вероятно, что источник работающего ключа будет идентифицирован, и приспособление будет работать.
Есть несколько способов повысить безопасность. Первый и наиболее очевидный - использовать таблицу секретного смешанного алфавита вместо таблицы. tabula recta. Это действительно сильно усложняет ситуацию, но это не полное решение. Пары открытого текста и бегущих ключевых символов с большей вероятностью будут высокочастотными парами, такими как «EE», а не, скажем, «QQ». Это вызывает перекос на выходе Распределение частоты смазывается тем фактом, что вполне возможно, что «EE» и «QQ» соответствуют одному и тому же символу зашифрованного текста, но, тем не менее, распределение не является плоским. Это может позволить криптоаналитику вывести часть таблицы, а затем продолжить работу, как и раньше (но с пропусками, где в реконструированной таблице отсутствуют разделы).
Другая возможность - использовать ключевой текст с большей энтропией на символ, чем в типичном английском. Для этого КГБ посоветовал агентам использовать такие документы, как альманахи и торговые отчеты, которые часто содержат длинные списки случайных чисел.
Другая проблема состоит в том, что пространство клавиш на удивление мало. Предположим, что существует 100 миллионов ключевых текстов, которые могут быть правдоподобно использованы, и что в среднем каждый имеет 11 тысяч возможных начальных позиций. Для оппонента с огромным набором возможных ключевых текстов это оставляет возможность поиска грубой силы в порядке , который по стандартам компьютерной криптографии является относительно легкой мишенью. (См. Подход к этой проблеме, сгенерированный перестановкой рабочих ключей выше).
Путаница
Поскольку оба шифра обычно используются романы как часть своего ключевого материала, многие источники путают книжный шифр и текущий ключевой шифр. Они действительно очень отдаленно связаны. Текущий ключевой шифр - это полиалфавитная замена, книжный шифр - гомофоническая замена. Возможно, различие наиболее четко выражено в том факте, что работающий шифр лучше всего работал бы с книгой случайных чисел, тогда как такая книга (не содержащая текста) была бы бесполезной для книжного шифра.
Смотрите также
Рекомендации
- ^ Американская ассоциация криптограмм."ACA и вы".2016.