Криптография: практика
Вычеркнутые вопросы перенесены в FAQ
Парольную фразу какой длины имеет смысл использовать в программах шифрования?
Многие программы используют стандарт PBKDF2, который обеспечивает замедление атак словарного перебора, за счёт многократного хэшированию с солью. Многократное хэширование даёт замедление проверки каждого пароля. Т.н. "соль" (случайно сгенерированная открытая строка) используется для предотвращения использования заранее просчитанных таблиц ключей из паролей.
Если даже не рассматривать эти меры противодействия словарным атакам, то для самых консервативных оценок нужно исходить из 128-битной стойкости пароля.
Т. е. pn должно быть примерно равно 2128, где p — количество символов во множестве для случайного выбора, из которого составлен пароль, n — длина пароля.
Например 2727 ≈ 2128 — если можно запомнить абсолютно случайный набор из двадцати шести букв с клавиатуры + пробел, длиной также из 27 символов.
Энтропию одного символа можно посчитать, решив уравнение 2x=N, где N это количество символов в алфавите:
x = log2(N) = ln(N)/ln(2)
Умножив эту величину на количество символов в пароле, легко рассчитать его общую энтропию.
На практике проще всего запомнить 10 случайно выбранных слов из специально подготовленных словарей коротких слов Diceware, что даст 128-битный уровень. Слова можно связать во фразу для лёгкого запоминания, главное не использовать известные фразы, не подгонять порядок слов под естественный.
Для оптимизации простоты запоминания можно уменьшать число слов, но увеличивать число дополнительных символов, сверяя получаемое значение энтропии пароля с формулой.
См. также Современная техника взлома паролей, Выбор и защита паролей, Фонетический пароль
Если 11 или больше – использование спецсимволов, если 10 или меньше – увеличение длины.
Потому что:
(62 + 30)^10 / 62^(10 + 1) = 0.83477549
(62 + 30)^11 / 62^(11 + 1) = 1.23869911
ps
Это не ответ на вопрос "что проще использовать", который во многом субъективен.
Это явно не к слову. 255 символов не называется ограничением пароля.
Здесь есть 2 эффекта. Чем больше алфавит, тем случайней пароль при той же длине; но чем меньше подмножество алфавита, из которого выбираются "дополнительные символы" (например, прибавка к паролю для улучшения его стойкости), тем хуже, по сравнению со случаем, когда подмножество совпадает с самим множеством. Идеально, конечно, выбирать удлиннение пароля не давая ни преимуществ спецсимволам, ни выраженного пренебрежения к ним: продолжение пароля должно быть случайно, как и сам пароль, соображения же про особую роль спецсимволов идут вот откуда: в силу лёгкости запоминания основная часть пароля у народа обычно не содержит спецсимволов, тогда, добавляя оные к паролю, производится не только удлиннение пароля, но и расширение использованного алфавита. Если же "основная часть" пароля уже содержала спецсимволы. то удлинять его именно за счёт них же смысла не имеет. Это были чисто качественные соображения, что же касается количественных – Гость выше привёл ссылку с расчётами (я их не проверял, но выглядят правдоподобно и результаты вполне физичны: ответ зависит от числа символов в пароле и т.д.)
А 20 не называется числом лет человека. Поясните свою глубокую мысль для простых смертных.
Один эффект всего. Эффект ощущения себя очень хитрозадым хакером, который ничего по сути не даёт. Сравниваем мы два пароля одинаковой стойкости. Привожу пример для несообразительных.
Пароль первый, выглядит вот так:
Стойкость 128-бит. Крутизна хакерства: 100%.
Пароль второй, выглядит вот так:
Стойкость 128-бит. Крутизна хакерства: 0%.
Гипотеза: второй пароль легче читать и вводить. Контраргументы для этой гипотезы никто так и не представил. Можете попробовать набрать каждый из них и убедиться, что сделать легче.
Что же здесь пояснять? Ограничение пароля было, если мне не изменяет память, в ICQ, до 8 символов. Вот это ограничение. А 255 символов даже в ЦРУ никому не придёт в голову использовать.
комментариев: 9796 документов: 488 редакций: 5664
Вот освою какой-нибудь матлаб... :)
Практическое правило получается такое: для нивилирования преимуществ спецсимволов удлинять нужно на цифру десятков в длине пароля плюс один.
Вы, вероятно, невнимательно читаете: Объясняю ещё раз: спецсимвол вводится нажатием шифта и клавиши с цифрой (0-9) либо буквой (ёхъжэбю) и остаётся всего лишь четыре клавиши со спецсимволами как таковыми (.-=\) три из которых вполне читабельны и два из них (точка и дефис) даже употребляются при написании литературных текстов. (Кстати, говаря что спецсимволов 30, забыл про "|" и "\", так что их 32, а с пробелом и все 33)
Запоминайте в пароле русские альфанумерики и ещё "большие" цифры, а вводите на латинском регистре, и будет вам щастье!
Ну и ещё некоторые запоминают расположение клавиш, а не символы на них.
Ваша логика, я вижу, такая: берём вывод pwgen, выглядеть он будет примерно так:
Теперь из этого вывод выбирается пароль, по возможности (в идеале – полностью) не содержащий спецсимволов. Если нагенерить много паролей то такой точно можно будет найти. Поскольку каждый пароль считается в вашей логике одинаково стойким, вы делаете вывод, что будет столь же стойким и выбранные (один из десятков или сотен примеров) пароль, не содержащий спецсимволов. Если вы не замечаете здесь проблему с логикой/математикой/комбинаторикой/вероятностью, то я даже не знаю какие ещё аргументы вам стоит привести (хотя их все уже привёл Гость, просто тупо дав результаты расчёта – вы ни одно число не оспорили).
А можно я не буду в ответ опускаться до троллинга, оффтопа и неконструктивных образных красных словец?
Лучше 2 -> r:
"KogupoBoK MHoro u He Bcerga BbIxoguT HacTpouTb nporpaMMy KaK Hago"
[/offtop]
Я уже устал повторять одно и то же.
Вы принципиально отказываетесь понимать мою логику. И я не знаю что с этим делать. Прочитайте первый комментарий в топике ещё раз, если вы не понимаете как разные алфавиты дают одинаково стойкие пароли. И циферки другого Гостя здесь не при чём. Он пытался опровергнуть очевидно истинное утверждение, и даже убедил себя в том, что он что-то доказал. "Опровергать" его выкладки у меня нет ни малейшего желания.
Ну почему-же? Вдруг ваша интуиция точнее, чем гугл-калькулятор?