一种重叠子序列检测的快速实现方法技术

技术编号:21308412 阅读:451 留言:0更新日期:2019-06-12 10:46
本发明专利技术涉及信息安全领域,尤其是涉及一种重叠子序列检测的快速实现方法。该方法步骤为:统计5位子序列频数;计算1位至4位子序列频数;计算中间变量;计算统计值;比较判断,比较统计值

A Fast Implementation Method of Overlapping Subsequence Detection

The invention relates to the field of information security, in particular to a fast implementation method of overlapping subsequence detection. The steps of this method are as follows: counting the frequency of 5-bit subsequences; counting the frequency of 1-4-bit subsequences; calculating intermediate variables; calculating statistical values; comparing and judging, and comparing statistical values.

【技术实现步骤摘要】
一种重叠子序列检测的快速实现方法
本专利技术涉及信息安全领域,尤其是涉及一种重叠子序列检测的快速实现方法。
技术介绍
随机数发生器是密码学领域的安全基础,为众多密码技术提供根本性的安全保证。随机数发生器的输出被称为随机数,广泛应用于各个领域,比如对称密码算法和非对称密码算法的密钥产生、挑战-应答机制中的挑战值、数字签名方案中的秘密信息、抵抗侧信道分析攻击等。随机数质量的检测可以采用较为通用的统计测试方法,检查输出质量是否存在明显缺陷。一般将若干针对不同方面的统计性质的测试项合并到一起形成一套统计测试套件,使用者利用测试套件检测待检序列,并根据检测结果通过随机数的质量。常见的统计测试套件有美国国家标准与技术研究院发布的特别出版物文档《AStatisticalTestSuiteforRandomandPseudorandomNumberGeneratorsforCryptographicApplications》以及我国在2016年颁布的国家标准GB/T32915-2016《信息安全技术二元序列随机性检测方法》等。这两个标准文档都建议了15个统计检测方法,重叠子序列检测方法是他们都建议使用的一种测试方法。这种统计测试方法用于测试待检序列中m位可重叠子序列的每一种模式的个数是否接近。为方便描述,记长度为n比特的待测试序列是二元序列ε。记m位子序列模式i1i2…im出现的频数为v[i1i2…im]。我国检测标准规定n为一百万。传统重叠子序列检测流程如下:第一步,用长度为n比特的待测试二元序列ε构造一个新序列ε′,构造方式是将序列的最开始m-1位数据添加到序列的末尾,新序列的长度为n+m-1,m取2和5;第二步,计算新序列中每一种m位子序列模式i1i2…im出现的频数v[i1i2…im](共有2m种),每一种m-1位子序列模式i1i2…im-1出现的频数v[i1i2…im-1](共有2m-1种),每一种m-2位子序列模式i1i2…im-2出现的频数v[i1i2…im-2](共有2m-2种);第三步,计算第四步,计算第五步,计算P值,第六步P-value1≥α且P-value2≥α,则待检序列通过检测。大量的实验表明现有实现方式的效率较低,因为目前实现方式存在如下诸多弊端:其一,实际待检测数据为字节表示,但检测过程采用基于比特统计,每次仅处理一个比特,处理器字长没有充分利用;其二,不同长度的子序列频数m=2和m=5分别统计,这就需要进行五次相同的数据加载来计算1位至5位的子序列频数统计。其三,P值判断方式使得每次都要计算igamc函数。有鉴于此,实际检测中需要更加高效快捷的实现方式,进而大大提高整个检测套件的效率,所以重叠子序列检测的快速实现具有非常重要的现实意义。
技术实现思路
本专利技术的目的是针对上述不足之处,提供一种重叠子序列检测的快速实现方法,将参数m=2和m=5合并计算,同时优化重叠子序列检测流程,解决计算机在执行待检序列的重叠子序列检测时检测效率较低的问题。本专利技术是采取以下技术方案实现的:一种重叠子序列检测的快速实现方法,其特征在于,该方法包括以下步骤:S1、统计5位子序列频数,即对待检序列统计5位子序列的频数v(5)[i],0≤i≤31,即i=0,1,2,3,...,31。S2、计算1位至4位子序列频数,即利用已计算得到的5位子序列的频数获得1位、2位、3位、4位子序列频数,分别是v(1)[i1],0≤i1≤1,即i=0,1;v(2)|i2|,0≤i2≤3,即i2=0,1,2,3;v(3)[i3],0≤i3≤7,即i3=0,1,2,...,7;v(4)[i4],0≤i4≤15,即i4=0,1,2,...,15。S3、计算中间变量,即计算重叠子序列检测中间变量,n为待检序列比特长度,v(n)[i1,i2,...,in]的计算过程见S1和S2;S4、计算统计值,即计算重叠子序列检测统计值,S5、比较判断,比较统计值与阈值之间的大小,以确定待检序列是否通过检测。进一步的,所述步骤S1统计5位子序列频数,无需将待检序列从字节拆分为比特,可以采取一次性加载w字节,记为一个字的处理方式,w取1或2或4或8。进一步的,所述步骤S1统计5位子序列频数,首先记字A的第x比特到第y比特为A[x..y];记字A和B的拼接为A||B=28wA+B;然后对j=0到n-1执行如下步骤:S11、获取位置变量,将j拆分为字的位置信息a和字内位置信息b,j=8wa+b,0≤b<8w。S12、获取5比特值,如果b+5<8w,则获取第a个字A,取x=A[b:b+5];否则获取第a个字A和第a+1个字B,取x=(B||A)[b:b+5]。S13、更新频数,v(5)[x]=v(5)[x]+1。进一步的,所述步骤S2计算1位至4位子序列频数,计算方式为,由5位子序列频数计算4位子序列频数,由4位子序列频数计算3位子序列频数,由3位子序列频数计算2位子序列频数,由2位子序列频数计算1位子序列频数。进一步的,所述步骤S2计算1位至4位子序列频数,计算方式还可以为,由5位子序列频数直接计算1位至4位子序列频数。进一步的,所述步骤S2计算1位至4位子序列频数,5位子序列频数计算4位子序列频数的实现方式为v(4)[k]=v(5)[k]+v(5)[16+k],0≤k≤15;4位子序列频数计算3位子序列频数的实现方式为v(3)[k]=v(4)[k]+v(4)[8+k],0≤k≤7;3位子序列频数计算2位子序列频数的实现方式为v(2)[k]=v(3)[k]+v(3)[4+k],0≤k≤3;2位子序列频数计算1位子序列频数的实现方式为v(1)[k]=v(2)[k]+v(2)[2+k],0≤k≤1;5位子序列频数计算3位子序列频数的实现方式为v(3)[k]=∑i=0,1,…,3v(5)[8i+k],0≤k≤7;5位子序列频数计算2位子序列频数的实现方式为v(2)[k]=∑i=0,1,…,7v(5)[4i+k],0≤k≤3;5位子序列频数计算1位子序列频数的实现方式为v(1)[k]=∑i=0,1,…,15v(5)[2i+k],0≤k≤1。进一步的,所述步骤S5中的比较判断,执行方式为(S5-A),计算P值如果P-value1(5)≥α,P-value2(5)≥α,P-value1(2)≥α,P-value2(2)≥α同时成立,则待检序列通过检测。进一步的,所述步骤S5中的比较判断,执行方式还可以为(S5-B),如果同时满足,则待检序列通过检测,其中λ(1,5)=max{V|igamc(8,V/2)≥α},λ(2,5)=max{V|igamc(4,V/2)≥α},λ(1,2)=max{V|igamc(1,V/2)≥α},λ(2,2)=max{V|igamc(0.5,V/2)≥α}。进一步的,所述步骤S5中的比较判断,执行方式(S5-B)的λ(1,5)保留六位小数的值31.999927,λ(2,5)保留六位小数的值20.090235,λ(1,2)保留六位小数的值9.210340,λ(2,2)保留六位小数的值6.634897。本专利技术采用基于字的处理方式而不是基于比特的方式;合并1位至5位子序列频数统计流程,避免重复执行同样的频数统计流程;只统计5位子序列本文档来自技高网
...

【技术保护点】
1.一种重叠子序列检测的快速实现方法,其特征在于,该方法包括以下步骤:S1、统计5位子序列频数,即对待检序列统计5位子序列的频数v

【技术特征摘要】
1.一种重叠子序列检测的快速实现方法,其特征在于,该方法包括以下步骤:S1、统计5位子序列频数,即对待检序列统计5位子序列的频数v(5)[i],0≤i≤31,即i=0,1,2,3,...,31;S2、计算1位至4位子序列频数,即利用已计算得到的5位子序列的频数获得1位、2位、3位、4位子序列频数,分别是0≤i1≤1,即i=0,1;v(2)|i2|,0≤i2≤3,即i2=0,1,2,3;v(3)[i3],0≤i3≤7,即i3=0,1,2,...,7;v(4)[i4],0≤i4≤15,即i4=0,1,2,...,15;S3、计算中间变量,即计算重叠子序列检测中间变量,n为待检序列比特长度,v(n)[i1,i2,...,in]的计算过程见S1和S2;S4、计算统计值,即计算重叠子序列检测统计值,S5、比较判断,比较统计值与阈值之间的大小,以确定待检序列是否通过检测。2.根据权利要求1所述的重叠子序列检测的快速实现方法,其特征在于,所述步骤S1统计5位子序列频数,无需将待检序列从字节拆分为比特,可以采取一次性加载w字节,记为一个字的处理方式,w取1或2或4或8。3.根据权利要求1所述的重叠子序列检测的快速实现方法,其特征在于,所述步骤S1统计5位子序列频数,首先记字A的第x比特到第y比特为A[x..y];记字A和B的拼接为A||B=28wA+B;然后对j=0到n-1执行如下步骤:S11、获取位置变量,将j拆分为字的位置信息a和字内位置信息b,j=8wa+b,0≤b<8w;S12、获取5比特值,如果b+5<8w,则获取第a个字A,取x=A[b:b+5];否则获取第a个字A和第a+1个字B,取x=(B||A)[b:b+5];S13、更新频数,v(5)[x]=v(5)[x]+1。4.根据权利要求1所述的重叠子序列检测的快速实现方法,其特征在于,所述步骤S2计算1位至4位子序列频数,计算方式为,由5位子序列频数计算4位子序列频数,由4位子序列频数计算3位子序列频数,由3位子序列频数计算2位子序列频数,由2位子序列频数计算1位子序列频数。5.根据权利要求1所述的重叠子序列检测的快速实现方法,其特征在于,所述步骤S2计算1位至4...

【专利技术属性】
技术研发人员:杨先伟朱翔屈寅春
申请(专利权)人:无锡职业技术学院
类型:发明
国别省市:江苏,32

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

1