星球日报
搜索
手机客户端
iPhone · Android
微信公众号
微信公众号

iPhone · Android

微信公众号

安全芯片到底在保护什么?(上)

2019-12-24 08:13:00

真随机数和伪随机数的区别。

真随机数和伪随机数的区别 (True Random Number VS Pseudo-random number)

—撰文 | Cobo金库大掌柜

掌柜最近一直有强调安全芯片的重要性,今天就正儿八经的盘一盘安全芯片到底在保护什么。

对数字货币原理稍有了解的人,可能都听说过“非对称加密”、“哈希算法”之类的加密学名词,但并不是所有人都知道,这些加密算法背后最重要的核心(没有之一)——随机数。

大家“随机”选择一把私钥,就可以通过私钥用密码学计算出地址,有了地址就能收取数字货币,私钥就能支配这个地址上的数字货币。所以,谁拥有私钥,谁就拥有对应地址在链上的资产。

那么,私钥会不会有一天耗尽?

要解答这个问题,先要看看私钥到底有多少“把”。理论上来说,私钥总共有大约 2 的 256 次方的可能性。这个数大约是 1 后面跟了 77 个零。与之对比,目前可见的宇宙,总共的原子数大概是 1 后面跟了 80 个零。

私钥的可能性有这么多,看来是不会被耗尽了。

可是,会不会碰巧两个人选到同一把私钥?从而 A 转到对应地址的钱,被 B 转走了?

这就引出了私钥随机性的重要性,也就是随机数的重要性。系统都是先得到随机数,然后从随机数再推导出私钥。

安全芯片到底在保护什么?(上)

目前,林林总总的数字货币钱包,在随机数生成这件事上,逃不出两种方案——伪随机数生成器和真随机数生成器。

伪随机数生成器(pseudo-random number generator,PRNG)在维基百科上有一个更令人担忧的名字,确定性随机数生成器(deterministic-random bit generator ,DRBG)。为什么随机数还会有“确定性”这一说呢?因为伪随机数都来自于“随机种子”(Random Seed),而随机种子是由计算机自带的计数器或者其它数字逻辑产生。这些计数器或者数字逻辑是有一定概率分布的(可能性不是平均分布在 1 到 2 的 256 次方这个区间内)。

所以,在一定程度上,伪随机数是可预测的。

与之相对的,真随机数是由安全芯片通过物理方式生成的,其随机性是不可预测的。

来自维基百科的定义:真随机数生成器(True Random Number Generator, TRNG)是一种通过物理过程而不是计算机程序来生成随机数的设备。这样的设备通常是基于一些能生成低等级、统计学随机的“噪声”信号的微观现象,如热力学噪声、光电效应和量子现象等。这些物理过程在理论上是完全不可预测的,并且已经得到了实验的证实。

由此,我们得到了安全芯片的核心保护对象:私钥的真随机性。安全芯片可以生成真随机数,随机性(安全性)大于非安全芯片生成的伪随机数。

我们前面有反复提到的一个词组——“物理方式生成”。有些同学可能会问,能用“掷骰子”这种“物理”方法吗?答案是可以的。

基于以上,在选购数字货币硬件钱包时,仍有两个知识点需要普及:

  • 除了要关注是否有安全芯片以外,还要关注安全芯片是否得到了相关机构的认证。常见的认证体系有两套:FIPS 和 AIS。

  • 安全芯片的固件代码是否开源,也是要考察的点。目前已知的硬件钱包中,只有 Cobo 金库和 ColdCard 开源了安全芯片固件代码。Coldcard 的安全芯片固件代码甚至支持用户自行烧录,适合比较硬核的玩家,但是同时也放大了供应链攻击的可能性。出于供应链攻击等方面的考虑,Cobo 金库暂不支持用户自行烧录安全芯片固件。

总结,选择硬件钱包时,建议如下:

  • 应用安全芯片(保证私钥的真随机性)

  • 且安全芯片得到相关机构的认证

  • 且安全芯片固件开源

下篇文章会讲安全芯片可以抵御哪些物理攻击,请持续关注呀!

参考链接:

[1] https://en.wikipedia.org/

[2] https://en.wikipedia.org/

[3] https://en.wikipedia.org/

[4] https://github.com/

本文来自投稿,不代表Odaily立场。如若转载请注明出处。

Odaily星球日报提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

参与讨论

登录后参与讨论

Cobo钱包

特邀作者

Cobo钱包

一站式数字资产存储和管理平台

总文章数: 32


分享至

微信扫一扫分享

0