CN109976709A - 随机性检测方法、装置、设备及计算机可读存储介质 - Google Patents
随机性检测方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109976709A CN109976709A CN201810048866.8A CN201810048866A CN109976709A CN 109976709 A CN109976709 A CN 109976709A CN 201810048866 A CN201810048866 A CN 201810048866A CN 109976709 A CN109976709 A CN 109976709A
- Authority
- CN
- China
- Prior art keywords
- random number
- random
- detected
- test interface
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012360 testing method Methods 0.000 claims abstract description 249
- 238000001514 detection method Methods 0.000 claims abstract description 163
- 238000012546 transfer Methods 0.000 claims description 80
- 230000003993 interaction Effects 0.000 claims description 74
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000004904 shortening Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000001583 randomness test Methods 0.000 description 4
- 238000007630 basic procedure Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种随机性检测方法、装置、设备及计算机可读存储介质,通过接收由随机数产生器产生并发送的待进行随机性检测的随机数,根据预设样本划分规则确定当前已经接收到的随机数的数量构成一个待检测随机样本时,对该待检测随机样本进行随机性检测,并在进行随机性检测的过程中,继续接收由随机数产生器发送的随机数,当重新根据预设样本划分规则确定该待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对该新的待检测随机样本进行随机性检测,也即是可以在采集随机数的同时对已经采集的随机数组成的待检测随机文件进行随机性测试,因此可以缩短整个检测过程所需的时间,提高了检测效率,减少了人力资源投入。
Description
技术领域
本发明涉及测试技术领域,更具体地说,涉及一种随机性检测方法、装置、设备及计算机可读存储介质。
背景技术
目前,随机数在密码应用中发挥着极其重要的作用,例如可以作为密码算法的密钥或者密码协议中的关键参数。随机数一般由安全芯片中的随机数产生器提供,随机数产生器产生的随机数的好坏对于保障整个系统的安全性举足轻重。因此,我国很多的检测机构在对安全芯片进行安全检测时都会特别关注产品随机数的随机性。
从不同的检测机构已发布的安全芯片相关的随机数随机性测试要求来看,一般要求采集1000~1300个(不同的检测机构个数要求不同)128kbyte(千字节)的随机数bin文件,根据这些随机数bin文件对安全芯片的随机数产生器产生的随机数的随机性进行评估分析。目前采用的具体方法是:通过采集工具将需要进行随机性检测的随机数文件采集完毕之后,使用随机数测试软件对采集好的所有的随机数文件进行分析测试,现有的方法将采集过程与测试过程分割,使得在随机数文件采集完成之后才能统一对采集好的随机数文件进行随机性测试,因此现有的对随机数进行随机性测试的方式效率低下、人力及时间浪费严重。
发明内容
本发明要解决的技术问题在于现有方案中需要将随机数文件采集完成之后才能统一对采集好的随机数文件进行随机性测试,造成测试效率低下、人力及时间浪费严重的问题,针对该技术问题,提供一种随机性检测方法、装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供一种随机性检测方法,所述随机性检测方法包括:
通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数;
根据预设样本划分规则确定当前已经接收到的所述随机数的数量构成一个待检测随机样本时,对所述待检测随机样本进行随机性检测,并在进行所述随机性检测的过程中,继续接收由所述随机数产生器发送的随机数,当重新根据所述预设样本划分规则确定所述待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对所述新的待检测随机样本进行随机性检测,直到以待检测随机样本为单位检测完接收到的所有随机数,并根据各所述待检测随机样本的随机性检测结果,对所述随机数产生器产生的随机数的随机性进行评估。
可选的,所述样本划分规则包括:
从接收到的所述随机数中依次选取N个随机数作为一个待检测随机样本,所述N大于等于1;
或,
从接收到的所述随机数中依次选取M0个随机数作为第一个待检测随机样本,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mi+n1个随机数作为一个待检测随机样本,所述Mi为上一待检测随机样本包含的随机数的个数,所述n1为递增个数,所述M0大于等于1,所述Mi大于等于1,所述n1大于等于1;
或,
从接收到的所述随机数中依次选取M1个随机数作为第一个待检测随机样本,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mj-n2个随机数作为一个待检测随机样本,所述Mj为上一待检测随机样本包含的随机数的个数,所述n2为递减个数,所述Mj大于等于1,所述n2大于等于1,所述M1大于n2。
可选的,所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还包括:
基于所述预设样本划分规则以及预设的待检测随机样本的数量计算所述随机数产生器需要产生的随机数的总数量;
将计算得到的所述随机数产生器需要产生的随机数的总数量通过所述测试接口发送给所述随机数产生器;
所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数包括:
通过所述测试接口接收由所述随机数产生器根据所述总数量产生并依次进行发送的待进行随机性检测的随机数。
可选的,所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还包括:
基于所述预设样本划分规则以及预设的待检测随机样本的数量计算所述随机数产生器需要产生的随机数的总数量;
根据所述随机数产生器需要产生的随机数的总数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算需要通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,所述每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量小于等于所述测试接口的最大数据传输值;
针对组成所述第一接收次数和的每一接收次数,向所述随机数产生器发送随机数采集请求,以供所述随机数产生器根据所述随机数采集请求产生相应数量的随机数进行发送,每一所述随机数采集请求中包含通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量。
可选的,所述根据所述随机数产生器需要产生的随机数的总数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,包括:
在所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,将所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值之商作为通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量;
在所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,将所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为前Q次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,将所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值相除得到的余数作为第Q+1次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,所述Q等于所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值
可选的,所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还包括:
基于所述预设样本划分规则确定每一所述待检测随机样本中需要包含的随机数的数量;
对于每一所述待检测随机样本,根据其需要包含的随机数的数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,所述每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量小于等于所述测试接口的最大数据传输值;
针对组成所述第二接收次数和的每一接收次数,向所述随机数产生器发送随机数采集请求,以供所述随机数产生器根据所述随机数采集请求产生相应数量的随机数进行发送,每一所述随机数采集请求中包含通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量。
可选的,所述对于每一所述待检测随机样本,根据其需要包含的随机数的数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,包括:
对于每一所述待检测随机样本,在所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值之商作为通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量;
对于每一所述待检测随机样本,在所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为前P次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值相除得到的余数作为第P+1次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,所述P等于将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值。
进一步地,本发明还提供了一种随机性检测装置,包括:
接收模块,用于通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数;
测试控制模块,用于根据预设样本划分规则确定当前已经接收到的所述随机数的数量构成一个待检测随机样本时,对所述待检测随机样本进行随机性检测,并在进行所述随机性检测的过程中,控制所述接收模块继续接收由所述随机数产生器发送的随机数,所述测试控制模块还用于当重新根据所述预设样本划分规则确定所述待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对所述新的待检测随机样本进行随机性检测,直到以待检测随机样本为单位检测完接收到的所有随机数;
评估模块,用于根据各所述待检测随机样本的随机性检测结果,对所述随机数产生器产生的随机数的随机性进行评估。
进一步地,本发明还提供了一种随机性检测设备,所述随机性检测设备包括测试接口、处理器、存储器以及通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的连接通信,以及所述测试接口和所述处理器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现如上述任一所述的随机性检测方法的步骤。
进一步地,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述任一所述的随机性检测方法的步骤。
有益效果
本发明提供一种随机性检测方法、装置、设备及计算机可读存储介质,通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数,根据预设样本划分规则确定当前已经接收到的所述随机数的数量构成一个待检测随机样本时,对该待检测随机样本进行随机性检测,并在进行随机性检测的过程中,继续接收由随机数产生器发送的随机数,当重新根据预设样本划分规则确定该待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对该新的待检测随机样本进行随机性检测,直到以待检测随机样本为单位检测完接收到的所有随机数,并根据各待检测随机样本的随机性检测结果,对随机数产生器产生的随机数的随机性进行评估,通过本发明提供的方案,在接收随机数产生器产生的随机数的同时可以对已经接收到的随机数组成的待检测随机文件进行随机性检测分析,相比现有的只有在将所有的随机数采集完毕之后才能进行随机性检测的方案而言,能够大幅度缩短对随机数随机性进行检测的整个过程所需的时间,显著提高随机数随机性检测效率,从而可以减少人力资源投入。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明实施例一提供的随机性检测方法的基本流程示意图;
图2为本发明实施例一中确定待检测随机样本的示意图;
图3为本发明实施例一提供的第一种示例中随机性检测方法的部分流程示意图;
图4为本发明实施例一中随机性检测设备接收随机数产生器发送的随机数的第一流程示意图;
图5为本发明实施例一提供的第二种示例中随机性检测方法的部分流程示意图;
图6为本发明实施例一中随机性检测设备接收随机数产生器发送的随机数的第二流程示意图;
图7为本发明实施例一提供的第三种示例中随机性检测方法的部分流程示意图;
图8为本发明实施例二提供的随机性检测方法的基本流程示意图;
图9为本发明实施例三提供的随机性检测装置的结构示意图;
图10为本发明实施例四提供的随机性检测设备的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。
实施例一:
为了减少对随机数的随机性进行检测所需要的时间,提升对随机数的随机性进行检测的效率,本实施提供一种新的随机性检测方法,可以应用于随机性检测设备中,对于本实施例提供的随机性检测方法,可以参见图1所示,包括:
S101:通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数。
应当理解的是,本实施例中的随机数产生器用于产生需要进行随机性检测的随机数,所以任意可以产生随机数的电子器件都可以作为本实施例中的随机数产生器,比如,可以是安全芯片、密码机、PCI(Peripheral Component Interconnect,外设部件互连标准)密码板卡、智能密码钥匙等等产品中可以产生随机数的电子器件。
需要说明的是,本实施例中随机数产生器需要产生的用于进行随机性检测的随机数的数量可以由测试人员直接在随机数产生器上指定,也可以由随机性检测设备将随机数产生器需要产生的随机数的总数量发送给该随机数产生器。
S102:根据预设样本划分规则确定当前已经接收到的随机数的数量构成一个待检测随机样本时,对该待检测随机样本进行随机性检测,并在进行随机性检测的过程中,继续接收由随机数产生器发送的随机数。
S103:当重新根据预设样本划分规则确定该待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对新的待检测随机样本进行随机性检测,直到以待检测随机样本为单位检测完接收到的所有随机数。
本实施例中的样本划分规则可以由程序人员预先设定好,或者也可以由测试人员自定义,本实施例中的样本划分规则包括以下规则中的至少一种:
第一种:从接收到的随机数中依次选取N个随机数作为一个待检测随机样本,N大于等于1;通过第一种样本划分规则得到的各待检测随机样本中包含的随机数相同,比如,当随机数产生器产生的需要进行随机性检测的随机数为10000个,则随机数产生器需要将产生的10000个随机数都发送给随机性检测设备,随机性检测设备会依次接收随机数产生器发送的随机数,假设N为1000,则每接收到1000个随机数,就会将这1000个随机数作为一个待检测随机样本,如此,便会形成10个待检测随机样本。需要说明的是,当随机数产生器产生的需要进行随机性检测的随机数是100005个时,由于会依次选取1000个随机数作为一个待检测随机样本,所以可以将多余的5个随机数丢弃,或者也可以单独将这5个随机数作为一个特殊待检测随机样本,在对各待检测随机样本进行随机性检测时,还可以对这个特殊待检测随机样本进行随机性检测;在另外的一些实施例中,当测试人员了解到当前需要进行随机性检测的随机数的数量为100005时,测试人员可以对第一种样本划分规则中的N值进行调整,以保证每个待检测随机样本中包含的随机数的数量一致。
第二种:从接收到的随机数中依次选取M0个随机数作为第一个待检测随机样本,M0大于等于1,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mi+n1个随机数作为一个待检测随机样本,Mi为上一待检测随机样本包含的随机数的个数,n1为递增个数,其中,Mi大于等于1,n1大于等于1。通过第二种样本划分规则得到的各待检测随机样本中包含的随机数互不相同,继续参照上述示例,当随机数产生器产生的需要进行随机性检测的随机数为10000个,则随机数产生器需要将产生的10000个随机数都发送给随机性检测设备,随机性检测设备会依次接收随机数产生器发送的随机数,假设M0为1000,n1为1000,则当第一次接收到1000个随机数时,就会将这1000个随机数作为第一个待检测随机样本,然后再次接收到2000个随机数时,就会将这2000个随机数作为第二个待检测随机样本,当再次接收到3000个随机数时,将这3000个随机数作为第三个待检测随机样本,当再次接收到4000个随机数时,将这4000个随机数作为第四个待检测随机样本,如此,便会形成4个待检测随机样本。需要说明的是,当随机数产生器产生的需要进行随机性检测的随机数是100005个时,在确定出第四个待检测随机样本后就会多余5个随机数,所以可以将多余的5个随机数丢弃,或者也可以单独将这5个随机数作为一个特殊待检测随机样本,在对各待检测随机样本进行随机性检测时,还可以对这个特殊待检测随机样本进行随机性检测。
第三种:从接收到的随机数中依次选取M1个随机数作为第一个待检测随机样本,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mj-n2个随机数作为一个待检测随机样本,Mj为上一待检测随机样本包含的随机数的个数,n2为递减个数,其中,Mj大于等于1,n2大于等于1,M1大于n2。通过第三种样本划分规则得到的各待检测随机样本中包含的随机数互不相同,第三种样本划分规则实质上与上述的第二种样本划分规则相反,这里不再赘述。
应当理解的是,在其他的一些实施例中,每一待检测随机样本中包含的随机数的数量还可以是随机的,比如,随机性检测设备在接收随机数的过程中,可以随机性的依次选择任意个数的随机数组成一个待检测随机样本。为便于理解,请参见图2所示,图2中的每一个方框表征一个随机数,图2中的箭头位置表征了随机性确定待检测随机样本的时刻,分别在接收到第1002个随机数的时候,将前1200个随机数作为一个待检测随机样本,在接收到第1101个随机数的时候,将从第1003个随机数开始至第1101个随机数结尾之间的随机数作为第二个待检测随机样本。
以上是对预设样本划分规则的介绍,应当理解的是,每根据预设样本划分规则确定出一个待检测随机样本时,就可以直接开始对当前确定出的待检测随机样本进行随机性检测,即使上一个待检测随机样本还在进行随机性检测,也可以对当前时刻确定出的待检测随机样本进行随机性检测。
应当说明的是,本实施例中可以采用现有的任意检测算法对待检测随机文件进行随机性检测,比如可以基于国密标准对待检测随机样本进行随机性检测,或者也可以基于NIST(National Institute of Standards and Technology,国家标注技术研究所)标准对待检测随机样本进行随机性检测。
S104:根据各待检测随机样本的随机性检测结果,对随机数产生器产生的随机数的随机性进行评估。
本实施例中,在对各待检测随机样本进行随机性检测之后可以针对各待检测随机样本生成测试报告,最后在对随机数产生器产生的随机数的随机性进行评估时,只需结合各待检测随机样本的测试报告进行分析就可得到评估结果。需要说明的是,在一些实施例中,在结合各测试报告进行分析时,还可以结合各待检测随机样本中包含的随机数的数量,以及待检测随机样本的总数进行评估分析。
以下通过三种示例针对随机数产生器需要产生的用于进行随机性检测的随机数的数量是由随机性检测设备发送给该随机数产生器的情形进行具体介绍。
在本实施例提供的第一种示例中,在通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前还可以包括如下过程,请参见图3所示,包括:
S301:基于预设样本划分规则以及预设的待检测随机样本的数量计算随机数产生器需要产生的随机数的总数量。
应当理解的是,本示例中的预设样本划分规则和待检测随机样本的数量可以由测试人员自行设定,比如,当测试人员设定预设样本划分规则为:从接收到的随机数中依次选取A1个随机数作为一个待检测随机样本,待检测随机样本的数量为A2时,则会将A1*A2的值作为随机数产生器需要产生的随机数的总数量。
S302:将计算得到的随机数产生器需要产生的随机数的总数量通过该测试接口发送给随机数产生器。
在本示例中,随机性检测设备可以通过测试接口接收由随机数产生器根据上述总数量产生并依次进行发送的待进行随机性检测的随机数。
可以理解的是,随机性检测设备可以将计算得到的随机数产生器需要产生的随机数的总数量携带在随机数采集请求中发送给该随机数产生器,这样随机数产生器在接收到该随机数采集请求后,可以从中提取出需要产生的随机数的数量并产生相应数量的随机数,随机数产生器在产生随机数的过程中,可以通过随机性检测设备的测试接口向随机性检测设备发送随机数,比如随机数产生器需要产生的随机数的数量为10000,假设测试接口进行数据交互时的最大数据传输值为10,也即一次最多只能传输10个随机数,则随机数产生器可以分1000次进行传输,每次传输10个随机数,请参见图4所示,具体过程包括:
S41:随机性检测设备将随机数采集请求发送给随机数产生器。
步骤S41中的随机数采集请求中包含随机数产生器需要产生的随机数的总数量10000。
S42:随机数产生器将产生的10个随机数发送给随机性检测设备。
S43:判断随机数是否接收完毕,如是,转至S44,否则,转至S42。
S44:结束。
由于步骤S42中一次只发送了10个随机数,所以步骤S42需要执行1000次才能将随机数产生器产生的10000个随机数发送给随机性检测设备。
应当说明的是,本实施例中所举示例中的数值在实际应用中可能更大,比如需要采集的随机数的总数量可能是上百万的数量级。
在实施例提供的第二种示例中,在通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前还可以包括如下过程,请参见图5所示,包括:
S501:基于预设样本划分规则以及预设的待检测随机样本的数量计算随机数产生器需要产生的随机数的总数量。
S502:根据随机数产生器需要产生的随机数的总数量以及测试接口的最大数据传输值计算需要通过该测试接口接收随机数产生器产生的随机数的第一接收次数和,以及每次通过该测试接口进行随机数接收时对应的需要接收的随机数的第一数量。
对于步骤S502而言,优选的,在随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,可以将随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值之商作为通过测试接口接收随机数产生器产生的随机数的第一接收次数和,并将测试接口进行数据交互时的最大数据传输值作为每次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量。
在随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,可以将随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过测试接口接收随机数产生器产生的随机数的第一接收次数和,并将测试接口进行数据交互时的最大数据传输值作为前Q次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量,将随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值相除得到的余数作为第Q+1次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量,Q等于随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值相除得到的商值
需要说明的是,每次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量可以任意设置,只要满足小于等于测试接口的最大数据传输值即可。在一些实施例中,第一接收次数和可以大于上述的Q与1之和,此时表明至少有两次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量小于测试接口的最大数据传输值。
S503:针对组成该第一接收次数和的每一接收次数,向随机数产生器发送随机数采集请求。
随机数产生器根据步骤S503中的随机数采集请求可以产生相应数量的随机数进行发送,步骤S503中的每一随机数采集请求中包含通过该测试接口进行随机数接收时对应的需要接收的随机数的第一数量。
继续借用上述第一种示例中的例子进行阐述,比如随机数产生器需要产生的随机数的数量为10000,假设测试接口进行数据交互时的最大数据传输值为10,也即一次最多只能传输10个随机数,则随机性检测设备可以计算得到第一接收次数和为10000/10=1000,每次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量为10,在该种情况下,随机性检测设备与随机数产生器之间的随机数传输过程可以参见图6所示,包括:
S61:随机性检测设备将随机数采集请求发送给随机数产生器。
步骤S61中的随机数采集请求中包含随机数产生器当前需要传输的随机数的第一数量10。
S62:随机数产生器响应该请求,发送10个随机数给随机性检测设备。
S63:随机性检测设备判断随机数是否接收完毕,如是,转至S64,否则,转至S61。
S64:结束。
由于需要传输的随机数为10000个,因此步骤S61与步骤S62要执行1000次,这样,随机性检测设备才能将这10000个随机数接收完毕。
在本实施例提供的第三种示例中,在通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前还可以包括如下过程,请参见图7所示,包括:
S701:基于预设样本划分规则确定每一待检测随机样本中需要包含的随机数的数量。
由于预设样本划分规则中包含了划分一个待检测随机样本的具体原则,因此,直接根据该样本划分规则就可以确定出每一待检测随机样本中需要包含的随机数的数量
S702:对于每一待检测随机样本,根据其需要包含的随机数的数量以及测试接口的最大数据传输值计算通过测试接口接收随机数产生器产生的随机数的第二接收次数和,以及每次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量。
对于步骤S702而言,优选的,对于每一待检测随机样本,在该待检测随机样本需要包含的随机数的数量与测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,可以将待检测随机样本需要包含的随机数的数量与测试接口进行数据交互时的最大数据传输值之商作为通过该测试接口接收随机数产生器产生的随机数的第二接收次数和,并将该测试接口进行数据交互时的最大数据传输值作为每次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量。
对于每一待检测随机样本,在该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,将该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过该测试接口接收随机数产生器产生的随机数的第二接收次数和,并将该测试接口进行数据交互时的最大数据传输值作为前P次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量,将该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值相除得到的余数作为第P+1次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量,P等于将该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值相除得到的商值。
需要说明的是,对于每一待检测随机样本,每次通过测试接口进行随机数接收时对应的需要接收的随机数的第二数量可以任意设置,只要满足小于等于测试接口的最大数据传输值即可。在一些实施例中,每一待检测随机样本的第二接收次数和可以大于上述的P与1之和,此时表明对于该待检测随机样本而言,至少有两次通过测试接口进行随机数接收时对应的需要接收的随机数的第二数量小于测试接口的最大数据传输值。
S703:针对组成第二接收次数和的每一接收次数,向随机数产生器发送随机数采集请求。
随机数产生器根据步骤S703中的随机数采集请求可以产生相应数量的随机数进行发送,步骤S703中的每一随机数采集请求中包含通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量。
通过本实施例提供的随机性检测方法,可以在对随机数进行采集的过程中对已经接收到的随机数进行随机性检测,相比现有的只有在将所有的随机数采集完毕之后才能进行随机性检测的方案而言,能够大幅度缩短对随机数随机性进行检测的整个过程所需的时间,显著提高随机数随机性检测效率,从而可以减少人力资源投入,同时,本实施例提供的随机性检测方法还可以支持测试人员自定义任意数量的随机数以进行检测分析,便于测试人员以不同的数据量进行随机性检测,从而可以得到较为完善、准确的随机性评估结果。
实施例二
为了更好的理解本发明提供的方案,本实施例提供一种更加具体的随机性检测方法,假设本实施例中预设样本划分规则为从接收到的随机数中依次选取B1的随机数构成一个待检测随机样本,假设本实施例中需要采集的待检测随机样本的数量为B2个,应当理解的是,本实施例中每个待检测随机样本中需要包含的随机数的数量,以及待检测随机样本的个数都可以是由测试人员自定设定的,本实施例中以B1=131072byte=128kbyte,B2=1000为例进行具体阐述,本实施例中还假设测试接口的最大数据传输值为B3=240byte,对于本实施例提供的的随机性检测方法,随机性检测设备在向随机数产生器发送随机数采集请求之前可以先进行如下计算:
计算每构成一个待检测随机文件,随机性检测设备与随机数生成器之间的数据传输次数S,也即上述实施例一中的第二接收次数和。131072/240=546.133,即需要接收240byte的随机数546次,然后接收一次32byte的随机数即可构成一个131072byte的待检测随机文件。也即对于一个待检测随机文件,其对应的S=547。请参见图8所示,本实施例提供的随机性检测方法包括:
S801:随机性检测设备发送采集240byte的随机数采集请求给随机数产生器。
具体而言,随机性检测设备是通过测试接口向随机数产生器发送随机数采集请求的,应当说明的是,本实施例中的测试接口可以是7816接口,当然在其他实施例中,还可以是14443接口、USB(Universal Serial Bus,通用串行总线)接口、SPI(串行外设接口,Serial Peripheral Interface)接口、UART(通用异步收发传输器,UniversalAsynchronous Receiver/Transmitter)接口。
S802:随机数产生器响应该请求,发送240byte的随机数给随机性检测设备。
S803:随机性检测设备判断是否接收到546次240byte的随机数,如是,转至S804,否则,转至S801。
具体的来说,可以通过计数器计算随机性检测设备接收随机数产生器发送的240byte的次数,但每当形成一个待检测随机文件后,可以将计数器清零,以形成下一个待检测随机文件,另外,每形成一个待检测随机文件可以生成一个提醒标志,一旦随机性检测设备检测到该提醒标志,就可以对相应的待检测随机文件进行随机性检测,为了便于后续的验证、查错,还可以将每一待检测随机文件以bin文件格式存储到预先指定的位置。
S804:随机性检测设备发送采集32byte的随机数采集请求给随机数产生器。
S805:随机数产生器响应该请求,发送32byte的随机数给随机性检测设备。
随机性检测设备在接收到该32byte的随机数后,就可以形成一个待检测随机文件,重复1000次S801-S805,便会形成1000个待检测随机文件。
S806:构成一个待检测随机样本,并对该待检测随机样本进行随机性检测。
S807:判断是否形成1000个待检测随机文件,如是,转至S808,否则,转至S801。
需要说明的是,在由S807转至S801后,步骤S806中的随机性检测过程可以还没有结束,也即是步骤S806中的待检测随机文件可以还处于随机性检测的过程中。
S808:根据各待检测随机样本的随机性检测结果,对随机数产生器产生的随机数的随机性进行评估。
通过本实施例提供的随机性检测方法,可以在对随机数进行采集的过程中对已经接收到的随机数进行随机性检测,相比现有的只有在将所有的随机数采集完毕之后才能进行随机性检测的方案而言,能够大幅度缩短对随机数随机性进行检测的整个过程所需的时间,显著提高随机数随机性检测效率,从而可以减少人力资源投入,同时,本实施例提供的随机性检测方法还可以支持测试人员自定义任意数量的随机数以进行检测分析,便于测试人员以不同的数据量进行随机性检测,从而可以得到较为完善、准确的随机性评估结果。
实施例三
请参见图9所示,本实施例提供一种随机性检测装置包括接收模块901、测试控制模块902和评估模块903,其中接收模块901用于通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数;测试控制模块902用于根据预设样本划分规则确定当前已经接收到的随机数的数量构成一个待检测随机样本时,对该待检测随机样本进行随机性检测,并在进行随机性检测的过程中,控制接收模块901继续接收由随机数产生器发送的随机数,测试控制模块902还用于当重新根据预设样本划分规则确定待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对这个新的待检测随机样本进行随机性检测,直到以待检测随机样本为单位检测完接收到的所有随机数,评估模块903用于根据各待检测随机样本的随机性检测结果,对随机数产生器产生的随机数的随机性进行评估。
应当理解的是,本实施例中的随机数产生器用于产生需要进行随机性检测的随机数,所以任意可以产生随机数的电子器件都可以作为本实施例中的随机数产生器,比如,可以是安全芯片、密码机、PCI(Peripheral Component Interconnect,外设部件互连标准)密码板卡、智能密码钥匙等等产品中可以产生随机数的电子器件。
需要说明的是,本实施例中随机数产生器需要产生的用于进行随机性检测的随机数的数量可以由测试人员直接在随机数产生器上指定,也可以由本实施例中的随机性检测装置将随机数产生器需要产生的随机数的总数量发送给该随机数产生器。
本实施例中的样本划分规则可以由程序人员预先设定好,或者也可以由测试人员自定义,本实施例中的样本划分规则包括以下规则中的至少一种:
第一种:从接收到的随机数中依次选取N个随机数作为一个待检测随机样本,N大于等于1;通过第一种样本划分规则得到的各待检测随机样本中包含的随机数相同,比如,当随机数产生器产生的需要进行随机性检测的随机数为10000个,则随机数产生器需要将产生的10000个随机数都发送给随机性检测装置,随机性检测装置会依次接收随机数产生器发送的随机数,假设N为1000,则每接收到1000个随机数,就会将这1000个随机数作为一个待检测随机样本,如此,便会形成10个待检测随机样本。需要说明的是,当随机数产生器产生的需要进行随机性检测的随机数是100005个时,由于会依次选取1000个随机数作为一个待检测随机样本,所以可以将多余的5个随机数丢弃,或者也可以单独将这5个随机数作为一个特殊待检测随机样本,在对各待检测随机样本进行随机性检测时,还可以对这个特殊待检测随机样本进行随机性检测;在另外的一些实施例中,当测试人员了解到当前需要进行随机性检测的随机数的数量为100005时,测试人员可以对第一种样本划分规则中的N值进行调整,以保证每个待检测随机样本中包含的随机数的数量一致。
第二种:从接收到的随机数中依次选取M0个随机数作为第一个待检测随机样本,M0大于等于1,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mi+n1个随机数作为一个待检测随机样本,Mi为上一待检测随机样本包含的随机数的个数,n1为递增个数,其中,Mi大于等于1,n1大于等于1。通过第二种样本划分规则得到的各待检测随机样本中包含的随机数互不相同,继续参照上述示例,当随机数产生器产生的需要进行随机性检测的随机数为10000个,则随机数产生器需要将产生的10000个随机数都发送给随机性检测装置,随机性检测装置会依次接收随机数产生器发送的随机数,假设M0为1000,n1为1000,则当第一次接收到1000个随机数时,就会将这1000个随机数作为第一个待检测随机样本,然后再次接收到2000个随机数时,就会将这2000个随机数作为第二个待检测随机样本,当再次接收到3000个随机数时,将这3000个随机数作为第三个待检测随机样本,当再次接收到4000个随机数时,将这4000个随机数作为第四个待检测随机样本,如此,便会形成4个待检测随机样本。需要说明的是,当随机数产生器产生的需要进行随机性检测的随机数是100005个时,在确定出第四个待检测随机样本后就会多余5个随机数,所以可以将多余的5个随机数丢弃,或者也可以单独将这5个随机数作为一个特殊待检测随机样本,在对各待检测随机样本进行随机性检测时,还可以对这个特殊待检测随机样本进行随机性检测。
第三种:从接收到的随机数中依次选取M1个随机数作为第一个待检测随机样本,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mj-n2个随机数作为一个待检测随机样本,Mj为上一待检测随机样本包含的随机数的个数,n2为递减个数,其中,Mj大于等于1,n2大于等于1,M1大于n2。通过第三种样本划分规则得到的各待检测随机样本中包含的随机数互不相同,第三种样本划分规则实质上与上述的第二种样本划分规则相反,这里不再赘述。
应当理解的是,在其他的一些实施例中,每一待检测随机样本中包含的随机数的数量还可以是随机的,比如,随机性检测装置在接收随机数的过程中,可以随机性的依次选择随机数作为一个待检测随机样本。
以上是对预设样本划分规则的介绍,应当理解的是,每根据预设样本划分规则确定出一个待检测随机样本时,就可以直接开始对当前确定出的待检测随机样本进行随机性检测,即使上一个待检测随机样本还在进行随机性检测,也可以对当前时刻确定出的待检测随机样本进行随机性检测。
应当说明的是,本实施例中可以采用现有的任意检测算法对待检测随机文件进行随机性检测,比如可以基于国密标准对待检测随机样本进行随机性检测,或者也可以基于NIST(National Institute of Standards and Technology,国家标注技术研究所)标准对待检测随机样本进行随机性检测。
本实施例中,测试控制模块902在对各待检测随机样本进行随机性检测时可以针对各待检测随机样本生成测试报告,最后由评估模块903根据各检测随机文件的测试报告对随机数产生器产生的随机数的随机性进行评估,评估模块903可以只结合各待检测随机样本的测试报告进行分析就可得到评估结果。需要说明的是,在一些实施例中,评估模块903在结合各测试报告进行分析时,还可以结合各待检测随机样本中包含的随机数的数量,以及待检测随机样本的总数进行评估分析。
以下通过三种示例针对随机数产生器需要产生的用于进行随机性检测的随机数的数量是由随机性检测装置发送给该随机数产生器的情形进行具体介绍。
在本实施例提供的第一种示例中,测试控制模块902在接收模块901通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还可以基于预设样本划分规则以及预设的待检测随机样本的数量计算随机数产生器需要产生的随机数的总数量,将计算得到的随机数产生器需要产生的随机数的总数量通过该测试接口发送给随机数产生器。
应当理解的是,本示例中的预设样本划分规则和待检测随机样本的数量可以由测试人员自行设定,比如,当测试人员设定预设样本划分规则为:从接收到的随机数中依次选取A1个随机数作为一个待检测随机样本,待检测随机样本的数量为A2时,则会将A1*A2的值作为随机数产生器需要产生的随机数的总数量。
在本示例中,接收模块901可以通过测试接口接收由随机数产生器根据上述总数量产生并依次进行发送的待进行随机性检测的随机数。
在实施例提供的第二种示例中,测试控制模块902在接收模块901通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还可以基于预设样本划分规则以及预设的待检测随机样本的数量计算随机数产生器需要产生的随机数的总数量,根据随机数产生器需要产生的随机数的总数量以及测试接口的最大数据传输值计算需要通过该测试接口接收随机数产生器产生的随机数的第一接收次数和,以及每次通过该测试接口进行随机数接收时对应的需要接收的随机数的第一数量,针对组成该第一接收次数和的每一接收次数,向随机数产生器发送随机数采集请求。以供随机数产生器根据随机数采集请求产生相应数量的随机数进行发送,每一随机数采集请求中包含通过该测试接口进行随机数接收时对应的需要接收的随机数的第一数量。
优选的,在随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,可以将随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值之商作为通过测试接口接收随机数产生器产生的随机数的第一接收次数和,并将测试接口进行数据交互时的最大数据传输值作为每次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量。
在随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,可以将随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过测试接口接收随机数产生器产生的随机数的第一接收次数和,并将测试接口进行数据交互时的最大数据传输值作为前Q次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量,将随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值相除得到的余数作为第Q+1次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量,Q等于随机数产生器需要产生的随机数的总数量与测试接口进行数据交互时的最大数据传输值相除得到的商值
需要说明的是,每次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量可以任意设置,只要满足小于等于测试接口的最大数据传输值即可。在一些实施例中,第一接收次数和可以大于上述的Q与1之和,此时表明至少有两次通过测试接口进行随机数接收时对应的需要接收的随机数的第一数量小于测试接口的最大数据传输值。
在本实施例提供的第三种示例中,测试控制模块902在接收模块901通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,可以基于预设样本划分规则确定每一待检测随机样本中需要包含的随机数的数量,对于每一待检测随机样本,根据其需要包含的随机数的数量以及测试接口的最大数据传输值计算通过测试接口接收随机数产生器产生的随机数的第二接收次数和,以及每次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量,针对组成第二接收次数和的每一接收次数,向随机数产生器发送随机数采集请求,以供随机数产生器根据随机数采集请求产生相应数量的随机数进行发送,每一随机数采集请求中包含通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量。
由于预设样本划分规则中包含了划分一个待检测随机样本的具体原则,因此,直接根据该样本划分规则就可以确定出每一待检测随机样本中需要包含的随机数的数量
优选的,对于每一待检测随机样本,在该待检测随机样本需要包含的随机数的数量与测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,可以将待检测随机样本需要包含的随机数的数量与测试接口进行数据交互时的最大数据传输值之商作为通过该测试接口接收随机数产生器产生的随机数的第二接收次数和,并将该测试接口进行数据交互时的最大数据传输值作为每次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量。
对于每一待检测随机样本,在该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,将该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过该测试接口接收随机数产生器产生的随机数的第二接收次数和,并将该测试接口进行数据交互时的最大数据传输值作为前P次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量,将该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值相除得到的余数作为第P+1次通过该测试接口进行随机数接收时对应的需要接收的随机数的第二数量,P等于将该待检测随机样本需要包含的随机数的数量与该测试接口进行数据交互时的最大数据传输值相除得到的商值。
需要说明的是,对于每一待检测随机样本,每次通过测试接口进行随机数接收时对应的需要接收的随机数的第二数量可以任意设置,只要满足小于等于测试接口的最大数据传输值即可。在一些实施例中,每一待检测随机样本的第二接收次数和可以大于上述的P与1之和,此时表明对于该待检测随机样本而言,至少有两次通过测试接口进行随机数接收时对应的需要接收的随机数的第二数量小于测试接口的最大数据传输值。
最后需要说明的是,本实施例中实现接收模块901、测试控制模块902以及评估模块903的软件代码可以设置在存储器中,比如可以设置在计算机的存储器中,计算机的处理器执行存储器中相应的软件代码便可实现相应的功能,也即是说,本实施例提供的随机性检测装置移植能力强,不需要其他辅助的开发板,经济简单。
通过本实施例提供的随机性检测装置,在接收随机数产生器产生的随机数的同时可以对已经接收到的随机数组成的待检测随机文件进行随机性检测分析,相比现有的只有在将所有的随机数采集完毕之后才能进行随机性检测的方案而言,能够大幅度缩短对随机数随机性进行检测的整个过程所需的时间,显著提高随机数随机性检测效率,从而可以减少人力资源投入。
实施例四
本实施例提供一种随机性检测设备,请参见图10所示,包括测试接口(图10中未示出)、处理器1001、存储器1002以及通信总线1003,通信总线1003用于实现处理器1001和存储器1002之间的连接通信,以及测试接口和处理器1001之间的连接通信,处理器1001用于执行存储器1002中存储的一个或者多个程序,以实现如上述实施例一和实施例二中各随机性检测方法的步骤。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例一和实施例二中各随机性检测方法的步骤。
通过本实施例提供的随机性检测设备以及计算机可读存储介质,在接收随机数产生器产生的随机数的同时可以对已经接收到的随机数组成的待检测随机文件进行随机性检测分析,相比现有的只有在将所有的随机数采集完毕之后才能进行随机性检测的方案而言,能够大幅度缩短对随机数随机性进行检测的整个过程所需的时间,显著提高随机数随机性检测效率,从而可以减少人力资源投入。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种随机性检测方法,其特征在于,所述随机性检测方法包括:
通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数;
根据预设样本划分规则确定当前已经接收到的所述随机数的数量构成一个待检测随机样本时,对所述待检测随机样本进行随机性检测,并在进行所述随机性检测的过程中,继续接收由所述随机数产生器发送的随机数;
当重新根据所述预设样本划分规则确定所述待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对所述新的待检测随机样本进行随机性检测,直到以待检测随机样本为单位检测完接收到的所有随机数;
根据各所述待检测随机样本的随机性检测结果,对所述随机数产生器产生的随机数的随机性进行评估。
2.如权利要求1所述的随机性检测方法,其特征在于,所述样本划分规则包括:
从接收到的所述随机数中依次选取N个随机数作为一个待检测随机样本,所述N大于等于1;
或,
从接收到的所述随机数中依次选取M0个随机数作为第一个待检测随机样本,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mi+n1个随机数作为一个待检测随机样本,所述Mi为上一待检测随机样本包含的随机数的个数,所述n1为递增个数,所述M0大于等于1,所述Mi大于等于1,所述n1大于等于1;
或,
从接收到的所述随机数中依次选取M1个随机数作为第一个待检测随机样本,当再次生成待检测随机样本时,从上一待检测随机样本之后接收到的随机数中依次选取Mj-n2个随机数作为一个待检测随机样本,所述Mj为上一待检测随机样本包含的随机数的个数,所述n2为递减个数,所述Mj大于等于1,所述n2大于等于1,所述M1大于n2。
3.如权利要求2所述的随机性检测方法,其特征在于,所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还包括:
基于所述预设样本划分规则以及预设的待检测随机样本的数量计算所述随机数产生器需要产生的随机数的总数量;
将计算得到的所述随机数产生器需要产生的随机数的总数量通过所述测试接口发送给所述随机数产生器;
所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数包括:
通过所述测试接口接收由所述随机数产生器根据所述总数量产生并依次进行发送的待进行随机性检测的随机数。
4.如权利要求2所述的随机性检测方法,其特征在于,所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还包括:
基于所述预设样本划分规则以及预设的待检测随机样本的数量计算所述随机数产生器需要产生的随机数的总数量;
根据所述随机数产生器需要产生的随机数的总数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算需要通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,所述每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量小于等于所述测试接口的最大数据传输值;
针对组成所述第一接收次数和的每一接收次数,向所述随机数产生器发送随机数采集请求,以供所述随机数产生器根据所述随机数采集请求产生相应数量的随机数进行发送,每一所述随机数采集请求中包含通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量。
5.如权利要求4所述的随机性检测方法,其特征在于,所述根据所述随机数产生器需要产生的随机数的总数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,包括:
在所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,将所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值之商作为通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量;
在所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,将所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过所述测试接口接收所述随机数产生器产生的随机数的第一接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为前Q次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,将所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值相除得到的余数作为第Q+1次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第一数量,所述Q等于所述随机数产生器需要产生的随机数的总数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值
6.如权利要求2所述的随机性检测方法,其特征在于,所述通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数之前,还包括:
基于所述预设样本划分规则确定每一所述待检测随机样本中需要包含的随机数的数量;
对于每一所述待检测随机样本,根据其需要包含的随机数的数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,所述每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量小于等于所述测试接口的最大数据传输值;
针对组成所述第二接收次数和的每一接收次数,向所述随机数产生器发送随机数采集请求,以供所述随机数产生器根据所述随机数采集请求产生相应数量的随机数进行发送,每一所述随机数采集请求中包含通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量。
7.如权利要求6所述的随机性检测方法,其特征在于,所述对于每一所述待检测随机样本,根据其需要包含的随机数的数量以及每次通过所述测试接口进行数据交互时的最大数据传输值计算通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,以及每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,包括:
对于每一所述待检测随机样本,在所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的整数时,将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值之商作为通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为每次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量;
对于每一所述待检测随机样本,在所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值的比例值为大于1的非整数时,将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值加1作为通过所述测试接口接收所述随机数产生器产生的随机数的第二接收次数和,并将所述测试接口进行数据交互时的最大数据传输值作为前P次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值相除得到的余数作为第P+1次通过所述测试接口进行随机数接收时对应的需要接收的随机数的第二数量,所述P等于将所述待检测随机样本需要包含的随机数的数量与所述测试接口进行数据交互时的最大数据传输值相除得到的商值。
8.一种随机性检测装置,其特征在于,包括:
接收模块,用于通过测试接口接收由随机数产生器产生并发送的待进行随机性检测的随机数;
测试控制模块,用于根据预设样本划分规则确定当前已经接收到的所述随机数的数量构成一个待检测随机样本时,对所述待检测随机样本进行随机性检测,并在进行所述随机性检测的过程中,控制所述接收模块继续接收由所述随机数产生器发送的随机数,所述测试控制模块还用于当重新根据所述预设样本划分规则确定所述待检测随机数样本之后接收到的随机数的数量构成一个新的待检测随机样本时,对所述新的待检测随机样本进行随机性检测,直到以待检测随机样本为单位检测完接收到的所有随机数;
评估模块,用于根据各所述待检测随机样本的随机性检测结果,对所述随机数产生器产生的随机数的随机性进行评估。
9.一种随机性检测设备,其特征在于,包括:测试接口、处理器、存储器以及通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的连接通信,以及所述测试接口和所述处理器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现如权利要求1-7中任一项所述的随机性检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7中任一项所述的随机性检测方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711464820 | 2017-12-28 | ||
CN2017114648206 | 2017-12-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109976709A true CN109976709A (zh) | 2019-07-05 |
Family
ID=67075855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810048866.8A Pending CN109976709A (zh) | 2017-12-28 | 2018-01-18 | 随机性检测方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976709A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111211895A (zh) * | 2019-12-18 | 2020-05-29 | 北京邮电大学 | 密钥分析处理方法和装置、密钥分发随机性检测系统 |
CN111541537A (zh) * | 2020-04-22 | 2020-08-14 | 北京字节跳动网络技术有限公司 | 随机数缺陷检测方法及装置 |
CN111782507A (zh) * | 2020-06-12 | 2020-10-16 | 航天信息股份有限公司 | 数据测试方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785295A (ja) * | 1993-09-14 | 1995-03-31 | Oki Electric Ind Co Ltd | 検出データ処理方法及びグラフィック表示装置 |
CN101888282A (zh) * | 2010-04-22 | 2010-11-17 | 北京邮电大学 | 一种基于随机性分析的数据加密功能的检验方法 |
CN105743735A (zh) * | 2016-01-27 | 2016-07-06 | 电子科技大学 | 基于神经网络的ModbusTcp通讯深度包检测方法 |
CN105959316A (zh) * | 2016-07-06 | 2016-09-21 | 吴本刚 | 网络安全性验证系统 |
CN107239256A (zh) * | 2016-12-27 | 2017-10-10 | 中国福利彩票发行管理中心 | 基于综合评价的彩票行业随机序列的随机性检测方法 |
-
2018
- 2018-01-18 CN CN201810048866.8A patent/CN109976709A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785295A (ja) * | 1993-09-14 | 1995-03-31 | Oki Electric Ind Co Ltd | 検出データ処理方法及びグラフィック表示装置 |
CN101888282A (zh) * | 2010-04-22 | 2010-11-17 | 北京邮电大学 | 一种基于随机性分析的数据加密功能的检验方法 |
CN105743735A (zh) * | 2016-01-27 | 2016-07-06 | 电子科技大学 | 基于神经网络的ModbusTcp通讯深度包检测方法 |
CN105959316A (zh) * | 2016-07-06 | 2016-09-21 | 吴本刚 | 网络安全性验证系统 |
CN107239256A (zh) * | 2016-12-27 | 2017-10-10 | 中国福利彩票发行管理中心 | 基于综合评价的彩票行业随机序列的随机性检测方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111211895A (zh) * | 2019-12-18 | 2020-05-29 | 北京邮电大学 | 密钥分析处理方法和装置、密钥分发随机性检测系统 |
CN111541537A (zh) * | 2020-04-22 | 2020-08-14 | 北京字节跳动网络技术有限公司 | 随机数缺陷检测方法及装置 |
CN111541537B (zh) * | 2020-04-22 | 2022-11-08 | 北京字节跳动网络技术有限公司 | 随机数缺陷检测方法及装置 |
CN111782507A (zh) * | 2020-06-12 | 2020-10-16 | 航天信息股份有限公司 | 数据测试方法、装置、存储介质及电子设备 |
CN111782507B (zh) * | 2020-06-12 | 2024-04-30 | 航天信息股份有限公司 | 数据测试方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976709A (zh) | 随机性检测方法、装置、设备及计算机可读存储介质 | |
CN103871419B (zh) | 一种信息处理方法及电子设备 | |
CN112462212A (zh) | 一种基于云技术的人工智能局放监测判别系统及方法 | |
TW201322687A (zh) | 無線網路裝置之測試方法及測試系統 | |
CN112506798B (zh) | 一种区块链平台的性能测试方法、装置、终端及存储介质 | |
CN102012444A (zh) | 示波器及利用该示波器测试串行总线信号的方法 | |
CN102288812B (zh) | 一种具有实时测试技术的静电动态电位智能测试装置 | |
CN103941710B (zh) | 数字化灌浆记录仪 | |
CN113705506B (zh) | 核酸检测方法、装置、设备和计算机可读存储介质 | |
CN106534194A (zh) | 北斗芯片数据的安全传输方法、装置及终端 | |
CN106844423A (zh) | 一种数据检测的方法及装置 | |
US20130120652A1 (en) | Method and apparatus for evaluating time delay of mobile video service | |
CN113030738B (zh) | 一种电池故障检测方法、电池故障检测系统及终端 | |
CN102404767A (zh) | 基于随机性测试的wsn协议安全性测试体系结构 | |
CN109586788B (zh) | 监控系统故障诊断方法、装置、计算机设备及存储介质 | |
CN111865594A (zh) | 基于区块链的产品测试方法、系统、电子设备及存储介质 | |
CN106295422A (zh) | 键盘扫描方法及装置 | |
US10803179B2 (en) | Method and system for detecting the vulnerability of an onboard device | |
RU2013124044A (ru) | Передача информации системы визуализации | |
CN105550083A (zh) | Mss自动化测试方法及系统 | |
CN110309063A (zh) | 一种基于云计算的软件测试环境动态生成系统及其实现方法 | |
EP3721348A1 (en) | General purpose interface bus (gpib) sniffer system and method | |
CN113156295A (zh) | 一种适用于电力安全芯片响应时间的测试方法及系统 | |
CN103746871A (zh) | 数据有效性检测装置和检测方法 | |
CN108333153A (zh) | 项目测试系统及项目测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |