一种基于随机性分析的数据加密功能的检验方法转让专利

申请号 : CN201010158231.7

文献号 : CN101888282B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐国爱张淼马健丽郭承青郭燕慧

申请人 : 北京邮电大学

摘要 :

一种基于随机性分析的数据加密功能的检验方法,步骤是:(1)产生检测序列:按照设定条件,将待检测的数据序列划分为多个待检测数据子序列;(2)执行随机性检测:针对8类16项随机性测试方法中的每一项,分别对多个待检测数据子序列进行随机性检测;(3)分析检测结果:在执行全部检测项的过程中,只要有任何一项没有通过随机性检测,就判断待检测数据序列为非随机序列,即待检测数据未加密;只有通过全部检测项的测试,才判断待检测数据经过了一定程度的加密处理。其优点是:测试方法新颖,测试角度综合和全面,涵盖了数据序列随机性的多个方面;采用统计检验原理进行检测,操作简单、方便,能有效和准确地判断信息系统中的数据是否加密。

权利要求 :

1.一种基于随机性分析的数据加密功能的检验方法,其特征在于,用随机性分析方法判断数据块是否经过加密处理,该方法包括下列操作步骤:(1)产生检测序列:按照设定条件,将待检测的数据块、即二进制数据序列划分为多个待检测的数据子序列;

(2)执行随机性检测:针对随机性测试方法的每个类别的各个检测项目,分别对所述多个待检测的数据子序列进行随机性检测;该步骤包括下列操作内容:(21)按照下述8类、共16个测试项的随机性测试方法依次分别对m个n比特子序列进行检测,并相应记录各个检测项的通过概率值P-value的数值;

A、频数检验,包括6个测试项:单比特频数检验、块内频数检验、重叠子序列检验、扑克检验、二元推导和近似熵检验;

B、游程检验,包括3个测试项:游程检验、块内最大游程检验和游程分布检验;

C、自相关检验;

D、累加和检验;

E、矩阵秩检验;

F、离散傅立叶检验;

G、线性复杂度检验;

H、压缩检验,包括2个测试项:通用统计检验和Lempel-ziv压缩检验;

(22)对于每个随机性测试项Ti,式中,自然数i是16个随机性检测项的序号;待测数据序列是否通过该项测试是取决于下述m个n比特子序列的测试结果:先计算通过概率值:如果待检测m个n比特子序列中有x个子序列的通过概率值不小于显著性水平α,则该待检测数据序列的通过概率值为 再采用统计学中的置信区间理论公式: 做出最终判断:若待检测数据序列的通过概率值 不位于置信区间内,则否定原假设,即认定该待检测数据序列未通过Ti项测试,并结束检测流程;只有待检测数据序列的通过概率值 位于置信区间内,才认定该待检测数据序列通过Ti项测试;

(3)分析检测结果:在执行所有的检测项目的过程中,只要有其中任何一项没有通过随机性检测,就判断该待检测的二进制数据序列是非随机序列,即该待检测的数据块未加密;

只有通过全部检测项目的测试,才判断该待检测的数据块经过了一定程度的加密处理。

2.根据权利要求1所述的方法,其特征在于:所述步骤(1)中,设定条件是将待检测的二进制数据序列随机划分为m个连续的、长度均为n比特的数据子序列,其中,自然数m和n的数值应分别大于或等于50和100。

说明书 :

一种基于随机性分析的数据加密功能的检验方法

技术领域

[0001] 本发明涉及一种检验数据加密功能的技术,确切地说,涉及一种基于随机性分析的数据加密功能的检验方法,属于信息安全中的密码安全技术领域。

背景技术

[0002] 现在,人们经常需要采取相应的技术措施来保护其数据,防止被一些怀有不良用心的人所看到或破坏。在信息时代,信息既可以帮助团体或个人,使其获益;同样,信息也可以用来对他们构成威胁,造成破坏。在竞争激烈的工商企业之间,经济间谍经常想方设法要获取竞争对方的各种情报。因此,在客观上,迫切需要一种强有力的安全措施来保护机密数据不被窃取或篡改。
[0003] 目前,已经研制成功多种加密数据流的技术,这些方法都能够采用软件很容易地实现;但是,当人们只知道密文时,破译这些加密算法是不容易的(当同时获知原文和密文时,破译加密算法的操作虽然也不太容易,但毕竟已经是可能实现的)。性能最好的加密算法对系统性能几乎没有任何影响,并且还可以带来其他内在优点。例如,大家都知道的pkzip,它既压缩数据又加密数据。又如,dbms的一些软件包总是包含一些加密方法,使得复制文件的操作对于一些敏感数据是无效的,或者需要提供用户密码。所有这些加密算法都要有高效的加密和解密能力。
[0004] 密码算法是构建安全信息系统的一种核心要素,也是一种保障信息与数据的机密性、完整性和真实性的重要技术。密码算法的检测评估是密码算法研究的重要组成,它能够对密码算法的设计和分析提供客观的量化指标和技术参数,对于密码算法的应用具有重要的指导意义。在密码算法的设计和评测过程中,通常要从多方面对其进行检测和分析。Shannon利用统计特性对密码的无条件安全作出下述定义:如果密文块和明文块是统计独立的,则该密码提供完全保密。在现有技术的密码算法中,只有一次一密才能达到这种统计独立性,其他的现有密码算法都只能最大程度地逼近统计独立性而已。因此,分析密码算法的统计性能是密码算法安全性研究的重要内容。并且,用统计检测的方法来评测密码算法可以为理论分析提供大量参考数据,从而减少理论分析人员的繁琐工作,同时,还能暴露出用现有分析方法无法发现的安全漏洞。
[0005] 统计检测是通过统计密码算法输出序列的随机特性来实现的。所谓“随机”的概念在密码领域中有着广泛应用,例如,安全的密码算法的输出是随机的,密码算法及密码协议中用到的密钥和参数也是随机的,随机性检测在密码应用及其相关领域都起到重要作用。理想的随机序列被看成是投掷硬币的结果,根据抛出硬币是正面或反面标记为“0”或“1”。
每次投掷结果中的“0”或“1”的出现概率均为1/2,而且,投掷结果彼此独立,前面的投掷不会影响后面的结果。显然,在实际应用中,以这种方式产生随机数是不现实的,实际应用的随机数通常是通过某些数学公式的计算而产生的伪随机数。人们研究了多种随机序列应该满足的性质,并以此为准对所产生的序列的随机程度进行度量。目前,已经有了众多的随机性检测项和方法用于检测密码算法和序列的统计特性。
[0006] 美国国家标准技术研究院(NIST)制定了16种测试方法,简单介绍如下:
[0007] (1)频数测试:用于确定二进制序列中的“0”或“1”的数目是否如真随机序列那样近似相等,如果是,则该序列是随机的。
[0008] (2)块内频数测试:用于确定在待检测序列中,所有非重叠的M位长度块内的“0”或“1”的数目是否呈现为随机分布,如果是,则该序列是随机的。
[0009] (3)游程测试:用于确定待检测序列中,各种特定长度的“0”或“1”的游程数目是否如真随机序列那样,如果是,则该序列是随机的。
[0010] (4)块内最长连续“1”的测试:用于确定待检测序列中,最长连续“1”的字符串长度是否与真随机序列中最长连续“1”的字符串的长度近似相等。如果是,则该序列是随机的。
[0011] (5)矩阵秩的测试:用于检测待检测序列中,设定长度的子序列的线性相关性。如果线性相关性较小,则该序列是随机的。
[0012] (6)离散傅里叶变换测试:通过检测待检测序列的周期性质,并与真随机序列的周期性质进行比较,观察它们间的偏离程度来确定待检测序列随机性。如果偏离程度较小,则该序列是随机的。
[0013] (7)非重叠模板匹配测试:用于检测待检测序列中,子序列是否与许多非周期模板相匹配,如果匹配较多,则该序列是非随机的。
[0014] (8)重叠模板匹配测试:用于统计待检测序列中,设定长度的连续“1”的数目,是否与真随机序列的情况偏离太大。如果偏离太大,则该序列是非随机的。
[0015] (9)通用统计测试:用于检测待检测序列是否能在不丢失信息的情况下被明显压缩,一个不能被明显压缩的序列是随机的。
[0016] (10)压缩测试:用于确定待检测序列能够被压缩的程度,如果能被显著压缩,则该序列不是随机序列。
[0017] (11)线性复杂度测试:用于确定待检测序列是否足够复杂,如果是,则该序列是随机的。
[0018] (12)连续性测试:用于确定待检测序列所有可能的x位组合子串出现的次数是否与真随机序列中的情况近似或相同,如果是,则该序列是随机的。
[0019] (13)近似熵测试:通过比较x位比特串与(x-1)位比特串在待检测序列中出现的频度,再与正态分布的序列中的情况进行对比,进而确定其随机性。
[0020] (14)累加和测试:用于确定待检测序列中的部分和是否太大或太小,太大或太小都是非随机的。
[0021] (15)随机游走测试:用于确定在一个随机游程中,某个特定状态出现的次数是否远远超过真随机序列中的情况,如果是,则该序列是非随机的。
[0022] (16)随机游走变量测试:用于检测待检测序列中,某个设定状态在一个随机游程中的出现次数与真随机序列的偏离程度,如果偏离程度较大,则该序列是非随机的[0023] 目前,已经研制成功多种用于检测数据序列随机性的方法。典型的有:单比特频数、重叠子序列、置换、游程、碰撞、生日间隔、序列相关性、矩阵秩、比特流、压缩、重叠模板匹配、非重叠模板匹配、通用统计、随机游动、随机游动变量、二元推导、变换点、序列复杂度、线性复杂度等等。同时,许多检测项目都带有参数,如果将不同参数视作不同的检测项目,那么参数的不同选择又衍生出更多的检测项目。
[0024] 显然,在实际应用中,选择完成所有的检测项目和相关参数的测试是不现实的,因此有必要对这些检测项目及其参数之间的关系进行研究,从而选择适宜的检测项目,提高检测效率和实用性。但是,各个检测项目的背景和数学基础不尽相同,所以,有关判断数据随机性的检测项目及其参数的相关性研究,至今还是尚未解决的一个难题,同时,也是业内科技人员关注的焦点。
[0025] 如上所述,目前国内外对密码算法的研究成果已经很多,而且,有的成果已经得到广泛应用。但是,在实际应用过程中,可能常常会遇到下述疑问:这块数据是否经过加密?这个问题看似简单,却至今还没有一个成熟、可靠的方法进行判断。根据随机性是密码算法安全性中的重要特性,人们得出结论:经过加密的数据是随机的,未加密的数据是非随机的。而且进一步得出:非随机数据肯定没有经过加密处理,而随机数据则在一定程度上是加密的。并基于上述判断开展了检验或判断数据是否加密的新方法的研究。

发明内容

[0026] 有鉴于此,本发明的目的是提供一个基于随机性分析的数据加密功能的检验方法,该方法是根据输入的二进制数据比特序列,通过进行多个随机性检验项的测试(包括单比特频数测试、块内频数测试、重叠子序列检验、扑克检验、近似熵检验、二元推导、游程检验、块内最大游程检验、游程分布检验、自相关检验、累加和检验、矩阵秩检验、离散傅里叶检验、线性复杂度检验、通过统计检验和Lempel-ziv压缩检等),综合频数、游程、相关性以及可压缩率等涉及随机性的多个不同因素的测试,分析判断该二进制数据比特序列的随机性,进而判断该数据序列是否经过加密处理。
[0027] 为了达到上述目的,本发明提供了一种基于随机性分析的数据加密功能的检验方法,其特征在于,用随机性分析方法判断数据块是否经过加密处理,该方法包括下列操作步骤:
[0028] (1)产生检测序列:按照设定条件,将待检测的数据块、即二进制数据序列划分为多个待检测的数据子序列;
[0029] (2)执行随机性检测:针对随机性测试方法的每个类别的各个检测项目,分别对所述多个待检测的数据子序列进行随机性检测;该步骤包括下列操作内容:
[0030] (21)按照下述8类、共16个测试项的随机性测试方法依次分别对m个n比特子序列进行检测,并相应记录各个检测项的通过概率值P-value的数值;
[0031] A、频数检验,包括6个测试项:单比特频数检验、块内频数检验、重叠子序列检验、扑克检验、二元推导和近似熵检验;
[0032] B、游程检验,包括3个测试项:游程检验、块内最大游程检验和游程分布检验;
[0033] C、自相关检验;
[0034] D、累加和检验;
[0035] E、矩阵秩检验;
[0036] F、离散傅立叶检验;
[0037] G、线性复杂度检验;
[0038] H、压缩检验,包括2个测试项:通用统计检验和Lempel-ziv压缩检验;
[0039] (22)对于每个随机性测试项Ti,式中,自然数i是16个随机性检测项的序号;待测数据序列是否通过该项测试是取决于下述m个n比特子序列的测试结果:
[0040] 先计算通过概率值:如果待检测m个n比特子序列中有x个子序列的通过概率值不小于显著性水平α,则该待检测数据序列的通过概率值为 再采用统计学中的置信区间理论公式: 做出最终判断:若待检测数据序列的通过概率值 不位于置信区间内,则否定原假设,即认定该待检测数据序列未通过Ti项测试,并结束检测流程;
只有待检测数据序列的通过概率值 位于置信区间内,才认定该待检测数据序列通过Ti项测试;
[0041] (3)分析检测结果:在执行所有的检测项目过程中,只要有其中任何一项没有通过随机性检测,就判断该待检测的二进制数据序列是非随机序列,即该待检测的数据块未加密;只有通过全部检测项目的测试,才判断该待检测的数据块经过了一定程度的加密处理。
[0042] 本发明是一种基于随机性分析的数据加密功能的检验方法,它的技术创新特点是:根据数据块的随机性来判断该数据块是否经过加密。此外,基于现有成果,本发明将随机性测试项目进行分类:将16个随机性测试项分为8大类,从不同角度分别对数据进行随机性测试。而且,只要在这16个检测项中有一项没有通过随机性检测,就表明待检测的二进制数据块是非随机的,从而认为该待测数据块未加密;否则,只有8类、共16个随机性测试项全部通过检验,才判断待检测数据块经过了一定程度的加密处理。
[0043] 本发明与其他相关技术进行比较的优点是:
[0044] 方法新颖:本发明创造性地将随机性分析的方法应用于数据块是否为随机数列的检验过程,形成一个可靠的判断数据块是否经过加密处理的方法。
[0045] 综合全面:本发明结合现有技术的16种测试数据随机性的方法,分别从频数、游程、相关性和可压缩率等不同角度考察待测数据序列的随机特性,涵盖了数据序列随机性的各个方面。
[0046] 实用性强:本发明是针对信息系统是否具有数据加密功能而提出的一种基于随机性分析的数据加密功能检验方法,通过分析数据序列的随机性的各项测试,可以简单、有效地判断信息系统中的数据是否加密。
[0047] 准确性高:本发明检测方式的结果都是统一采用通过概率值的数值进行衡量和比较,相比其他方式,对于长的数据序列,计算通过概率值的数值更加简单、方便和准确性高。

附图说明

[0048] 图1是本发明基于随机性分析的数据加密功能的检验方法操作流程图。
[0049] 图2是本发明方法中的单项检测方法的操作步骤流程示意图。

具体实施方式

[0050] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。
[0051] 众所周知,在随机性检测中,通常采用假设检验方法;即先假定待检测的数据序列是随机的,按照某种统计方法,随机序列的统计值应该符合某种特定的分布。然后,计算该数据序列的统计值,并根据统计值是否符合特定分布的概率,来判断待检测的序列是否是随机的。本发明也是基于这种假设检验方法。
[0052] 假设检验的基本思路是:先提出有关总体性质的假设,称为原假设,然后在原假设的条件下导出结论,若该结论发生的概率很大,则认为原假设成立,反之,即结论发生的概率非常小,则否定原假设。该思路的来源是实践中被广泛采用的一条原则:小概率事件在一次观察中是不会出现的。通常将小概率事件的发生概率称之为显著性水平,用α来表示,它表示假设检验的严格程度。α越小,则否定原假设的说服力越强。通常,α的数值选取0.01、0.05或0.1。
[0053] 参见图1,介绍本发明基于随机性分析的数据加密功能的检验方法:它是用随机性分析方法判断数据块是否经过加密处理,该方法包括下列操作步骤:
[0054] 步骤1、产生检测序列:在检测之前,先按照设定条件,将待检测的二进制数据块、即二进制数据序列S划分为多个待检测的二进制数据子序列Si;其中,子序列的自然数序号i的最大值是m,即设定条件是将待检测的二进制数据序列随机划分为m个连续的、长度均为n比特的数据子序列Si,其中,自然数m和n的数值应分别大于或等于50和100。
[0055] 步骤2、执行随机性检测:针对随机性测试方法的每个类别的各个检测项目,分别对所述m个待检测的数据子序列进行随机性检测;结合NIST标准以及最新研究成果,本发明将随机性测试方法归纳为下述8类、共16个测试项目:
[0056] A、频数检验:作为检测速度最快的基本检验,应首先进行该频数检验,以节省时间;只有通过频数检验后,再顺序执行其他检验;该检验目的是检测比特序列中的0、1的个数是否均匀分布,设有下述分别从不同角度检测比特序列中的0、1分布情况的六个测试项:
[0057] A1、单比特频数检验:检验每个比特序列中的0和1的个数是否相等,对于每个随机性好的比特序列,其中的每一位比特都应服从二值分布,即0和1的出现概率都为0.5;当检测的比特序列的单比特位长足够大时,其统计值应符合标准正态分布;
[0058] A2、块内频数检验:检验待检测序列的x位子序列中1的个数是否是x/2,因随机序列中任意长度的x位子序列中的1的个数都应该是x/2,故该检验是检验待检测的x位子序列中的1的比例偏离1/2的程度;具体方法是:将待检测序列划分成为各自长度均为x的N个子序列块,则该待检测序列长度n为Nx,再丢弃该待检测序列长度n不能被x整除的多余位,然后将所有N个子序列块中比特位为1的比例累加之和作为统计值,该统计值应服2
从自由度为N的χ 分布;其中,待检测序列长度n和子序列块长度x应分别不小于100和
20;且n和x的数值应满足:x>0.01×n,且N<100,以保证计算准确;
[0059] 当x=1时,块内频数检验等价于频数检验;
[0060] A3、重叠子序列检验:选取待检测序列中可重叠的子序列,判定其中00、01、10和11的二进制序列的数量是否近似相等;如果该待检测序列长度足够长,则统计值应接近或
2
符合自由度为2的χ 分布;在一般情况时,该检验是检测待检测序列中x位可重叠子序列的每种模式的个数是否相等;因随机比特序列有均匀性,它的x位可重叠子序列的每种模式的出现机会均等,即其x位子序列的每种模式个数应该相等,即序列长度n和子序列长度x应满足不等式
[0061] A4、扑克检验:比特位长为任意正整数x的二进制序列有2x种可能,将n比特位长的待检测序列分成 个位长为x的非叠加的子序列,ni是其中序号为第i种子序列类x型的个数;该检验用来检测该2 种子序列类型个数是否相等;
[0062] 当x=1时,扑克检验等价于频数检验,其统计量 应x 2
服从自由度为2-1的χ 分布,式中,序列长度n和子序列长度x的取值必须满足不等式[0063] A5、二元推导:检测由待检测的初始序列生成的一个新的推导序列的随机性,进而判断初始数据序列的随机性;其中,第1次二元推导序列是依次将初始序列中的2个相邻比特执行异或操作得到的一个长度为(n-1)的二元数据序列;第k次二元推导数据序列是成功执行上述操作共k次得到的一个长度为(n-k)的二元数据序列;该检测目的是判定第k次二元推导序列中0和1的个数是否趋近一致,如果趋近一致,则待检测的初始数据序列通过该检测;否则,未通过该检测;其中,n是初始序列长度;
[0064] A6、近似熵检验:与重叠子序列检验相同,也是检验x位可重叠子序列的模式;但是后者是检验m位可重叠子序列模式的频数,近似熵检验是通过比较x位和(x+1)位的两个可重叠子序列模式的频数来评价其随机性;
[0065] 近似熵给出了当子序列长度x增加1时,x位和(x+1)位的两个可重叠子序列模式之间的频数的差异数值;根据随机性的特点,近似熵值小,说明待检测序列有规则性和连续性;近似熵值大表明待检测序列有不规则性和不连续性;
[0066] 对于任意的x比特位,能够得到其不规则的随机序列的近似熵应近似等于log 2,x 2其统计量应服从自由度为2 的χ 分布;其中,待检测序列长度n和子序列长度x必须满足不等式
[0067] B、游程检验:所述游程是比特序列中由连续的0或1组成、并且其前导和后继元素都不同于其自身元素的一个子比特串;游程检验是检验待检测序列中的游程总数是否符合随机性要求,与游程有关的随机性统计有下述三个检测项:
[0068] B1、游程检验:检验待检测序列中的游程总数是否符合随机性要求;先观测序列的游程数,如果该序列中的游程数太少,则该序列存在成群趋向,即0或1总是成群出现;如果该序列的游程数过多,则该序列有混合趋向,即0和1总是交替出现;故只有游程数处于适宜数值时,该序列才有随机性,其统计量符合标准正态分布;
[0069] B2、块内最大游程检验:将序列划分为N个等长的子块,根据各个子块中最大1游程的分布来评价待检测序列的随机性;如果最大1游程的分布不规则,则最大0游程的分布也不规则,故只检验最大1游程;其统计量应该服从自由度为K的χ2分布;
[0070] B3、游程分布检验:如果比特流是随机的,则相同长度序列中游程的数目趋近一致;每个随机的n比特序列中长度为i的子比特序列或间断数目的期望值为ei=(n-i+3)/2i+2,其统计值V应近似地符合自由度为(2k-2)的χ2分布:
式中,自然数i是子比特序列或间断的比特位长度,其最大
值为k,且k满足ei≤5的条件,bi,gi分别是该比特流中长度为i的子比特序列或间断的数目;
[0071] C、自相关检验:检验待检测序列与将其左移任意d位的序列的关联程度;因每个随机序列与将其左移任意位的序列都彼此独立,故其关联程度很低;用表示待检测序列与其左移d位序列之间不同的元素个数,其中,d为序列位移的比特位数;
则统计值 应服从标准正态分布N(0,1),待检测序列长度n与位移位数d
之间应分别满足下述关系: 和(n-d)>10;
[0072] D、累加和检验:将待检测序列中的各个子序列中与0的最大偏移,也就是将最大累加和与一个随机序列的最大偏移进行比较,判断待检测序列的最大偏移值;实际上,随机序列的最大偏移应接近0,故累加和不能太大,也不能太小;并根据最大偏移值来判断待检测序列的随机程度;
[0073] 将通过概率值P-value与显著性水平α进行比较,如果P-value≥α,则待检测序列通过累加和检验;否则,没有通过累加和检验,即该待检测序列是非随机序列;待检测序列长度n应不小于100;
[0074] E、矩阵秩检验:检验待检测序列中给定长度的子序列之间的线性独立性;先由待检测序列构造矩阵,然后检测该矩阵的行或列之间的线性独立性,矩阵秩的偏移程度能提供有关判断线性独立性的定量数值,从而影响对源序列随机性程度的评价;其统计量应服2
从自由度为2的χ 分布;
[0075] F、离散傅立叶检验:使用频谱方法检验待检测序列的随机性:检测待检测序列进行傅立叶变换后得到的峰值高度;根据随机性假设,该峰值高度应不超过与待检测序列长度n有关的某个门限值,否则,将其归入不正常范围;如果不正常峰值个数超过允许值,即待检测序列是非随机序列;其统计值应服从标准正态分布;
[0076] G、线性复杂度检验:用于判定为重新构造整个比特流所需的最小信息量;线性复杂度是构造一个比特流的线性反馈移位寄存器LFSR的最小长度,己知一个比特流的线性复杂度为L时,就能用2L个连续比特流来重构该整个比特流;故L必须足够大,才能不容易重构整个比特流;LFSR的递归关系是线性模2加的函数: 其中,表示模2加,系数ai∈{0,1},自然数的比特序号i的最大值是L,函数自变量t的值大于L;如果线性复杂度小,且已知2L个连续比特流,再就很可能利用递归关系重构整个二进制流,则该二进制流是不随机的;
[0077] H、压缩检验:包括下述两个检验项:
[0078] H1、通用统计检验:检验待检测序列是否能够被无损压缩,如果能够被显著压缩,则待检测序列是非随机序列,因随机序列不能被压缩;
[0079] 通用统计检验不同于前述各种检验,后者大都是检验待检测序列的某个特性,前者是检验待检测序列的综合特性,但是,前者不是后者的拼装或组合,而是采取不同的检验方法:当某个序列通过通用统计检验时,说明该序列不可压缩,该检验目的是检测待检测序列是否存在任何统计上的缺陷;
[0080] H2、Lempel-ziv压缩检验:检验待检测序列的压缩率来评价待检测序列的随机性;该检验是对待检测序列进行压缩运算,如果其压缩率和已知的理论允许最大压缩率相差大到超过了设定范围,则认为待检测序列是非随机序列;再将其统计值与标准正态分布N(0,1)比较,看其拟合程度。
[0081] 参见图2,介绍该步骤的具体操作内容(图中所示是本发明方法中的16个随机性检测项目中的每个检测项的操作步骤的流程):
[0082] (21)按照所述8类、共16个测试项的随机性测试方法依次分别对m个n比特子序列进行检测,并相应记录各个检测项的通过概率值P-value的数值;
[0083] (22)对于每个随机性测试项Ti,式中,自然数i是16个随机性检测项的序号;待测数据序列是否通过该项测试是取决于下述m个n比特子序列的测试结果:
[0084] 先计算通过概率值:如果待检测m个n比特子序列中有x个子序列的通过概率值不小于显著性水平α,则该待检测数据序列的通过概率值为 再采用统计学中的置信区间理论公式: 做出最终判断:若待检测数据序列的通过概率值 不位于置信区间内,则否定原假设,即认定该待检测数据序列未通过Ti项测试,并结束检测流程;
只有待检测数据序列的通过概率值 位于置信区间内,才认定该待检测数据序列通过Ti项测试。
[0085] 在该 步骤(22)中,若 显著 性水 平α=0.01时,它 的置 信区 间为:通过概率值 应高于0.960151。
[0086] 步骤3、分析检测结果:在执行所有的检测项目过程中,只要有其中任何一项没有通过随机性检测,就判断该待检测的二进制数据序列是非随机序列,即该待检测的数据块未加密;只有通过全部检测项目的测试,才判断该待检测的数据块经过了一定程度的加密处理。
[0087] 本发明方法已经由申请人进行了实施试验,试验的结果是成功的,实现了发明目的。