补充-真随机数发生器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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进行验证