首页
社区
课程
招聘
人造的和天然的随机数
发表于: 2019-3-30 10:06 9886

人造的和天然的随机数

2019-3-30 10:06
9886
  提起真随机数,人们往往认为:“真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等,这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。      ----百度百科”,这种认识实际是一种偏见,或成见。
  不借助于物理设备也是可以生成真随机数的。所谓真随机数,实际说的是随机数组,真随机数的定义是其元素不可预测,不可重复产生,说现实中真随机数并不存在,也有道理,因为数组一经生成,它就不符合真随机数的定义了,所以说真随机数是一种数据的生成机制,如果一个随机数发生器符合了 1)不可预测 2)不能重复产生它就是个真随机数发生器。
  人作为智慧生物能制造几乎任何东西,例如金刚石,人造的甚至比天然的更纯净更优秀,到了真随机数这里怎么就非用物理性随机数发生器呢?不借助任何硬件设备就不能应用物理原理来生成随机数吗?
  实际运用物理定律人造数组也能是真随机数组,首先数组要有一定的体量太小的数组是无法体现统计学规律的,其次元素是均匀的如果部分元素缺失也是不能成事的,有了以上两点,我们只要对数组的排列进行干预,就能生成新的数组,这一过程称为随机排序,让数组中每个成员都得到随机的排序,可以用循环来完成,例如从第一个元素开始,让其和数组中某一元素进行数值交换,这里需要拼凑一些随机因素来选择和哪一个元素,可以利用循环变量、数组数值、随机函数的代数组合生成一个大数然后模数组长度得到交换位置(就是用生成的大数除以数组长度得到的余数值作为交换的选择序列号),选择序列号的随机性决定了排序随机性的效率,如果随机性不好,则数组由有规律的数组到无规律的数组的变化速度将是缓慢的,试验证明最终都能生成良好的随机数组(笔者前面的帖子做过论述),随机函数在这里不是必须的,但其参与可大为提高效率。
  为什么有此结果呢?实际是利用了热力学第二定律之熵增加原理,在多种因素干预下进行排序,数组只能向着越来越混乱的方向发展,最后达到饱和。所以我们不用物理现象,单纯利用手头的随机因素,随机数据因素就可以高效的生成性能良好的真随机数,成本低效率高胜过物理现象的利用。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (17)
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我只知道计算机产生的随机数,简单点的可以用编程语言的Random()函数,严谨些的就要考虑加盐了。
2019-3-30 11:51
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Mr Julius 我只知道计算机产生的随机数,简单点的可以用编程语言的Random()函数,严谨些的就要考虑加盐了。[em_50]
在计划任务中循环调用bat脚本,为何每次生成都随机数都是不变的
2019-3-30 14:01
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
petersonhz 在计划任务中循环调用bat脚本,为何每次生成都随机数都是不变的[em_15]
请问您bat脚本中是调用的%RANDOM%变量去生成的随机数么?
2019-3-30 15:55
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
Mr Julius 请问您bat脚本中是调用的%RANDOM%变量去生成的随机数么?[em_31]
bat文件内容: echo %random% pause,放到计划任务,你右键多执行几次看看,几乎不变的
在cmd里面调用,是正常的。放到计划任务就不行了
2019-3-30 17:29
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
msg %username% /time:10 Random is %random%

我用这段代码,用任务计划右键执行几次,弹出的消息框显示的随机数是不同的。
你的代码我运行后窗口一闪而过,就写了个消息框显示随机数了。
最后于 2019-3-30 19:01 被Mr Julius编辑 ,原因:
2019-3-30 18:57
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Mr Julius msg %username% /time:10 Random is %random%我用这段代码,用任务计划右键执行几次,弹出的消息框显示的随机数是不同的。你的代码我运行后窗口一闪而过,就写了个消息框 ...
变化很小啊,值的变动应该是0-32767,但是计划任务里面幅度很小,根本不是随机的样子。
你在bat中调用,幅度就正常了
2019-3-30 19:29
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
用这里的方法生成的随机数不是依赖某些算式,而是物理学定律,且能通过NIST检测,用于密码学中的密钥是完全没有问题的。
2019-3-31 15:24
0
雪    币: 2359
活跃值: (528)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
petersonhz 变化很小啊,值的变动应该是0-32767,但是计划任务里面幅度很小,根本不是随机的样子。 你在bat中调用,幅度就正常了
可参考:http://demon.tw/reverse/cmd-internal-random.html
2019-3-31 17:23
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
遗憾啊,我在这里讲如何生成真随机数,楼上却扫盲起伪随机数的应用了。
2019-3-31 20:52
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
老刘NoOne 可参考:http://demon.tw/reverse/cmd-internal-random.html
bat中没有srand,无法初始化seed吧?
2019-3-31 21:25
0
雪    币: 2359
活跃值: (528)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
sjdkx 遗憾啊,我在这里讲如何生成真随机数,楼上却扫盲起伪随机数的应用了。
哈哈哈,正好知道,解答下疑惑,还是顶lz
2019-3-31 23:08
0
雪    币: 2359
活跃值: (528)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
petersonhz bat中没有srand,无法初始化seed吧?
是的,在代码中加上几句:
2>nul %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
可能好些
2019-3-31 23:09
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
老刘NoOne 是的,在代码中加上几句: 2>nul %random%%random%%random%%random%%random%%random%%random%%random%%random%%rand ...

单个数字,为啥这么接近?



多个数字,分布散一些,但是好像还是很集中,这是为啥? 底层生产机制是咋样的? 选定什么作为seed?

2019-4-1 00:14
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
sjdkx 遗憾啊,我在这里讲如何生成真随机数,楼上却扫盲起伪随机数的应用了。
什么叫真随机呢?2个非理想硬币产生的随机数,是否可以认为是真随机呢?
2019-4-1 00:17
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
这要其后生成的数组数值不能预测,没有重复并能通过随机数测试NIST,你都可以认为是真随机数。
2019-4-1 11:14
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
sjdkx 这要其后生成的数组数值不能预测,没有重复并能通过随机数测试NIST,你都可以认为是真随机数。
@petersonhz , NIST有专业的随机数测试软件包的,你可以下载下来实地测试一下,光凭感觉是不行的。
最后于 2019-4-1 13:01 被Mr Julius编辑 ,原因:
2019-4-1 12:58
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
18
NIST测试软件包可惜由于是用Linux写的,在wondows下用比较麻烦。
2019-4-1 22:17
0
游客
登录 | 注册 方可回帖
返回
//