电脑电脑是如何产生随机数的能找到之前的吗

计算机理论上可以产生统计意义仩的真电脑是如何产生随机数的 首先,「真随机」也有不同的含义 真正的真随机目测只有量子力学了……一般的所谓真随机不是指这個,而是指 统计意义 上的随机也就是具备不确定性,可以被安全的用于金融等领域下面的真随机也均指这个。

大部分程序和语言中的電脑是如何产生随机数的(比如 C 中的MATLAB 中的),确实都只是 伪随机 是由可确定的函数(比如线性同余),通过一个种子(比如时钟)產生的伪电脑是如何产生随机数的。这意味着:如果知道了种子或者已经产生的电脑是如何产生随机数的,都可能获得接下来电脑是如哬产生随机数的序列的信息(可预测性)

直观来想,计算机是一种可确定可预测的的设备,想通过一行一行的确定的代码自身产生真隨机显然不可能。但是 我们或许可以迂回一下 ,一个典型的例子就是 UNIX 内核中的电脑是如何产生随机数的发生器(/dev/random)它在 理论上能产苼真随机 。即这个电脑是如何产生随机数的的生成独立于生成函数,或者说这个产生器是非确定的

实现方法:简单的讲就是软硬结合,或者说引入系统外的变量(把软件,代码算法想象成一个封闭的系统)。具体来讲UNIX 维护了一个 熵池 ,不断收集非确定性的设备事件即机器运行环境中产生的 硬件噪音 来作为种子。 比如说:IO请求的响应时间 特定硬件中断的时间间隔, 键盘敲击速度鼠标移动速度,甚至周围的电磁波等等……直观的说 你每按一次键盘,动一下鼠标邻居家 wifi 信号强度变化,磁盘写入速度等等信号,都可能被用来苼成电脑是如何产生随机数的

程序和算法本身不能产生真随机,但是计算机系统作为整体可以迂回产生统计意义上的真随机

无论是什么程序它用的电脑是洳何产生随机数的还是由程序本身采用当时的计算方式和按照一定规律取参数计算出来的,这个从严格意思上来说不算真正意义上的“电腦是如何产生随机数的”仍然是可以破解出。如果想事先知道它的话,你要知道它使用的计算方式和取参数的规律就可以知道.
真正的電脑是如何产生随机数的比如:机箱内的瞬时温度,传输导线中电子瞬时矢量芯片内某原子引力范围内的一个电子瞬时出现的坐标。
这些都无法实现至少现在无法实现,所以现在的密码从严格意义上来说都是可以破译的
全部

    泡泡网CPU频道2月24日 不论是维持着你餘额宝安全的加密过程还是你在玩《战地4》电脑都会产生电脑是如何产生随机数的。目前有两类电脑是如何产生随机数的——“真”电腦是如何产生随机数的和伪电脑是如何产生随机数的——两者的区别关乎加密系统的安全度

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

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

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

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

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

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

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

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

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

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

  NSA和Intel的硬件电脑是如何产生随机数的生成器

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

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

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

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

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

我要回帖

更多关于 电脑随机数 的文章

 

随机推荐