电脑随机数是如何生成的?,第1张

不论是维持着你余额宝安全的加密过程还是你在玩《战地4》,电脑都会产生随机数。目前有两类随机数——“真”随机数和伪随机数——两者的区别关乎加密系统的安全度。

 对于随机数的讨论日渐升温,许多人怀疑英特尔内置于各种硬件内的随机数生成芯片是不是靠得住。要理解为什么这种随机数不太可靠,你必须理解随机数的生成原理。

随机数的作用

随机数的使用历史已经有数千年。无论是抛硬币还是摇色子,目的是让随机概率决定结果。电脑中的随机数生成器的目的也是如此——生成随机不可预测的结果。

加密法要求数字不能被攻击者猜到,不能多次使用同样的数字。所以需要一种机制产生攻击者无法预测的数字,这些随机数对加密法至关重要,无论你是加密文件还是访问https协议网站,都需要用到随机数。

 真随机数

如果电脑是靠代码生成随机数,是不是意味着随机数可以被预测

根据随机数的生成原理,我们把电脑随机数分为两类:“真”随机数和伪随机数。

要生成一个“真”随机数,电脑会检测电脑外部发生的某种物理现象。比如说,电脑可以测量某个原子的放射性衰变。根据量子理论,原子衰变是随机而不可测的,所以这就是宇宙中的“纯粹”随机性。攻击者永远无法预测原子衰变的发生时间,也就不可能猜出随机值。

举个更实际的例子,电脑会根据环境中的噪音或者采取你敲击键盘的精确时间作为随机数据或熵的生成依据。举个例子,你的电脑监测到你某天下午2点以后敲击键盘的精确时间是023423523秒,有足够的这些特定长数字你就能得到一个熵源,也就可以生成“真”随机数。由于人不是机器,所以攻击者无法掌握你的敲击时间。Linux中的/dev/随机设备生成随机数,“阻拦”访问直到熵积累量足够才返回一个真随机数。

 伪随机数

伪随机数这个概念是相对于“真”随机数而言。电脑通过发送种子数值,运用算法产生某个看起来像随机数的数字,但是实际上这个数字是可以预测的。因为电脑没有从环境中收集到任何随机信息。

虽然是伪随机数,但是并不是所有领域都不需要伪随机数。比如,如果你在玩电子游戏,那么游戏过程中是靠伪随机数还是真随机数并不重要。另一方面,如果你的应用正在加密,情况就不同了,因为你不希望攻击者能够猜到你的随机数。

举个例子,如果攻击者掌握了某随机数生成器使用的种子数值和加密算法,如果随机数生成器完全依靠种子数值和加密算法生成密文,这个过程中不添加任何额外随机性,如果攻击者掌握的情报足够多,他们可以逆推来确定加密算法一定会用到的伪随机数,也就能破译密文。

 NSA和Intel的硬件随机数生成器

为了帮助程序开发者更简单的生成随机数,也为了帮助生成安全的随机数,Intel的芯片组中包括一个硬件随机数生成器,名叫RdRand,这块芯片利用处理器的熵源向软件提供随机数。

问题是这个随机数生成器是个黑盒,我们不清楚里面的工作原理。如果RdRand藏有NSA的后门,那么政府就可以破译依靠随机数生成器提供的唯一数据产生的密钥。

这个问题非常严重。在2013年12月,FreeBSD的开发者们取消了对直接采用RdRand作为随机数源的支持,理由是无法信任Intel。RdRand设备的输出结果会用另一套加密算法增加额外熵,确保随机数服务器中即便有后门程序也不会产生影响。Linux已经这么做了,在RdRand的随机数基础上再次进行随机处理,以确保后门程序不可能从中作祟。Intel总裁Brian Krzanich在Reddit上没有直接回答关于是否装有后门的问题。

当然这不是Intel一家的问题,FreeBSD的开发者们也点了Via芯片的名。从这场争论中我们可以看出为什么不可预测的真随机数如此重要。

 而随机数生成器生成“真”随机数只需要搜集熵或者从真实世界搜集看似随机的数据。对于某些不需要真正随机的应用,随机生成器可能会通过算法和种子数值算出随机数。

玩网络游戏是世界上数百万人最流行的爱好之一,这是最好的娱乐方式之一,随着数字技术的进步,大多数人更愿意在PC、平板电脑或安卓手机上打发他们的空闲时间,而不是出去玩。以下是全球十大最受欢迎的网络游戏,欢迎发表评论,我们会非常感谢你的积极回应。

十大网游排行榜

1英雄联盟

2魔兽世界

3刀塔2

4反恐精英:全球攻势

5暗黑破坏神Ⅲ

6神之浩劫

7战地4

8我的世界

9坦克世界

10炉石传说:魔兽英雄传

1英雄联盟

英雄联盟在最受欢迎的网络游戏排行榜上位居榜首,它是一个多人在线战斗竞技场的视频游戏。这款游戏是由微软Windows和Mac OSX的"拳头"开发和发布的。英雄联盟于2009年10月27日发布,它是最受欢迎的在线游戏。据估计,该游戏每天有2700万活跃玩家,大约2126%的在线视频游戏玩家喜欢玩英雄联盟。

2魔兽世界

魔兽世界是由比扎德娱乐公司于2004年创建的,它是一个大型多人在线角色扮演游戏,这款游戏拥有世界上最多人参加的在线角色扮演游戏的吉尼斯世界纪录。它拥有超过1000万的用户,这也是有史以来最卖座的视频游戏。

3刀塔2

由维尔福软件公司开发的刀塔2是另一款最受欢迎的在线视频游戏,它也是一款多人在线游戏的视频游戏,并于2013年7月发布。它是专门为微软Windows、OSX和Linux开发的,在我们的受欢迎程度排名上,刀塔2占第3个位置,它已经成为Steam游戏中最活跃的游戏,每天有超过80万的玩家。

4反恐精英:全球攻势

这款游戏简称CS:GO,在全球十大最受欢迎的网游排名中位居第四,是一款在线第一人称射击游戏,该游戏由维尔福软件公司于2012年8月21日开发并发布。在流行度方面,它是最受欢迎的在线游戏之一,2012年,这是一款最畅销的视频游戏,年销量超过1200万。

5暗黑破坏神Ⅲ

暗黑破坏神Ⅲ是最流行的在线游戏之一,它是一个动作角色扮演游戏,2012年,暴雪娱乐公司为微软Windows和OS X开发并发布了这款游戏。在2012年发布的暗黑破坏神Ⅲ中,在前24小时卖出了350万份,创下了销售最快的个人电脑游戏的新纪录,2012年,这款游戏成为了一款最畅销的视频游戏,年销量超过1200万。

6神之浩劫

神之浩劫是由Hi-Rez工作室发布的最受欢迎的在线视频游戏之一,它是一个多人在线战斗竞技场的视频游戏。这款游戏于2014年在微软Windows和Xbox One上发布。这个游戏让两个五人的队伍互相攻击,试图摧毁敌人的基地,这款游戏可以在Xbox One和PS4上玩。

7战地4

2013年发布的战地4是另一款最受欢迎的在线游戏,由瑞典电子游戏开发商DICE开发,由美国艺电公司发布。这是一款面向微软Windows、PS3、PS4、Xbox 360和Xbox One的第一人称射击游戏,它是世界上最受欢迎的电子游戏之一。据艺电称,战地4获得了超过30个视频游戏新闻媒体的奖项,这些奖项包括2013年最有价值的游戏奖项和最佳多人游戏。

8我的世界

一个沙盒独立的视频游戏我的世界由瑞典小工具有限公司发布,这款游戏有不同的版本,专为不同的操作系统设计,如安卓、Windows Phone、PS4、Xbox One和iOS等。它是世界上最受欢迎的在线游戏之一,脸书和youtube等社交网站也在其受欢迎程度上发挥了重要作用。

9坦克世界

在我们最受欢迎的网络游戏榜单中,排名第九的是坦克世界,它也是一款大型多人在线游戏,游戏是免费的,但参与者也可以选择免费使用高级功能。在2013年的一个MOG服务器上,它打破了一项新的吉尼斯世界纪录,原因是网游坦克世界达到了同时在线人数的最高记录。

10炉石传说:魔兽英雄传

在十大最受欢迎的网络游戏榜单中,排名第10位的炉石传说:魔兽英雄传,它是一个集换式卡牌游戏,这款游戏由暴雪娱乐公司开发,并于2014年3月11日发布,它是一个免费的游戏,有无限的付费内容和有限的免费内容游戏。这款游戏可以在微软Windows、OS X、iPad、安卓平板电脑和Windows 8触屏设备上使用,在接下来的几年里,炉石传说:魔兽英雄传将成为最受欢迎的网络游戏之一,到2017年1月,已经有2500万注册的炉石账户。

王者之心2点击试玩

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 电脑随机数是如何生成的?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情