
什么是随机数
报告开篇,杨博翰博士抛出了一个非常有趣的问题,什么是随机数?
文科生小编说,掷骰子可以产生随机数;
C语言程序员说,随机数是C语言中的rand()函数;
Python程序员说,rand()函数早就是老黄历了,随机数是random函数;
系统设计人员说,语言类随机数,不如调用Linux系统下的/urandom文件来产生随机数;
。。。。。。
真是一千个观众有一千个“随机数”哈姆雷特
.jpg)
问题似乎回到了原点,那么究竟什么是随机数呢?
杨博翰博士并未直接给出一个晦涩难懂的学术答案,而是用更多趣味性的“随机数”案例,带我们对随机数的概念进行了抽丝剥茧。
从商朝的龟甲占卜,到影视剧中随处可见的抽签解签,以及西方盛行的塔罗牌,再到当代流行已久的******业、游戏业,毫不夸张的说,生活中处处有随机数。科研工作中大量用到的科学计算、统计仿真、数值计算都需要随机数;更重要的是,密码安全系统中,包括生产签名参数、生成会话密钥、生成挑战、掩码都需要大量的随机数。如果把一个安全系统比喻成一颗大树,那么随机数发生器就是整个大树的根基。
了解了什么是随机数之后,杨博翰博士又从偏差(Bias)、香农熵(Shannon Entropy)、最小熵(Min-Entropy)这三个概念切入,介绍了评估真随机数的指标。并在讲解过程中穿插了“随堂小测验”,增加报告互动性的同时,也提升了与会者的参与度。
硬件物理真随机数发生器的设计与思考几十年来,科学家致力于改善电路的稳定性(可预知结果),我们在设计一个数字/模拟电路时,希望它的输出是可预知的。
在过去,这种不可预知的结果,不是随机数,而是出现了设计错误、运行出错、或者被攻击等情况;我们设计真随机数发生器,是希望通过基于硅这样一个器件,来生成一个稳定的、可靠的,不是错误的不可预知输出;同时TRNG需要在PVT变化下和主动攻击下保持鲁棒性和稳定性;在过去的二十年里,要求进一步被提升:在设计一个真随机数发生器时,需要知道该真随机数发生器为什么工作,以及到底能产生多少真随机性?杨博翰博士层层递进,详细讲解了设计硬件真随机数的难点所在,并用大树的比喻再次强调了真随机数发生器在硬件系统中的重要性。

随后,杨博翰博士用Mifare Classic RFID tag的芯片、摩托罗拉2002年发表在CHES上的TRNG设计、以及中国台湾的自然人凭证卡等三个生动的案例,引出了当前工业界和学术界达成的共识:我们需要一个更好的设计真随机数发生器的方法。
紧接着,杨博翰博士对随机数发生器的结构进行了详细的讲解,对热噪声、亚稳态、时钟抖动、混沌电路、量子效应等熵源种类进行了介绍,并着重介绍了沐创首款自主研发的RSP T10真随机数发生器芯片,以及该芯片的时钟抖动熵源原理。


报告的最后,杨博翰博士又分享了当前国际上主流的一些真随机数常见的标准,也对国内和国际的标准和检测思路进行了对比分析。
杨博翰博士总结说,未来在产品方向的优化上,首先,希望我们的随机数发生器能迭代的更稳定;此外,希望努力降低随机数发生器的功耗,希望优化后的随机数发生器能应用到每一个IoT系统、智能微尘系统中去,实现客户面的拓宽;最后,也希望我们的随机数发生器变得更鲁棒、更安全,能集成在安全性要求更高的产品中。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------沐创,源于清华,自成立以来一直坚持产学联动,踏踏实实做研究,稳扎稳打出产品;《沐创大讲堂》专注芯片领域技术干货,我们乐于分享,期待与你共同进步;下期精彩,敬请期待。