T

Text Machine

Мощные текстовые инструменты прямо в браузере

Калькулятор индекса совпадений

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

Попробуйте:

Текст

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

Как пользоваться Индекс совпадений

  1. 1

    Вставьте текст

    Положите открытый или зашифрованный текст в поле. Участвуют только буквы от A до Z; регистр, пробелы, цифры и знаки препинания игнорируются, поэтому форматирование не может сдвинуть число.

  2. 2

    Прочитайте индекс

    Сырой ИС это вероятность того, что две наугад взятые буквы окажутся одной и той же буквой. Нормированное число это то же значение относительно равномерного алфавита, где 1,00 означает случайность, а около 1,73 английский.

  3. 3

    Определите тип шифра

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

  4. 4

    Найдите длину в столбцовой таблице

    Если текст выглядит многоалфавитным, ищите самую короткую длину, при которой столбцовый ИС снова поднимается к 0,066. Это и есть длина ключа, то самое число, которое нужно решателю Виженера.

Индекс совпадений простыми словами

Одно число, один вопрос

Индекс совпадений отвечает на узкий вопрос: если дважды запустить руку в текст и каждый раз вытащить букву, как часто выпадет одна и та же буква? Для мешка из 26 одинаково частых букв ответ 1 к 26, около 0,0385. Для английского почти вдвое больше, около 0,066, потому что английский не равномерный мешок. E, T, A и O делают огромную часть работы, а J, Q, X и Z почти не встречаются.

Этот разрыв и есть вся польза статистики. Она переживает переименование: если поменять каждую A на Q, а каждую Q на A, счётчики сдвинутся, а неравномерность останется, и индекс не изменится. Она не переживает размазывания по нескольким алфавитам, а именно это делает шифр с повторяющимся ключом.

Что он может сказать, а что нет

ИС около 0,066 говорит, что распределение букв не тронуто. Сюда попадают обычный открытый текст, сдвиг Цезаря, зеркало Атбаш и любая простая замена, и именно поэтому одноалфавитный шифр вскрывают частотным анализом, а не этим числом.

ИС около 0,038 говорит, что распределение сглажено. Что-то отображает одну букву открытого текста на несколько букв шифртекста, а это подпись Виженера и его родни либо по-настоящему случайной строки.

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

Работу делает столбцовая таблица

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

Возьмите буквы и разложите их по L кучкам: позиции 1, L+1 и 2L+1 в первую кучку, позиции 2 и L+2 во вторую, и так далее. Если L настоящая длина ключа, все буквы кучки сдвинуты одной и той же буквой ключа, значит кучка это Цезарь от английского и сохраняет его неравномерность. Если L неверна, в каждой кучке смешиваются буквы с разными сдвигами, и она выходит плоской.

Поэтому столбцовый ИС, усреднённый по кучкам, растёт при настоящей длине ключа и при каждом её кратном. Прочитать таблицу сверху вниз до первой длины, где значение подскакивает, это классический способ найти длину ключа Виженера, и на реальных текстах он надёжнее формулы Фридмана.

Что делать дальше

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

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

Часто задаваемые вопросы

Что такое индекс совпадений?
Это вероятность того, что две наугад выбранные из текста буквы окажутся одной и той же буквой. В записи это сумма n(n-1) по числу вхождений каждой буквы, делённая на N(N-1) для всего текста. У английского получается около 0,066, потому что несколько букв делают почти всю работу; равномерный случайный алфавит даёт 1/26, то есть примерно 0,0385.
Почему моё число отличается от другого калькулятора?
Почти всегда из-за нормировки. Одни инструменты выдают сырую вероятность, другие умножают её на 26, поэтому один и тот же текст читается как 0,0667 или как 1,73. Здесь показаны оба числа. Вторая частая причина в том, что инструмент считал пробелы или цифры символами; здесь считаются только буквы от A до Z.
Как индекс совпадений находит длину ключа?
Сам по себе он её не находит. Длину находит разбиение шифртекста на L столбцов и отдельное измерение каждого столбца. При верном L каждый столбец зашифрован одним повторяющимся сдвигом, то есть это Цезарь от английского, и он сохраняет английский ИС. При неверном L столбцы оказываются смесью и остаются плоскими. Столбцовая таблица показывает всех кандидатов рядом.
Что такое оценка Фридмана и стоит ли ей доверять?
Это формула 1922 года, превращающая один ИС в приблизительную длину ключа. Рядом со столбцовой таблицей она полезна как проверка, но ошибается достаточно часто, чтобы не использовать её в одиночку, особенно на коротких текстах. Прочерк появляется, когда ваш текст уже так же неровен, как открытый, или слишком короток, чтобы у него был ИС. Формула исходит из того, что повторяющийся ключ сгладил текст, поэтому вне этого диапазона оценивать нечего и любое число было бы выдумано.
Почему 5, 10 и 15 набирают одинаково хорошо?
Потому что разбиение на 10 столбцов это деление настоящих 5 столбцов пополам, и каждая половина по-прежнему сохраняет свой единственный сдвиг. Любое кратное настоящей длине наследует её оценку. Ответ это самый короткий член семейства, поэтому список подсказок отбрасывает кратные.
Может ли он определить язык текста?
Только очень грубо. Сравнительная таблица показывает, где ваш текст относительно опубликованных значений, но у нескольких языков значения близки, а короткая выборка колеблется сильнее, чем расстояния между ними. Используйте это, чтобы отделить естественный язык от текста, похожего на случайный, а не чтобы выбрать между французским и испанским.
Покидает ли мой текст браузер?
Нет. Все вычисления идут на странице. Ничего никуда не загружается, не записывается и не сохраняется.

Похожие инструменты

Продолжайте работу с этими удобными инструментами

Метод Касиски

Взломщик Виженера

Частотный анализ

Определитель шифра

Взломщик подстановки

Конвертер Unix-времени