当前位置:首页 > 物联网 > 区块链
[导读] 比特币用户很喜欢讨论“非对称加密”、“椭圆曲线”、“量子计算机”这类高深莫测的话题,然后再以一种非常莫名其妙的方式把币弄丢,比如说:“随机”。 之前曾爆出的 brainwallet.or

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

之前曾爆出的 brainwallet.org 网站用户丢币事件,就是因为随机函数的问题。

随机很重要,对于比特币这种密码学电子货币来说,尤其重要。

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

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

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

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

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

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

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

在开发比特币应用时,应该使用何种随机数生成器来生成私钥呢?

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

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

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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,本周比特币盘中一度突破64000美元,续刷2021年11月以来新高。这是比特币自2021年11月以来最高价格,距离历史最高点68991美元仅一步之遥。随后,比特币涨势回落,截至发稿,比特币报60377.42美元...

关键字: 加密货币 爆仓 比特币 以太坊 狗狗币 BNB

比特币是一种去中心化、全球性的数字货币,它通过加密算法和分布式账本技术,实现了安全、快速、低成本的交易和转移资产。比特币的出现,打破了传统的金融模式,为人们提供了一种全新的支付方式和财富管理方式,同时也引发了人们对金融创...

关键字: 比特币 区块链

加密货币(Cryptocurrency)是一种数字资产,通过使用密码学技术确保安全性和匿名性。加密货币是一种去中心化的数字货币,不受任何政府或金融机构的控制。比特币是其中最著名的一种。

关键字: 比特币 加密货币 数字资产

比特币是一种数字加密货币,也称为加密电子货币,于2009年由中本聪创立。与传统货币不同,比特币交易不需要第三方机构参与,并且具有匿名性。

关键字: 比特币

区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的

关键字: 块链 虚拟货币 比特币

比特币挖矿机就是用于赚取比特币的计算机。这类计算机一般有专业的挖矿芯片,多采用安装大量显卡的方式工作,耗电量较大。

关键字: 比特币 挖矿 挖矿芯片

世界前十大虚拟货币比特币、以太坊、瑞波币、?比特现金、?EOS6、莱特币、恒星币、艾达币、泰达币、IOTA一、比特币是2008年11月1日由日本人中本聪推出的,于2009年1月3日正式诞生!

关键字: 区块链 虚拟货币 比特币

区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链是比特币的底层技术,像一个数据库账本...

关键字: 区块链 比特币 计算机

由于加密货币的兴起,越来越多的人开始看到区块链可以带来什么。虽然主流采用可能仍需要一些时间,但该技术正变得与不同行业相关。

关键字: 区块链 比特币 互联网平台

区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。

关键字: 区块链 股大跌 比特币
关闭
关闭