区块链:密码学基础——伪随机数生成器_ethicality

如果想要深入了解区块链和区块链项目,不可避免的需要了解密码学。区块链是对密码学的一次整合运用,理解了密码学,才能真正理解区块链。猎豹区块链中心在密码学起源的科普文章中,给大家介绍了经典的加密方法,从凯撒密码到多表密码,以及一次一密,在本篇文章中,我们将会和大家分享最早实现一次一密的加密机以及伪随机数生成器。Enigma加密机

第二次大战初期,法西斯的整体战争实力其实是远远不如同盟国的,但是,德国、日本采取了大量的的突袭战术,在二战初期先发制人,取得了一定的战争优势。要想有效的实施突袭战术,情报是非常关键的,那么如何保证情报的安全性,就是二战期间加密学的主要目标。在上一篇文章中我们提到,要想保证信息都绝对安全,就需要用一次一密都方式对信息进行加密,也就是对每个字母进行随机位移的加密,理想的情况是,这个机器将每一个输入的字母,都对其进行随机位移,然后输出加密过的字母。当时最先进的机器,被称为转子加密机,它很好的实现了一次一密。而其中的原理其实和我们熟知的里程表很像。我们都很清楚里程表的机器,它需要很长时间才会重复一周。想象一下,我们把里程计轮子上的数字打乱,当没嘀嗒向前一次时,都把转子上的每一个数字相加,来得到了位移数字,然后把我们要加密的字母进行位移加密,这就是转子加密机的大致原理。加密者和接受者可以根据下面的方法生成相同的位移序列:首先,他们需要共享相同的机器,然后就初始状态达成一致。这被定义为机码设置,然后他们把各自的机器调整到相同的位置,最后,不断进行相同的操作,来得到相同的序列。对于三个转子、每个转子有26个数字而言,每个序列经过转子26的三次方次的转动的位移序列才会重复。而每一个转子的位置,都等同于序列里的对应位置,最初的机器状态被称为机码设置,而所有的机码设置的集合,则被称为机码空间,如果最初设置机器的方法增加了的话,机码空间也就增加了。当我们选择一个机码设置,我们就选择了这个空间里的一个起始点,如果把机码设置给暴露了,就泄露了整个加密序列。所以,这种转子加密机的安全性取决于机码空间的大小,与机码设置的随机性这两方面。在第二次世界大战期间,德国纳粹使用的最重要的加密技术之一,就是被称为Enigma的加密机。在临近战争结束时,Enigma可以被设置成超过150百万百万百万种方式。这让德国人相信,盟军获得了Enigma机,也无法验证所有可能的机码设置。对于使用Enigma进行通信的双方,他们需要首先共享每天的机码设置,这使他们可以将各自的机器调整到同一位置,这个协议在战争期间一再改变,但通常都会在分配密钥表上分发给所有操作者,每一天,操作者都会剪下当日的设定,而这会告诉他们,机器当天需要的配置,例如,使用哪个转子,以及转子的顺序,然后在使用之后,机码设置就会被销毁。然而,对于操作者而言,仍剩下一个至关重要的步骤,在通信之前,他们将要选择,每一个转子的初始位置,而一些懒惰的操作者,犯下一个很简单的错误,这和我们锁自行车机械锁犯下的错误一样,我们倾向于把转子从初始位置移动很少几下,或者重复使用一个常见的密码,这破坏了初始转子位置的均匀分布,在重复观测后,使得盟军可以完全可以反向还原转子的线路分布。这种人为的低级失误导致了Enigma机的最终破解,间接影响了战争的走势。我们可以看到,一次一密最大的问题是,我们不得不提前共享这么长的密钥。为了解决这个问题,我们需要引入伪随机数。伪随机数生成器

新理论声称密码学家Len Sassaman是中本聪:一种新的理论声称,加密专家和密码朋克Len Sassaman可能是匿名的比特币创建者中本聪。在一篇Medium文章中,名为Leung的作者提出了多个原因。首先,在Sassaman于2011年7月3日去世的两个月前,中本聪发送了他的最终通讯。根据Leung的说法,Sassaman在加入Network Associates协助开发PGP加密时也曾与Hal Finney合作,而Finney是第一个从中本聪处接收比特币的人。Leung补充说,Sassaman的隐私立场也与导致比特币网络被创建的意识形态相吻合。他还指出,在开发比特币期间,Sassaman居住在比利时,而据报道,在从事该项目时,中本聪居住在欧洲。(dailyhodl)[2021/3/8 18:23:38]

在理解伪随机数之前,我们先来看看真正的随机数,我们的物理世界,其实到处都存在着随机波动,通过测量被称为噪音的随机波动,我们可以生成真正的随机数,测量噪音的过程被称为取样,我们可以通过取样得到某个随机数字。但是,相对来说,机器其实是确定的,他们的操作是可预测并且可重复的。在1946年,冯诺依曼参与了军方的氢弹的设计,应用了一个名为ENIAC的计算机,他打算重复地计算核聚变过程的模拟,然而这需要随机生成数进行快速存取,并且保证这些数是可重复的,然而,ENIAC的内存相当有限,存储长的随机序列是不可能的。于是,冯诺依曼设计了一个算法,来机械的模仿随机性,该算法如下:首先,选择一个被成为种子的真正随机数,这个数可以来自于对噪音的测量,如当前时间的毫秒数,这被称为种子。然后,把这个种子作为输入,进行一个简单的计算——将种子乘以它自身,然后输出这个结果的中间部分,接下来,使用这个输出,作为下一个种子,并按照需要多次重复这个过程。这被称为评分取中法,这是大量伪随机数发生器其中的一个。那么,随机生成的数列和伪随机生成的数列之间的差别是什么呢?核心区别就在于,伪随机数如果达到一定数量,序列最终一定会重复,当算法中出现了之前已经使用过的种子数字时,循环就开始了,在伪随机数序列重复之前的长度,被称为周期,周期严格地由最初种子的长度所限制。例如,如果我们使用一个两位的种子,那么算法在重复循环之前,最多能生成100个数,一个3位的种子在重复循环之前,可以生成1000个数,而4位种子在重复之前,可以生成10000个数,然而,如果我们使用一个足够大的种子,在重复之前,序列中的数字将会到扩大到万亿个。还有一个关键区别非常重要,那就是当你伪随机地生成数字时,将会有一些无法产生的序列。例如,如果加密者Alice生成一个含有20个位移的真正随机序列,这将等价于从所有可能的位移序列的堆栈中,随机选择一个序列,这个堆栈中包含了26的20次方种可能,这是一个天文数字。但如果加密者使用一个4位的随机种子生成一个20位的伪随机数序列的话,他只能在10000种可能的结果中,做出等概论的选择,也就是说她只能生成10000种不同的序列。当我们从随机位移转向伪随机位移时,相当于把密钥空间缩小成了一个相对较小的种子空间。伪随机数概念的提出使得加密者与接收者不需要再事先共享整个随机位移序列,而只需要共享相对较短的随机种子,然后再需要时把它扩展成相同的看起来很随机的序列就可以。但是如果他们始终无法见面来共享这个种子,该怎么解决呢?这就是现代加密技术最重要的内容,也是区块链中加密的核心,我们将下一篇文章中重点介绍。

密码学博士高承实:量子计算机大规模应用将对非对称密码算法和哈希函数带来致命性的影响:密码学博士,计算机应用专业副教授高承实发表《量子计算机的应用会颠覆掉比特币系统吗?》专栏文章,文章表示,量子计算机从发展状况来看,还处于极其早期阶段,离真正实用还有相当远的距离。如果量子计算机真正能够大规模应用,将对密码算法当中的非对称密码算法和哈希函数带来致命性的影响。现在基于数学难解问题而生成的非对称密码算法RSA和ECC安全性将不复存在,哈希函数的抗碰撞性也将受到极大挑战,除非尽可能增加哈希函数的输出长度。目前的非对称密码,主要是ECDSA和哈希函数SHA256,是比特币系统最核心的底层技术,确保了比特币分配和支付的安全,在比特币系统的多个环节得到了应用,包括生成钱包地址、对交易进行签名和验证、计算区块内所有交易的默克尔数生成区块以保证块内数据难以被篡改、激励矿工开展挖矿竞赛以维护系统的自运行……如果ECDSA和SHA256两种算法的安全性不复存在,那么整个比特币系统的安全性也将不复存在。

当然我们也没有必要那么悲观。第一,量子计算机的真正使用还有相当远的距离;第二,随着量子计算以及量子计算机的发展,抗量子计算的密码算法也会同步得到发展,比如格密码。

真的到了那个时候,或者比特币系统中的密码模块会替换为抗量子计算的密码模块,或者比特币已经完成它的历史使命,从这个世界上消亡。(财新)[2020/12/24 16:21:46]

声音 | “现代密码学之父”迪菲:量子计算不会威胁到区块链:据澎湃消息,3月27日,被誉为“现代密码学之父”的图灵奖得主惠特菲尔德?迪菲(Whitfield Diffie)在博鳌亚洲论坛上接受澎湃新闻采访时表示,量子计算只会威胁到密码学中非常窄、但非常重要的一个领域,上世纪70年代建立起来的公钥加密体系会变得脆弱。但密码学中的许多技术,包括区块链用到的哈希编码在量子计算面前并不脆弱。[2019/3/27]

声音 | 上海交通大学来学嘉:区块链为密码学创造了价值:据巴比特消息,上海交通大学教授来学嘉在接受采访时提到了区块链对密码学的两大贡献。第一大贡献是为抗抵赖、抗捏造提供了完整的解决方案。区块链能做到抗抵赖,是因为区块链本身就是第三方,参与者自觉服从,数字签名为抗抵赖提供证据。另外,他还指出了区块链对密码学的另一个贡献——区块链为密码学创造了价值,过去的密码学是“赔钱”的,因为要用于保护信息系统的安全,增加了开销;有了区块链后,现在的密码学是“值钱”的,因为密码算法的计算结果(coin)具有价值,另外算法本身也具有价值,比如勒索软件,你要付钱才能解开。[2019/2/25]

人物 | Ripple首席密码学家转任首席技术官:据Ripple官方消息,Ripple前首席密码学家David Schwartz现转任该公司首席技术官(CTO)。[2018/7/12]

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-4:60ms