0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

随机数在密码学中占有重要的地位

lhl545545 来源:集成电路应用杂志 作者:集成电路应用杂志 2020-06-16 11:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

设计一种超高速全数字真随机数发生器,使用嵌入亚稳态环节的环路振荡器作为随机源。对元胞自动机电路进行改良,向其中添加随机存储的特性,并将其作为后处理电路的一部分,提高了数据的熵值和伪随机性。后级电路采用异或链电路和 DES 加密算法,提高随机序列的每比特熵值,改善输出的统计特性。该方案具有良好的可移植性,极高的生成速率,偏低的资源使用和自定义扩展功能。通过 FPGA 版级验证,真随机数生成速率可达 1 Gb/s,具有一定的应用价值。

DOI:10.19339/j.issn.1674-2583.2020.04.006

一种基于随机储存元胞自动机真随机发生器[J]。集成电路应用, 2020, 37(04): 18-21.

True Random Generator Based on Random Storage Cell Automaton

JI Lei, PAN Weiqing, ZHI Yanan

Abstract — In this paper, a ultra-high-speed all-digital true random number generator is designed.The designer uses ring oscillators embedded in a metastable state as a random source. The cellular automaton circuit is improved, and the random storage feature is added to it as a part of the post-processing circuit, which improves the entropy value and pseudo-randomness of the data. The post-stage circuit uses XOR circuit and DES encryption algorithm to increase the entropy value of each bit of the random sequence and improve the statistical characteristics of the output. This solution has good portability, extremely high generation rate, low resource usage, and custom extension functions. Through FPGA-level verification, the true random number generation rate can reach 1 Gb/s, which has certain application value.

Index Terms — TRNG, ring oscillator, metastable state, cellular automata, DES, FPGA.

随机数在密码学中占有重要的地位,几乎所有的密码算法都要用到一些对攻击者来说必须是秘密的数据,而其中密钥必须是随机数。随着加解密技术的快速发展,基于软件实现的伪随机数发生器可能无法满足安全性的要求,虽然基于物理随机源的 TRNG 能保证安全性, 但其产生的真随机数的质量不高,生成速率偏慢。考虑到 5G 时代的到来,基于区块链物联网、车联网、智慧城市技术的快速发展,海量的数据需要在信息交互节点进行加密传输,这对真随机数生成的速率有了更高的要求。

本文设计了一种超高速真随机数发生器,其具有可移植性好,生成速率高,实现成本低廉的特点并具有自我扩展特性。实际测试中,真随机数生成速率高达 1 Gb/s,吞吐量/资源高于 1 Mb/LUT,远远高于常规真随机数发生器吞吐量百兆级别,0.3 Mb/LUT 左右的性能。

1 真随机整体设计

本文整体架构如 所示,框架包括 5 部分:基于亚稳态的环振器真随机源,基于随机储存的元胞自动机电路,异或链电路,DES 电路和千兆光口输出单元。

J.D. Golic 最早提出 Fibonacci 和 Galois 环形振荡器电路,但随机数生成速率偏低。2008 年,I.Vasyltsov 等人在 Fibonacci 和 Galois 环形振荡器的基础上引入了亚稳态结构,减少所需熵的积累时间。文献中,朱亮亮等人向其中引入控制环节,降低发生器功耗。本文随机熵源采用方案。

控制信号为低电平时,大环路断开,各反相器自成环路,受到半导体噪声的影响,他们的输出会在亚稳态区域波动。当控制信号为高电平的时候,各反相器接入大环路,迅速离开亚稳态区域,并进入稳态区域,此时其输出具有随机性。

二进制系数 fi 决定环振器的反馈连接。当 fi=1 时,反馈连接;当 fi=0 时,反馈断开;反馈多项式可以表示为式。

(1)式中,n 为反相器个数。为了确保输出不会恒定不变,多项式须满足式。

必须保证 n 为奇数,h(x) 不能被 1+x 整除,且 f(x) 可以被 1+x 整除。如果反馈多项式为本原多项式则以上都可以满足。

本文采用 36 个 7 阶 Fibonacci 震荡环,28 个 7 阶 Galois 震荡环作为真随机源。7 阶本原多项式共 18 个,重复 3.5 次使用,其输出作为随机储存元胞自动机电路的选择输入端。7 阶本原多项式如 所示。

以上输出的序列具有真随机和伪随机性,但数字熵源的统计特性往往不够理想,在物理随机过程采样中,会引入偏差和相关性,所以需要添加后处理电路提减小偏差和相关性。

元胞自动机的概念最初被 John von Neumann 和 Ulam 提出,并常用于物理、生物和化学的建模,也用于生成伪随机序列,是常用的后处理算法之一。元胞自动机是元胞的有限阵列,由相同的元胞组成,根据局部过度功能同步并行发展,且只能与他们最近的邻居通信。其可以由四元组(Z,Q,V,f)所定义,其中 Z 代表 d 维的细胞空间,Q 代表可能元胞可能状态组成的集合,V 表示局部规则使用的邻域,f 代表本地规则。初始时,每个元胞都有一个初始状态,根据本地规则和邻域联系,细胞状态发生变化。

初级元胞自动机是一个基本元胞自动机,一维细胞空间 Z,元胞状态 Q={0,1},邻域 V=(-1,0,1),本地规则 f:Q3→Q,Wolfram 在数学上证明了它作为高性能随机数发生器的适用性,可以并行的有效实现,如式。

最上方三个方块表示所有当前时刻 n 可能的邻域状态,下一单元格代表下一时刻元胞输出的状态。本地规则被下一时刻序列的二进制值所命名。

2014 年,一种基于储存的元胞自动机被提出,其中 x,y,z 为包括 0 的正整数[9]。元胞的下一状态的输出与相邻元胞和本身的过去状态有关,如式。

最近,一种基于随机储存的元胞自动机被提出,Q={0,1},邻域 V=(-1,0,1)。其中,τi是随机值,其小于等于元胞储存的状态数 M,元胞的下一状态可以随机地由当前状态,以及过去状态确定,如式。

本文设计一个基于随机储存的元胞自动机,其元胞储存状态数 M 为 1,本地规则为 R150,其τi的值由上级的亚稳态震荡环的输出决定。0 代表τi=0,输出当前状态;1 代表τi=1,输出上一状态。其元胞单元电路如图 5 所示。bit_out 为该元胞自动随机数的输出端,连接到异或链电路。bit_i_m 为随机储存输出端,连接与其相邻的左右两个元胞单元。

随机储存的元胞自动机包含 64 个元胞环形连接,其相互连接图如图 6 所示,其中只有一个 bit_i_m 初始值为 1。系统开始工作后,每个时钟周期生成 64 个 bit_out,每相邻 8 位进行异或压缩操作,送入下级异或链电路中。

为了减小偏差,使得“0,1”分布均匀,采用异或链进行处理,对数据进行校正,结构如图 7 所示。本文采用 8 路异或链电路,每路由 8 个触发器进行异或链纠偏,每个时钟周期输出 8 bit 数据,输出偏执非常小。

1940 年代末,香农提出了设计密码系统的两个基本方法-混淆和扩散。扩散和混淆可以极大改善输出序列的统计特性,提高熵值,弥补统计缺陷。

设计中最后采用 DES 加密算法对数据进一步后处理,为 DES 加密算法处理过程。首先对上级输入的 8 bit 序列进行数据重排,扩展到 128 bit,高 64 bit 和低 64 bit 分别作为明文和密钥输入,进行 IP 初始置换,然后 16 轮迭代变换,最后左右交换后进行逆初始置换(IP-1)得到 64 bit密文,作为真随机数输出序列,16 轮迭代采用 Feistel 密码结构对明文和密钥进行混淆和扩散。其中置换移位操作可获得扩散,非线性函数 f 操作可获得混淆。

2 实验验证

本文设计真随机发生器在 FPGA 上进行实验实现,型号为 xc7z035ffg676-2。外接输入时钟为 100 MHz,经过 PLL 倍频到 500 MHz 后,最后输出真随机输出速率高达 1 Gb/s。实现过程中没有使用任何布局布线约束,完全由设计软件自动处理。PC 端通过光口接受 126 组数据,每组 1 Mbit,使用NIST SP-800-22 随机数测试套件进行随机性评估测试。测试规定当测试通过率都大于 96 %时,则认为通过该项测试;如果数据通过全部 15 项测试,则认为序列是真随机的。

为测试结果,数据完全通过试。

为体现本文所设计的真随机数发生器的性能,本设计与国内外已经公开发表的真随机数发生器进行比较,其中单个 LUT 资源相当于一个 LE 资源;可移植性的判断是基于实现时是否使用特殊器件或手动布局布线,如使用则移植性较差,对比结果如表 3 所示。在吞吐量方面,本文设计的真随机数发生器远超常规数字发生器的百兆级别。吞吐量/逻辑资源比为 1.107 Mb/LUT,远大于常规 0.3 Mb/LUT,更加节省资源。移植性方面由于没有使用特殊器件和物理约束实现,因此可以快速集成到芯片或 FPGA 当中。

由于元胞自动机结构简单,易扩展的特性,本文对该设计的自我扩展性能进行了实验验证,本文将 64 个元胞自动机裁剪为 32 个、16 个,减少硬件资源分别为 143LUT、200LUT,并依次重新实现设计,生成速率分别为 500 Mb/s、250 Mb/s,结果均能通过 NIST SP800-22 测试。实验表明该随机数发生器具有扩展性能,使用者可以根据自己实际需求自我进行裁剪或扩展。

3 结语

本文介绍了一种新的数字真随机数发生器,解决现有真随机数发生器生成速率,资源消耗,可移植性和扩展性无法全面的兼顾的问题。实际测试真随机数生成速率可达 1 Gb/s,吞吐量/资源比为 1.1 Mb/LUT,远远高于常规真随机发生器吞吐量的百兆级别和 0.3 Mb/LUT 的吞吐量/资源比。该方案纯具有资源消耗低,吞吐量极高,可移植性好和可扩展的特点。便于集成到芯片和 FPGA 中,缩短开发周期,具有很好的实际应用价值,可满足了未来区块链、物联网、车辆网、智慧城市中需要大量真随机数进行信息加密的场合。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 环形振荡器
    +关注

    关注

    1

    文章

    12

    浏览量

    8917
  • 亚稳态
    +关注

    关注

    0

    文章

    47

    浏览量

    13760
  • 随机数发生器

    关注

    0

    文章

    25

    浏览量

    11293
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MPC5746R有真随机数模块(TRNG)吗?

    MPC5746R有真随机数模块(TRNG)吗? 如果有,请给些资料和例程,谢谢! 我的工程里没有使用SDK。
    发表于 04-08 06:20

    硅臻正式推出QRNG全系列量子随机数发生器产品

    信息安全是社会稳定的必要条件,数字时代其重要性更是愈发凸显。无论经典还是量子加密的过程随机数都是安全性的基石。加密密钥由随机数生成,安
    的头像 发表于 03-10 16:24 484次阅读
    硅臻正式推出QRNG全系列量子<b class='flag-5'>随机数</b>发生器产品

    解锁 5 位女性先驱的密码学传奇

    当我们走进密码学的历史森林,就会发现现代信息安全的底层逻辑,从算法的自动化执行到零知识证明的数学美感,源自一群极具天赋且意志坚韧的女性。她们,有人在机械齿轮的咬合声预见万物皆可计算的未来;有人
    的头像 发表于 03-08 10:08 462次阅读
    解锁 5 位女性先驱的<b class='flag-5'>密码学</b>传奇

    飞凌嵌入式ElfBoard-系统信息与资源之产生随机数

    一、rand rand可在指定范围内生成随机数。1.头文件#include 2.函数原型int rand(void);3.参数无。4.返回值rand() 函数返回一个范围在 0 到 RAND_MAX
    发表于 01-22 08:59

    力旺电子携手熵码科技达成全方位后量子密码学防护里程碑

    Corp.),今日共同宣布一项重大技术突破:其合作开发的PUF-PQC后量子密码学(Post-Quantum Cryptography, PQC)硬件加速解决方案,已正式通过美国国家标准暨技术研究院(NIST)的最新标准认证。
    的头像 发表于 01-20 16:49 1800次阅读

    如何在LTspice仿真中实现伪随机数和真随机数的生成

    本文讨论如何在LTspice仿真中利用flat()、gauss()和mc()函数来实现伪随机数和真随机数的生成,并介绍如何使用设置面板的Hacks部分的 Use the clock
    的头像 发表于 01-09 14:08 4946次阅读
    如何在LTspice仿真中实现伪<b class='flag-5'>随机数</b>和真<b class='flag-5'>随机数</b>的生成

    德思特应用 | 前沿量子随机数研究:多特蒙德工业大学如何通过高速数字化仪保障信息安全

    量子信息时代,生成真正随机的数字对加密与安全至关重要。多特蒙德工业大学研究人员利用高速数字化仪对量子随机数生成过程进行多通道采集与分析,成功实验评估窃听风险,为
    的头像 发表于 12-22 17:22 596次阅读
    德思特应用 | 前沿量子<b class='flag-5'>随机数</b>研究:多特蒙德工业大学如何通过高速数字化仪保障信息安全

    不止于数学:实际部署是筑牢后量子安全的关键环节

    作者:是德科技创新总监Durga Ramachandran   为了应对量子计算的最终问世,数字基础设施必须完成向后量子密码学(PQC)的过渡,这是一项至关重要的准备工作。美国国家标准与技术研究
    的头像 发表于 11-21 15:57 580次阅读
    不止于数学:实际部署是筑牢后量子安全的关键环节

    AMIAptio V UEFI固件成功部署后量子密码学

    AMI实现行业首创:Aptio V UEFI固件成功部署后量子密码学 亚特兰大2025年11月13日 /美通社/ -- 动态固件领域的全球领导者AMI®欣然宣布,其旗舰产品Aptio® V
    的头像 发表于 11-13 21:08 536次阅读

    RISCV-K指令集扩展分享

    RISC-V K扩展指的是RISC-V用于提升密码学算法的速度、减小应用程序大小的一个扩展指令集。主要包含了:AES加密算法的加速指令、SHA算法的加速指令,SM3、SM4算法的加速指令以及从B扩展
    发表于 10-23 06:12

    为何硬件安全与软件安全现代系统同等重要

    ,获得从独立IP组件 到完整可信执行环境的一站式方案,还可了解抗量子密码学相关内容,保护数据免受未来量子计算带来的安全威胁。
    的头像 发表于 10-21 11:37 9856次阅读
    为何硬件安全与软件安全<b class='flag-5'>在</b>现代系统<b class='flag-5'>中</b>同等<b class='flag-5'>重要</b>

    ‌基于RNG90的真随机数生成器技术解析与应用指南

    Microchip Technology RNG90 CryptoAuthentication™器件设计用于需要安全随机数发生器的系统。RNG90即用型,无需任何定制。Microchip RNG90
    的头像 发表于 10-10 15:01 934次阅读
    ‌基于RNG90的真<b class='flag-5'>随机数</b>生成器技术解析与应用指南

    随机数和伪随机数的区别

    随机数在当前程序运行环境是一种常用参数,目前主要分为两种,伪随机数和真随机数,本期我们就来讲一下二者的区别。
    的头像 发表于 08-27 17:46 2992次阅读

    电科网安助力第三届“熵密杯”密码安全挑战赛圆满收官

    近日,第三届“熵密杯”密码安全挑战赛暨2025密码安全论坛重庆成功举办。本次大赛由中国密码学会、重庆市密码管理局指导,国家信息技术安全研究
    的头像 发表于 07-28 11:22 1225次阅读

    Onenet云网关方案应用--基于米尔瑞芯微RK3576开发板

    到云端 3. 为了看到数据变化,做了随机数生成,将Electric_val add_ele_val字段用随机数更新,服务端以便于看到动态效果 4. 云端下发的消息最终按json格式解析后分别调用到对应字段的回调函数
    发表于 06-06 16:54