Энтропия пароля, объяснённая на реальных числах
Опубликовано 2026-07-20
Индикаторы надёжности пароля — это ощущения. Энтропия — это арифметика. Вот реальная математика, стоящая за «надёжностью пароля», время взлома, рассчитанное на реальных аппаратных показателях, и честный взгляд на то, какие из правил, которым вас заставляли следовать, вообще на что-то влияют.
Что такое один бит энтропии
Энтропия измеряет, из скольких равновероятных вариантов был выбран пароль, выраженная как логарифм по основанию 2. Пароль, выбранный равномерно из 1024 вариантов, имеет 10 бит энтропии, потому что 210 = 1024. Каждый добавленный бит удваивает количество попыток, которые понадобятся злоумышленнику в худшем случае. Для случайно сгенерированного пароля формула проста: энтропия = длина × log2(размер алфавита).
Слово «случайно» несёт на себе всю смысловую нагрузку этого предложения. Формула применима только тогда, когда каждый символ выбирается настоящим генератором случайных чисел. Пароль, придуманный человеком, этому не соответствует: люди выбирают из крошечного, сильно смещённого набора имён, дат, «змеек» по клавиатуре и слов с приписанной в конце единицей, а программы для взлома построены как раз вокруг этих закономерностей.
Числа по символам
Только строчные буквы: 26 символов, 4.70 бита на символ. Добавьте заглавные: 52 символа, 5.70 бита. Добавьте цифры: 62 символа, 5.95 бита. Добавьте все печатные символы ASCII: 95 символов, 6.57 бита. Обратите внимание, насколько слаба эта прогрессия. Переход от только строчных букв к полному набору из 95 символов даёт прирост менее чем на 2 бита на символ, тогда как добавление ещё одного символа к паролю даёт прирост от 4.7 до 6.6 бита. Длина побеждает сложность набора символов каждый раз, и не с небольшим отрывом.
Время взлома, конкретно
Предположим худший реалистичный случай: хэш вашего пароля утёк в результате взлома, сайт использовал быстрый алгоритм вроде MD5 или NTLM (тот же тип хэша, который вы можете мгновенно вычислить в нашем генераторе хэшей, и это как раз та самая проблема), а злоумышленник использует современную многопроцессорную GPU-установку, делающую около 100 миллиардов попыток в секунду. Время на перебор всех комбинаций:
| Пароль | Энтропия | Время на исчерпание |
|---|---|---|
| 8 случайных строчных букв | 37.6 бита | около 2 секунд |
| 8 случайных символов, полный набор из 95 | 52.6 бита | около 18 часов |
| 12 случайных строчных букв | 56.4 бита | около 11 дней |
| 5 случайных слов diceware | 64.6 бита | около 9 лет |
| 16 случайных строчных букв | 75.2 бита | около 14 000 лет |
| 6 случайных слов diceware | 77.5 бита | около 70 000 лет |
| 12 случайных символов, полный набор из 95 | 78.8 бита | около 170 000 лет |
Разделите эти числа пополам для среднего случая, поскольку злоумышленник обычно находит пароль на середине пути перебора пространства. Если сайт использовал медленный хэш вроде bcrypt или Argon2, скорость перебора падает примерно в миллион раз, и каждая строка становится в миллион раз длиннее. Но вы редко знаете, что использует сайт, поэтому планируйте на быстрый случай.
Почему побеждают парольные фразы
Слово, выбранное случайно из стандартного списка diceware на 7776 слов, стоит log2(7776) = 12.9 бита. Пять слов дают 64.6 бита; шесть слов дают 77.5 бита — примерно надёжность 12 по-настоящему случайных символов, взятых из полного набора символов. Разница в том, что «maple-thunder-oboe-crisp-vandal» можно набрать на клавиатуре телефона и запомнить после нескольких использований, а «xX9#qL!2mFp$» — нет. Однако действует та же оговорка: слова должны исходить от генератора случайных чисел. Выберите их сами — и вы выберете распространённые, связанные между собой слова, а реальная энтропия рухнет.
Откуда берётся хорошая случайность
Каждый современный браузер предоставляет криптографически стойкий генератор случайных чисел, crypto.getRandomValues, который инициализируется из пула энтропии операционной системы. Генератор, построенный на его основе, при внимательном избегании смещённой выборки при отображении случайных байтов на набор символов, создаёт пароли, энтропия которых действительно соответствует формуле. В этом вся разница между сгенерированным паролем и придуманным: энтропия сгенерированного реальна и вычислима, а энтропия придуманного — это догадка, и обычно лестная для себя.
Три мифа, которые пора отправить на пенсию
Обязательные символы. Правила составления («минимум одна заглавная буква, одна цифра, один символ») почти не влияют на математику, как показывают приведённые выше числа по символам, а на практике они подталкивают людей к предсказуемым шаблонам: заглавная буква в начале, восклицательный знак в конце, @ вместо a. Наборы правил для взлома кодируют эти замены уже десятилетиями, поэтому P@ssw0rd! взламывается за миллисекунды, что бы ни показывал индикатор надёжности. Рекомендации NIST (SP 800-63B) советуют не использовать правила составления с 2017 года.
Принудительная смена каждые 90 дней. Предсказуемый результат — это когда Summer2025! превращается в Autumn2025!. NIST снова: меняйте пароль при наличии доказательств компрометации, а не по календарю.
Оценка энтропии на глаз по строке. Энтропия — это свойство процесса, который сгенерировал пароль, а не результата. «xK4pQ9vT», придуманный в вашей голове, гораздо слабее восьми символов от криптографического генератора случайных чисел, даже если они выглядят одинаково. Именно поэтому индикаторы надёжности вводят в заблуждение: они видят только результат.
Практические ориентиры
Для учётных записей, где злоумышленник может только подбирать пароль онлайн против ограничителя скорости запросов, 40 бит более чем достаточно: при 100 попытках в час перебор даже 230 вариантов займёт больше тысячи лет. Для всего, что может подвергнуться атаке офлайн после утечки — а это безопасное предположение для важных для вас учётных записей — стремитесь к 75 битам или больше: около 14 случайных смешанных символов, или шесть слов diceware. И делайте каждый пароль уникальным для каждого сайта, чтобы взломанный форум не мог открыть доступ к вашей почте, а это на практике означает менеджер паролей плюс генератор.
Если хотите увидеть эту математику в действии, генератор паролей norito предлагает оба режима — случайные строки символов и парольные фразы на основе слов — с показанием энтропии в реальном времени. Как и любой инструмент на этом сайте, он полностью работает в вашем браузере, что особенно важно именно для паролей.