Закрытые ключи должны _always_ быть лишены злоумышленник непознаваемых данных. Эти данные могут проходить через CSPRNG на своем пути, но с точки зрения атакующего он должен быть «случайным».
Просто торчу в ПСЧ мгновенно вызывать пользователи ограбят, так как злоумышленник просто запустить ту же программу и получить те же результаты. На рабочем столе ОС обеспечивает криптостойкого ПСЧ, который работает над и пула энтропии и постоянно подпитывается источники истинной случайности. Это основной источник ключевой энтропии в ядре Bitcoin (фактическая реализация находится под капотом библиотеки, поэтому вы не видели / DEV / urandom вызовов в самой Bitcoin кодового).
Возможно, вам следует пересмотреть, если вы готовы создавать криптографическое программное обеспечение для третьих сторон использовать в это время? Если вы допустили ошибку здесь люди потеряют деньги, но ошибка может быть неоткрытых в течение многих месяцев. сбои безопасности, как правило, полностью невидимым, пока они не являются.
Правда, и безопасность недостаточность является основной проблемой, и поэтому я отправляю здесь, а не просто недобросовестный аппаратного ГСЧ. То, что я пытаюсь создать сильное обоснование и глубокое понимание того, почему я должен использовать аппаратный ГСЧ, а не CSPRNG высевают периодически по временной метке «случайно» происходящих событий, таких как события ввода-вывода. Мое текущее понимание того, что основная ценность установленного аппаратного ГСЧ является то, что имеется достаточно доступные данные испытаний и третья сторона проверки, чтобы доказать, что это криптографический безопасная. Доморощенный CSPRNG высевает со случайными событиями IO может быть хуже или лучше (возможно, из-за какое-то неизведанное смещение в методе оборудования), но большое количество дополнительных усилий требуется, чтобы получить соответствующие заверения усилий проверки оборудования.
Другой интересный момент, который я заметил, была драма с "/ DEV / случайное" и rdrand INTELS' (используя их DRNG). Я случайно при условии, если причина Bitcoin делает дополнительный Посев гарантировать дополнительный уровень защиты от смещения ГСЧ. Тем не менее, это выглядело как перфорация счетчик метод был склонен к манипуляциям, и казалось, что злоумышленник может легко переопределить вызов QueryPerformanceCounter, и либо вернуть известные значения или предсказуемые значения. Счетчик перфорации только один источник многих, но почему не потенциальный уклон там уменьшить общую уверенность в системе? Есть ли смысл убывающей отдачи, когда речь идет о добавлении энтропии из нескольких источников?