一种随机数生成方法、装置、智能移动终端及存储介质与流程

文档序号:21454032发布日期:2020-07-10 17:48阅读:178来源:国知局
一种随机数生成方法、装置、智能移动终端及存储介质与流程

本公开涉及随机数技术领域,特别涉及一种随机数生成方法、装置、智能移动终端及计算机可读存储介质。



背景技术:

随着现代计算机技术和电子信息技术的发展,大量可用于保障数据安全性的方式随之出现和发展。最常用当属对数据进行加密和认证的加密算法和认证算法与协议,而各式加密算法和认证算法与协议中,密钥的生成过程、加密的运算过程、认证算法的使用以及认证协议的执行都需要随机数的参与,而基于随机数生成的参数是否真正具有安全性也取决于随机数是否具有真正的随机性。

在智能移动终端的使用过程中,为保证各种应用的安全,现有技术通常按照以下两种方式来生成随机数:一种是在智能移动终端内增加专用的随机数生成芯片,即通过该芯片内的噪声生成电路随机产生的噪声来生成随机数;另一种则是借助软件算法来生成随机数。在使用随机数生成芯片来生成随机数的方法中,由于其是以真正具有随机性的物理电路噪声为基础,其可生成具有真正随机性的随机数。但额外增加的芯片势必会挤占智能移动终端原本就小的空间和带来功耗的增加,通常还需要重新设计主板,难度大、性价低。

使用软件算法生成随机数的方式,虽然不用额外增设随机数生成芯片,但其生成的随机数却并不具有真正的随机性。因为实际上它们是通过一个固定的、可以重复的计算方法产生的,虽然其较长的重复周期让它们产生的数看起来具有真随机数的统计特征,但其实它们并不真正地随机。一个非常明显的例子,在诸多音乐播放软件中,都可以见到随机播放选项,点选后,下一首歌理应为歌单中的随机一首,不应该与前一首和后一首有任何关系。但实际体验往往是,有几首歌经常会被随机到,而有些歌似乎永远不会被随机到,就是因为其采用的随机数并非是真随机数,而是采用算法计算出来的伪随机数。

虽然在大多数场景下伪随机数足以满足使用要求,但对于敏感的安全应用还是埋下了安全隐患。因此,如何针对上述现有技术缺陷,提供一种能利用软件算法生成真随机数的方法,是本领域技术人员为消除安全隐患所亟待解决的问题。



技术实现要素:

本公开的主要目的在于提供一种随机数生成方法、装置、智能移动终端及计算机可读存储介质,旨在无需增设专门的随机数生成芯片的基础上,提供一种能利用软件算法生成真随机数的方法,以消除现有技术只能生成伪随机数所带来的安全隐患。

为实现上述目的,本公开提供了一种随机数生成方法,该方法包括:

获取当前环境下导频信道信号的强度值;

根据所述强度值得到目标噪声信号;

利用杂凑算法处理所述目标噪声信号,得到随机数。

可选的,根据所述强度值得到数字噪声信号,包括:

对所述强度值进行数字量化编码,得到原始噪声信号;

对所述原始噪声信号进行熵增处理,得到所述目标噪声信号。

可选的,对所述原始噪声信号进行熵增处理,包括:

将得到时间相隔预设时长的两个所述原始噪声信号进行异或运算。

可选的,对所述原始噪声信号进行熵增处理,包括:

将中间相隔预设数量的两个所述原始噪声信号进行异或运算。

可选的,对所述原始噪声信号进行熵增处理,包括:

按预设插入规则在排列有各所述原始噪声信号的队列中插入当前时间。

可选的,该随机数生成方法还包括:

将处理后噪声信号与各所述原始噪声信号进行混合;其中,所述处理后噪声为经异或运算或插入当前时间后得到的噪声信号。

可选的,利用杂凑算法处理所述目标噪声信号,包括:

根据实际使用的杂凑算法的分组长度对连续排列的各目标噪声信号分组,得到分组后噪声信号;

将所述分组后噪声信号作为输入信号输入实际使用的杂凑算法,并将输出的处理结果作为所述随机数。

为实现上述目的,本公开还提供了一种随机数生成装置,该装置包括:

rscp参数获取单元,用于获取当前环境下导频信道信号的强度值;

目标噪声信号生成单元,用于根据所述强度值得到目标噪声信号;

随机数生成单元,用于利用杂凑算法处理所述目标噪声信号,得到随机数。

可选的,所述目标噪声信号生成单元包括:

数字量化编码子单元,用于对所述强度值进行数字量化编码,得到原始噪声信号;

熵增处理子单元,用于对所述原始噪声信号进行熵增处理,得到所述目标噪声信号。

可选的,所述熵增处理子单元包括:

时长异或运算模块,用于将得到时间相隔预设时长的两个所述原始噪声信号进行异或运算。

可选的,所述熵增处理子单元包括:

数量异或运算模块,用于将中间相隔预设数量的两个所述原始噪声信号进行异或运算。

可选的,所述熵增处理子单元包括:

时间插入模块,用于按预设插入规则在排列有各所述原始噪声信号的队列中插入当前时间。

可选的,该随机数生成装置还包括:

噪声信号混合单元,用于将处理后噪声信号与各所述原始噪声信号进行混合;其中,所述处理后噪声为经异或运算或插入当前时间后得到的噪声信号。

可选的,所述随机数生成单元包括:

分组子单元,用于根据实际使用的杂凑算法的分组长度对连续排列的各目标噪声信号分组,得到分组后噪声信号;

杂凑算法运算子单元,用于将所述分组后噪声信号作为输入信号输入实际使用的杂凑算法,并将输出的处理结果作为所述随机数。

为实现上述目的,本公开还提供了一种智能移动终端,该智能移动终端包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述计算机程序,以实现如上述内容所描述的随机数生成方法。

为实现上述目的,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述内容所描述的随机数生成方法。

本公开提供了一种随机数生成方法:获取当前环境下导频信道信号的强度值;根据所述强度值得到目标噪声信号;利用杂凑算法处理所述目标噪声信号,得到随机数。

通过上述技术方案可知,本公开用于生成随机数的基础为当前环境下导频信道信号的强度值,而导频信道信号的强度值受实际场景下存在的诸多因素的影响,具有真正的随机性,因此在具有真正随机性的强度值的基础上得到的噪声信号将可在杂凑算法的帮助下生成具有真正随机性的随机数,即真随机数。相比于仅能生成伪随机数的现有技术,应用本公开所提供的方案可使智能移动终端能够为各种对安全性需求较高的应用提供真随机数。本公开同时提供了一种随机数生成装置、智能移动终端及计算机可读存储介质,具有相同的有益效果,在此不再赘述。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本公开实施例提供的一种随机数生成方法的流程图;

图2为本公开实施例提供的另一种随机数生成方法的流程图;

图3为本公开实施例提供的又一种随机数生成方法的流程图;

图4为本公开实施例提供的一种随机数生成装置的结构框图;

图5为本公开实施例提供的一种智能移动终端的结构示意图。

具体实施方式

本公开的主要目的在于提供一种随机数生成方法、装置、智能移动终端及计算机可读存储介质,旨在无需增设专门的随机数生成芯片的基础上,提供一种能利用软件算法生成真随机数的方法,以消除现有技术只能生成伪随机数所带来的安全隐患。

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

实施例一

请参见图1,图1为本公开实施例提供的一种随机数生成方法的流程图,其包括以下步骤,需要说明的是,以下各步骤的执行主体均为智能移动终端中的软件算法:

s101:获取当前环境下导频信道信号的强度值;

本步骤旨在获取到该智能移动终端当前所处环境下的导频信道信号的强度值。该强度值也通常被简称为rscp,其英文全拼为:receivedsignalcodepower,其特指导频信道,现今通常作为智能移动终端(例如智能手机)接收到的导频信道信号的强度。

其中,导频信道作为通讯术语,其具体指由每个码分多址(cmda,codedivisionmultipleaccess)基站连续发射的未调制直接序列扩频信号,导频信道使得用户站能够获得前向码分多址信道的时限,并提供相干解调相位参考,并且为各基站提供信号强度比较手段,以确定何时切换至另一基站。所以导频信道这个信号是智能移动终端在现有使用过程中就会接收到的一种信号,现今主要用于根据其强度值的不同让当前的智能移动终端切换到合适的基站,以通过更合适的基站为该智能移动终端提供更好的通讯服务。

之所以会进行基站的切换,这是因为智能移动终端往往会随着其所属用户的移动发生位置变化。而在当下,手机信号的覆盖是以小区为单位的,因此随着位置由a小区附近到b小区附近,往往就会触发智能手机将自身所属的基站由a小区基站切换至b小区基站的动作。站在该智能手机的角度,就是离b小区的基站越近,其所接收到的来自b小区基站的导频信道的强度值越大,相对应的,来自a小区基站的导频信道的强度值越小,在超过某个临界值后,将进行切换操作。

本实施例之所以获取该导频信道的强度值,是想利用该强度值所具有的特性来生成真随机数。由于导频信道作为由基站发出的一种特殊的电磁波,同样具有电磁波的诸多特性,受实际场景下复杂的建筑物和遮蔽物的干扰,该导频信道会在传播过程中发生复杂的直射、绕射和反射现象。虽然能够基本保障基站为距自身一定范围内的用户提供相对稳定的通讯服务,但不同位置下不同智能手机所接收到的导频信道的强度值却基本不可预测,即使同一智能手机在相同位置的不同时间下接收到的导频信道的强度值也往往存在较大的差异(因实际应用场景下复杂的电磁环境干扰)。基于上述内容,rscp可被认为是一个时变的随机变量,即可认为该强度值具有真正的随机性。

s102:根据强度值得到目标噪声信号;

在s101的基础上,本步骤旨在根据作为获取到的强度值来得到目标噪声信号,以便后续步骤基于目标噪声信号来得到真随机数。具体的,为使该强度值便于后续处理,在本步骤中往往还需要利用量化编码技术将该强度值处理为数字量,即最终得到的目标噪声信号是数字量的。其中,数字量的量化编码技术有很多,现存有多种不同的标准,例如可以依据国家标准,将强度值为-120~-90的rscp做256等分,并分别将其对应编码为0~255。也可以根据实际应用场景下所采用的其它数字量化标准来执行,此处并不做具体限定。

进一步的,为避免发生在极端情况(外边环境不变化或极其微弱的同时,该智能移动终端的位置不发生变化,考虑到外界复杂的电磁环境,该情况发生的概率微乎其微)下使得该强度值不具有真正的随机数,进而导致得到的目标噪声信号、随机数也都不具有这个特性的情况发生,为使最终得到的目标噪声信号能够具有生成真随机数的能力,还可以补充进行熵增处理。

熵,其本身作为热力学中表征物质状态的参量之一被使用,其物理意义是体系混乱程度的度量。在此处也表示本公开适用场景下的混乱程度,当一个体系足够混乱时,一个参数随时间变化的两个值也将满足为真随机数的定义(它所产生的后面的那个数与前面的那个数毫无关系),因此熵增处理则表示一种增加体系混乱程度的处理方式,以期通过该方式的处理使得最终得到的目标噪声信号满足可生成真随机数的要求。

具体的,熵增处理的方式可以表现为多种,例如对任意两个或多个强度值进行一些运算,以任意两个为例,可以根据获取到各强度值的时间间隔来选取,也可以根据依次获取到的各强度值之间的间隔数量来选取,更进一步的,还可以将时间间隔或间隔数量设置为变化的。运算可以包括但不限于异或运算、插值运算、抽样运算等等。任何可以增加体系混乱程度、使目标噪声信号具有生成真随机数能力的方式,都可以使用,并不局限于上述列举的部分,即在上述思想指导下给出的一些略微变化的方案,都应属于本公开的保护范围内。

s103:利用杂凑算法处理目标噪声信号,得到随机数。

在s102的基础上,本步骤旨在利用杂凑算法来处理数字量的目标噪声信号,以使得其可输出真正具有随机性的随机数,即真随机数。

其中,杂凑算法又称hash函数(中文称为哈希函数或哈希算法),该算法/函数能够把任意长的输入消息串变化成固定长的输出串。即本申请利用杂凑算法的这一特性产生固定长的随机数。具体的,由于hash函数又根据特性的不同,可再细分为多种具体的函数,例如可直接采用国家标准的杂凑算法sm3。同时,在不影响本公开所要实现的目的基础上,也可以选用其它杂凑算法,此处不再一一列举。

在得到具有真正随机性的随机数后,该智能移动终端就可以将其储备起来,以备包括但不限于的加密算法密钥生成、密钥协商、随机运算、通讯双方握手协议以及各种身份鉴别、权限控制等应用的操作使用,由于是真随机数,可有效消除恶意人员针对现有技术所使用的伪随机数进行逆向破解所带来的安全隐患。

基于上述技术方案,本实施例用于生成随机数的基础为当前环境下导频信道信号的强度值,而导频信道信号的强度值受实际场景下存在的诸多因素的影响,其具有真正的随机性,因此在具有真正随机性的强度值的基础上得到的噪声信号将可在杂凑算法的帮助下生成具有真正随机性的随机数,即真随机数。相比于仅能生成伪随机数的现有技术,应用本公开所提供的方案可使智能移动终端能够为各种对安全性需求较高的应用提供真随机数,消除了因使用伪随机数所带来的安全隐患。

实施例二

请参见图2,图2为本公开实施例提供的另一种随机数生成方法的流程图,相比于实施例一,本实施例主要针对s102提供一种包括熵增运算在内的得到目标噪声信号的下位实现方式,以尽可能的防止极端情况下基于目标噪声信号无法得到真随机数的问题出现,包括以下步骤:

s201:获取当前环境下导频信道信号的强度值;

s202:对强度值进行数字量化编码,得到原始噪声信号;

s203:对原始噪声信号进行熵增处理,得到目标噪声信号;

针对s203,本实施例还提供了几种具体的处理方式来实现熵增的效果:

方式1:将得到时间相隔预设时长的两个原始噪声信号进行异或运算;

方式2:将中间相隔预设数量的两个原始噪声信号进行异或运算;

方式3:按预设插入规则在排列有各原始噪声信号的队列中插入当前时间。

其中,方式1和方式2均是以挑选两个原始噪声信号进行异或运算的方式来进行熵增处理,混乱程度的增加具体体现在两个方面,其一是尽可能选取没有关系的两个原始噪声信号做运算,其二是利用异或运算的特性来使得运算结果与原始噪声信号之间的关系更复杂。方式1和方式2的不同之处表现为选取哪两个原始噪声,方式1是通过相隔预设时长的两个原始噪声信号,以期通过此种方式来规避相近时间段内得到的存在一定关联性的两个原始噪声;方式2与方式1的目的相同,只不过是换用了相隔预设数量这一方式来实现。根据具体的应用场景,预设时长和预设数量的具体数量可自行设定为合适的值。

方式3是区别于方式1/2的另一种处理方式,即通过插入随时间变化、一定不存在两个相同值的当前时间来增加原始噪声信号的混乱程度,具体的,插入的方式、选择的插入位置均可以自行设定,此处并不做具体限定。

还需要说明的是,上述给出的几种方式仅为多种熵增方式中的比较简单易实现的三种,且上述三种方式可以单独存在来实现熵增的目的,也可以进行灵活的组合,由于上述三种方式之间并不涉及因果关系,因此在组合时哪种实现方式先做或后做均可,还可以同时进行多种方式后对处理后的结果再进行一次异或运算或插入当前时间的运算等等。

s204:利用杂凑算法处理目标噪声信号,得到随机数。

在实施例一方案所具有的有益效果的基础上,本实施例通过s202和s203提供一种包括熵增运算在内的得到目标噪声信号的下位实现方式,使得在熵增处理方式的帮助下,可以尽可能的防止极端情况下基于目标噪声信号无法得到真随机数的问题出现,保障所产生的随机数为真随机数。

实施例三

请参见图3,图3为本公开实施例提供的又一种随机数生成方法的流程图,在实施例二的基础上,本实施例旨在提供一种包括s304在内的随机数生成方法,以通过新增的s304来进一步增加混乱程度的实现方式,包括以下步骤:

s301:获取当前环境下导频信道信号的强度值;

s302:对强度值进行数字量化编码,得到原始噪声信号;

s303:对原始噪声信号进行熵增处理,得到处理后噪声信号;

s304:将处理后噪声信号与各原始噪声信号进行混合,得到目标噪声信号;

其中,处理后噪声信号为通过s303的熵增处理后得到的噪声信号,具体的熵增处理方式可参见实施例二对s203的解释和说明部分。本步骤通过混合处理后噪声信号和原始噪声信号,使得存储各原始噪声信号的存储池的混乱程度进一步增加,其实也可以将本步骤看作另一种熵增的处理方式。

具体的,混合方式也可以采用多种方式,例如整体混合、打散混合、在混合之后还可以增加一些特定值或消减部分数据,此处并不做具体限定。

s305:利用杂凑算法处理目标噪声信号,得到随机数。

在实施例二方案所具有的有益效果的基础上,本实施例通过增加的s304来进一步的确保目标噪声信号具有真正的随机性,以尽可能的防止极端情况下基于目标噪声信号无法得到真随机数的问题出现,保障所产生的随机数为真随机数。

为加深为本申请发明点的理解,本公开还结合具体应用场景,提供了一种具体的实现方案:

首先,在智能手机开机状态下,定时(例如每秒100次)采集rscp,并进行量化数字编码(将-120~-90的rscp做256等分,对应rscp值编码为0~255),得到原始噪声信号。之后将原始噪声信号存储进适当大小(例如64kb)的原始噪声存储器;

之后,当原始噪声信号存储器存满之后,将排队溢出的噪声信号与新采集的原始噪声信号进行异或操作,将异或操作的结果也存入原始噪声存储器;

接着,将原始噪声存储器中的各噪声信号按所采用的杂凑算法的分组长度进行分组,在完成分组后再插入该智能手机的当前时间(以时(1字节)/分(1字节)/秒(1字节)/毫秒(2字节)),得到目标噪声。

最后,将产生的目标噪声输入杂凑函数进行杂凑运算,并将杂凑函数输出的值作为随机数存入适当大小(例如64kb)的随机数存储器待用。当该智能手机有任意需要随机数的操作时,均可要求该随机数存储器中输出相应的随机数来使用。

进一步的,还可以当该随机数存储器存满时,停止上述步骤的执行以节省电量的消耗;当随机数存储器有输出造成不满时,再继续执行直至填满。

因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本公开提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本公开的保护范围内。

请参见图4,图4为本公开实施例提供的一种随机数生成装置的结构框图,该装置可以包括:

rscp参数获取单元100,用于获取当前环境下导频信道信号的强度值;

目标噪声信号生成单元200,用于根据强度值得到目标噪声信号;

随机数生成单元300,用于利用杂凑算法处理目标噪声信号,得到随机数。

其中,该目标噪声信号生成单元200可以包括:

数字量化编码子单元,用于对强度值进行数字量化编码,得到原始噪声信号;

熵增处理子单元,用于对原始噪声信号进行熵增处理,得到目标噪声信号。

其中,该熵增处理子单元可以包括:

时长异或运算模块,用于将得到时间相隔预设时长的两个原始噪声信号进行异或运算。

其中,该熵增处理子单元可以包括:

数量异或运算模块,用于将中间相隔预设数量的两个原始噪声信号进行异或运算。

其中,该熵增处理子单元可以包括:

时间插入模块,用于按预设插入规则在排列有各原始噪声信号的队列中插入当前时间。

进一步的,该随机数生成装置还可以包括:

噪声信号混合单元,用于将处理后噪声信号与各原始噪声信号进行混合;其中,处理后噪声为经异或运算或插入当前时间后得到的噪声信号。

其中,该随机数生成单元300可以包括:

分组子单元,用于根据实际使用的杂凑算法的分组长度对连续排列的各目标噪声信号分组,得到分组后噪声信号;

杂凑算法运算子单元,用于将分组后噪声信号作为输入信号输入实际使用的杂凑算法,并将输出的处理结果作为随机数。

本实施例作为一个对应于上述方法实施例的装置实施例存在,具有方法实施例的全部有益效果,在此不再一一赘述。

图5是根据一示例性实施例示出的一种电子设备700的框图。如图5所示,电子设备700可以包括处理器701和存储器702,还可以进一步包括多媒体组件703、信息输入/信息输出(i/o)接口704以及通信组件705中的一者或多者。

其中,处理器701用于控制电子设备700的整体操作,以完成上述的随机数生成方法中的全部步骤;存储器702用于存储各种类型的数据以支持在电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,sram)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、可编程只读存储器(programmableread-onlymemory,prom)、只读存储器(read-onlymemory,rom)、磁存储器、快闪存储器、磁盘或光盘中的一者或多者。

多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的随机数生成方法。

具体的,该智能移动终端包括但不限于可获取到rscp的智能手机、智能平板电脑、智能手表等终端设备。

在另一示例性实施例中,还提供了一种存储有程序指令的计算机可读存储介质,该程序指令将在被处理器执行时实现与该程序指令对应的操作。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令具体为可由电子设备700的处理器701在执行时完成上述实施例给出的随机数生成方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1