← Back to Blog

Энтропия пароля: как на самом деле рассчитать его надёжность

2025-12-26

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

Коротко

  • Энтропия (в битах) измеряет размер пространства перебора, которое злоумышленник должен исследовать методом полного перебора: энтропия = log2(размер набора символов ^ длина).
  • Каждый дополнительный символ умножает пространство перебора; каждый дополнительный тип символов умножает его лишь на фиксированный, сравнительно небольшой коэффициент.
  • 12-символьный пароль только из строчных букв имеет меньшую энтропию, чем 8-символьный пароль со всеми четырьмя типами символов, — но 20-символьная кодовая фраза из строчных букв превосходит оба варианта.
  • Пароли, сгенерированные CSPRNG, точно достигают теоретической энтропии; пароли, выбранные человеком, почти никогда её не достигают, потому что люди не случайны.

Короткий ответ

Энтропия в битах — это log2(N), где N — общее число равновероятных паролей заданной длины и набора символов. На практике: энтропия = длина × log2(размер набора символов). 16-символьный пароль, равномерно выбранный из 95 печатаемых символов ASCII, имеет примерно 16 × log2(95) ≈ 105 бит энтропии — это сопоставимо с 256-битным ключом AES по практической устойчивости к перебору, что избыточно для сравнения, но 105 бит уже далеко превосходят то, что может исчерпать любое современное или предвидимое оборудование. PassGenerate генерирует пароли именно так — с помощью CSPRNG из Web Crypto API, поэтому эта цифра энтропии реальна, а не только теоретична.

Формула энтропии, шаг за шагом

Энтропия предполагает, что каждый символ выбирается независимо и равномерно случайно из фиксированного набора. При наборе символов размером C и пароле длиной L число возможных паролей равно C^L, а энтропия в битах составляет:

энтропия = L × log2(C)
Набор символовРазмер набора (C)Бит на символ (log2 C)
Только цифры (0-9)103.32
Строчные буквы (a-z)264.70
Строчные буквы + цифры365.17
Смешанный регистр + цифры625.95
Смешанный регистр + цифры + символы (~33 распространённых)956.57

Длина против размера набора символов: почему побеждает длина

Эта таблица показывает, почему NIST SP 800-63B отводит второстепенную роль принудительным правилам сложности в пользу длины:

ДлинаТолько цифрыСтрочные буквыСмешанный регистр+цифры+символы
827 бит38 бит52 бита
1240 бит56 бит79 бит
1653 бита75 бит105 бит
2066 бит94 бита131 бит
2480 бит113 бит157 бит
32106 бит150 бит210 бит

Обратите внимание, что 8-символьный пароль со всеми четырьмя типами символов (52 бита) имеет меньше энтропии, чем 12-символьный пароль полностью из строчных букв (56 бит). Это математическая основа хорошо известного вывода: добавление четырёх случайных символов делает больше для вашей безопасности, чем принудительное включение символов и цифр в короткий пароль. Именно поэтому длинные, случайно сгенерированные кодовые фразы (несколько случайных слов из словаря) могут быть одновременно и надёжнее, и легче для набора, чем короткий набор символов, — каждое дополнительное слово обычно добавляет 11-13 бит, если оно взято из списка в несколько тысяч слов, что быстро накапливается на 4-6 словах.

Почему «выглядеть случайным» — не то же самое, что быть случайным

Расчёты энтропии предполагают истинную равномерную случайность. Пароли, придуманные людьми, систематически нарушают это предположение, даже если выглядят сложными: последовательности клавиш на клавиатуре (Qwerty123!), замены в стиле leetspeak (P@ssw0rd), а также даты или имена с добавленным символом — всё это снижает фактическую энтропию значительно ниже того, что предполагает количество символов, потому что инструменты взлома злоумышленников построены именно вокруг таких шаблонов. Пароль может выглядеть случайным для человеческого глаза и всё же оказаться среди первых нескольких миллионов попыток целевой словарной атаки.

Это практическая причина предпочитать генератор, использующий криптографически стойкий генератор псевдослучайных чисел (CSPRNG), самостоятельному изобретению пароля. Math.random() в JavaScript не является криптографически стойким и не подходит для генерации паролей — он инициализируется и генерируется алгоритмом, достаточно предсказуемым, чтобы в некоторых движках его можно было восстановить по нескольким выходным значениям. Функция crypto.getRandomValues() из Web Crypto API берёт значения из криптографического источника случайности операционной системы, поэтому каждый символ по-настоящему независимо случаен, и приведённая выше математика энтропии действительно применима.

Как это выглядит на реальном оборудовании

Приведённые выше цифры в битах полезны для сравнения, но не показывают, сколько времени реально занимает атака, — это зависит от оборудования, выполняющего перебор, а такое оборудование становится быстрее с каждым годом. Hive Systems ежегодно публикует именно такой тест, проверяя скорость перебора на арендованном парке потребительских GPU. В таблице 2026 года случайно сгенерированный 8-символьный пароль с полным смешанным набором символов (заглавные, строчные буквы, цифры, символы) оценивается примерно в 132 года на взлом — по сравнению со 164 годами в 2025 году и 225 годами в 2024 году, то есть снижение примерно на 20-25% в год по мере совершенствования GPU. 8-символьный пароль только из строчных букв упал ещё быстрее: с трёх недель на взлом в 2025 году до примерно двух недель в 2026 году.

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

Сколько бит реально нужно

Единого универсального числа не существует, потому что всё зависит от того, от чего вы защищаетесь:

  • ~40-60 бит: Устойчивость к случайному подбору и небольшим автоматизированным атакам, но в пределах досягаемости хорошо оснащённой офлайн-атаки против слабо хешированной базы данных. Подходит только для действительно малоценных учётных записей с минимальными последствиями.
  • ~70-90 бит: Уверенно выходит за пределы досягаемости перебора даже при использовании оптимизированного оборудования для взлома, в любых реалистичных временных рамках атаки. Разумная цель для большинства личных учётных записей.
  • 100+ бит: Практически недостижимо методом перебора при текущих или предвидимых вычислительных мощностях, криптографически надёжно в том же смысле, что и сильный ключ шифрования. Подходит для главного пароля вашего менеджера паролей или других единых точек отказа.

Ключевые выводы

  • Энтропия равна длина × log2(размер набора символов) — длина оказывает линейный эффект, размер набора символов — логарифмический, поэтому длина преобладает.
  • Короткий пароль со всеми типами символов может иметь меньшую энтропию, чем более длинный пароль только с одним типом.
  • Фактическая энтропия равна теоретической только тогда, когда символы по-настоящему равномерно случайны, — это гарантирует CSPRNG, а человеческий выбор обычно этого не достигает.
  • Стремитесь к 70+ битам для повседневных учётных записей и к 100+ битам для главных паролей или других единых точек отказа.

Почему вы можете доверять PassGenerate

  • Пароли генерируются локально в вашем браузере с помощью Web Crypto API.
  • Пароли не передаются на серверы.
  • Используется криптографически стойкий генератор псевдослучайных чисел (CSPRNG).
  • Соблюдаются современные передовые практики безопасности, рекомендованные NIST и OWASP.

Источники

  • Таблица паролей Hive Systems 2026 (данные тестов на перебор)
  • NIST SP 800-63B – Руководство по цифровой идентификации
  • Шпаргалка OWASP по аутентификации

Итог

Энтропия — это точная, вычисляемая мера надёжности пароля, а не расплывчатое понятие «сложности». Длина важнее принудительного смешивания типов символов, потому что она линейно увеличивает пространство перебора, тогда как размер набора символов увеличивает его лишь логарифмически — и всё это работает только в том случае, если символы действительно случайны, поэтому генератор на основе CSPRNG, такой как PassGenerate, создаёт пароли, которые точно достигают своей теоретической энтропии, — то, чего пароль, выбранный человеком, практически никогда не достигает.