Закрытый и открытый ключ в ECC
Для создания открытого ключа в 256-битном ECC (Биткойн использует secp256k1) требуется однородный случайный 256-битный ключ для создания секретного ключа. $к$ (256-битное число) и публикует $[k]G$, то есть скалярное умножение с базовой точкой $G$ и это защищено проблемой дискретного логарифмирования в ECC, и если группа кривых является общей, то самая известная атака имеет стоимость $2^{128}$. Имейте в виду, что раз в Криптографический квантовый компьютер построен, алгоритм Шора применительно к DLog, безопасность пропала!
Случайные пароли несложно запомнить, используйте Dicewire кскд936
Людям трудно запомнить случайные 64 гекса, поэтому исследователи изобрели dicewire, и Bip39 похож на него. В Bip39, вместо запоминания 64 гексов, один раз выбрасываются случайные числа, вероятно, подбрасывая честную монету или получая от /dev/urandom
для выбора слов из списка слов Bip39. Хорошо известно, что 24 слова создают около 256-битной энтропии.
Выбранные слова не являются общедоступными и держать их в секрете все время.
Теперь мы можем рассматривать использование парольной фразы как
- Достигатьправдоподобное отрицание
- Увеличить случайность, когда случайный источник для генерации мнемоники из 24 слов ненадежен, как хотелось бы, и
- Используйте мнемоническое семя в качестве источника энтропии и защитите его парольной фразой.
Если мы прочитаем вопрос как,
Учитывая, что злоумышленники (не мы) знаю мнемоническое семя из 24 слов, какое количество символов я должен выбрать для своего пароля, чтобы его было очень трудно угадать на очень быстром суперкомпьютере? Или лучше, сколько перестановок должно быть достаточно, чтобы это было безопасно?
Итак, мы предполагаем, что мнемоническое слово из 24 слов не защищено должным образом.
Во-первых, репозиторию около 8 лет (created_at": "2013-11-19T17:18:41Z ) старше, чем последнее соревнование по хешированию паролей, проведенное в 2015 году. Для них нормально упоминать PBKDF2, а не Argon2. Кажется, этот документ не обновлен для сегодняшних нужд! Но ненормально предлагать итерацию 2048, и в то время были еще лучшие кандидаты.
- Bcrypt 1999 — итерация, без жесткости памяти
- PBKDF2 2000 — итерация, без жесткости памяти
- Scrypt 2009 — итерация, есть жесткость памяти
- Argon2 2015 — итерация, имеет жесткость памяти и противодействие распараллеливанию.
Во-первых, не используйте символы, снова используйте Bip39 или dicewire для генерации парольной фразы. Таким образом, с 12 словами можно достичь 128-битной энтропии, и это даже с простым хешем, таким как SHA1 или SHA256 вместо PBKDF2 или Argon2, достаточно безопасно с точки зрения безопасности. Саммит и Коллективная сила майнеров биткойнов, где майнер когда-то достиг $\приблизительно 2^{92,09}$ SHA256d в год на 7 февраля 2021 года. Если мы предполагаем, что это ваша целевая безопасность для вашего пароля, то для PBKDF2
используйте итерацию, такую как 1M, чтобы вы могли уменьшить коллективную мощность до $\приблизительно 2^{70}$ и уменьшить саммит примерно до $~2^{50}$*. Хорошая вещь в этой итерации настраивается в соответствии с вашими потребностями. (Можно использовать бенчмарк Hashcat на NVidia RTX 3090 настроить целевую безопасность в соответствии с суперкомпьютером, который содержит множество RTX, а не коллективной мощностью майнеров).
Мнемоника из 12 слов будет безопасна для Summit, 6-словный Bip39 преодолеет свою мощь. однако у нас есть лучшие альтернативы, даже тогда и сейчас - Скрипт и Аргон2!
Используйте Argon2, когда это возможно
Сегодня майнеры биткойнов широко используют ASIC и графические процессоры для массового распараллеливания процесса майнинга. Теперь у нас есть механизмы, подобные Argon2, против них.
Регулируемая память так что мощность поиска ASIC и GPU снижается. Даже на ПК, и не то, чтобы время использования памяти можно было эксплуатировать.
Регулируемый параллелизм так что ядро ЦП не может быть полностью запущено в параллельных экземплярах.
И, опять же количество итераций для сокращения времени поиска.
Параметры Argon2 должны быть измерены перед принятием решения, и все же мнемоника из 12 слов будет вполне безопасна для Argon2. Мы все еще можем сказать, что Bip39 из 6 слов будет защищен от Summit.
Или лучше, сколько перестановок должно быть достаточно, чтобы это было безопасно?
Читая это как перестановку 24 слов. Тогда у нас есть 24! и с помощью Формула приближения строки
$$n! \sim \sqrt{2 \pi n}\left(\frac{n}{e}\right)^n$$ затем установка $n=24$
24 доллара! \sim \sqrt{2 \pi 24}\left(\frac{24}{e}\right)^{24} \sim 6.2\mathrm{e}{+23} \sim 2^{80}$$
Это неплохо (примерно 8-словный Bip39), однако имейте в виду, что если злоумышленник знает мнемонику из 24 слов, то энтропия полученного ключа $к$ вместе с парольной фразой не может пройти $2^{80}$. Если у вас все в порядке с 80-битной энтропией, то с Argon2id с хорошими параметрами этого достаточно, чтобы обезопасить себя от перебора пароля. $2^{50}\ll 2^{80}$
Тем не менее, совет состоит в том, чтобы использовать новую мнемонику из 24 слов, если вы можете сохранить ее в безопасности, чтобы можно было найти эксплойт $80$-битная энтропия - теперь непонятно без перебора парольной фразы. Если не,
Заключительный совет; используйте менеджеры паролей, такие как keepass и password1, где вам нужен только один хороший пароль, желательно от dicewire или Bip39. Они могут создавать действительно случайные пароли для нужд, а хранилища паролей защищены вашим паролем, а все остальное они берут на себя.
*Имейте в виду, что цифры приблизительные, а не точные. Мы не можем быть уверены, не сидя за консолью суперкомпьютера - Summit