«Используйте надёжный пароль» — распространённый совет, но «надёжный» — понятие расплывчатое. Энтропия — это реальная мера, стоящая за этим советом: число в битах, показывающее, сколько попыток в худшем случае потребуется злоумышленнику. В этой статье объясняется, что означает это число и как рассчитать его для пароля, который вы действительно выбираете.
Коротко
- Энтропия (в битах) измеряет размер пространства перебора, которое злоумышленник должен исследовать методом полного перебора:
энтропия = 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) | 10 | 3.32 |
| Строчные буквы (a-z) | 26 | 4.70 |
| Строчные буквы + цифры | 36 | 5.17 |
| Смешанный регистр + цифры | 62 | 5.95 |
| Смешанный регистр + цифры + символы (~33 распространённых) | 95 | 6.57 |
Длина против размера набора символов: почему побеждает длина
Эта таблица показывает, почему NIST SP 800-63B отводит второстепенную роль принудительным правилам сложности в пользу длины:
| Длина | Только цифры | Строчные буквы | Смешанный регистр+цифры+символы |
|---|---|---|---|
| 8 | 27 бит | 38 бит | 52 бита |
| 12 | 40 бит | 56 бит | 79 бит |
| 16 | 53 бита | 75 бит | 105 бит |
| 20 | 66 бит | 94 бита | 131 бит |
| 24 | 80 бит | 113 бит | 157 бит |
| 32 | 106 бит | 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, создаёт пароли, которые точно достигают своей теоретической энтропии, — то, чего пароль, выбранный человеком, практически никогда не достигает.