Учитывая, что вам нужно примерно 2048 битов случайности, чтобы запустить ваши тесты на простоту (1024 бита на каждое потенциальное простое число), и что ваши потенциальные простые числа могут не пройти тесты на простоту, ваши парольные фразы должно быть очень длинным для обеспечения достаточной энтропии для генерации хороших ключей.
Предположим, что на клавиатуре примерно 94 клавиши, которые генерируют символы, и далее предположим, что пользователи действительно нажмут на них в случайном порядке . (Не очень хорошее предположение, но терпите меня.)
Это log(94)/log(2) == 6.55
бит энтропии на символ. Чтобы получить 2048 битов энтропии, вам нужно запросить фразу-пароль длиной 313 символов: 2048 / 6.55... == 312.45
.
Как вы думаете, что ваши пользователи будут чувствовать, когда вас попросят ввести 300+ символьную фразу? И помните, это при оптимистическом предположении, что пользователи будут нажимать каждый из 94 символов случайным образом; это кажется невероятным для меня. Я думаю, что 40 с лишним символов станут пределом реального творчества людей: 26 букв, 10 цифр и знаки пунктуации, которые не требуют сдвига. Это будет примерно 384 символа в вашей парольной фразе.
Пожалуйста, просто придерживайтесь случайно сгенерированных ключей, где кто-то очень умный отвечает за сбор энтропии для заполнения генератора псевдослучайных чисел.