首页 能链洞察 区块链百科

真随机数与加密算法

真随机数与加密算法

发布时间:2020.04.22

上帝掷骰子吗?

 

对这个问题的回答,“是”或者“不是”代表了两种世界观。

 

爱因斯坦不相信世界是随机产生的,它应当是一个具有深刻内在规律、简单而统一的规则世界。

 

量子物理的群星们给出了另一个结论:上帝的确掷骰子,宇宙中的确存在真正的随机性。或者不如说,宇宙中到处都是真正的随机性。

 

 

1、真随机数

关于随机,其实大家并不陌生。当你掷硬币时,它存在正面和反面两种随机的情况;当你听歌时,会有一种播放模式叫:随机播放……在这些情况的背后,都有一个共同的起因,那就是随机数

 

我们可以从物理现象中得到神秘而无穷的随机数,虽然有些现象并不能被精确量化。但在人类在开展社会活动时,同样需要巨量的随机数来加密数据、训练模型、公平仲裁,仅依靠自然界的随机数是远远不够的。

 

因此,在计算机环境下,随机数根据其生成原理又可分为:真随机数与伪随机数。

 

关于真随机数,电脑可通过检测外部发生的某种物理现象来生成。比如说,电脑可以测量某个原子的放射性衰变。但根据量子理论,原子衰变是随机而不可测的,所以这就是宇宙中的“纯粹”随机性。在实际运作中,电脑可根据外部环境中的某些物理因素作为随机数据或者熵生成依据,当它监测到某天下午2点以后敲击键盘的精确时间是0.13145789836秒,通过这些特定长数字就能得到一个熵源,也就可以生成真随机数。由于人不是机器,所以攻击者无法掌握你的敲击时间。

 

伪随机数这个概念是相对于真随机数而言。电脑通过发送种子数值,运用算法产生某个看起来像随机数的数字,但是实际上这个数字是可以预测的,因为电脑没有从环境中收集到任何随机信息。虽然是伪随机数但适用众多场合,因为在进行简单的交互时,通过伪随机数还是真随机数并不重要;但值得关注的是,如果你的应用正在加密,情况就不同了,因为你并不不希望随机数被攻击者所知。

 

 

2、区块链加密算法

加密技术作为区块链技术里极其重要、不可或缺的一部分,为区块链的匿名性、不可篡改和不可伪造等特点保驾护航。现代加解密系统的典型组件包括:加密算法、加密密钥、 解密密钥。其中,加解密算法自身是固定不变的,并且一般是公开可见的;密钥则是最关键的信息,需要安全地保存起来,甚至通过特殊硬件进行保护。一般来说,密钥需要在加密前按照特定算法随机生成,长度越长,则加密强度越大。

 

 

3、区块链为什么需要真随机数

这个精彩纷繁的世界,从来就是不确定的。随机数其实成就过一家非常伟大的创新公司。

 

当整个互联网早期阶段还处于page to page连接的时代,查询资讯是非常困难的事情。两位斯坦福的在校生,受到布朗运动的启发,根据海森堡真不准原理,用代码写了一段随机网页冲浪模型(random surfing page rank)算法,大幅提升了网页搜索排序的效率和体验。这正是著名搜索引擎巨头Google的发家史

 

作为密码学与隐私安全的基础,随机数可让点对点之间进行加密式地交流。而在区块链的加密世界里,多数是通过使用公钥、私钥非对称式地传输。这些密钥随着加密学的演变,通常是一串无法预测的数字,如何保证密钥无法攻破,应用随机数的加密算法就显得至关重要。同时,因为区块链中分布式节点的特征,随机数还广泛应用于多节点间通讯,利用随机数来决定数据发送的合理顺序,确保多方节点的协调一致。

 

随着区块链技术的发展已逐步覆盖到各个领域,我们比以往任何时候都需要一个安全、稳定、可信的随机数,来保证密钥对的生成、链上数据的加密、出块权力的裁定、智能合约的运行

 

为此,能链科技在历时2年半时间独立自主研发xPoA共识算法中,成功引入了基于可验证随机函数的随机选择共识节点方法和BFT共识,以确保DTFN主链上的公正性,整个系统的去中心化程度与可信性

 

其中,BLS签名的真随机数,是基于双线性映射的密码学算法,并结合带阈值的BLS签名方案(TBLS),产生一个唯一的、确定的、随机的、可验证的随机数。通过这种方式,既保证节点数量较多安全性高,同时又能够兼顾达成共识的效率。

 

对随机数的认可,是人类最早关于公正的共识;

对可靠随机数的追求,更是人类对公平的追求。

而今天,人类以区块链开始了崭新的数字纪元,随机数也将成为更安全、更可信的数字世界的基础。