Я работаю с Bitcoin сделок на некоторое время. Я изменил JavaScript для bitaddress.org для бумажника мозга.
bitaddress.org предоставляет на стороне клиента JavaScript страницу, которая может быть легко работать на автономном компьютере, либо для Windows или Linux, что приятно.
Код выглядит хорошо написана и легко изменить. Код распознает фразу для закрытого ключа. Делая это непосредственно, я согласен, не очень безопасно. Я добавил возможность ввести пароль и PIN-код. Пароль изменен битым реверсивной каждый символ, а затем циклический XOR-ING его с ключевой фразой (очень старый и простой типом шифра). Это приводит к неразборчивой ключевой фразе. PIN определяет количество раз, чтобы применить 256 хэш результата XOR-эд для получения секретного ключа. Так бумажник мозг получает больше, имея три вещи, чтобы помнить, длинную фразу, разумный пароль и 4-значный PIN-код, но они обычно не связаны друг с другом и сделали бы угадывая легко запомнить фразу, чтобы попытаться украсть Bitcoins бессмысленно. Хранение закрытого ключа безопасным требует тех же мер предосторожности, как обычно. Открытый ключ Bitcoin адрес генерируется с помощью закрытого ключа все, что необходимо, чтобы начать получать Bitcoins. Цель в том, чтобы использовать это как сберегательный счет или скрытый тайник для Bitcoins; никогда не использовали в бумажнике. Ключевая фраза должна содержать личную информацию, как даты рождения, девичьи фамилии и т.д., а не просто текст из книги или стихотворения. Весь смысл этого, чтобы иметь возможность легко восстанавливать свой закрытый ключ. Javascript может быть скрыт в любом месте в облаке. Это не секрет, он просто должен быть доступен если секретный ключ необходимо регенерировать (потратить Bitcoins).
Любые комментарии адресации прочности такого подхода был бы весьма признателен.
Я посмотрел в энтропии аргумент, и при этом не понимая информационную энтропии полностью, измерение / вычисление такой энтропии не кажется, очень прямо вперед для относительно простых случаев. В нижней строке, как представляется, способность кого-либо угадать секретный ключ (для истинно случайным ключом, маловероятно), или угадать на входе генерации вашего секретного ключа (этот случай), поэтому они также могут создать свой частный ключ. Эти изменения делают, что догадка значительно сложнее, если не также нецелесообразно.
Я не знаю, как сделать модифицированный исходный код доступен на этом форуме в это время, но я готов поделиться.
Вторая часть этого кода JavaScript offlineTransaction BTCurious'. Это создает автономную транзакцию (без бумажника требуется). Я отправлю об этом в отдельном посте. (Мне нужно 5 в качестве новичка)
Третья часть представления транзакции в сети Bitcoin.
Спасибо за ваши комментарии.