当前位置: 首页 > 专利查询>浙江大学专利>正文

高质量的真随机数产生器制造技术

技术编号:2853462 阅读:187 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种高质量的真随机数产生器。它包括:用于产生随机数的随机数产生模块;所述的高质量的真随机数产生器,还包括:用于进一步增加数据的随机性,起到混洗功能的作用的数据混洗模块;用于判断随机数的优劣的时段熵检测模块;用于检测输出的随机序列是否为弱密钥的弱密钥检测模块。本发明专利技术具有以下技术效果:1.真随机数的质量非常高:对产生的随机数进行混洗,增加其随机性,并对数据进行时段熵测试和弱密钥算法测试,保证其随机性;2.真随机数的产生速度快。

【技术实现步骤摘要】

本专利技术涉及一种高质量的真随机数产生器。特别地,涉及一种用于生成密码算法的密钥、银行客户的初始密码和自动寄存机的密码的防饱和的高质量真随机数产生器。
技术介绍
随机数分为伪随机数和真随机数两种。伪随机数是有一定规律可循的,周期长度为有限长的随机数,因此伪随机数是可预测的。真随机数一般是由模拟电路构成的真随机数发生器产生,由于在电路中引入了噪声,真随机数没有规律可循,是完全不可预测的。由于现有大部分的加密算法是公开的,信息安全的保证就依赖于对密钥的保护,而产生密钥一般都需要用到随机数。于是,用于产生密钥的随机数就成了保证信息安全的关键,而只有完全不可预测的真随机数才能真正保证信息的安全。国内已开发的随机数产生器,有的是用数字电路设计的伪随机数产生器;而用模拟电路设计的真随机数产生器往往速度比较慢,而且产生的随机数质量也不好。
技术实现思路
本专利技术的目的是针对现有技术的不足,提供一种高质量的真随机数产生器。本专利技术的目的是通过以下技术方案来实现的高质量的真随机数产生器,包括用于产生随机数的随机数产生模块;所述的高质量的真随机数产生器,还包括用于进一步增加数据的随机性,起到混洗功能的作用的数据混洗模块;用于判断随机数的优劣的时段熵检测模块;用于检测输出的随机序列是否为弱密钥的弱密钥检测模块。所述的数据混洗模块添加在随机数产生模块之后,用来进一步增加数据的随机性,起到混洗功能的作用。时段熵检测模块用由以色列人Lempel和Ziv提出的LZ算法来判断随机数的优劣。弱密钥检测模块用来检测输出的随机序列是否为弱密钥,检查密钥中的0串或1串的长度,给出指示值result。本专利技术具有以下技术效果1.真随机数的质量非常高对产生的随机数进行混洗,增加其随机性,并对数据进行时段熵测试和弱密钥算法测试,保证其随机性;2.真随机数的产生速度快。附图说明图1是高质量的真随机数产生器结构框图;图2是真随机数产生器的工作流程图;图3是时段熵检测模块的工作流程图;图4是数据混洗模块的工作原理图;图5是数据混洗模块的工作流程图;图6是弱密钥检测模块工作流程图。具体实施例方式下面根据附图详细说明本专利技术。如图1所示,一种高质量的真随机数产生器架构,包括随机数产生模块,数据混洗模块,时段熵监测模块和弱密钥监测模块。其中数据混洗模块添加在随机数产生模块之后,用来进一步增加数据的随机性,起到混洗功能的作用。时段熵检测模块,采用由以色列人Lempel和Ziv提出的LZ算法来判断随机数的优劣。弱密钥检测模块用来检测输出的随机序列是否为弱密钥,检查密钥中的0串或1串的长度,给出指示值result。如图2所示,随机数产生器重置后,随机数产生模块开始工作,其产生的随机数序列由时段熵模块进行随机性检测,给出检测值,同时,该随机数序列由数据混洗模块进行混洗处理,进一步增加随机性,混洗后的随机数序列由弱密钥模块进行检测,给出检测值。如图3所示,时段熵检测模块工作流程初始化过程中地址指针清零,存储器全部置零。非确定性判别电路从并串转换电路数据,并在该电路内部计算二叉树分支地址,判断该分支地址是否为空如果分之地址不为空地址,则判断输入的数据的长度是否达到65536比特如果没有达到65536比特,则将上述分支地址作为当前地址,继续读入1比特数据;如果达到了65536比特的数据,则输出判别结果;如果上述分支地址为空,则在存储器在中把该分支地址标记非空,将计数器加1,判断输入的数据长度是否达到了65536比特如果达到了65536比特长度,则输出判别结果;如果没有达到65536比特长,则将地址指针清零,继续读入下一比特的数据,进行判断。如图4所示,数据混洗模块用于进一步增加数据的随机性,起到混洗功能的作用。其工作过程使能信号有效时,两个1bit位宽数据输入,每个时钟周期输入一个数据,输入1端口输入的数据放在初始移位寄存器init32中,下一个input1数据进来后,前一个数据向左移,存入初始移位寄存器init33中,以次类推,一直存入32个数据(由计数器counter控制,没输入一个数据,counter的值增加1),这样第一个数据存在初始移位寄存器init63中,最后一个数据存在初始移位寄存器init32中。Input2输入的数据放在初始移位寄存器的init0中,下一个input1数据进来后,前一个数据向左移,存入初始移位寄存器init31中,以次类推,一直存入32个数据,这样第一个数据存在初始移位寄存器init63中,最后一个数据存在初始移位寄存器init0中。当计数器的值从0递增到31时,将初始移位寄存器init中得值赋给fsr寄存器赋值,赋值的规则是fsr[12764]=~init[630],fsr[630]=init[630]。128位移位寄存器被赋值后开始工作,每个时钟周期右移一位。移出的值经过一个非线性布尔逻辑函数f到输出端output。每个时钟周期取fsr寄存器的第111、61、11位进行一次布尔运算;取fsr寄存器的127、126、121、0位进行异或运算;将上述两个值与输出output再次进行异或运算,所得结果存入fsr寄存器的第127位。完成fsr的一次右移过程。如图5所示,数据混洗模块的工作流程图,关键就是两组移位寄存器的移位过程,首先64位初始寄存器赋值给128位反馈移位寄存器,由反馈移位寄存器将输出信号反馈到输入信号,实现数据的置乱功能。如图6所示,弱密钥模块就是检查经过数据混洗模块处理后的随即序列是否为弱密钥。其工作流程具体如下弱密钥检测模块复位信号有效时,系统启动,初始化计数器,开始工作。①初始化过程中,“当前游程长度”计数器、“最大游程长度”计数器被清零。读入一位数据存入“当前位寄存器”;②开始工作,读入一位数据存入“下一位寄存器”。然后判断“下一位”和当前位是否相等若相等,“当前位寄存器”加1,将“下一位”赋予“当前位”,接着比较当前游程和最大游程的大小,若当前游程大于最大游程,则将当前游程长度赋予最大游程长度;如果是第一个游程,则将当前游程长度赋予首游程长度寄存器,保存首游程类别(1游程或0游程);③判断是否要结束检查如果否,则读入一位数据存入“下一位”,并重复②。如果是要结束检查,则将当前游程和首游程比较,如果是同类游程(都是1游程或都是0游程),则判断“首游程长度+当前游程长度”是否大于“最大游程长度”,如果是,则“首游程长度+当前游程长度”赋予“最大游程长度”。然后比较最大游程长度值和理论上的游程长度门限值(根据数据的总长度计算得到)大小并输出结果。下面举例说明真随机数产生器的工作流程首先由随机数产生模块产生随即序列,如0100,1100,0101,1011,1110,0000,1111,1011,1001,0110,0111,1100,0000,1110,0111,1001,1,1101,0001。序列经过混洗模块增加其随机性,取随机数产生模块的前64bit,偶数位作为高32位,奇数位作为低32位,得到序列1010,1101,1000,1101,0110,1110,0010,1101,0010,0011,1100,1111,1001,0110,0011,0110。将这64bit取反,得到序列0101,0010,0111,0本文档来自技高网...

【技术保护点】
一种高质量的真随机数产生器,包括:用于产生随机数的随机数产生模块;其特征在于所述的高质量的真随机数产生器,还包括用于进一步增加数据的随机性,起到混洗功能的作用的数据混洗模块;用于判断随机数的优劣的时段熵检测模 块;用于检测输出的随机序列是否为弱密钥的弱密钥检测模块。

【技术特征摘要】
1.一种高质量的真随机数产生器,包括用于产生随机数的随机数产生模块;其特征在于所述的高质量的真随机数产生器,还包括用于进一步增加数据的随机性,起到混洗功能的作用的数据混洗模块;用于判断随机数的优劣的时段熵检测模块;用于检测输出的随机序列是否为弱密钥的弱密钥检测模块。2.根据权利要求1所述的一种高质量的真随机数产生器,其特征在于所述的数据混洗模块添加在随机数产生模块之后...

【专利技术属性】
技术研发人员:严晓浪沈海斌
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1