西西河

主题:【原创】【周末小包子】【乱扯】从阿磕老兄随手打的乱码说起 -- 1001n

共:💬28 🌺32
全看分页树展 · 主题 跟帖
家园 老兄说的非常对,索性把我的想法补充全了吧

正因为我那个“产生随机数”的土办法其实是有漏洞的,所以,当时我才专门称之为休闲,其实是供大家一笑的……

既然老兄提到了,我就干脆多说两句吧——我那个土办法,最大的漏洞在于:这个产生所谓随机数的办法,其过程本身,并不是严格随机的。

例如,根号7是个无理数,它的数字分布也许符合随机分布,但是选择的开方对象,这个7,本身就有问题——怎么就选择了7,而不是别的数字呢?

类似的问题还出现在π和e上。简而言之,如此取得的无理数,无论是小数点后多少位,其具体数字都是可以预知的。而适合密钥编制的随机数字,该不该有“可预知性”,这是个很大的问题。

在截取数字的时候,也有问题。我说观察车牌,取得82373991,然后从π的第82373991位截取10个数字,再去截取……这个办法本身就是有漏洞的:

第一、82373991是个8位数字,而8位数字的全排列不过100,000,000种(加上00000000),因此,实际上只能有一亿种截取方案。相应地,观察9次车牌,只有十亿种截取方案,如此类推。

第二、截取方案数量有限,而截取结果却又是可知的。拿上面的例子来说,针对已经固定的π值,我们全部的选择,不过是从第00000001位截取10个数字起,到第99999999位截取10个数字止而已。

具体说,也许我暂时不知道某一次观察车牌的具体结果,但是我知道,从第00000002位连续截取π,得到的10个数字一定是3.1415926535894932384……;而这个结果,即4159265358,一定是如此观察方法的可能结果之一

如果我有足够的时间,肯定可以把它们全部截取下来。于是,它的总结果,实际就是1亿个顺序相连的数字组;而在相邻的每组之间,只有首尾两个数字不同。

抛开这个可预知的问题不谈,下一个问题也很重要:无理数的数字分布,是不是随机的?

如果是随机的,这么截取的思路应该是可以的,只不过在编制随机密钥本的时候,恐怕不能截取π这么显眼的数字,而该截取观察车牌结果的平方根或几次方根之类(假如真是无理数的话)。比如我们观察了34次车牌,得到一个34位或者68位(每个车牌取两位)的数字,开方之并得到一个无理数,虽然同样存在着可能被穷尽的危险,但是毕竟破解难度大太多了。如果取3000位车牌数字呢?或者10万个数字、1000万个数字呢?此外,具体开多少次方,也根据车牌数字确定;同时截取多少位数字,依然根据车牌数字生成——如此一来,即便不是真随机,也是随机性相当大的伪随机了……

说到底,它根据的就是观察车牌取得的数字,是随机的——这是以上观点的总根据。至于这算不算真随机,嘿嘿,我觉得是——前提是,这个地方不会酷到只有一两辆车的地步吧……

如果不是随机的,那就是个大问题了。不过以在下所看到的资料,至少对于π,是有人做了这个工作的:他统计了小数点后多少多少位,并且确定在这多少多少位之前,所有数字的分布,从多个角度观察,都的确是符合随机分布规律的。

在他统计的位数之后会不会就有逆转,无法证明;其它的无理数是不是也如π一般有这个特性,问题更大,我也更不清楚。我只能以自己的一点极为不可靠的主观感觉,倾向于认同“无理数的数字分布,应该符合随机分布”这个论断。当然,主观感觉和科学实践是无法叫板的,所以,我也只能说“倾向于”“应该”,呵呵,实在没有确定的根据啊……如果有人证明过,也希望各位提供一下

至于真空管噪声、放射衰变,这两个办法确实都被采用过。现在不见下文的缘故,大概还是不太理想,或者不太好使吧

很赞同老兄的一个观点,那就是密钥选取,未必需要“真随机”的数字。其实,只要符合随机分布规律,有理数也没什么不可以,前提是:别人不能知道你选的是什么数字。

总的来说,老兄的几次指正、补充和帮助,让我实在是受益良多。也请老兄不吝赐教,看到不对的地方,只管说——咱在这方面是外行,非常愿意听到中肯的专业意见,也好趁机进步一二

以及,我原文中提到那被破译的密本,不是苏联而是德国的;破译方也不是纳粹而是盟国——这一点是我记错了,趁着没人发现,赶紧修正一下

春节事多,今天才看到老兄的回复,匆忙之间做个补充回答,也望老兄原谅

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河