扑克检测方法及相关装置与流程

文档序号:19749570发布日期:2020-01-21 19:10阅读:1851来源:国知局
扑克检测方法及相关装置与流程

本发明实施例涉及密码学技术领域,具体而言,涉及一种扑克检测方法及相关装置。



背景技术:

二元随机序列在密码应用技术中有着举足轻重的地位和作用,香农的完善保密系统和现代密码系统将之视为安全算法的根本。如今的计算机系统大量地用到二元随机序列,比如密钥生成、数字签名、身份认证。

为了检测二元随机序列的随机性,通常采用概率统计的方法进行分析和测试随机数发生器等生成的二元序列的随机性,判断待检二元序列是否可以在统计上难以与真随机数区分开来。随机性检测规范是随机性评估的科学依据,扑克检测是其中一个检测项。由于扑克检测涉及大量的统计运算,导致扑克检测的效率不高,如何高效地进行扑克检测是当前亟待解决的问题。



技术实现要素:

本发明实施例的目的在于提供了一种扑克检测方法及相关装置,其能够提高扑克检测的效率。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供一种扑克检测方法,所述方法包括:获取二元待检测序列,其中,二元待检测序列包括多个非重叠子序列;统计预设序列在多个非重叠子序列中出现的频数,其中,预设序列为一个字节长度的0和/或1的全排列;依据频数计算半字节统计值和全字节统计值;依据半字节统计值和全字节统计值对二元待检测序列进行检测。

第二方面,本发明实施例提供一种扑克检测装置,所述装置包括:获取模块,用于获取二元待检测序列其中,二元待检测序列包括多个非重叠子序列;统计模块,用于统计预设序列在多个非重叠子序列中出现的频数,其中,预设序列为一个字节长度的0和/或1的全排列;计算模块,用于依据频数计算半字节统计值和全字节统计值;检测模块,用于依据半字节统计值和全字节统计值对二元待检测序列进行检测。

第三方面,本发明实施例提供一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的扑克检测方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的扑克检测方法。

相对现有技术,本发明实施例提供的一种扑克检测方法及相关装置,首先,获取二元待检测序列,其中,二元待检测序列包括多个非重叠子序列;然后,统计预设序列在多个非重叠子序列中出现的频数,其中,预设序列为一个字节长度的0和/或1的全排列,接下来,依据统计出的频数计算半字节统计值和全字节统计值,最后,依据半字节统计值和全字节统计值对该二元检测序列进行检测。与现有技术相比,本发明实施例不需要统计半个字节长度的预设序列在非重叠子序列中出现的频数,节省了该统计需要的大量的运算,提高了扑克检测的效率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的扑克检测方法流程图。

图2为图1示出的步骤s104的子步骤的其中一种实现方法的流程图。

图3为图1示出的步骤s104的子步骤的另一种实现方法的流程图。

图4示出了本发明实施例提供的扑克检测装置的方框示意图。

图5为图4示出了检测模块的方框示意图。

图6示出了本发明实施例提供的电子设备的方框示意图。

图标:10-电子设备;101-存储器;102-通信接口;103-处理器;104-总线;200-扑克检测装置;201-获取模块;202-统计模块;203-计算模块;204-检测模块;2041-第一检测单元;2042-第二检测单元。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。

现有技术中,基本的扑克检测方法的实现步骤为:

首先,将长度为n的二元待检序列ε1ε2…εn划分为n=n/m个长度为m的非重叠子序列,n为二元待检序列包括的比特位的总个数,m为预设比特位的个数,有两个取值:4和8,当m为4时,即m为半个字节包括的比特位的个数,当m为8时,即m为一个字节包括的比特位的个数,当n不能被m整除时,将多余的比特舍弃。

其次,统计第i种预设序列在非重叠子序列中出现的频数ni,其中,i的取值范围为:1≤i≤2m,当m为4时,预设序列共有16种,分别为:0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110和1111,当m为8时,与m为4时类似,此时,预设序列共有256种,分别为:00000000、00000001、…、11111111,中间部分此处省略,不再一一列举。

第三,根据公式

分别利用m为4和8时的频数计算各自的统计值,即m为4时,利用统计的对应的16种预设序列在非重叠子序列出现的频数计算m为4的统计值,m为8时,利用统计的对应的256种预设序列在非重叠子序列出现的频数计算m为8的统计值。

最后,根据公式

分别利用m为4和8的统计值,计算对应的检测统计值p,value为预设统计参数。

最后,判断p-value≥α是否成立,其中,α为用于预设阈值,若成立,则检测通过,否则,检测不通过。

由于二元待检序列的长度通常都是百万量级,因此,基本的扑克检测中每一步的运算均需要耗费大量的计算时间。为了提高扑克检测效率,一种改进的做法是:对二元待检序列不再以m为4和8分别进行划分,而是只以m为8进行划分,采用位移和异或计算一个字节的高半字节的频数和低半字节的频数,最终得到m为4时的频数,其余步骤与基本的扑克检测方法类似。

然而,改进后的扑克检测方法对于扑克检测的效率提升仍然非常有限,针对如何进一步提高扑克检测的效率这一问题,发明人首先针对基本的扑克检测方法和改进后的扑克检测方法均进行深入研究,通过对其中的每一个步骤均进行了仔细的分析和大量的实验,终于发现计算频数的步骤是各个步骤中最耗时的步骤,得到计算频数是对扑克检测效率影响最大的因素这一结论。由于发现对扑克检测效率影响最大的步骤也是发明人在解决如何进一步提高扑克检测的效率这一问题的过程中付出创造性的劳动才得出此结论,因此,此结论的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。下面将对此进行详细描述。

请参考图1,图1示出了本发明实施例提供的扑克检测方法流程图,该方法包括以下步骤:

步骤s101,获取二元待检测序列,其中,二元待检测序列包括多个非重叠子序列。

在本实施例中,二元待检测序列为0和1组成的序列,该序列中的一个0或者1为一个比特,一个字节长度为8个比特,以8个比特为一个非重叠子序列,二元待检测序列包括多个非重叠子序列,例如,二元待检测序列可以为:10101000111110111100000100100001,以8个比特为一个非重叠子序列,该二元待检测序列包括4个非重叠子序列,分别为:10101000、11111011、11000001、00100001。

步骤s102,统计预设序列在多个非重叠子序列中出现的频数,其中,预设序列为一个字节长度的0和/或1的全排列。

在本实施例中,预设序列为由0和1的全排列组成的一个字节(即8个比特)长度的序列,由于其中代表从0和1这两个数字中选一个的方式种数,即2种,故预设序列共有256种,分别为:00000000、00000001、00000010、…、11111111,中间部分的省略,不再一一列举。

在本实施例中,可以为预设序列的每一种序列设置一个唯一编号,例如,00000000的编号为0,00000001的编号为1,…,11111111的编号为255,预设序列中编号为l的序列在二元待检测序列中出现的频率可以表示为:c8[l]。例如,二元待检测序列包括4个非重叠子序列,分别为:10101000(对应的编号为168的预设序列)、11111011(对应的编号为251的预设序列)、11000001(对应的编号为193的预设序列)、11000001(对应的编号为193的预设序列),则c8[168]=1,c8[251]=1,c8[193]=2,由于除168、251、193之外其余的预设序列没有在该二元待检测序列中出现,因此,除168、251、193之外其余的预设序列在该二元待检测序列中出现的频率为0,c8[0]=0,…c8[167]=0等。

步骤s103,依据频数计算半字节统计值和全字节统计值。

在本实施例中,得到预设序列中每种序列的频数后,根据频数计算半字节统计值和全字节统计值,其中,半字节统计值是根据预设序列中每个序列的频数计算得到的,而预设序列是一个字节(即8个比特)的序列,因此,本实施例不需要单独再对半个字节(即4个比特)的序列的频数进行统计,而频数的统计是扑克检测方法中最为耗时的步骤,故而可以极大提升扑克检测的效率。

作为一种具体实施方式,依据频数计算半字节统计值通过以下公式实现:

其中,v4为半字节统计值,n为二元待检测序列以比特为单位的长度,i、j、k均为长度为4个比特长度的预设序列的编号,c8[16i+j]为第(16i+j)个预设序列在所述非重叠子序列中出现的频数,c8[16k+i]为第(16k+i)个预设序列在所述非重叠子序列中出现的频数;

作为一种具体实施方式,依据频数计算全字节统计值可以通过以下公式实现:

其中,v8为全字节统计值,l为长度为8个比特长度的预设序列的编号,c8[l]为第l个预设序列在非重叠子序列中出现的频数。

请参照表1,表1示出了本发明实施例提供的现有技术中的扑克检测方法和本实施例中扑克检测方法中计算频数的计算量的对比。

表1

表1中,n为二元待检测序列的长度,以字节为单位,根据国密标准,

n=125000或更大。由表1可知,本发明实施例省略了n次移位运算、n次and运算(即与运算)及2n次加法运算,且n越大,省略运算后扑克检测的效率提升越明显,效率提升越高。

步骤s104,依据半字节统计值和全字节统计值对二元待检测序列进行检测。

在本发明实施例中,至少有两种方式可以对二元待检测序列进行检测:(1)直接将半字节统计值和全字节统计值分别和对应的第一预设阈值和第二预设阈值进行比较,实现对二元待检测序列的检测;(2)首先根据半字节统计值和全字节统计值分别计算对应的检测统计值,再分别根据各自的检测统计值和对应的第三预设阈值进行比较,实现对二元待检测序列的检测。

请参照图2,图2为图1示出的步骤s104的子步骤的其中一种实现方法流程图。

子步骤s1041,当半字节统计值小于第一预设阈值且全字节统计值小于第二预设阈值时,判定二元待检测序列通过检测。

子步骤s1042,当半字节统计值大于或者等于第一预设阈值、或者全字节统计值大于或者等于第二预设阈值时,判定二元待检测序列未通过检测。

在本实施例中,第一预设阈值可以用λ4表示,λ4=30.577914,第二预设阈值可以用λ8表示,λ8=310.457388,λ4和λ8的值精确到小数点后的6位数。

请参照图3,图3为图1示出的步骤s104的子步骤的另一种实现方法流程图。

子步骤s1043,依据半字节统计值计算第一检测统计值。

在本实施例中,依据半字节统计值计算第一检测统计值通过以下公式实现:

其中,p4-value为第一检测统计值,v4为半字节统计值,value为预设统计参数。

子步骤s1044,依据全字节统计值计算第二检测统计值。

在本实施例中,依据全字节统计值计算第二检测统计值通过以下公式实现:

其中,p8为第二检测统计值,v8为全字节统计值。

子步骤s1045,当第一检测统计值与第二检测统计值均大于第三预设阈值时,判定二元待检测序列通过检测。

子步骤s1046,当第一检测统计值小于或者等于第三预设阈值、或者第二检测统计值小于或者等于第三预设阈值时,判定二元待检测序列未通过检测。

在本实施例中,第三预设阈值用α表示,α=0.01。

与现有技术相比,本发明实施例具有以下有益效果:

省略了半个字节长度的预设序列在非重叠子序列中出现的频数的计算步骤,简化了运算过程,节省了该统计需要的大量的运算,提高了扑克检测的效率。

基于同一发明思路,本发明实施例还提供一种扑克检测装置,请参照图4,图4示出了本发明实施例提供的扑克检测装置200的方框示意图,扑克检测装置200包括获取模块201,统计模块202,计算模块203和检测模块204。

获取模块201,用于获取二元待检测序列,其中,二元待检测序列包括多个非重叠子序列。

统计模块202,用于统计预设序列在多个非重叠子序列中出现的频数,其中,预设序列为一个字节长度的0和/或1的全排列。

计算模块203,用于依据频数计算半字节统计值和全字节统计值。

作为一种具体实施方式,计算模块203依据频数计算半字节统计值通过以下公式实现:

其中,v4为半字节统计值,n为二元待检测序列以比特为单位的长度,i、j、k均为长度为4个比特长度的预设序列的编号,c8[16i+j]为第(16i+j)个预设序列在所述非重叠子序列中出现的频数,c8[16k+i]为第(16k+i)个预设序列在所述非重叠子序列中出现的频数;

计算模块203依据频数计算全字节统计值可以通过以下公式实现:

其中,v8为全字节统计值,l为长度为8个比特长度的预设序列的编号,c8[l]为第l个预设序列在非重叠子序列中出现的频数。

检测模块204,用于依据半字节统计值和全字节统计值对二元待检测序列进行检测。

请参照图5,图5为图4示出了检测模块的方框示意图,检测模块204包括第一检测单元2041和第二检测单元2042。

第一检测单元2041,用于当半字节统计值小于第一预设阈值且全字节统计值小于第二预设阈值时,判定二元待检测序列通过检测;当半字节统计值大于或者等于第一预设阈值、或者全字节统计值大于或者等于第二预设阈值时,判定二元待检测序列未通过检测。

第二检测单元2042,用于依据半字节统计值计算第一检测统计值;依据全字节统计值计算第二检测统计值;依据半字节统计值计算第一检测统计值;依据全字节统计值计算第二检测统计值;当第一检测统计值与第二检测统计值均大于第三预设阈值时,判定二元待检测序列通过检测;当第一检测统计值小于或者等于第三预设阈值、或者第二检测统计值小于或者等于第三预设阈值时,判定二元待检测序列未通过检测。

作为一种具体实现方式,第二检测单元2042依据半字节统计值计算第一检测统计值通过以下公式实现:

其中,p4-value为第一检测统计值,v4为半字节统计值,value为预设统计参数;

第二检测单元2042依据全字节统计值计算第二检测统计值通过以下公式实现:

其中,p8-value为第二检测统计值,v8为全字节统计值。

请参照图6,图6示出了本发明实施例提供的电子设备10的结构示意图。电子设备10可以是,但不限于智能手机、平板电脑、便携计算机、穿戴式移动终端等等。所述电子设备10包括存储器101、通信接口102、处理器103、总线104。

所述存储器101、通信接口102、处理器103、总线104各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。其中,存储器101用于存储程序,例如扑克检测装置200,扑克检测装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述电子设备10的操作系统(operatingsystem,os)中的软件功能模块。所述处理器103用于执行存储器101中存储的可执行模块,例如所述扑克检测装置200包括的软件功能模块或计算机程序。所述处理器103在接收到执行指令后,执行所述程序以实现本发明实施例揭示的扑克检测方法。

其中,存储器101可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

处理器103可以是一种集成电路芯片,具有信号处理能力。上述的处理器103可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)、语音处理器以及视频处理器等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器103也可以是任何常规的处理器等。

总线104可以是isa总线、pci总线或eisa总线等。图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

本发明实施例还揭示了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器103执行时实现本发明实施例上述揭示的扑克检测方法。

综上所述,本发明提供的一种扑克检测方法及相关装置,所述方法包括:获取二元待检测序列,其中,二元待检测序列包括多个非重叠子序列;统计预设序列在多个非重叠子序列中出现的频数,其中,预设序列为一个字节长度的0和/或1的全排列;依据频数计算半字节统计值和全字节统计值;依据半字节统计值和全字节统计值对二元待检测序列进行检测。与现有技术相比,本发明实施例不需要统计半个字节长度的预设序列在非重叠子序列中出现的频数,节省了该统计需要的大量的运算,提高了扑克检测的效率。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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