Я начинаю дискуссионную тему о технических достоинствах и криптографической разумности моего недавнего предложения о PassPhrase защищенного закрытых ключей.
https://en.bitcoin.it/wiki/BIP_0038
Основные особенности:
* Зашифрованные ключи пятьдесят восемь Base58Check кодировка символов, начиная с "6P"
* Шифрование использует AES-256. Ключевой вывод использует Scrypt. Параметры фиксируются на 16384,8,8; неиспользуемое пространство в формате ключ позволяет будущие изменения спецификации.
* Обнаружение опечатки представляет собой 32-битный хэш полученного адреса Bitcoin и требует полного вывода и процесса расшифровки для того, чтобы быть проверен, поэтому он не обеспечивает ускорение для крекеров. Этот 32 бит также используется в качестве соли.
* Эллиптический кривой шаг умножения выбирается, позволяя схему, где Алиса может выбрать кодовую фразу и Боб может создать и фонд Bitcoin адресов, только Алиса может расшифровать; спецификация описывает то, что Алиса должна дать Бобу, чтобы это случилось, не разглашая ее ключевую фразу, и определяет Base58Check кодированного формата для него.
* Оба сжатых и несжатых форматов открытого ключа выбираются.
Полностью функциональная проверка концепции код был опубликован в https://github.com/casascius/Bitcoin-Address-Utility
Недавно я побежал конкурс где я создал зашифрованный бумажный бумажник с 5-буквенным паролем, погрузил его с 10 BTC и опубликовал зашифрованный секретный ключ, спрашивая человек, чтобы взломать на него. Прошло два дня, в конечном итоге победитель бросил 20 машин на него, и выиграл только после того, как я просочилась достаточно информации о пароле для сокращения поиска набора в соответствии с 6 миллионов возможных паролей. Его оценка того, сколько времени это заняло бы его искать все (уменьшенный) поиска набор был 45 до 60 часов.
Я надеюсь, что мое предложение будет рассматриваться как безопасное достаточно для реализации во всем мире в качестве стандарта, в любом месте кто-то попросил, чтобы обеспечить закрытый ключ для какой-либо причины. Это включает в себя любые частные ключевые развертки или функции импорта в клиенте Satoshi. В рабочем процессе пользовательского интерфейса, если защищенный паролем секретный ключ будет введен, то это должно быть определено автоматически, и пользователь будет предложено: "Введите пароль", В контексте RPC, пароль будет еще один аргумент на звонки.