一种真随机数获取方法、系统及密码机技术方案

技术编号:24517246 阅读:24 留言:0更新日期:2020-06-17 06:40
本申请公开了一种真随机数获取方法、系统及密码机,获取第一预设长度的熵池,根据磁场数据、光线传感器数据和陀螺仪数据确定一个整数,根据熵池内真随机数据序列的长度和整数获得一个位置数;以位置数为起点在熵池内获取第二预设长度的随机数,将随机数与磁场数据、光线传感器数据和陀螺仪数据的字符串相加做一次SM3摘要运算获得真随机数。熵池中熵值通过后台服务器密码机获得,保障了熵值的质量,客户端所需随机数随机从熵池获取,因为终端的磁场数据、光线传感器数据和陀螺仪数据是随着环境变化的。将随机数、磁场数据、光线传感器数据和陀螺仪数据进行SM3摘要运算确定真随机数。真随机数不可预见性、无规律性,保证了信息系统的安全性。

A real random number acquisition method, system and cipher

【技术实现步骤摘要】
一种真随机数获取方法、系统及密码机
本申请涉及信息安全
,具体涉及一种真随机数获取方法、系统及密码机。
技术介绍
信息安全是一个多层次、多因素、综合的动态过程,信息安全要求对信息系统和组织体系进行综合思考和统一规划,信息安全同时要注意监控系统内外环境的变化,信息安全很可能某一环节上的安全缺陷就会对整个系统组织构成威胁。因而信息安全作为一个多层面、多因素、综合的动态过程.是信息安全一个需要系统体系来保证的持续发展过程。传统技术中我们通常所说的信息安全一般是逻辑安全,包含信息完整性、保密性以及可用性等等。在信息安全领域中,随机数的应用十分广泛。高质量的随机数在信息安全系统中的作用举足轻重,如果随机数的随机性不够安全,整个系统极有可能被攻击者攻破。信息安全系统中的随机序列要求具有足够的长度和周期、以及尽可能高的熵值,即具有高度的随机性和不可预测性。但是在编程语言中的随机函数,只能产生伪随机数,伪随机数是按照一定算法模拟产生的,其结果是确定的,是可见的。可以认为这个可预见的结果其出现的概率是100%。所以伪随机数并不随机,它有其自身的随机规律,因此伪随机数用于信息安全存在一定的安全风险。
技术实现思路
本申请为了解决上述技术问题,提出了如下技术方案:第一方面,本申请实施例提供了一种真随机数获取方法,所述方法包括:获取第一预设长度的熵池,所述熵池内包含终端产生的真随机数据序列;分别获取终端磁场数据、光线传感器数据和陀螺仪数据,并根据所述磁场数据、光线传感器数据和陀螺仪数据确定一个整数;根据所述熵池内真随机数据序列的长度和所述整数获得一个位置数;以所述位置数为起点在所述熵池内获取第二预设长度的随机数,所述第二预设长度小于所述第一预设长度;将所述随机数与所述磁场数据、所述光线传感器数据和所述陀螺仪数据的字符串相加做一次SM3摘要运算获得真随机数。采用上述实现方式,熵池中熵值通过后台服务器密码机获得,保障了熵值的质量,客户端所需随机数随机从熵池获取,因为终端的磁场数据、光线传感器数据和陀螺仪数据是随着环境变化的。所以这就在取的时候做到了随机,随机的获取随机数,所以获取的是真的随机数。将随机数、磁场数据、光线传感器数据和陀螺仪数据进行SM3摘要运算,运算结果作为真随机数。获得的真随机数不可预见性、无规律性,保证了信息系统的安全性。结合第一方面,在第一方面第一种可能的实现方式中,所述获取第一预设长度的熵池包括:初始化熵池,循环通过后台服务的服务器密码机取随机数,获取一个第一预设长度的熵池;将所述熵池存储到一个文件夹中。结合第一方面,在第一方面第二种可能的实现方式中,所述分别获取终端磁场数据、光线传感器数据和陀螺仪数据,根据所述磁场数据、光线传感器数据和陀螺仪数据确定一个整数,包括:将所述终端磁场数据、光线传感器数据和陀螺仪数据分别放大10000倍;将放大后的所述终端磁场数据、光线传感器数据和陀螺仪数据做加法运算获得所述整数。结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述根据所述熵池内真随机数据序列的长度和所述整数获得一个位置数,包括:将所述的整数与所述熵池内真随机数据序列的长度进行取余运算获得所述位置数。结合第一方面,在第一方面第四种可能的实现方式中,将所述随机数与所述磁场数据、所述光线传感器数据和所述陀螺仪数据的字符串相加做SM3摘要运算后获得的所述真随机数长度等于所述第二预设长度。第二方便,本申请实施例提供了一种真随机数获取系统,所述系统包括:第一获取模块,用于获取第一预设长度的熵池,所述熵池内包含终端产生的真随机数据序列;第二获取模块,用于分别获取终端磁场数据、光线传感器数据和陀螺仪数据,并根据所述磁场数据、光线传感器数据和陀螺仪数据确定一个整数;第三获取模块,用于根据所述熵池内真随机数据序列的长度和所述整数获得一个位置数;第四获取模块,用于以所述位置数为起点在所述熵池内获取第二预设长度的随机数,所述第二预设长度小于所述第一预设长度;确定模块,用于将所述随机数与所述磁场数据、所述光线传感器数据和所述陀螺仪数据的字符串相加做一次SM3摘要运算获得真随机数。结合第二方面,在第二方面第一种可能的实现方式中,所述第一获取模块,包括:第一获取单元,用于初始化熵池,循环通过后台服务的服务器密码机取随机数,获取一个第一预设长度的熵池;存储单元,将所述熵池存储到一个文件夹中。结合第二方面,在第二方面第二种可能的实现方式中,所述第二获取模块,包括:数据处理单元,用于将所述终端磁场数据、光线传感器数据和陀螺仪数据分别放大10000倍;第二获取单元,用于将放大后的所述终端磁场数据、光线传感器数据和陀螺仪数据做加法运算获得所述整数。第三方面,本申请实施例提供了一种终端,包括:处理器;用于存储所述处理器处理可执行指令的存储器;所述处理器执行第一方面或第一方面所述的真随机数获取方法,获取终端的真随机数。附图说明图1为本申请实施例提供的一种真随机数获取方法的流程示意图;图2为本申请实施例提供的一种真随机数获取系统的示意图;图3为本申请实施例提供的一种密码机的示意图。具体实施方式下面结合附图与具体实施方式对本方案进行阐述。图1为本申请实施例提供的一种真随机数获取方法的流程示意图,参见图1,本实施例的真随机数获取方法包括:S101,获取第一预设长度的熵池,所述熵池内包含密码机产生的真随机数据序列。随机数在许多领域都有重要应用,如MonteCarlo模拟、密码学和网络安全。随机数的质量直接关系到网络安全系统的可靠性和安全性,关系到MonteCarlo模拟结果的可信度。自从计算机诞生起,寻求用计算机产生高质量的随机数序列的研究就一直是个长期受到关注的课题。Linux内核从1.3.30版本开始实现了一个高强度的随机数发生器,本文根据Linux2.6.10内核的源代码,详细分析该随机数产生器的设计与实现。Linux内核采用熵来描述数据的随机性。熵(entropy)是描述系统混乱无序程度的物理量,一个系统的熵越大则说明该系统的有序性越差,即不确定性越大。在信息学中,熵被用来表征一个符号或系统的不确定性,熵越大,表明系统所含有用信息量越少,不确定度越大。计算机本身是可预测的系统,因此,用计算机算法不可能产生真正的随机数。但是机器的环境中充满了各种各样的噪声,如硬件设备发生中断的时间,用户点击鼠标的时间间隔等是完全随机的,事先无法预测。Linux内核实现的随机数产生器正是利用系统中的这些随机噪声来产生高质量随机数序列。内核维护了一个熵池用来收集来自设备驱动程序和其它来源的环境噪音。理论上,熵池中的数据是完全随机的,可以实现产生真随机数序列。为跟踪熵池中数据的随机性,内核在将数据加入池的时候将估算数据的随机性,这个过程称作熵估算。熵估算值描述池中包含的随机数位数,其值越大表示池中数据的随机性越好。本申请实施例中初始化熵池,循环通过后台服务的服务器密本文档来自技高网...

【技术保护点】
1.一种真随机数获取方法,其特征在于,所述方法包括:/n获取第一预设长度的熵池,所述熵池内包含密码机产生的真随机数据序列;/n分别获取终端磁场数据、光线传感器数据和陀螺仪数据,并根据所述磁场数据、光线传感器数据和陀螺仪数据确定一个整数;/n根据所述熵池内真随机数据序列的长度和所述整数获得一个位置数;/n以所述位置数为起点在所述熵池内获取第二预设长度的随机数,所述第二预设长度小于所述第一预设长度;/n将所述随机数与所述磁场数据、所述光线传感器数据和所述陀螺仪数据的字符串相加做一次SM3摘要运算获得真随机数。/n

【技术特征摘要】
1.一种真随机数获取方法,其特征在于,所述方法包括:
获取第一预设长度的熵池,所述熵池内包含密码机产生的真随机数据序列;
分别获取终端磁场数据、光线传感器数据和陀螺仪数据,并根据所述磁场数据、光线传感器数据和陀螺仪数据确定一个整数;
根据所述熵池内真随机数据序列的长度和所述整数获得一个位置数;
以所述位置数为起点在所述熵池内获取第二预设长度的随机数,所述第二预设长度小于所述第一预设长度;
将所述随机数与所述磁场数据、所述光线传感器数据和所述陀螺仪数据的字符串相加做一次SM3摘要运算获得真随机数。


2.根据权利要求1所述的真随机数获取方法,其特征在于,所述获取第一预设长度的熵池包括:
初始化熵池,循环通过后台服务的服务器密码机取随机数,获取一个第一预设长度的熵池;
将所述熵池存储到一个文件夹中。


3.根据权利要求1所述的真随机数获取方法,其特征在于,所述分别获取终端磁场数据、光线传感器数据和陀螺仪数据,根据所述磁场数据、光线传感器数据和陀螺仪数据确定一个整数,包括:
将所述终端磁场数据、光线传感器数据和陀螺仪数据分别放大10000倍;
将放大后的所述终端磁场数据、光线传感器数据和陀螺仪数据做加法运算获得所述整数。


4.根据权利要求3所述的真随机数获取方法,其特征在于,所述根据所述熵池内真随机数据序列的长度和所述整数获得一个位置数,包括:将所述的整数与所述熵池内真随机数据序列的长度进行取余运算获得所述位置数。


5.根据权利要求1所述的真随机数获取方法,其特征在于,将所述随机数与所述磁场数据、所述光线传感器数据和所述陀螺仪数...

【专利技术属性】
技术研发人员:于传江刘磊王谨旗郭家喜郑海森滕靖国
申请(专利权)人:中安云科科技发展山东有限公司
类型:发明
国别省市:山东;37

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

1