一种块内最大1、0游程检测合并优化实现方法及装置制造方法及图纸

技术编号:28623667 阅读:18 留言:0更新日期:2021-05-28 16:19
本发明专利技术提出了一种块内最大1、0游程检测方法,包括:步骤1、建立查找表;步骤2、将待检字节序列划分为N个子序列;步骤3、基于查找表通过查表法计算每个子序列中最大游程的长度,并归入对应游程长度集合;步骤4、根据集合计算统计值;步骤5、根据统计值计算P值;步骤6、将计算得出的P值与显著性水平α进行比较,若满足条件则表示待检序列通过块内最大游程检测。本发明专利技术直接对字节进行处理,并用查表的方式加速实现;对查找表进行充分的复用且规模仅768字节,在各类工业控制系统安全防护设备上均能毫无压力的实现;将块内最大1、0游程检测融合在一起检测,实现一次数据处理就能获得块内最大1游程检测结果和块内最大0游程检测结果。

【技术实现步骤摘要】
一种块内最大1、0游程检测合并优化实现方法及装置
本专利技术涉及工业控制系统安全检测领域,特别涉及一种块内最大1、0游程检测合并优化实现方法及装置。
技术介绍
近年来,大量增强工业控制系统安全的安全防护产品被研制出来,如工业防火墙、主机安全防护、纵向隔离装置、工业安全网关等。随机数发生器作为最基础的安全部件被集成到了这些产品中。这些工业控制系统安全防护产品的处理能力有的较强,有的则不如普通PC机,但基本采用32位/64位处理器。根据中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会颁布的国家标准GB/T32915《信息安全技术二元序列随机性检测方法》以及国家密码管理局颁布的密码行业标准GM/T0005《随机数检测规范》、GM/T0062《密码产品随机数检测要求》,必须对随机数发生器产生的随机数的质量进行仔细检测。块内最大1游程检测和块内最大0游程检测,合称为块内最大游程检测,是非常重要的随机数质量检验方法。在这些工业控制系统安全防护产品中实现块内最大1游程检测和块内最大0游程检测时应充分考虑安全防护产品的实际处理能力的强弱。块内最大游程检测是两个检测项——块内最大1游程检测和块内最大0游程检测的合称。块内最大1游程检测将待比特长度为n的检序列划分成个长度为m的子序列。统计各个子序列中的最长1游程长度,通过并将其归入相应的集合,根据各个子序列中最大1游程的分布来评价待检序列的随机性。块内最大0游程检测的检测原理和思路类似,只是将考察对象从1游程变更为0游程,根据各个子序列中最大0游程的分布来评价待检序列的随机性。在传统实现中,块内最大1游程检测以NIST(NationalInstituteofStandardsandTechnology,美国国家标准与技术研究院)提供的随机性检测软件包NISTSTS(下载地址为https://csrc.nist.gov/)为代表。块内最大0游程检测的传统实现是基于NIST提供的随机性检测软件包NISTSTS的块内最大1游程检测为基础实现的。传统块内最大1游程检测实现方法存在如下不足,导致其计算效率非常低:传统块内最大1游程检测和传统块内最大0游程检测实现方法存在如下不足,导致其计算效率非常低:1)字节型待检数据与检测实现所需的逐比特表示之间的矛盾。在工业控制系统的安全防护类产品中的待检数据通常是从随机数发生器产生,它们都是以字节型表示和存储,而传统做法采用基于比特的处理方式,即逐比特地处理待检数据。这就需要增加一个步骤,将字节型待检数据转为比特序列。此举既增加了检测的流程复杂度,又增加了检测的时间。2)比特级的游程统计方式导致CPU计算资源的浪费。统计游程长度的时候,使用一比特、一比特地筛查的方式。对n=106比特级的待检序列,将进行百万级别的比特数据加载、比较和数值更新。因此传统实现方式未充分考虑工业控制系统安全设备的CPU处理能力,严重浪费了CPU的字宽。3)块内最大1游程检测和传统块内最大0游程检测是两个执行过程相似的检测,但传统检测执行之时是分别执行其中一个检测,再执行另外一个检测,没有考虑二者之间的关系,大大增加了很多不必要的数据加载和存储开销。
技术实现思路
针对现有技术中存在的问题,提供了一种工控安全产品的块内最大1游程和块内最大0游程检测合并优化实现方法和装置,通过综合两个检测流程、去除冗余操作、合并加载等方式,仅需执行一次检测流程就可以获取块内最大1游程和块内最大0游程检测的检测结果,解决块内最大1游程检测和块内最大0游程检测在工业控制系统的安全保护产品中实现时,执行流程复杂和检验效率低的问题。本专利技术采用的技术方案如下:一种块内最大1、0游程检测合并优化实现方法,包括以下过程:步骤1、进行预处理,建立查找表;步骤2、进行序列分块,将待检字节序列划分为N个子序列;步骤3、根据建立的查找表,基于字节统计分别进行每个子序列中最大游程长度计算,得到每个子序列的最大1游程长度和最大0游程长度,并分别归入最大1游程长度集合、最大0游程长度集合;步骤4、分别计算块内最大1游程长度与最大0游程长度的统计值;步骤5、分别计算块内最大1游程长度与最大0游程长度的P值;步骤6、分别将计算得出的P值与显著性水平α进行比较,如果块内最大1游程长度的P值≥α值,则表示待检序列通过块内最大游程检测;如果块内最大0游程长度的P值≥α值,则表示待检序列通过块内最大游程检测。进一步的,所述步骤1中建立查找表过程包括:建立3个查找表,每个表的处理比特宽度为8;当8个比特ε0,ε1,…,ε7和1个字节Z之间的顺序关系是Z=27ε0+26ε1+…+ε7时,三个表分别如下:当8个比特ε0,ε1,…,ε7和1个字节Z之间的顺序关系是Z=27ε7+26ε6+…+ε0时,三个表分别如下:其中,对于表T1:其中0≤Z≤255,T1(Z)表示8比特的Z中以比特1结尾的逆向1游程(从ε7开始往下标递减方向)的长度,其中0≤Z≤255;对于表T2:T2(Z)表示8比特的Z中以比特1开始的顺向的1游程(从ε0开始往下标递增方向)的长度,其中0≤Z≤255;对于表T3:T3(Z)表示8比特的Z中最大1游程的长度,其中0≤Z≤255。进一步的,所述步骤2具体方法为:所述步骤2具体方法为:将长度为n比特的待检字节序列划分为N个长度为m的非重叠子序列,舍弃多余的比特,其中,n为8的整数倍,m为分块中最大游程检测的参数,表示每一个分块的大小,m取8或128或10000,GM/T0005规定m取10000。进一步的,所述步骤3中每个子序列中最大游程长度计算过程为:步骤3.1、将当前子序列的最大1游程长度rmax(1)、当前1游程长度r(1)、最大0游程长度rmax(0)、当前0游程长度r(0)均初始化为0,即rmax(1)=rmax(0)=r(1)=r(0)=0。步骤3.2、判断当前子序列中是否还有未处理的字节,若是进入步骤3.3,若不是,则进入步骤3.8;步骤3.3、读取子序列中未处理的第一个字节序为当前字节X,并计算字节Y=X⊕255;步骤3.4、分别对字节X和字节Y查T1表,并分别累加到当前1游程长度和当前0游程长度:r(1)=r(1)+T1(X)r(0)=r(0)+T1(Y);步骤3.5、根据字节对X查T3表得到的值与当前1游程长度值更新最大1游程长度;根据字节Y查T3表得到的值与当前0游程长度值更新最大0游程长度:rmax(1)=max(rmax(1),r(1),T3(X))rmax(0)=max(rmax(0),r(0),T3(Y));步骤3.6、若字节X值不等于255,则将当前1游程长度值重新设定为X查T2表的值,即r(1)=T2(X);若字节Y值不等于255,则将当前0游程长度值重新设定为Y查T2表的值本文档来自技高网
...

【技术保护点】
1.一种块内最大1、0游程检测合并优化实现方法,其特征在于,包括以下过程:/n步骤1、进行预处理,建立查找表;/n步骤2、进行序列分块,将待检字节序列划分为N个子序列;/n步骤3、根据建立的查找表,基于字节统计分别进行每个子序列中最大游程长度计算,得到每个子序列的最大1游程长度和最大0游程长度,并分别归入最大1游程长度集合、最大0游程长度集合;/n步骤4、分别计算块内最大1游程长度与最大0游程长度的统计值;/n步骤5、分别计算块内最大1游程长度与最大0游程长度的P值;/n步骤6、分别将计算得出的P值与显著性水平α进行比较,如果块内最大1游程长度的P值≥α值,则表示待检序列通过块内最大游程检测;如果块内最大0游程长度的P值≥α值,则表示待检序列通过块内最大游程检测。/n

【技术特征摘要】
1.一种块内最大1、0游程检测合并优化实现方法,其特征在于,包括以下过程:
步骤1、进行预处理,建立查找表;
步骤2、进行序列分块,将待检字节序列划分为N个子序列;
步骤3、根据建立的查找表,基于字节统计分别进行每个子序列中最大游程长度计算,得到每个子序列的最大1游程长度和最大0游程长度,并分别归入最大1游程长度集合、最大0游程长度集合;
步骤4、分别计算块内最大1游程长度与最大0游程长度的统计值;
步骤5、分别计算块内最大1游程长度与最大0游程长度的P值;
步骤6、分别将计算得出的P值与显著性水平α进行比较,如果块内最大1游程长度的P值≥α值,则表示待检序列通过块内最大游程检测;如果块内最大0游程长度的P值≥α值,则表示待检序列通过块内最大游程检测。


2.根据权利要求1所述的块内最大1游程检测方法,其特征在于,所述步骤1中建立查找表的过程包括:建立3个查找表,每个表的处理比特宽度为8;
当8个比特ε0,ε1,…,ε7和1个字节Z之间的顺序关系是Z=27ε0+26ε1+…+ε7时,三个表分别如下:
表T1={0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,8};
表T2={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,7,8};
表T3={0,1,1,2,1,1,2,3,1,1,1,2,2,2,3,4,1,1,1,2,1,1,2,3,2,2,2,2,3,3,4,5,1,1,1,2,1,1,2,3,1,1,1,2,2,2,3,4,2,2,2,2,2,2,2,3,3,3,3,3,4,4,5,6,1,1,1,2,1,1,2,3,1,1,1,2,2,2,3,4,1,1,1,2,1,1,2,3,2,2,2,2,3,3,4,5,2,2,2,2,2,2,2,3,2,2,2,2,2,2,3,4,3,3,3,3,3,3,3,3,4,4,4,4,5,5,6,7,1,1,1,2,1,1,2,3,1,1,1,2,2,2,3,4,1,1,1,2,1,1,2,3,2,2,2,2,3,3,4,5,1,1,1,2,1,1,2,3,1,1,1,2,2,2,3,4,2,2,2,2,2,2,2,3,3,3,3,3,4,4,5,6,2,2,2,2,2,2,2,3,2,2,2,2,2,2,3,4,2,2,2,2,2,2,2,3,2,2,2,2,3,3,4,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,6,6,7,8};
当8个比特ε0,ε1,…,ε7和1个字节Z之间的顺序关系是Z=27ε7+26ε6+…+ε0时,三个表分别如下:
表T1={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,7,8};
表T2={0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,...

【专利技术属性】
技术研发人员:罗影张文科郭晓玲
申请(专利权)人:工业信息安全四川创新中心有限公司
类型:发明
国别省市:四川;51

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

1