T

Text Machine

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

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

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

Попробуйте пример:

Текст для анализа

Вставьте текст выше, и здесь появятся его частоты букв, биграммы, триграммы и индекс совпадений.

Как пользоваться Частотный анализ

  1. 1

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

    Скопируйте текст или шифртекст, который хотите изучить, и вставьте его в поле. Буквы считаются без учёта регистра, а пробелы, числа и знаки препинания игнорируются.

  2. 2

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

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

  3. 3

    Изучите график частоты букв

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

  4. 4

    Просмотрите биграммы и триграммы

    Посмотрите на самые частые пары и тройки. В шифре верхняя триграмма часто оказывается замаскированным THE, что даёт вам сразу три буквы.

  5. 5

    Экспортируйте или поделитесь

    Скачайте таблицу частот в виде CSV для своих заметок или таблицы, или скопируйте ссылку, которая снова откроет инструмент с вашим точным текстом. Всё остаётся в вашем браузере.

Частотный анализ букв: объяснение

Что такое частотный анализ?

Частотный анализ — это изучение того, как часто каждая буква, пара букв или тройка букв встречается во фрагменте текста. Поскольку буквы языка используются неравномерно — E и T в английском повсюду, а Q и Z редки — узор частот действует как отпечаток пальца. Подсчёт этого узора — старейшая и самая мощная техника классического криптоанализа, впервые записанная арабским учёным аль-Кинди в девятом веке.

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

Чтение графика частоты букв

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

В обычном английском самые высокие столбцы — это E, T, A, O, I и N, и график выглядит бугристым и неравномерным. Моноалфавитный шифр сохраняет эту бугристую форму, но смещает пики на другие буквы, потому что каждая буква просто заменяется другой. Полиалфавитный шифр сглаживает график, пока все столбцы не станут примерно одинаковой высоты, потому что одна и та же буква открытого текста шифруется по-разному в зависимости от своей позиции. Распознавание этих двух форм — самый полезный навык во взломе классических шифров.

Индекс совпадений

Индекс совпадений, или IoC, измеряет вероятность того, что две случайно выбранные из текста буквы окажутся одинаковыми. Обычный английский держится около 0.067, потому что его частоты так неравномерны, тогда как совершенно случайный текст приближается к 0.038, где каждая буква равновероятна. Одно число отражает, насколько бугристым или плоским является распределение.

Это делает IoC самым быстрым тестом для различения семейств шифров. Шифры Цезаря, Atbash и замены по ключевому слову лишь переименовывают буквы, поэтому неравномерный английский профиль сохраняется, и IoC остаётся высоким, около 0.066. Шифры Виженера и другие полиалфавитные шифры смешивают несколько алфавитов, сглаживая частоты и тянув IoC вниз к 0.04. Инструмент выводит значение с короткой подсказкой, так что высокий результат указывает вам на шифр замены, а низкий — на полиалфавитный шифр.

Биграммы, триграммы и узоры сочетаний

Отдельные буквы — лишь начало. В английском также есть сильно предпочитаемые пары и тройки букв: TH, HE, IN, ER и AN — самые частые биграммы, а THE, AND, ING и ENT доминируют среди триграмм. Инструмент перечисляет самые частые пары и тройки в вашем тексте, считая их только внутри слов, чтобы пробел никогда не соединял две несвязанные буквы в ложную пару.

Эти узоры сочетаний бесценны, когда простого подсчёта букв недостаточно. В шифре замены замаскированная версия THE часто оказывается самой частой триграммой, давая вам сразу три буквы. Повторяющиеся биграммы могут выдать длину ключа Виженера методом Касиски. Даже отсутствие сдвоенных букв или подозрительная череда редких пар — это подсказка о том, с каким шифром вы имеете дело.

Взлом шифров с помощью частотного анализа

Чтобы атаковать моноалфавитный шифр замены, отсортируйте график по частоте и выровняйте его относительно английского. Самая частая буква шифра — вероятно, E, следующая — вероятно, T, а верхняя триграмма — вероятно, THE. Впишите карандашом эти догадки, затем используйте списки биграмм и триграмм, чтобы их расширить — как только вы знаете E и T, пара TH и слово THE быстро встают на место, и остальная часть сообщения распутывается оттуда.

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

Моноалфавитный против полиалфавитного с первого взгляда

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

Низкий индекс совпадений и плоский график, где все столбцы примерно одинаковой высоты, означают полиалфавитный шифр, где одна буква открытого текста может стать множеством разных букв шифра — Виженер, Beaufort, Gronsfeld или Porta. Они скрывают сырые частоты букв, поэтому сначала нужно восстановить длину ключа, а затем анализировать каждую позицию отдельно. График и IoC говорят вам, в каком из этих двух миров вы находитесь, прежде чем вы потратите какие-либо усилия.

Ограничения и хорошая практика

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

Имейте в виду, что показанная здесь английская база — для обычной прозы. Специализированный текст — список имён, фрагмент исходного кода или письмо на другом языке — имеет свой собственный профиль и не совпадёт. Инструмент игнорирует пробелы, цифры и знаки препинания и сводит верхний и нижний регистр вместе, что именно то, что нужно для классических шифров, но это означает, что он анализирует только буквы, а не структуру кодировки вроде Base64 или Morse. Для них сначала определите кодировку и декодируйте её, затем запустите частотный анализ на буквах под ней.

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

Что такое частотный анализ?
Частотный анализ подсчитывает, как часто каждая буква, пара и тройка встречается в тексте. Поскольку языки используют буквы неравномерно — E и T в английском часты, Q и Z редки — этот узор действует как отпечаток пальца. Это старейшая техника криптоанализа и главный способ взлома классических шифров замены.
Как использовать частотный анализ для взлома шифра?
Отсортируйте график по частоте и сопоставьте его с английским: самая частая буква шифра — вероятно, E, следующая — T, а верхняя триграмма — вероятно, THE. Впишите карандашом эти догадки, затем расширьте их списками биграмм и триграмм, пока сообщение не прочитается. Для шифра Цезаря просто найдите сдвиг, который выравнивает пик с E.
Что такое индекс совпадений?
Индекс совпадений измеряет вероятность того, что две случайно выбранные из текста буквы окажутся одинаковыми. Английский — около 0.067, а случайный текст — около 0.038. Моноалфавитные шифры держат значение высоким, около 0.066, тогда как полиалфавитные шифры вроде Виженера сглаживают его к 0.04, и это самый быстрый способ различить два семейства.
В чём разница между моноалфавитным и полиалфавитным?
В моноалфавитном шифре каждая буква всегда отображается в одну и ту же другую букву, поэтому бугристый частотный профиль английского сохраняется, и высокий индекс совпадений и неравномерный график выдают его. Полиалфавитный шифр использует несколько алфавитов, поэтому одна буква открытого текста становится множеством букв шифра, сглаживая график и понижая индекс совпадений.
Почему инструмент показывает биграммы и триграммы?
Отдельных букв не всегда достаточно. В английском есть сильно предпочитаемые пары и тройки вроде TH, HE, THE и ING. В шифре замены замаскированное THE обычно оказывается самой частой триграммой, давая вам сразу три буквы, а повторяющиеся биграммы могут раскрыть длину ключа Виженера методом Касиски.
Что означают столбцы и вертикальный маркер?
Заполненный столбец — это то, как часто буква встречается в вашем тексте, в процентах от всех букв. Тонкий вертикальный маркер в той же строке — это частота этой буквы в типичном английском. Столбец, который превышает свой маркер, перепредставлен; тот, что не дотягивает, встречается реже обычного. Сравнение показывает с первого взгляда, чем ваш текст отличается от обычного английского.
Сколько текста мне нужно для надёжных результатов?
Частотный анализ статистичен, поэтому чем длиннее, тем лучше. Десяток букв может показывать обманчивые частоты по чистой случайности, тогда как целый абзац устаканивается близко к ожидаемому узору. Если образец выглядит неоднозначным, он обычно слишком короткий, а не метод подводит. Стремитесь хотя бы к одному-двум предложениям.
Работает ли это для языков, отличных от английского?
Он подсчитывает буквы от A до Z и сравнивает их с английской базой, поэтому подсчёты верны для любого текста, но сравнение имеет смысл только для английской прозы. У других языков свои частотные профили, поэтому столбцы не выровняются с маркерами, хотя сырые подсчёты, биграммы и индекс совпадений всё равно полезны.
Могу ли я анализировать Base64, Morse или двоичный код?
Этот инструмент изучает частоты букв, поэтому лучше всего работает на алфавитном тексте и шифрах. Кодировки вроде Base64, Morse или двоичной представляют текст как символы или числа, а не буквы, поэтому сначала их следует определить и декодировать, а затем запустить частотный анализ на буквах под ними. Определитель шифра может подсказать, какая у вас кодировка.
Загружается ли мой текст на сервер?
Нет. Весь подсчёт происходит целиком в вашем браузере, поэтому ваш текст никогда не загружается, не логируется и не сохраняется. Даже ссылка для обмена хранит ваш текст в части URL после решётки, которую браузеры никогда не отправляют на сервер, поэтому он остаётся приватным, пока вы сами не решите им поделиться.
Могу ли я экспортировать таблицу частот?
Да. Кнопка «Экспорт в CSV» скачивает полную таблицу от A до Z с подсчётом каждой буквы, её процентом в вашем тексте и процентом по английской базе, готовую открыть в таблице или вставить в заметки. Вы также можете скопировать ссылку, которая снова откроет инструмент с тем же текстом.

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

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

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

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

Конвертер JSON в CSV

Конвертер CSV в JSON

Конвертер JSON в YAML

Конвертер текста в двоичный код