Что квалифицирует действительный закрытый ключ?

Название в значительной степени суммирует вопрос - скажем (например). У меня есть строка букв или чисел, переданных в память, насколько сложно было бы преобразовать ее в закрытый ключ? Или аналогичным образом, как трудно было бы построить закрытый ключ на основе предложения, мнемонического или иного?

6 голосов | спросил George Pearce 28 PMpSun, 28 Apr 2013 18:47:30 +040047Sunday 2013, 18:47:30

1 ответ


3

Посмотрите http://brainwallet.org/ для примера.

Частный ключ биткойна - это всего лишь 256-битное число. Любой алгоритм, который может преобразовать произвольный текст в число такого размера, должен делать.

Достаточно простой алгоритм состоит в том, чтобы считать вашу строку базовым номером 63 (az, AZ, 0-9 и пробелами) и записать в двоичном формате, взять число по модулю 2 256 и написать в шестнадцатеричном формате.

Или вы берете базовое число от 63 до двоичного кода, поднимите его на десять, сдвиг бит влево 20 раз, умножьте на 8, добавьте 4, бит сдвига вправо 50 раз, возьмите по модулю 2 256 , конвертировать в hex, и у вас есть закрытый ключ.

Или что угодно. Попытайтесь сделать так, чтобы число, сгенерированное до вычисления его по модулю 2 256 , намного больше, чем 2 256 . В противном случае многие из ваших сгенерированных адресов будут просто связкой нулей, за которыми следует относительно короткая шестнадцатеричная строка.

ответил Manishearth 28 PMpSun, 28 Apr 2013 19:20:19 +040020Sunday 2013, 19:20:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132