在2019年加密周(Crypto Week 2019)开幕之际,我们非常激动能够宣布一个新的解决方案,用以解决密码学中一个长期存在的问题。要更好地理解此问题背后的技术,请参阅下一篇文章以获得更深入的了解。
从密码学到大额彩票再到量子力学,一切都需要某种形式的随机性。但究竟随机生成一个数字是什么意思呢?随机性又从何而来呢?
随机性产生可以追溯到三千年前,当时的古人用滚动“骨头”来决定他们的命运。联想一下彩票——问题就变得简单了,对吧?每个人各自买了彩票,选择了6位数字,然后等待官方人员从一个篮子里随机抽取数字。这听起来像是万无一失的。然后在1980年,宾夕法尼亚州彩票抽奖的主持人因为使用加重的球来选择中奖号码而被逮捕。这一次教训,以及其他复杂系统产生随机数的需要,刺激了随机数生成器的产生。
就像彩票游戏中不可预测的随机数选取一样,随机数生成器是一种负责以不可预测的方式生成数字序列的设备或软件。随着对随机性的需求增加,对不断生成大量不可预测的数字的需求也在增加。这就是为什么很多组织开发了公共可用的随机信标——由服务器定期生成完全不可预测的512位字符串(大约155位数字)。
现在,您可能会认为使用随机性信标进行随机生成过程(例如抽奖选择随机数所需的)会使该过程具有抵御对抗性操纵的能力,但事实并非如此。已经有人在利用单源随机性来生成有偏差的结果了。
现如今,随机信标为彩票和选举审计生成数字——这两者都影响着数百万人的生活和财富。不幸的是,有人利用了这些信标的单一随机源来产生不诚实的结果,使一名腐败的内部人员受益。为了阻止这种恶意的随机源利用,Cloudflare和其他随机信标提供商联合起来,为用户带来了法定数量的分散随机信标。毕竟,八个独立的全球分布式信标比一个信标更值得信任!
我们很高兴地向您介绍……
熵……联……盟!!!!!!
什么是随机信标?
随机信标是一种公共服务,它以固定的间隔提供不可预测的随机数。
drand(发音为dee-rand)是由Nicolas Gailly开发的_分布式随机_信标; 在Philipp Jovanovic和Mathilde Raynal的帮助下。该项目起源于2017年IEEE安全与隐私研讨会上发表的研究论文:可扩展抗偏分布随机性,由来自分散式/分布式系统(DEDIS)实验室在洛桑联邦理工大学,耶鲁大学和圣三一学院哈特福德的Ewa Syta,Philipp Jovanovic,Eleftherios Kokoris Kogias,Nicolas Gailly,Linus Gasser,Ismail Khoffi,Michael J. Fischer, Bryan Ford,在研究机构的支持下共同完成。
对于每一轮随机生成,drand提供以下属性,如研究论文中所述:
可用性——以较高的概率成功完成分布式随机生成。
不可预测性——除非有足够数量的drand节点在随机生成协议中发挥作用,否则没有任何一方可以得知该轮的随机输出(除去极少数情况)。
不可偏移性——随机输出的结果是无偏,均匀随机的值(除去极少数情况)。
可验证性——随机输出是第三方可验证的,以drand设置期间计算的集体公钥为参照。备有证明文件的drand节点集通过运行协议来生成唯一的随机输出(除去极少数情况),这是一个需要谨记的鉴证。
_熵_可以度量一个数字的不可预测性。对于随机性来说,熵越大越好,所以自然而然地我们的名字也叫做:熵联盟。
我们的创始成员正在贡献他们各自的高熵源,用于提供一个更随机、更不可预测的信标,以每60秒生成可公开验证的随机值。drand信标是分散的,并且是使用适当、可证明是安全的密码原语构建的,这一事实增强了我们对它拥有上述所有属性的信心。
这种产生随机性的全球服务器网络确保了,即使有少数服务器离线,信标仍然可以使用剩余的在线服务器生成新的数字。即使一台或两台服务器(或它们的熵源)受到破坏,其余的服务器仍将确保共同产生的熵是完全不可预测和不可偏倚的。
到底是谁在运行这个信标?目前,熵联盟是一个全球组织和个人贡献者的联盟,成员包括:Cloudflare、协议实验室研究员Nicolas Gailly、智利大学、洛桑联邦理工学院(École polytechnique fédérale de Lausanne,EPFL)、Kudelski Security和EPFL研究员Philipp Jovanovic和Ludovic Barman。
认识熵联盟
Cloudflare的LavaRand:LavaRand从我们位于旧金山总部的Cloudflare熔岩灯墙中获取高熵。灯内“熔岩”的不可预测的流动状态被摄像机捕捉为输入信号,该摄像机将输入反馈到产生随机值的CSPRNG(加密安全伪随机数生成器)中。
EPFL的URand:URand的力量来自/dev/urandom上每台计算机上的本地随机生成器。随机输入是从诸如键盘按键,鼠标点击,网络流量等输入中收集的。URand将这些随机输入捆绑在一起,从而产生连续的随机流。
UChile的Seismic Girl:Seismic Girl(地震女孩)每分钟从五个被查询的信息源中提取超级可验证的随机性。这些来源包括:智利震动和震动的测量; 来自当地广播电台的信号流; 精选的Twitter帖子;来自以太坊区块链的数据;和他们自己现成的RNG(随机数发生器)卡。
Kudelski Security的ChaChaRand:ChaChaRand使用基于ChaCha20流密码的CRNG(加密随机数生成器)。
Protocol Labs的InterplanetaryRand:InterplanetaryRand利用熵的力量,通过使用环境噪声和Linux PRNG并辅以cpu来源的随机性(RdRand),确保协议在时空上的安全性。
我们的英雄们共同致力于#拯救互联网,将他们的随机性结合起来,形成一个全球分布的、密码可验证的随机性信标。
公共与私人随机性
不同类型的应用需要不同类型的随机性。
生成安全加密密钥的关键是使用无人能预测的私人生成的大随机数。随着随机信标公开生成和宣布随机数,用户不应该使用随机信标的输出作为其密钥,因为任何人都可以看到这些数字。如果攻击者能够猜出用户的私钥来自哪个随机数,那么他们就可以破解用户的系统并解密机密信息。这仅仅意味着公共信标生成的随机数不安全,不能用于加密密钥:不是因为随机性本身有什么问题,而是因为这里的随机性是公开的。
使用drand信标的客户端如果希望生成一个不会公开宣布的随机值,可以向部分或所有drand节点请求私有随机性。有关如何做到这一点的更多信息,请查看开发人员文档。
另一方面,公共随机性经常被用户使用,他们需要一个不应该是秘密的随机性值,但是它的生成必须是透明的、公平的和公正的。这对于诸如游戏,彩票和选举审计等许多目的而言都是完美的,审计人员和公众需要透明地了解何时、如何以及如何公平地生成随机值。
熵联盟提供了任何用户都可以从leagueofentropy.com检索到的公共随机性。用户将能够查看每60秒生成的512位字符串值。为什么是60秒?没有特别的理由。从理论上讲,随机性的生成可以在硬件允许的范围内尽可能地快,但这对于大多数用例来说并不是必需的。每60秒生成一个值相当于在24小时内为用户提供了1440个随机值。
*友情提醒:这个随机性是公共的。请勿将其用于私人密钥*
为什么公共随机性很重要?
选举审计
在美国,大多数选举在之后都会进行审计,以核实选举是否公正、是否公平。健全的审计系统提高了选举官员对舞弊指控作出有效反应的能力,并且可以发现系统中的漏洞,从而增强选民的信心。
目前,大部分选票和选区都是由选举官员随机选择的。这种方法可能容易受腐败内部人士左右,他们可能会选择某些选区来得到自己喜欢的结果。即使在每个选区都被篡改的情况下,通过使用一个强有力的、分布式的、最重要的是不可预测的和不偏倚的信标,选举审计员就可以确信,只要攻击者不能预测选区的选择,仅用一小部分选区就足以进行审计。
在智利,选举投票工作人员是从合格选民群中随机选出的。智利大学的Random UChile 项目一直致力于开发一个使用随机信标进行此过程的原型。Random UChile的领导人Alejandro Hevia认为,对于选举审计,公共随机性对于透明度很重要,分布式随机性使人们能够相信,信标的_多个_贡献者不可能相互勾结,他们信任的不是单个实体。
彩票
从2005年到2014年,多州彩票协会的信息安全主管Eddie Tipton 操纵了一个随机数发生器并六次获得中奖!
Tipton可以通过跳过标准随机播种过程来预测中奖号码。他能够在随机数生成器代码的函数中插入代码来检查日期、星期几和时间。如果这三个变量不对齐,随机数发生器就会使用放射性物质和盖革计数器生成随机种子。如果这些变量的排列被秘密编程,通常每年只发生一次,那么它将使用一个7变量公式来生成种子,并将其输入Mersenne Twister(一个_伪_随机数发生器)中。
Tipton知道这7个变量。他知道种子可能是一个小数字池中的一个数。这些认识使他能够预测Mersenne Twister的结果。分布式随机信标可以使这样骗局更难发生,即使它仍有可能发生。
前爱荷华州助理司法部长、现任爱荷华州审计员Rob Sand曾起诉了Tipton的案件,他同时也是改善控制权的倡导者。他说:
“一个年收入高达800亿美元的行业,没有理由不使用最复杂、真正随机的手段来保证诚信。”
分布式总账平台
许多加密货币和基于区块链的分布式计算平台(如Ethereum),常常需要在应用层进行随机选择。防止这种随机选择产生偏差的一种解决方案是使用分布式随机信标(如drand)生成随机值。以太坊基金会(Ethereum Foundation)研究员Justin Drake认为,“drand-type联合的随机性可能特别适合实时分散的以太坊应用程序,比如实时游戏和赌博”。这是因为它可以提供超低延迟的随机性,适用于需要公共随机性的广泛应用程序。
让我们开始使用drand吧!
要了解有关熵联盟以及如何使用分布式随机信标的更多信息,请访问https://leagueofentropy.com。该网站定期显示网络生成的随机性,您甚至可以看到以前生成的值。来试一试吧!
如何加入联盟:
想要加入联盟吗??我们并不是独占的!
如果您是有兴趣为drand信标做出贡献的组织或个人,请查看开发人员文档,以获取有关设置服务器和加入现有组的需求的更多信息。drand目前处于测试版发布阶段,您必须将批准请求发送至leagueofentropy@googlegroups.com,才能被批准成为贡献服务器。
展望未来
未来的互联网需要不可预测的随机信标,只有这样才有意义。熵联盟现在就在为未来的系统利用可信的公共随机性奠定基础。我们的目标是增加用户的信任度,并为您的所有公共熵需求提供一站式服务。来吧,加入我们!