Bitcoin Forum
November 07, 2024, 06:54:54 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: 随机数:关乎比特币私钥安全  (Read 1435 times)
btcshop (OP)
Hero Member
*****
Offline Offline

Activity: 644
Merit: 500



View Profile
July 12, 2014, 02:38:48 AM
 #1

比特币用户很喜欢讨论“非对称加密”、“椭圆曲线”、“量子计算机”这类高深莫测的话题,然后再以一种非常莫名其妙的方式把币弄丢,比如说:“随机”。

几天前,火星人 @Ryan_XxOo 在微博上爆出的 brainwallet.org 网站用户丢币事件,就是因为随机函数的问题。

随机很重要,对于比特币这种密码学电子货币来说,尤其重要。可惜社区内对于随机的讨论并不多,导致很多人缺乏正确的认识,因此,小太今天就和大家聊聊随机。

说到随机,有两个必须要搞清楚的概念:“真随机数生成器”(TRNG)和伪随机数生成器(PRNG)。

大部分计算机程序和语言中的随机函数,的确是伪随机数生成器,它们都是由确定的算法,通过一个“种子”(比如“时间”),来产生“看起来随机”的结果。

毫无疑问,任何人只要知道算法和种子,或者之前已经产生了的随机数,都可能获得接下来随机数序列的信息。因为它们的可预测性,在密码学上并不安全,所以我们称其为“伪随机”。这种随机数,用来让游戏里的小人跑跑路没多大问题,如果用来生成比特币私钥,那可就太不安全了。

再说说真随机数生成器,中文维基中将“硬件随机数生成器”(HRNG)等同于真随机数 生成器,这其实并不十分准确,严格意义上的真随机可能仅存在于量子力学之中,我们当前所想要的(或者所能要的),并不是这种随机。

我们其实想要一种不可预测的、统计意义上的、密码学安全的随机数,只要能做到这一点的随机数生成器,都可以称其为真随机数生成器。这种真随机,并不一定非得是特殊设计的硬件,Linux操作系统内核中的随机数生成器(/dev/random),维护了一个熵池(搜集硬件噪声,如:键盘、鼠标操作、网络信号强度变化等),使得它能够提供最大可能的随机数据熵,因此同样是高品质的真随机数生成器。

不过/dev/random是阻塞的,也就是说,如果熵池空了,对于/dev/random的读操作将被挂起,直到收集到足够的环境噪声为止。

因此,在开发程序时,我们应使用/dev/urandom,作为/dev/random的一个副本,它不会阻塞,但其输出的熵可能会小于/dev/random。

好了,在说了这么多之后,在我们开发比特币应用时,应该使用何种随机数生成器来生成私钥呢?

答案很简单:urandom。永远只用urandom。

不要使用任何第三方的随机数解决方案,哪怕是一些高级的安全库,所提供的声称“非常安全”的随机函数。因为它们都是用户态的密码学随机数生成器,而urandom是内核态的随机数生成器,内核有权访问裸设备的熵,内核可以确保,不在应用程序间,共享相同的状态。

历史上,无数次随机数失败案例,大多出现在用户态的随机数生成器,而且,用户态的随机数生成器几乎总是要依赖于,内核态的随机数生成器(如果不依赖,那风险则更大),除了没准儿能简化您的某些开发工作,丝毫看不出任何额外的好处,反而增加了因引入第三方代码,所可能导致的潜在安全风险。

因此,开发者在需要密码学安全的随机数时,应使用urandom。

最后再说说,如果在安卓手机上使用比太钱包,应如何安全的生成比特币私钥:

1、如果您使用比太冷钱包,应保证手机断网,而且永久断网;
2、您可以放心的使用比太钱包生成任意数量的比特币私钥;
3、如果您特别在意“真”随机,担心熵池不够,那么在手机开机后,随便干点儿事儿吧,打打游戏、看看视频、刷刷微博、聊聊微信,然后再去生成比特币私钥,您所能获得的随机性,没准儿比很多硬件随机数生成器还要“真”得多;

摘自:巴比特资讯·专栏作者:【转】@以太钱包
编辑:bitPaul
tangyanofwah418
Member
**
Offline Offline

Activity: 60
Merit: 10


View Profile
July 12, 2014, 03:59:47 AM
 #2

其实这就是一个软文

tongjiufbiyv305
Member
**
Offline Offline

Activity: 60
Merit: 10


View Profile
July 12, 2014, 12:02:43 PM
 #3

分明就是软文 吗,请问楼主你在tac的群里吗?

QORA | 2ND GEN | NEW SOURCE CODE | QQQedNd4yDzNmbxhz4bpC8DAEmrbcSMro9
Get Daily Free SignatureCoins.SoxELY8XSMofczXdemAxRbudxyAeB5iVqL
wantangcfftc020
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250


Machine Learning & AI - Trustless Ledger System


View Profile
July 12, 2014, 12:44:15 PM
 #4

楼主一直在发帖子。......

 
⦁⚫⦁
     ▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊ Trustless Ledger System ▊▊▊▊▊▊▊▊▊
  S H A R P E  C A P I T A L
 

                 ▄▀▀▄
                 ▀▄▄▀
                 █
      ▄▀▀▄      █
      ▀▄▄▀     █
      █  █    █
     █    █  █
    █     ▄▀▀▄
   █      ▀▄▄▀
▄▀▀▄    
▀▄▄▀
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
.
Investing with AI & Machine Learning
.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ⦁⚫⦁ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  read our Whitepaper ▄▄▄▄▄▄
Bitcointalk Twitter Telegram  Slack
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
⦁⚫⦁
wobengjjpym3687
Member
**
Offline Offline

Activity: 78
Merit: 10


View Profile
July 12, 2014, 01:45:33 PM
 #5

楼主一直在发帖子。......
是啊,转发的,不给别人留一点机会啊
wushuang
Member
**
Offline Offline

Activity: 64
Merit: 10


View Profile
July 12, 2014, 03:37:52 PM
 #6

拥有私钥几乎就完全控制了其对应的地址,就算你有再多的二次验证程序。
楼主再搞软文呢 Grin Grin

QORA | 2ND GEN | NEW SOURCE CODE | QLv4dbZBKbxsAreV4TD7sPNAx4RB6firEA
Get Free VpnCoin, Join BitNet ! your VuXEbzYVokaeFEkGCJXdFBgTJMcyAX3ZDc
getfreebtc
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250


View Profile
July 13, 2014, 05:56:28 AM
 #7

学习了下这篇文章再google下,发现android自带的/dev/urandom就很好,的确可以满足比特币的安全需求。
2ad32
Member
**
Offline Offline

Activity: 66
Merit: 10


View Profile
July 13, 2014, 01:28:19 PM
 #8

听不到 看不明白

Get Daily Free SIGNs before too late. SmtF2BZGgweesr51sTCt7d1x4wdgDQGcKd
2ad32
Member
**
Offline Offline

Activity: 66
Merit: 10


View Profile
July 13, 2014, 01:41:19 PM
 #9

安全第一
远离病毒

Get Daily Free SIGNs before too late. SmtF2BZGgweesr51sTCt7d1x4wdgDQGcKd
nhu67
Member
**
Offline Offline

Activity: 62
Merit: 10


View Profile
July 13, 2014, 01:55:04 PM
 #10

内容呢 楼主没有深入探讨啊

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!