Это старая редакция страницы Черновики / Руководства / Вопросы Кандидатыв F A Q / Криптография Практика за 01/07/2010 11:11.
Шифрование, подписание, уничтожение данных
Вычеркнутые вопросы перенесены в FAQ
Парольную фразу какой длины имеет смысл использовать в программах шифрования?
Многие программы используют стандарт PBKDF2, который обеспечивает замедление атак словарного перебора, за счёт многократного хэшированию с солью. Многократное хэширование даёт замедление на проверки каждого пароля. Т.н. "соль" (случайно сгенерированная открытая строка) используется для предотвращения заранее просчитанных таблиц ключей из паролей.
Если даже не рассматривать эти меры противодействия словарным атакам, то для самых консервативных оценок нужно исходить из 128-битной стойкости пароля.
Т. е. pn должно быть примерно равно 2128, где p — количество символов во множестве для случайного выбора, из которого составлен пароль, n — длина пароля.
Например 2727 ≈ 2128 — если можно запомнить абсолютно случайный набор из двадцати шести букв с клавиатуры + пробел.
На практике проще всего запомнить 10 случайно выбранных слов из специально подготовленных словарей коротких слов Diceware, что даст 128-битный уровень. Слова можно связать во фразу для лёгкого запоминания, главное не использовать известные фразы, не подгонять порядок слов под естественный.