本发明专利技术提供一种块内频数检测方法,涉及数据通信和信息安全领域,解决计算机在执行现有块内频数检测方法时效率低的问题;采用方法包括步骤:(1)将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃;(2)对每个子序列,利用查表法得出各子序列中比特1的个数Ni;(3)根据公式计算统计量V;(4)根据公式P值计算公式和显著水平α的关系计算出P=igamc(N/2,V/2)≥α计算出统计量V的上界v,若V<v,则认为待检序列通过检测。本发明专利技术具有检查效率高、占用存储空间小等优点。
【技术实现步骤摘要】
本专利技术涉及数据通信和信息安全领域,尤其是涉及一种块内频数检测方法。
技术介绍
随机序列在密码应用技术中占有非常重要的地位,香农的完善保密系统以及现代密码系统都将随机序列视为安全算法的根本。现在的计算机安全系统大量使用随机序列,如密钥的产生、数字签名、身份认证等,这充分体现了随机数的应用价值。在应用密码学中,随机性检测的目的是采用概率统计方法分析测试随机数发生器等生成的序列的随机性,判断待检序列在统计上是否难以和真随机数区分开。不同的检测算法从不同的角度刻画待检序列与真随机序列之间的差距。在经过多年的研究和发展后随机性检测已经取得了丰硕的成果,目前已有大量的随机性检测算法,并且新的检测算法还在不断涌现。美国国家标准与技术研究院(NationalInstituteofStandardsandTechnology,NIST)发布的SP800‐22标准建议了16种用于随机性测试的统计检验方法。2009年,我国国家密码管理局发布了《随机性检测规范》建议了15种用于随机性测试的统计检验方法,其中块内频数检测是二者共有的检测项。块内频数检测是检测n比特的待检序列的分组长度为m的子序列中1所占的比例。如果1的比例接近于一半,则可以认为序列是随机的。当m取1时,块内频数检测退化为单比特频数检测。块内频率测试是随机性测试的基础,应首先进行。如果块内频率检测都无法通过,那么不用进行其他测试即可表明该序列不随机。因此,这种检测具有非常重要的作用。必须具备极高的检测效率,以便快速剔除那些明显不满足随机性特征的待检样本。现有块内频数检测的方法是:将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃,然后计算各子序列中比特1所占的个数Ni(比例πi),接着将所有子序列中比特1所占的比例进行累加,得到统计量V=4m∑i=1,2,...,N(πi-1/2)2,随后利用余不完全伽马函数igamc计算P=igamc(N/2,V/2),并将P与显著水平α比较,判断检序列是否通过检测。我国《随机性检测规范》规定待检序列为n=1000000比特,子序列比特长度m=100。块内频数检测算法中为了算出统计量需要执行N次减法、N次平方、N次除法、mN+N次加法和2次乘法,其中N为完整的子序列的个数。以上计算量说明该检测算法的效率并不高,实际检测工作中需要更加高效快捷的检测系统,进而大大提高整个随机性检测规范的检测效率。
技术实现思路
本专利技术的目的在于:针对现有技术存在的问题,提供一种块内频数快速检测方法,解决计算机在执行现有块内频数检测方法时,效率低的问题。本专利技术的专利技术目的通过以下技术方案来实现:一种块内频数检测方法,其特征在于,该方法包括以下步骤:(1)将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃;(2)对每个子序列利用查表法得出子序列中比特1的个数Ni;(3)根据公式V=4mΣi=1N(Ni/m-1/2)2,]]>计算统计量V;(4)计算P=igamc(N/2,V/2),如果P≥α,则认为待检序列通过检测。作为进一步的技术方案,所述查表法为:对每个子序列,从头至尾依序取连续w个比特-,并利用查表直接得出这连续w个比特中比特1的个数,反复多次查表可得到每个子序列中比特1的个数Ni。作为进一步的技术方案,所述查表法的w值取8最合适:8比特是完整的一个字节,无需进行字节间的拼接或拆分;并且此时表的规模仅为256字节,适和绝大部分处理系统。作为进一步的技术方案,利用查表法计算每个子序列中比特1的个数时,每次处理连续两个子序列共25字节,这样可以解决单个子序列没有按字节对齐的问题。一种块内频数检测方法,其特征在于,该方法包括以下步骤:(1)将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃;(2)对每个子序列利用查表法得出子序列中比特1的个数Ni;(3)根据公式V=4mΣi=1N(Ni-m/2)2,]]>计算统计量V;(4)计算P=igamc(N/2,V/2),如果P≥α,则认为待检序列通过检测。作为进一步的技术方案,所述查表法为:对每个子序列,从头至尾依序取连续w个比特数,并利用查表法直接得出这连续w个比特中比特1的个数Ni。作为进一步的技术方案,所述查表法的w值取8最合适:8比特是完整的一个字节,无需进行字节间的拼接或拆分;并且此时表的规模仅为256字节,适和绝大部分处理系统。作为进一步的技术方案,利用查表法计算每个子序列中比特1的个数时,每次处理连续两个子序列共25字节,这样可以解决一个子序列没有按字节对齐的问题。作为进一步的技术方案,计算统计值V时为了将运算代价非常高的除法从N次降低为1次,采用了如下简化公式V=4mΣi=1N(Ni/m-1/2)2=4mΣi=1N(Ni-m/2)2.]]>一种块内频数检测方法,其特征在于,该方法包括以下步骤:(1)将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃;(2)对每个子序列利用查表法得出子序列中比特1的个数Ni;(3)根据公式V=4mΣi=1N(Ni-m/2)2,]]>计算统计量V;(4)先计算出P=igamc(N/2,V/2)≥α时统计量V的上界v,然后比较统计量V和阈值(上界)v,若V<v,则认为待检序列通过检测。作为进一步的技术方案,所述v可以在检测前计算出来,v值在N=10000,α=0.01时取10331.933578(保留六位小数)。与现有技术相比,本专利技术具有检查效率高、占用存储空间小等优点。附图说明图1是块内频数检测方法实施例1的流程图。图2是块内频数检测方法实施例2的流程图。图3是块内频数检测方法实施例3的流程图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。实施例1经研究发现,现有块内频数检测效率并不高的主要原因是:子序列中1的个数统计采用了单比特统计方式,使得每次只能处理一个比特,CPU的字长没有得到充分利用,如果改为一次处理多个比特,那么处理速度将会有明显的提升。因此本专利技术提供一种块内频数检测方法,该方法的主要原理为:利用查表法直接得出w个比特中比特1的个数,进而大大减小CPU计算次数,提高处理效率。本实施例的该方法可通过以下系统实现,如图1所示,该系统包括拆分子序列模块、查表统计各子序列中1的个数模块、计算统计量模块、计算P值并与显著水平比较模块。待检数据流经过拆分子序列模块被拆分成多个非重叠子序列后进入查表统计各本文档来自技高网...
【技术保护点】
一种块内频数检测方法,其特征在于,该方法包括以下步骤:(1)将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃;(2)对每个子序列利用查表法得出子序列中比特1的个数Ni;(3)根据公式V=4mΣi=1N(Ni/m-1/2)2,]]>计算统计量V;(4)计算P=igamc(N/2,V/2),如果P不小于显著水平α,则认为待检序列通过检测。
【技术特征摘要】
1.一种块内频数检测方法,其特征在于,该方法包括以下步骤:
(1)将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃;
(2)对每个子序列利用查表法得出子序列中比特1的个数Ni;
(3)根据公式V=4mΣi=1N(Ni/m-1/2)2,]]>计算统计量V;
(4)计算P=igamc(N/2,V/2),如果P不小于显著水平α,则认为待检序列通过检测。
2.根据权利要求1所述的一种块内频数检测方法,其特征在于,所述查表法为:对每个
子序列,从头至尾依序取连续w个比特,并利用查表直接得出这连续w个比特中比特1的个
数,通过反复多次查表得到每个子序列中比特1的个数Ni。
3.根据权利要求2所述的一种块内频数检测方法,其特征在于,所述w的值取8。
4.根据权利要求3所述的一种块内频数检测方法,其特征在于,利用查表法计算每个子
序列中比特1的个数时,每次处理连续两个子序列共25字节。
5.一种块内频数检测方法,其特征在于,该方法包括以下步骤:
(1)将待检序列按长度m划分为N个非重叠的子序列,多余比特舍弃;
(2)对每个子序列利用查表法得出子序列中比特1的个数Ni;
(3)根据公式V=4mΣi=1N(Ni-m/2)2,]]>计算统计量V;
(4)计算P=igamc(N/2,V/2),如果...
【专利技术属性】
技术研发人员:罗影,张文科,尹一桦,徐远泽,
申请(专利权)人:成都卫士通信息产业股份有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。