PC用真随机数发生器(TRNG)外设(USB2.0)

真随机数发生器(TRNG,True Random Number Generator)是一种能够基于物理熵源(如电子噪声、混沌电路、电路的亚稳态等等)生成随机数的设备,这些随机数是不可预测的、无法通过算法推测的。

TRNG 的用途包括:

密钥生成:TRNG 可用于生成密码和密钥,这些密码和密钥可用于数据加密、身份验证和数字签名。在密码学中,一些加密协议和算法需要高质量的随机数,TRNG 能够提供这样的随机数,确保密码的安全性。这些密钥通常比伪随机数生成器(PRNG)生成的密钥更难以被猜测。伪随机数发生器虽然也能通过主流的一些随机数评估套件的测试,但是其内在机理(通过决定性的算法产生,算法和种子泄露即可被预知未来产生的随机数)决定了其安全性低于TRNG。

安全令牌和认证:TRNG 可用于生成一次性密码(OTP)或安全令牌,以进行身份验证和访问控制。这些令牌生成的随机数是不可预测的,难以被伪造。

游戏和赌博:在在线游戏、赌博和随机抽奖等应用中,TRNG 可确保游戏的公平性和随机性。这对于避免作弊和确保游戏的公正性至关重要。

科学研究:在科学实验、模拟和数值模型中,需要高质量的随机数以获得可靠的结果。TRNG 可用于生成这些随机数。

对于需要使用实体物理熵源产生真随机数的工程师来说,目前大部分PC并不能很方便的提供高速的随机数输出。一些高端的服务器会内置TRNG,但是服务器价格整体较为昂贵,想要调用其内置的TRNG产生随机数也需要深入研究其使用方法。在这个需求的牵引下设计了一个便携式的使用USB2.0协议的真随机数发生器,PC端可以使用python通过简单的代码实现真随机数的接收。

这个便携式的真随机数发生器采用了通过GM/T 0008《安全芯片密码检测准则》第一级要求的采用物理熵源的真随机数发生器。实测在USB2.0接口连接下可以达到至少35Mbps(换算为byte即4.375Mb/s)的速度。0-1比非常接近50%,香浓熵可以达到0.999999967。支持将PC接收到的真随机数存为bin或者csv格式文件。

GM/T 0008《安全芯片密码检测准则》第一级要求真随机数发生器芯片内必须有至少 2个相互独立的物理随机源直接生成随机数或生成随机数扩展算法的初始输人。由物理随机源直接生成的随机数或生成的随机数扩展算法的初始输入必须由全部物理随机源的输出经异或运算产生 。

使用美国国家标准技术研究院的随机数测试标准NIST 800-22对采集的1G bit数据进行测试,结果显示所有测试项目均通过了检验,结果放在附录1里。

此外还测试了NIST对随机数新推出的一版标准NIST 800-90B,结果显示所有测试项也均通过了检验。独立同分布测试IID_Test的最小熵可达到H_bitstring: 0.998171。结果放在附录2里。

此外还通过了德国的BSI - 联邦信息安全办公室针对随机数发生器推出的AIS31测试标准T0-T8。

后续可能还会更新其他一些随机性测试软件的测试结果。。

1Gbit的随机数用bin格式存在附件中,有需要可以下载

received_data_1.bin_免费高速下载|百度网盘-分享无限制

附录1---NIST 800-22 测试结果

------------------------------------------------------------------------------

RESULTS FOR THE UNIFORMITY OF P-VALUES AND THE PROPORTION OF PASSING SEQUENCES

------------------------------------------------------------------------------

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 P-VALUE PROPORTION STATISTICAL TEST

------------------------------------------------------------------------------

97 107 104 107 97 95 98 93 104 98 0.985788 995/1000 Frequency

107 90 84 100 100 105 99 88 105 122 0.286836 990/1000 BlockFrequency

90 114 94 89 105 106 94 108 106 94 0.651693 993/1000 CumulativeSums

99 101 109 100 106 86 112 92 101 94 0.779188 994/1000 CumulativeSums

113 94 126 95 96 88 93 96 92 107 0.189625 985/1000 Runs

88 108 107 87 98 101 107 97 105 102 0.818343 990/1000 LongestRun

104 97 95 102 101 97 101 123 86 94 0.508172 993/1000 Rank

104 125 99 106 97 86 97 100 102 84 0.241741 993/1000 FFT

86 102 100 92 85 105 108 86 112 124 0.092597 986/1000 NonOverlappingTemplate

85 107 101 95 122 91 102 91 102 104 0.375313 992/1000 NonOverlappingTemplate

88 89 99 108 99 104 107 108 93 105 0.803720 989/1000 NonOverlappingTemplate

112 108 102 113 93 97 97 103 90 85 0.552383 994/1000 NonOverlappingTemplate

115 110 108 100 100 107 89 90 101 80 0.304126 990/1000 NonOverlappingTemplate

101 99 87 105 90 97 110 107 114 90 0.585209 994/1000 NonOverlappingTemplate

86 90 89 114 104 116 110 94 105 92 0.268917 995/1000 NonOverlappingTemplate

110 95 85 92 104 123 101 91 102 97 0.308561 985/1000 NonOverlappingTemplate

95 105 86 96 98 98 103 110 94 115 0.699313 989/1000 NonOverlappingTemplate

112 101 94 107 102 96 106 84 93 105 0.723804 991/1000 NonOverlappingTemplate

81 84 86 110 101 102 128 99 104 105 0.042255 992/1000 NonOverlappingTemplate

117 99 88 87 86 109 102 109 96 107 0.326749 994/1000 NonOverlappingTemplate

85 104 111 110 104 84 93 94 108 107 0.408275 992/1000 NonOverlappingTemplate

102 116 90 96 100 102 82 103 113 96 0.439122 991/1000 NonOverlappingTemplate

96 110 87 107 90 98 104 106 94 108 0.749884 993/1000 NonOverlappingTemplate

88 97 88 95 105 114 100 116 114 83 0.169981 992/1000 NonOverlappingTemplate

95 104 86 103 124 96 100 110 91 91 0.275709 991/1000 NonOverlappingTemplate

101 92 104 107 106 85 92 114 99 100 0.686955 990/1000 NonOverlappingTemplate

99 119 112 97 112 84 84 97 97 99 0.219006 989/1000 NonOverlappingTemplate

101 97 96 100 86 100 106 98 106 110 0.912724 994/1000 NonOverlappingTemplate

93 93 82 82 106 104 96 114 104 126 0.048404 993/1000 NonOverlappingTemplate

104 84 114 84 96 101 113 115 84 105 0.116746 989/1000 NonOverlappingTemplate

95 99 108 98 88 102 91 106 110 103 0.861264 991/1000 NonOverlappingTemplate

11

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值