补充-真随机数发生器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

真随机数发生器

概要

1 概念

2 主要方法

3 检测手段

真随机数发生器

伪随机数发生器

输入为一个种子

通过某种计算机算法获得伪随机数 真随机数发生器

不确定性来熵源

需作后期处理

三个步骤

选择随机源

对随机源进行抽样 后处理

第一个真随机数发生器

Rand公司,1955年就出版了一本包括100万个随机数的书

随机脉冲做熵源

每秒可产生一个0到9之间的整数

存在一定偏差

真随机数产生器的分类

基于电路的TRNG

基于其它物理源的TRNG

基于信息设备的TRNG

基于电路的TRNG

直接放大电路噪声

振荡器采样

混沌电路

电路亚稳态

直接放大电路噪声

电路中的各种噪声,如热噪声、散粒噪声等可作为随机源,但这些信号的强度较小,须经放大器放大才能使用。

首先对电压噪声进行放大,然后对一个时间段内超过阈值的电压幅度进行计数,最后根据计数的奇偶性产生比特0或比特1

这种方式还是容易受到电源或其它信号的干扰

振荡器采样

振荡器采样技术也是一种利用电路噪声的随机数发生器,但该方法不需要对噪声进行放大。

Intel个人电脑芯片组采用的真随机数发生器同样采用了振荡器采样技术。

振荡器采样

振荡器采样

采样比100:1左右

该随机数发生器在基于Intel 810 芯片组以上的个人电脑中被广泛使用。

混沌电路

混沌系统具有的敏感性、类随机性很适合用于产生随机数。

混沌系统可用非常简单的电路实现

对电路产生的模拟信号进行抽样可产生伪随机数

一个典型的混沌映射

logistic

混沌映射的特性

确定性(Deterministic)

遍历性(Ergodic)

敏感性(Sensitive)

U=1.6, 迭代1000次后的结果

X0=0.5y=0.495750720292

X0=0.49999y=0.924945576809

X0=0.50001y=0.655243576468

电路亚稳态

在电路领域中,亚稳态指触发器无法在某个规定时间段内达到一个可确认的状态。

当一个触发器进入亚稳态时,无法预测该单元的输出电平,在一定条件下,触发器到达两个稳态的概率各为50%。

电路亚稳态

使电路进入亚稳态

根据之后进入的稳定状态转换成随机位

基于其它熵源

空气噪声

放射性衰变

基于信息设备

键盘

磁盘转速

IP包到达时间

Windows线程调用时间

后处理技术

冯﹒诺伊曼纠偏法 独立不均匀

Hash方法

基于TD-ERCS的手写签名TRNG

TD-ERCS

椭圆反向腔 切延迟

基于信号处理的TRNG

采用信号处理方法对手写签名进行处理 DCT, DFT, DWT, DWPT

不同频率部分

运行效果

过程

数据采集

其它过程

预处理

对于有的采样设备如智能手机,不能实现等时间间隔采样,为了保证算法在各种采样设备上的稳定性,对抽样点的位置进行插值运算,使相邻点的采样时间间隔固定为10毫秒。

特征提取

提取的候选特征包括签名的水平速度、垂直速度、加速度、角度和曲度,以及角度和曲度的三角函数值。

信号处理

信号处理方法包括DCT和DFT变换。处理方法是首先将信号变换到DCT或DFT域上,然后将低频系数置为0,只保留高频系数,最后进行反向的DCT或DFT变换,得到与原信号序列长度相同的序列。

比特提取

经过信号处理后的信号值多为小数,为了得到最终的密钥,对每个小数取绝对值,并提取其小数点后某个比特作为密钥位。

几种方案的参数设置情况

随机性检测

DIEHARD测试 NIST随机性测试

NIST

NIST随机性测试

1) 单比特频数测试

2) 分块块内频数测试

3) 游程测试

4) 块内长游程测试(Test for the longest-run-of ones in a block)

其目的是检验进行比特分块后的子序列块内符号1的最大游程分布是否符合随机性要求。

5) 二进制矩阵秩测试

检验待验序列中给定长度的子序列之间的线性独立性

6) 离散傅立叶变换测试

该测试是通过对测试序列进行离散傅立叶变换后,检验其频谱尖峰的分布情况,来测试序列的周期特性。

8) 重叠块匹配测试

是否含有某种模式

9) Maurer的通用统计测试(Maurer’s “universal statistical”test)

该测试是检验测试序列是否可以被明显地进行无损压缩。如果能被明显压缩则序列不随机。

11) 线性复杂度测试(The linear complexity test)

线性复杂度的概念基于线性反馈移位寄存器(LFSR)。该测试检验测试序列的线性复杂度是否满足随机序列的要求。

13) 近似熵测试

从信息的角度考查序列的随机性

NIST测试工具

第三届国家大学生创新性实验项目

以windows mobile手机为平台

获取用户的声音

采用数字信号处理方法产生真随机数 用NIST进行验证

相关文档
最新文档