CN117785449A - 一种序列随机性检测方法及装置 - Google Patents
一种序列随机性检测方法及装置 Download PDFInfo
- Publication number
- CN117785449A CN117785449A CN202311745097.4A CN202311745097A CN117785449A CN 117785449 A CN117785449 A CN 117785449A CN 202311745097 A CN202311745097 A CN 202311745097A CN 117785449 A CN117785449 A CN 117785449A
- Authority
- CN
- China
- Prior art keywords
- bit
- value
- bits
- values
- sequence
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 54
- 238000009826 distribution Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 14
- 238000013461 design Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000528 statistical test Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000011151 fibre-reinforced plastic Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000001583 randomness test Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
本申请公开了一种序列随机性检测方法及装置,该方法包括:获取N字节的待检测序列,N为大于1的正整数;根据待检测序列中的前K字节中的比特的比特和值确定至少一个比特集合,任一比特集合包含前K字节中多个连续的比特,多个连续的比特中的最后一个比特对应的比特和值为设定值,且多个连续的比特中的最后一个比特以外的比特对应的比特和值非为设定值,K为小于N的正整数;根据比特集合中比特的比特和值的数值分布信息确定待检测序列是否通过随机性检测。该方法能够减少随机性检测过程的内存占用。
Description
技术领域
本申请实施例涉及信息安全领域,尤其涉及一种序列随机性检测方法及装置。
背景技术
目前,随着信息化和计算机技术的发展,人们在享受信息化带来的众多好处的同时,网络安全问题已成为信息时代人类共同面临的挑战。随机数发生器的输出被称为随机数,广泛应用于各个领域。因此,为保证随机数发生器产生质量优异且稳定的随机数,就需要对随机数的随机性进行检测。
目前,随机数检测过程占用内存过多,难以满足对物联网安全设备、工业控制安全设备等资源紧缩型设备。
发明内容
本申请实施例提供一种序列随机性检测方法及装置,用以减少内存占用。
第一方面,本申请实施例提供的一种序列随机性检测方法,包括:
获取N字节的待检测序列,N为大于1的正整数;根据所述待检测序列中的前K字节中的比特的比特和值确定至少一个比特集合,任一所述比特集合包含所述前K字节中多个连续的比特,所述多个连续的比特中的最后一个比特对应的比特和值为设定值,且所述多个连续的比特中的最后一个比特以外的比特对应的比特和值非为所述设定值,K为小于N的正整数;根据所述比特集合中比特的比特和值的数值分布信息确定所述待检测序列是否通过随机性检测。
根据该方法,本申请在检测的过程中,不需要一次性将全部字节转换为比特,而是根据待检测序列中的部分比特求和得到比特序列,仅存储部分比特求和得到的比特和值,并得到比特和值对应的数值分布信息,遍历全部序列后可以获得全部序列对应的数值分布信息,并根据数值分布信息确定待检测序列是否通过随机性检验。该过程无需重复遍历待检测序列中的全部比特,可以减少内存占用,减少设备在分配内存的读取内存空间数据的时间。
在一种可能的设计中,所述待检测序列的比特和值根据所述待检测序列的比特值以及所述比特值对应的调整值确定,其中,不同比特值对应的调整值不同,并且相同的比特值对应的调整值相同。
根据该设计,本申请中,比特值为0对应的调整值为-1,比特值为1对应的调整值为1,根据比特值(比如比特值为b1=0、b2=1、b3=1)确定比特值对应的调整值(比如,调整值为d1=-1、d2=1、d3=1)。该设计用于令比特和值不存在两个相邻的值均为0的情况,避免后续计算圈数时额外计算多余的圈数,保证统计圈数的准确性,提高检测效率。
在一种可能的设计中,任一比特集合对应的数值分布信息用于指示所述比特集合对应的取值为目标值的比特和值的个数,所述目标值不包括所述设定值。
根据该设计,在根据多个比特得到比特和值后,将等于目标值的比特和值的个数确定为比特和值的数值分布信息,目标值的范围不包括设定值。比如由多个比特确定的比特和值序列为{1,2,1,2,1,2},目标值为1和比特和值的个数为3,目标值为2的比特和值的个数为3。将数值分布信息记为state(x),x即目标值,state(1)=3,state(2)=3,因此在计算出比特和值后,可获得比特和值等于目标值的个数并作为数值分布信息,可以将一串比特和值序列转化为通过数值表示的数值分布信息,进一步减少设备的内存占用。
在一种可能的设计中,所述根据所述比特集合中比特的比特和值的数值分布信息确定所述待检测序列是否通过随机性检测,包括:根据所述数值分布信息、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值;在所述目标值对应的第二数值满足随机性条件的情况下,确定所述待检测序列通过随机性检测。
根据该设计,本申请可根据数值分布信息、比特集合的个数、目标值确定目标值对应的第二数值,通过对目标值的第二数值作统计运算,若多个目标值的第二数值通过相同的方式得到的计算结果与阈值比较,若全部的目标值的第二数值与阈值的比较结果均满足随机性条件,则确定待检测序列通过随机性检测,采用该设计可提高确定待检测序列通过随机性检测的准确性。
在一种可能的设计中,所述根据所述数值分布信息、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值,包括:根据所述数值分布信息和所述比特集合的个数确定所述目标值对应的比特集合的个数;根据所述目标值对应的比特集合的个数、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值。
根据该设计,根据目标值对应的比特集合获得目标值对应的第二数值,比如统计比特值对应的比特集合的个数得到第二数值,采用的统计方法可提高获得第二数值的准确性。
在一种可能的设计中,所述目标值对应的第二数值满足随机性条件包括:任一目标值对应的第二数值大于或等于阈值。
根据该设计,判断多个目标值对应的第二数值是否满足随机性条件,仅当所有的目标值对应的第二数值都满足随机性条件,则确定待检测序列通过随机性检测,若任一目标值对应的第二数值不满足随机性条件,则确定待检测序列未通过随机性检测,采用该设计可使提高对待检测序列的随机性检测的准确性。
第二方面,本申请实施例提供的一种序列随机数检测装置,包括:
获取模块,用于获取N字节的待检测序列,N为大于1的正整数;处理模块,用于根据所述待检测序列中的前K字节中的比特的比特和值确定至少一个比特集合,任一所述比特集合包含所述前K字节中多个连续的比特,所述多个连续的比特中的最后一个比特对应的比特和值为设定值,且所述多个连续的比特中的最后一个比特以外的比特对应的比特和值非为所述设定值,K为小于N的正整数;所述处理模块,还用于根据所述比特集合中比特的比特和值的数值分布信息确定所述待检测序列是否通过随机性检测。
在一种可能的设计中,所述待检测序列的比特和值根据所述待检测序列的比特值以及所述比特值对应的调整值确定,其中,不同比特值对应的调整值不同,并且相同的比特值对应的调整值相同。
在一种可能的设计中,任一比特集合对应的数值分布信息用于指示所述比特集合对应的取值为目标值的比特和值的个数,所述目标值不包括所述设定值。
在一种可能的设计中,所述处理模块,具体用于:根据所述数值分布信息、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值;在所述目标值对应的第二数值满足随机性条件的情况下,确定所述待检测序列通过随机性检测。
在一种可能的设计中,所述处理模块,具体用于:根据所述数值分布信息和所述比特集合的个数确定所述目标值对应的比特集合的个数;根据所述目标值对应的比特集合的个数、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值。
在一种可能的设计中,所述目标值对应的第二数值满足随机性条件包括:任一目标值对应的第二数值大于或等于阈值。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面及其任意一种设计的方法。
第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面及其任意一种设计的方法。
第二方面至第四方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种序列随机性检测方法的流程示意图;
图2为本申请实施例提供的一种装置结构示意图;
图3为本申请实施例提供的另一种装置结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作可选的详细描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。应理解,下面所介绍的方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。
目前,随着信息化和计算机技术的发展,人们在享受信息化带来的众多好处的同时,网络安全问题已成为信息时代人类共同面临的挑战。随机数发生器的输出被称为随机数,广泛应用于各个领域。因此,若需要随机数发生器产生质量优异且稳定的随机数,就需要对随机数的随机性进行检测。
现有的一般检测方法需要读取待检测字节序列中的全部比特并存储全部比特,此外,还需要将比特生成比特和,并且根据比特和确定至少一个圈,每个圈包含全部比特中的一个或连续的多个比特,根据圈内比特对应的比特和值进行随机数检测。其中,N字节的随机数中有n比特,n=8N。因此,检测设备需要分配n字节的内存空间,记为比特存储区,用于存储从待检字节序列转化为的比特序列。另外,还需要分配4n字节的内存空间,记为部分和存储区,用于存储n比特对应的比特和值。此外,还需要分配n/25字节的内存空间,记为圈数存储区,用于存储圈的个数。
可见,以上随机数检测流程中需要占用检测设备的至少(n+4n+n/25)字节的内存空间中,因此占用内存较多,难以满足对物联网安全设备、工业控制安全设备等资源紧缩型设备。
为了解决以上问题,本申请提供了一种序列随机性检测方法,用以减少内存占用。
本申请中,圈可以是指多个待检测的比特中,对应的比特和值为设定值的两个比特之间的一个或多个连续的比特。其中,设定值为0。举例来说,由多个比特值{b0,b1,b2,b3,b4}对应的比特和值分别为{-1,0,1,0,1}。或者说,该多个比特组成的一组比特和值集合为{0,-1,0,1,0,1},其中,第一个“0”可以不对应于其中的任何一个比特,而是表示比特和值的初始值,该初始值可以是设定值。其中,若设定值取0,则该比特和值集合中的“0,-1,0”三个比特和值对应于一个圈,其中,这三个比特和值对应的比特是b0和b1,即这两个比特作为一个圈。同理,“0,1,0”这三个比特和值对应于一个圈,其中,这三个比特和值对应的比特是b2和b3,即这两个比特作为一个圈。因此,以上多个比特值包含的圈数J=2。此外,本申请中可以将同属于一个圈的比特称为一个比特集合,仍以上面的示例为例,比特b0和b1属于一个比特集合,比特b2和b3属于另一个比特集合。
下面对本申请实施例提供的序列随机性检测方法进行介绍。
为了减少内存占用,本发明实施例提供了一种序列随机性检测方法及装置。该方法可由第一设备执行。第一设备可以是用于执行本申请所示方法的计算机系统,或者可以是计算机系统中用于执行本申请所示方法的处理装置,如处理器或处理模块等,不具体限定。
图1示例性的示出了一种序列随机性检测方法的流程示意图。
参考图1所示流程,本申请实施例提供的方法可步骤包括:
步骤101,第一设备获取N字节的待检测序列,N为大于1的正整数。
其中,待检测序列可以是N个字节的随机序列。该待检测序列可以是字节序列,即待检测序列是N个字节组成的序列。
第一设备可读取待检测序列中的多个比特。其中,待检测序列可表示为B0、B1、……、BN-1,B0至BN-1分别表示一个字节,N为自然数。可以理解,若将每个字节均转换为比特,该序列可表示为:b0、b1、……、bn-1。其中,n=8N。
步骤102,第一设备根据待检测序列中的前K字节中的比特的比特和值确定至少一个比特集合。
可选的,第一设备可根据待检测序列中的前K字节中的比特确定至少一个比特和值。前K字节中的比特可包括8K个比特。后一个比特和值可以根据前一个比特和值和前一个比特和值对应的比特确定。
本申请中,比特和值的确定过程比如:前K字节中的比特中可具有长度为p的比特序列。第一设备获取长度为p的比特序列。在该比特序列中包含第1个比特至第i个比特,第i个比特对应的比特和值可根据第i个比特的比特值以及序列中位于第i个比特之前(或左侧)的全部比特的比特值确定。i=1……、p。例如,第一设备可以将第i个比特以及序列中位于第i个比特之前的全部比特的比特值求和作为第i个比特对应的比特和值,即序列{0,1,1,0}对应的比特和值为{0,1,2,2}。需要说明的是,此处仅解释比特和值中“和”的概念,本申请中确定比特和值的过程中还可以考虑基于调整值对比特进行调整,即需要确定如下文所述的调整值。
可选的,本申请中,第i个比特对应的比特和值还可以根据第i个比特的比特值对应的调整值、序列中位于第i个比特之前(或左侧)的全部比特的比特值对应的调整值确定。
其中,调整值用于第一设备获得第i个比特值对应的比特和值。第一设备可根据第i个比特值和调整值的取值关系确定第i个比特值对应的调整值。该取值关系可表示为特征值表。特征值可用于保证比特和值不存在两个相邻的值均为0的情况,避免后续计算圈数时额外计算多余的圈数,保证统计圈数的准确性,提高检测效率。例如,比特值0对应的调整值为-1,比特值1对应的调整值为1。调整值也可表示为T(0)=-1,T(1)=1。
示例性的,第一设备可以将第i个比特对应的调整值以及序列中位于第i个比特之前的全部比特的比特值分别对应的调整值求和,作为第i个比特对应的比特和值。举例来说,序列{0,1,1,0}四个比特的调整值求和所确定的比特和值分别为{-1,0,1,0}。
另外,采用公式表示,第i个比特和值可满足以下关系式:
Si=Si-1+di;
其中Si表示第i个比特和值,Si-1表示第i-1个比特和值,di表示第i个比特对应的调整值。其中,S0=0,即比特和值的初始值为0。
在第一设备获得第i个比特值对应的比特和值之后,第一设备可根据比特和值与设定值之间的大小关系确定至少一个圈。任一圈包含或对应的比特构成一个比特集合,其中,任一圈的最后一个比特对应的比特和值为设定值。
其中,设定值可用于第一设备确定比特集合中的比特。设定值可为0。
在实施中,第一设备可根据前K字节中的比特分别对应的比特值和设定值确定至少一个比特集合中的比特。其中,比特和值的初始值可以是设定值,从第1个比特开始,第一设备可以依次确定至少一个比特的比特和值。当第一次出现比特的比特和值为设定值的情况,第一设备可以将该比特以及此前的比特作为同一个比特集合中的比特,至此可以确定一个圈。此后,第一设备可以从下一个比特开始确定至少一个比特的比特和值,当下一次出现比特的比特和值为设定值的情况,第一设备可以将该比特以及此前的比特作为同一个比特集合中的比特,至此可以确定第二个圈。以次类推,直至第一设备确定全部的圈。
当设定值为0时,根据调整值确定的序列{0,1,1,0}对应的比特和值集合为{-1,0,1,0},初始的比特和值S0可以是0。由于设定值是0,可知第2个比特和值等于设定值,因此第一设备可以将第1个比特值0和第2个比特值1作为第一个比特集合。同理,第3个比特值1和第4个比特值0可以作为第二个比特集合。
可以理解,在102中,第一设备可以将N个待检测字节中的K个字节即一部分字节转换为比特,并针对这一部分的字节执行比特和值的确定动作。由于不需要一次性将全部N个字节转换为比特并进行存储,此外,也不需要存储全部比特对应的全部比特和值,因此可以减少内存占用。
步骤103,第一设备根据比特集合中比特的比特和值的数值分布信息确定待检测序列是否通过随机性检测。
步骤103中,第一设备可根据目标值确定比特集合中比特的比特和值的数值分布信息,以便在步骤103中根据数值分布信息确定待检测序列是否通过随机性检测。其中,目标值与设定值不同,例如,在设定值是0的情况下,目标值为0以外的其他数值。
其中,第一设备可设置目标值的取值范围。若某个比特和值超出目标值的取值范围,第一设备可丢弃原始的待检测序列,或者确定待检测序列未通过随机性检测。
例如,目标值的取值范围是[-4,4],即目标值可以是-4、-3、-2、-1、0、1、2、3或4。当设定值为0时,目标值可以是-4、-3、-2、-1、1、2、3或4。若比特和值的绝对值大于4,则第一设备可丢弃原始的待检测序列,或者确定待检测序列未通过随机性检测。
可选的,数值分布信息可用于指示前K字节的比特集合的至少一个比特对应的比特和值中,取值为目标值的比特和值的个数。
例如,以目标值为-4、-3、-2、-1、1、2、3或4为例,数值分布信息包括以下数值:取值为-4的比特和值的个数、取值为-3的比特和值的个数、……、取值为3的比特和值的个数和取值为4的比特和值的个数。
仍以序列{0,1,1,0,1,1,0,1,0,1}为例,该序列对应的比特和值集合为{-1,0,1,0,1,2,1,2,1,2,0},在设定值取0时,第一圈(或圈1)对应的比特和值为{-1,0},可见第一圈中取值为-1的比特和值的个数为1,取值为-4至-2和1至4的比特和值的个数均为0。因此,该比特和值集合中比特和值等于目标值-1的个数记为1,比特和值等于其余目标值(目标值为-4、-3、-2、1、……和4)的个数均记为0。
同理可确定以上序列的第二圈(或圈2)和第三圈(或圈3)对应的数值分布信息,如表1所示。
表1
表1中,第一圈、第二圈和第三圈的比特和值集合中,第一个0表示比特和值的初始值。
表1中,State(x)可以表示计数器,用于对取值为x的目标值对应的比特和值的个数进行计数,计数结果即数值分布信息。比如,表中的第一圈所在列和x=-1所在行的交叉处的值为1,表示,在第一圈对应的比特和值集合为{-1,0}中,比特和值为-1的个数为1。
以上表1也可以表示为:State(-4)=0、……、State(-1)=1、……、State(4)=0。
可选的,在获得第一圈对应的数值分布信息后,第一设备可将计数器State(x)设置为初始值,以避免在下一圈中重复统计第i个比特和值的个数。
比如,第一设备在获得第一圈对应的数值分布信息后,将计数器State(x)重置为0,例如,重置State(-4)=0、……、State(-1)=0、……、State(4)=0,之后统计第二圈对应的数值分布信息。
可选的,通过步骤103,第一设备可以将一串比特和值序列(即任一比特和值集合)转化为通过数值表示的数值分布信息(即:State(x)=0),因此可进一步减少内存占用。
可选的,第一设备可根据比特和值的数值分布信息、比特集合的个数和目标值确定目标值对应的第二数值。第二数值用于确定待检测序列是否通过随机性检测。其中,数值分布信息可用于指示比特集合对应的比特和值的数值分布情况,第二数值可以表示不同数值分布情况的比特集合的分布情况。下文结合第二数值的确定过程对第二数值进行介绍。
举例来说,第二数值的确定过程如下:
(1)第一设备可根据多个比特集合分别对应的数值分布信息,确定多个比特集合(或圈)中,包含k个取值为x的比特和值的比特集合(或圈)的数量,称为目标值对应的比特集合的个数,采用符号表示可以记为vk(x)。其中,k为非负整数,表示取值为目标值x的比特和值在一个比特集合(或圈)对应的比特和值中出现的次数。
例如,沿用表1中的圈1至圈3的示例,表2所示为圈1至圈3中x和k取不同数值时vk(x)的数值。
表2
例如,v0(-4)=3,表示第一圈至第三圈中,包含0个取值为-4的比特和值的圈数为3,即第一圈至第三圈均不包含取值为-4的比特和值。又如,v1(1)=1,表示第一圈至第三圈中,包含1个取值为1的比特和值的圈数为1,即在第一圈至第三圈中,仅第二圈对应的State(1)=1。
(2)第一设备根据目标值对应的比特集合的个数vk(x)、比特集合的个数和目标值确定第二数值。其中,第二数值可以是表示不同数值分布情况的比特集合的分布情况的P值。P值是指在一个概率模型中,统计摘要(如两组样本均值差)与实际观测数据相同,或甚至更大这一事件发生的概率。
例如,第二数值Px可满足以下公式:
Px = igamc(5/2,Vx/2)。 (公式1)
其中,igamc表示不完全伽玛函数(Incomplete Gamma Function,IGF)。
另外,以上公式中,“5”是k的最大取值,在实施中也可以替换为其他正整数。Vx与vk(x)、比特集合的个数J和目标值有关。
可选的,Vx可满足:
其中,J为圈数,πk(x)可为与vk(x)有关的参数。其中,πk(x)可表示待检测序列中的不同k和x对应的vk(x)出现的概率。πk(x)的确定方式可以参照美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)特别出版物800-22修订版1a的文献《用于密码学应用的随机和伪随机数生成器的统计测试套件(A Statistical TestSuite for Random and Pseudorandom Number Generators for CryptographicApplications)》3.14章节中的记载。
可选的,一些示例性的πk(x)可满足表3:
表3
π0(x) | π1(x) | π2(x) | π3(x) | π4(x) | π5(x) | |
x=1 | 0.5000 | 0.2500 | 0.1250 | 0.0625 | 0.0312 | 0.0312 |
x=2 | 0.7500 | 0.0625 | 0.0469 | 0.0352 | 0.0264 | 0.0791 |
x=3 | 0.8333 | 0.0278 | 0.0231 | 0.0193 | 0.0161 | 0.0804 |
x=4 | 0.8750 | 0.0156 | 0.0137 | 0.0120 | 0.0105 | 0.0733 |
x=5 | 0.9000 | 0.0100 | 0.0090 | 0.0081 | 0.0073 | 0.0656 |
x=6 | 0.9167 | 0.0069 | 0.0064 | 0.0058 | 0.0053 | 0.0588 |
x=7 | 0.9286 | 0.0051 | 0.0047 | 0.0044 | 0.0041 | 0.0531 |
可选的,第一设备可确定任一目标值对应的第二数值应满足的随机性条件。其中,该随机性条件包括:任一目标值对应的第二数值大于或等于阈值。当全部目标值对应的第二数值满足随机性条件时,第一设备可判断待检测序列通过随机性检测。
例如,x=-4,-3,-2,-1,1,2,3,4,则第一设备可以先确定x=1时的Px,判断x=1时的Px是否大于或等于阈值;进一步,确定x=-3时Px,判断x=3时的Px是否大于或等于阈值。以此类推,直到确定x=4时……。若x=-4至4中的任何一个,Px值均大于或等于阈值,则表示待检测序列通过随机性检测。
作为一种示例性的实现方式,说明本申请所涉及的一种序列随机性检测方法的流程:
步骤1,第一设备进行初始化设置。
第一设备可设置初始的比特和值S0=0,i0=0,圈数J0=0,初始的State(x)=0,x=-4、-3、-2、-1、0、1、2、3、4,特征值表(T(0)=-1、T(1)=1),初始的vk(x)=0,设定k=0、1、2、3、4或5。其中,所有k值大于5时的比特和值的比特集合(或圈)的数量全部记在k=5的vk(x)中。
步骤2,第一设备判断随机性检测的迭代过程是否结束。
具体来说,第一设备可读取待检测序列中的第i个比特bi,i从初始的零值开始。第一设备可确定比较的i与8N的大小,若确定i<8N,并继续执行步骤3。若确定i≥8N,则执行步骤6。
例如,第一设备可以从第1个字节的第1个比特开始,逐字节(或逐比特)对待检测序列开始扫描,即i=1。
步骤3,第一设备根据bi确定当前的比特和值:Si+1=Si+T(bi+1),获得当前的Si+1,并继续执行步骤4。T(bi+1)为bi+1对应的调整值。
步骤4,若Si+1的绝对值不超过4,则第一设备更新Si+1对应的数值分布信息State(Si+1)=State(Si)+1。其中,4为目标值x的绝对值的最大值。
步骤5,第一设备可判断当前的Si+1是否等于0。
若当前的Si+1不等于0,则对i作加一处理后返回执行步骤2。
若当前的Si+1等于0,则第一设备可执行:
步骤5.1,对圈数做加一处理,即令Ji+1=Ji+1。
步骤5.2,确定vk(x),k=0、1、2、3、4和5,
步骤5.3,将当前的State(x)置为0。
步骤6,此时第一设备已知i大于或等于8K。第一设备可判断第i个比特是否刚好与该比特之前的一个或多个比特构成一个圈,即判断Si+1是否等于0。
若当前的Si+1不等于0,则第一设备可执行步骤7。
若当前的Si+1等于0,则第一设备可执行:
步骤6.1(参照步骤5.1),对圈数做加一处理,获得Ji+1=Ji+1。
步骤6.2(参照步骤5.2),确定vk(x),k=0、1、2、3、4和5,
步骤6.3(参照步骤5.3),将当前的State(x)置为0。
第一设备还可继续读取后续待检测序列中的字节,直至读取待检测序列中的最后一个比特,即第8N个比特。至此,第一设备可以获得表2所示的vk(x)统计表。第一设备可以将vk(x)统计表存储至内存。
步骤7,第一设备可根据vk(x)统计表,确定x=-4、-3、-2、-1、1、2、3、4分别对应的第二数值Px。
第二数值可满足公式1,参见本申请中的说明,这里不再重复。
第一设备执行步骤8。
步骤8,第一设备可判断全部目标值对应的第二数值是否不小于阈值。当目标值x=-4、-3、-2、-1、1、2、3、4分别对应的第二数值均不小于阈值时,第一设备可确定待检测序列通过随机性检测。
其中,阈值可为显著性水平α。α可取0.01。
如果任一Px值小于α,则待检测序列未通过随机性检测。
如果全部Px值不小于α,则待检测序列通过随机性检测。
可以理解,本申请可减少随机性检测过程中的内存占用。具体来说,第一设备在将待检测的字节转换为比特后,仅扫描一次比特值,在扫描过程中,根据读取的第一个比特值至第N个比特值确定比特和值,即根据比特和值确定至少一个圈,之后根据至少一个权确定vk(x),存储vk(x)统计表。也就是说,第一设备不需要将转换后的比特和计算所得的比特和值存储至内存,可以减少内存再用。另外,第一设备不需要在对转换后获得的比特序列进行第二次扫描再计算比特和值,也不需要在对比特和值进行再次扫描以确定vk(x),可以提升随机性检测的效率。因此,该检测方法适用于资源紧缩型设备,并提高随机性检测效率。例如,通过本申请所示方法对100组样本(每组125000字节)进行测试,测试处理器为11th GenIntel(R)Core(TM)i5-1135G7。经统计,现有实现方案执行一组检测需要2.675毫秒,本申请所示方法仅需要0.718毫秒,即执行效率为现有方案的3.73倍。因此资源紧缩型设备可以将更多宝贵的计算资源用于其它安全防护功能。
基于相同的技术构思,本申请示例性的提供了一种序列随机数检测装置,如图2所示,该装置包括:
获取模块201,用于获取N字节的待检测序列,N为大于1的正整数;处理模块202,用于根据所述待检测序列中的前K字节中的比特的比特和值确定至少一个比特集合,任一所述比特集合包含所述前K字节中多个连续的比特,所述多个连续的比特中的最后一个比特对应的比特和值为设定值,且所述多个连续的比特中的最后一个比特以外的比特对应的比特和值非为所述设定值,K为小于N的正整数;处理模块202,还用于根据所述比特集合中比特的比特和值的数值分布信息确定所述待检测序列是否通过随机性检测。
可选的,所述待检测序列的比特和值根据所述待检测序列的比特值以及所述比特值对应的调整值确定,其中,不同比特值对应的调整值不同,并且相同的比特值对应的调整值相同。
可选的,任一比特集合对应的数值分布信息用于指示所述比特集合对应的取值为目标值的比特和值的个数,所述目标值不包括所述设定值。
可选的,所述处理模块202,具体用于:根据所述数值分布信息、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值;在所述目标值对应的第二数值满足随机性条件的情况下,确定所述待检测序列通过随机性检测。
可选的,所述处理模块202,具体用于:根据所述数值分布信息和所述比特集合的个数确定所述目标值对应的比特集合的个数;根据所述目标值对应的比特集合的个数、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值。
可选的,所述目标值对应的第二数值满足随机性条件包括:任一目标值对应的第二数值大于或等于阈值。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。该电子设备可以用于执行以上方法实施例所述的动作。在该实施例中,电子设备的结构可以如图3所示,包括存储器301以及一个或多个处理器302。
存储器301,用于存储处理器302执行的计算机程序。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器301可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器301也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器301是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器301可以是上述存储器的组合。
处理器302,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等。所述处理器302,用于调用存储器301中存储的计算机程序时实现上述方法。
本申请实施例中不限定上述存储器301和处理器302之间的具体连接介质。作为一种示例,本申请实施例在图3中以存储器301和处理器302之间通过总线303连接,总线303在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线303可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,处理器302可用于执行以上由获取模块201和处理模块202中任意一项或多项执行的动作。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的方法。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种序列随机性检测方法,其特征在于,包括:
获取N字节的待检测序列,N为大于1的正整数;
根据所述待检测序列中的前K字节中的比特的比特和值确定至少一个比特集合,任一所述比特集合包含所述前K字节中多个连续的比特,所述多个连续的比特中的最后一个比特对应的比特和值为设定值,且所述多个连续的比特中的最后一个比特以外的比特对应的比特和值非为所述设定值,K为小于N的正整数;
根据所述比特集合中比特的比特和值的数值分布信息确定所述待检测序列是否通过随机性检测。
2.如权利要求1所述的方法,其特征在于,所述待检测序列的比特和值根据所述待检测序列的比特值以及所述比特值对应的调整值确定,其中,不同比特值对应的调整值不同,并且相同的比特值对应的调整值相同。
3.如权利要求1所述的方法,其特征在于,任一比特集合对应的数值分布信息用于指示所述比特集合对应的取值为目标值的比特和值的个数,所述目标值不包括所述设定值。
4.如权利要求1所述的方法,其特征在于,所述根据所述比特集合中比特的比特和值的数值分布信息确定所述待检测序列是否通过随机性检测,包括:
根据所述数值分布信息、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值;
在所述目标值对应的第二数值满足随机性条件的情况下,确定所述待检测序列通过随机性检测。
5.如权利要求4所述的方法,其特征在于,所述根据所述数值分布信息、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值,包括:
根据所述数值分布信息和所述比特集合的个数确定所述目标值对应的比特集合的个数;
根据所述目标值对应的比特集合的个数、所述比特集合的个数和所述目标值确定所述目标值对应的第二数值。
6.如权利要求5所述的方法,其特征在于,所述目标值对应的第二数值满足随机性条件包括:任一目标值对应的第二数值大于或等于阈值。
7.一种序列随机性检测装置,其特征在于,包括:
获取模块,用于获取N字节的待检测序列,N为大于1的正整数;
处理模块,用于根据所述待检测序列中的前K字节中的比特的比特和值确定至少一个比特集合,任一所述比特集合包含所述前K字节中多个连续的比特,所述多个连续的比特中的最后一个比特对应的比特和值为设定值,且所述多个连续的比特中的最后一个比特以外的比特对应的比特和值非为所述设定值,K为小于N的正整数;
所述处理模块,还用于根据所述比特集合中比特的比特和值的数值分布信息确定所述待检测序列是否通过随机性检测。
8.如权利要求7所述的装置,其特征在于,所述待检测序列的比特和值根据所述待检测序列的比特值以及所述比特值对应的调整值确定,其中,不同比特值对应的调整值不同,并且相同的比特值对应的调整值相同。
9.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~6中任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~6中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311745097.4A CN117785449A (zh) | 2023-12-18 | 2023-12-18 | 一种序列随机性检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311745097.4A CN117785449A (zh) | 2023-12-18 | 2023-12-18 | 一种序列随机性检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785449A true CN117785449A (zh) | 2024-03-29 |
Family
ID=90388354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311745097.4A Pending CN117785449A (zh) | 2023-12-18 | 2023-12-18 | 一种序列随机性检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785449A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798230A (zh) * | 2019-11-06 | 2020-02-14 | 成都卫士通信息产业股份有限公司 | 一种游程检测方法、装置及电子设备 |
CN110851113A (zh) * | 2020-01-16 | 2020-02-28 | 江苏芯盛智能科技有限公司 | 字节序列随机性的检测方法、装置、存储介质及电子设备 |
US20230091431A1 (en) * | 2021-09-22 | 2023-03-23 | Kioxia Corporation | Memory system and random number generation device |
-
2023
- 2023-12-18 CN CN202311745097.4A patent/CN117785449A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798230A (zh) * | 2019-11-06 | 2020-02-14 | 成都卫士通信息产业股份有限公司 | 一种游程检测方法、装置及电子设备 |
CN110851113A (zh) * | 2020-01-16 | 2020-02-28 | 江苏芯盛智能科技有限公司 | 字节序列随机性的检测方法、装置、存储介质及电子设备 |
US20230091431A1 (en) * | 2021-09-22 | 2023-03-23 | Kioxia Corporation | Memory system and random number generation device |
Non-Patent Citations (1)
Title |
---|
陈爽;曹素梅;左金印;: "随机数发生器检测与设计", 信息安全与通信保密, no. 12, 10 December 2012 (2012-12-10) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023801B2 (en) | Data processing method and apparatus | |
CN108009430B (zh) | 一种敏感数据快速扫描方法及装置 | |
CN106101740B (zh) | 一种视频内容识别方法和装置 | |
CN109145080B (zh) | 一种文本指纹获得方法及装置 | |
WO2021130754A1 (en) | Systems and methods of data compression | |
CN112802467B (zh) | 语音识别方法及装置 | |
JP2013206193A (ja) | 情報変換プログラム、情報変換装置および情報変換方法 | |
US9235624B2 (en) | Document similarity evaluation system, document similarity evaluation method, and computer program | |
CN114065704A (zh) | 数据压缩方法、电子设备和计算机程序产品 | |
CN111651695A (zh) | 一种短链接的生成与解析方法及装置 | |
KR102339723B1 (ko) | Dna 저장 장치의 연성 정보 기반 복호화 방법, 프로그램 및 장치 | |
CN117785449A (zh) | 一种序列随机性检测方法及装置 | |
CN111061927B (zh) | 数据处理方法、装置及电子设备 | |
CN108897872B (zh) | 对话处理方法、装置、计算机设备和存储介质 | |
CN115186738B (zh) | 模型训练方法、装置和存储介质 | |
CN107832341B (zh) | Agnss用户去重统计方法 | |
CN116306610A (zh) | 模型训练方法及装置、自然语言处理方法及装置 | |
CN114490547A (zh) | 数据压缩方法、装置、设备及介质 | |
CN109684442B (zh) | 一种文本检索方法、装置、设备及程序产品 | |
CN113821211A (zh) | 命令解析方法、装置、存储介质和计算机设备 | |
CN111859917A (zh) | 主题模型构建方法、设备及计算机可读存储介质 | |
CN113595557B (zh) | 一种数据处理的方法和装置 | |
CN112115418B (zh) | 一种偏态估计信息的获取方法、装置及设备 | |
CN110347368B (zh) | 一种对话生成的方法、装置、存储介质及电子设备 | |
CN117077182B (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 |