王 超,溫 濤,段冉陽(yáng)
(中國(guó)電子信息產(chǎn)業(yè)集團(tuán)有限公司第六研究所,北京 100083)
近年來(lái),我國(guó)信息化建設(shè)步伐不斷加快,移動(dòng)通信系統(tǒng)、衛(wèi)星通信系統(tǒng)和物聯(lián)網(wǎng)系統(tǒng)飛速發(fā)展,這些系統(tǒng)中的敏感信息需要密碼技術(shù)來(lái)保證信息安全。盡管密碼安全并不等于信息安全,但是如果沒(méi)有密碼安全,對(duì)整個(gè)系統(tǒng)安全而言將是災(zāi)難性的。因此,從這個(gè)角度來(lái)看,密碼安全是信息安全的基石,研究密碼安全對(duì)信息安全具有重要意義。
對(duì)輸出的序列進(jìn)行隨機(jī)性檢測(cè)[1-3]是評(píng)價(jià)密碼安全的一個(gè)重要手段。美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(National Institute of Standards and Technology,NIST)發(fā)布的NIST統(tǒng)計(jì)檢測(cè)程序sts-2.1.2(The NIST Statistical Test Suite)[4],包括15種隨機(jī)性檢測(cè)方法和9種偽隨機(jī)數(shù)生成器。15種隨機(jī)性檢測(cè)方法[5-6]分別從不同的角度刻畫輸出序列的偽隨機(jī)性質(zhì)。
本文首先介紹NIST統(tǒng)計(jì)檢測(cè)程序,然后闡述NIST統(tǒng)計(jì)檢測(cè)程序的不足以及如何改進(jìn)。這些改進(jìn)包括增加容忍度概念,從而擴(kuò)展檢測(cè)程序框架;增加統(tǒng)計(jì)量T,從而非重疊模板匹配檢驗(yàn)輸出唯一結(jié)論。
檢測(cè)密碼算法輸出序列的隨機(jī)性,即檢驗(yàn)其是否真隨機(jī)或與真隨機(jī)之間的差距,通常采用統(tǒng)計(jì)學(xué)中假設(shè)檢驗(yàn)方法。
首先,視密碼算法輸出序列為二進(jìn)制序列,是僅由0、1組成的二元序列,進(jìn)行隨機(jī)性假設(shè)。假設(shè)該序列是隨機(jī)的,這個(gè)假設(shè)稱為源假設(shè)或零假設(shè),記為H0。與源假設(shè)相反的假設(shè),即這個(gè)序列是不隨機(jī)的,稱為備擇假設(shè),記為H1。已知真隨機(jī)序列上構(gòu)造出的某統(tǒng)計(jì)量符合某一特定分布,那么通過(guò)源假設(shè),即假設(shè)二元序列是隨機(jī)的,可知此二元序列的這個(gè)樣本統(tǒng)計(jì)量也應(yīng)該服從這個(gè)特定分布。分布可以是均勻分布、開方分布等。
其次,每一個(gè)檢驗(yàn)可能犯兩種類型的錯(cuò)誤,如表1所示。
在樣本容量固定時(shí),犯這兩類錯(cuò)誤的概率是相互制約的,無(wú)法使得它們同時(shí)盡可能地小。在檢驗(yàn)中錯(cuò)誤地判斷某一個(gè)隨機(jī)序列為非隨機(jī)序列的概率(即表1中的第一類錯(cuò)誤概率),稱為顯著性水平,用a來(lái)表示。
表1 統(tǒng)計(jì)檢驗(yàn)錯(cuò)誤概率
判斷源假設(shè)成立的方法有2類:門限值方法和Pvalue方法。
門限值方法:按指定的顯著性水平a,查指定分布的分位數(shù)表,得到臨界值,確定拒絕域。計(jì)算二元序列的樣本統(tǒng)計(jì)量,如果統(tǒng)計(jì)量落入源假設(shè)的拒絕域,則拒絕H0,否則接受H0。
Pvalue方法:Pvalue值為1代表完全隨機(jī)序列,值為0代表完全非隨機(jī)序列。于是,若Pvalue≥a,則接受H0,否則拒絕H0。
一般直接與假設(shè)總體分布對(duì)照時(shí)使用門限值方法,而與補(bǔ)余誤差函數(shù)(Complementary Error Function)、不完全伽馬函數(shù)(Incomplete Gamma Function)對(duì)照時(shí)使用Pvalue方法。NIST統(tǒng)計(jì)檢測(cè)程序采用Pvalue方法。
顯著性水平a通常取值為0.1,0.05,0.01,0.005,NIST統(tǒng)計(jì)檢測(cè)程序中顯著性水平的缺省值為0.01。
NIST發(fā)布的NIST統(tǒng)計(jì)檢測(cè)程序sts-2.1.2,包含頻數(shù)檢驗(yàn)、塊內(nèi)頻數(shù)檢驗(yàn)、游程檢驗(yàn)、塊內(nèi)最長(zhǎng)游程檢驗(yàn)、二元矩陣秩檢驗(yàn)、離散傅里葉檢驗(yàn)、非重疊模板匹配檢驗(yàn)、重疊模板匹配檢驗(yàn)、Maurer通用檢驗(yàn)、線性復(fù)雜度檢驗(yàn)、重疊子序列檢驗(yàn)、近似熵檢驗(yàn)、累加和檢驗(yàn)、隨機(jī)游動(dòng)檢驗(yàn)、隨機(jī)游動(dòng)狀態(tài)頻數(shù)檢驗(yàn),共計(jì)15種隨機(jī)性檢測(cè)方法。
(1)頻數(shù)檢驗(yàn)
單比特頻數(shù)檢驗(yàn)簡(jiǎn)稱為頻數(shù)檢驗(yàn),是觀測(cè)1在二元序列中所占的比例,考查其是否與真隨機(jī)序列中的1所占比例近似相同。1在真隨機(jī)序列中占比為1/2。頻數(shù)檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度和二元序列本身。檢驗(yàn)過(guò)程中使用了補(bǔ)余誤差函數(shù)。頻數(shù)檢驗(yàn)要求二元序列比特長(zhǎng)度至少為100。
(2)塊內(nèi)頻數(shù)檢驗(yàn)
塊內(nèi)頻數(shù)檢驗(yàn)是觀測(cè)1在所有非重疊M比特長(zhǎng)子序列(稱為塊)中所占的比例,真隨機(jī)序列中占比為M/2。塊內(nèi)頻數(shù)檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度、分組比特長(zhǎng)度M和二元序列本身。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。塊內(nèi)頻數(shù)檢驗(yàn)要求二元序列比特長(zhǎng)度至少為100,分組比特長(zhǎng)度至少為20且分組比特長(zhǎng)度大于二元序列比特長(zhǎng)度的1%。從而分組的塊數(shù)(即二元序列的比特長(zhǎng)度/分組比特長(zhǎng)度M向下取整)小于100。
(3)游程檢驗(yàn)
游程檢驗(yàn)是觀測(cè)二元序列中游程(即0游程和1游程)總數(shù)是否與相應(yīng)真隨機(jī)序列游程總數(shù)接近。0游程是指二元序列中由連續(xù)的0組成的子序列,并且此子序列的前導(dǎo)與后繼元素都是1;1游程是指二元序列中由連續(xù)的1組成的子序列,并且此子序列的前導(dǎo)與后繼元素都是0。游程檢驗(yàn)展示了二元序列中0游程和1游程之間的距離(即振幅)與真隨機(jī)序列相比是否太大或太小。游程檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度和二元序列本身。檢驗(yàn)過(guò)程中使用了補(bǔ)余誤差函數(shù)。游程檢驗(yàn)要求二元序列比特長(zhǎng)度至少為100。
(4)塊內(nèi)最長(zhǎng)游程檢驗(yàn)
塊內(nèi)最長(zhǎng)游程檢驗(yàn)是觀測(cè)非重疊M比特長(zhǎng)塊中最長(zhǎng)游程長(zhǎng)度是否與真隨機(jī)序列中最長(zhǎng)游程長(zhǎng)度近似致。塊內(nèi)最長(zhǎng)游程檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度、分組比特長(zhǎng)度M和二元序列本身。其中分組比特長(zhǎng)度M由預(yù)設(shè)算法決定,即當(dāng)二元序列比特長(zhǎng)度小于6 272時(shí)取值為8,當(dāng)小于750 000時(shí)取值為128,當(dāng)大于等于750 000時(shí)取值為10 000。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。塊內(nèi)最長(zhǎng)游程檢驗(yàn)要求二元序列比特長(zhǎng)度至少為128。
(5)二元矩陣秩檢驗(yàn)
二元矩陣秩檢驗(yàn)是觀測(cè)二元序列中分離子矩陣的秩是否與真隨機(jī)序列的情況接近。二元矩陣秩檢驗(yàn)的參數(shù)包括二元序列的比特長(zhǎng)度和二元序列本身。NIST統(tǒng)計(jì)檢測(cè)程序中約定子矩陣為32行32列。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。二元矩陣秩檢驗(yàn)要求二元序列比特長(zhǎng)度至少為38 912(38×子矩陣行數(shù)×子矩陣列數(shù))。
(6)離散傅里葉檢驗(yàn)
離散傅里葉檢驗(yàn)是觀測(cè)二元序列進(jìn)行離散傅里葉變換后峰值的數(shù)目是否與真隨機(jī)序列的情況接近。離散傅里葉檢驗(yàn)的參數(shù)包括二元序列的比特長(zhǎng)度和二元序列本身。檢驗(yàn)過(guò)程中使用了補(bǔ)余誤差函數(shù)。離散傅里葉檢驗(yàn)要求二元序列比特長(zhǎng)度至少為1 000。
(7)非重疊模板匹配檢驗(yàn)
非重疊模板匹配檢驗(yàn),是觀測(cè)二元序列中與預(yù)先指定的m(m取值為9或10,本文采用9)比特長(zhǎng)非周期二元序列匹配次數(shù)是否與真隨機(jī)序列的情況接近。這樣的m比特長(zhǎng)非周期二元序列有多個(gè),由模板定義,NIST統(tǒng)計(jì)檢測(cè)程序中指定148組9比特二元序列。非重疊是指當(dāng)發(fā)現(xiàn)匹配序列后,檢測(cè)窗口跳至匹配序列整體之后再繼續(xù)檢測(cè)。非重疊模板匹配檢驗(yàn)的參數(shù)包括二元序列的比特長(zhǎng)度和二元序列本身。本文的非重疊模板匹配檢驗(yàn)由148個(gè)子檢驗(yàn)組成。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。NIST統(tǒng)計(jì)檢測(cè)程序中約定分組塊數(shù)N=8,分組比特長(zhǎng)度M=n/N。
(8)重疊模板匹配檢驗(yàn)
重疊模板匹配檢驗(yàn)是觀測(cè)二元序列中與預(yù)先指定的m比特長(zhǎng)非周期二元序列(NIST統(tǒng)計(jì)檢測(cè)程序中約定為m個(gè)比特1)匹配次數(shù)是否與真隨機(jī)序列的情況接近。重疊是指當(dāng)發(fā)現(xiàn)匹配序列后,檢測(cè)窗口跳移至下一比特,然后繼續(xù)檢測(cè)。重疊模板匹配檢驗(yàn)的參數(shù)包括二元序列的比特長(zhǎng)度和二元序列本身。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。重疊模板匹配檢驗(yàn)中每一個(gè)模板的比特長(zhǎng)度m取值為9或10(本文采用9),二元序列比特長(zhǎng)度至少為106,NIST統(tǒng)計(jì)檢測(cè)程序中約定自由度K=5(考查0次、1次、…、5次及以上,共6類),分組比特長(zhǎng)度M=1 032,分組的塊數(shù)N=n/M。
(9)Maurer通用檢驗(yàn)
Maurer通用檢驗(yàn)是考查二元序列在沒(méi)有信息損失的條件下能否進(jìn)行顯著壓縮。真隨機(jī)序列不能被顯著壓縮。Maurer通用檢驗(yàn)的參數(shù)包括二元序列的比特長(zhǎng)度和二元序列本身,內(nèi)部分組長(zhǎng)度L、初始分組數(shù)Q、檢測(cè)分組數(shù)K由算法依據(jù)二元序列的比特長(zhǎng)度計(jì)算得到。檢驗(yàn)過(guò)程中使用了補(bǔ)余誤差函數(shù)。Maurer通用檢驗(yàn)要求二元序列比特長(zhǎng)度至少為387 840。
(10)線性復(fù)雜度檢驗(yàn)
線性復(fù)雜度檢驗(yàn)是觀測(cè)二元序列對(duì)應(yīng)的線性反饋移位寄存器(LFSR)的長(zhǎng)度(稱為線性復(fù)雜度)是否足夠大。真隨機(jī)序列的線性復(fù)雜度較大。線性復(fù)雜度檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度、分組比特長(zhǎng)度M和二元序列本身。NIST統(tǒng)計(jì)檢測(cè)程序中約定自由度K=6。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。線性復(fù)雜度檢驗(yàn)中二元序列比特長(zhǎng)度至少為106,分組比特長(zhǎng)度M介于500與5 000之間,本文取M=500。
(11)重疊子序列檢驗(yàn)
重疊子序列檢驗(yàn)是觀測(cè)二元序列中m比特長(zhǎng)重疊子序列每一種模式(共2m種)的出現(xiàn)次數(shù)是否接近。真隨機(jī)序列中各模式出現(xiàn)次數(shù)是近似一樣的。重疊子序列檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度n、分組比特長(zhǎng)度M和二元序列本身。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。重疊子序列檢驗(yàn)中m+2小于log2n向下取整。本文取n=106,m=16。
(12)近似熵檢驗(yàn)
近似熵檢驗(yàn)是觀測(cè)二元序列中m比特長(zhǎng)重疊子序列每一種模式(共2m種)的出現(xiàn)次數(shù)與m+1比特長(zhǎng)重疊子序列每一種模式的出現(xiàn)次數(shù)之間的關(guān)系。近似熵檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度n、分組比特長(zhǎng)度M和二元序列本身。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。近似熵檢驗(yàn)中m+5小于log2n向下取整。本文取n=106,m=12。
(13)累加和檢驗(yàn)
累加和檢驗(yàn)首先將二元序列中0映射為-1,1映射為1,然后正序或逆序依次計(jì)算累加和,觀測(cè)整個(gè)過(guò)程中正序或逆序的累加和最大值(統(tǒng)稱為最大偏移),最后考查累加和最大值是否過(guò)大。真隨機(jī)序列的累加和最大值接近0。累加和檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度n和二元序列本身。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。累加和檢驗(yàn)中二元序列比特長(zhǎng)度至少為100。
(14)隨機(jī)游動(dòng)檢驗(yàn)
隨機(jī)游動(dòng)檢驗(yàn),首先將二元序列中0映射為-1,1映射為1,然后正序依次計(jì)算累加和,在累加和組成的序列中首尾添加0組成新序列,0將新序列分割成數(shù)段。約定自由度K=8,即累加和劃分為-4(含<-4)、-3、-2、-1、1、2、3、4(含>4),共8類。最后記錄每一段內(nèi)各個(gè)累加和分類的出現(xiàn)次數(shù),并考查其與真隨機(jī)序列情況是否類似。隨機(jī)游動(dòng)檢驗(yàn)由K個(gè)子檢驗(yàn)組成,隨機(jī)游動(dòng)檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度n和二元序列本身。檢驗(yàn)過(guò)程中使用了不完全伽馬函數(shù)。隨機(jī)游動(dòng)檢驗(yàn)中二元序列比特長(zhǎng)度至少為106。
(15)隨機(jī)游動(dòng)狀態(tài)頻數(shù)檢驗(yàn)
隨機(jī)游動(dòng)狀態(tài)頻數(shù)檢驗(yàn),首先將二元序列中0映射為-1,1映射為1,然后正序依次計(jì)算累加和。約定自由度K=18,即累加和劃分為-9(含<-9)、-8、…、-1、1、…、8、9(含>9),共18類。最后記錄各個(gè)累加和分類的出現(xiàn)次數(shù),并考查其與真隨機(jī)序列情況是否類似。隨機(jī)游動(dòng)狀態(tài)頻數(shù)檢驗(yàn)由K個(gè)子檢驗(yàn)組成,隨機(jī)游動(dòng)狀態(tài)頻數(shù)檢驗(yàn)的參數(shù)是二元序列的比特長(zhǎng)度n和二元序列本身。檢驗(yàn)過(guò)程中使用了補(bǔ)余誤差函數(shù)。隨機(jī)游動(dòng)狀態(tài)頻數(shù)檢驗(yàn)中二元序列比特長(zhǎng)度至少為106。
NIST統(tǒng)計(jì)檢測(cè)程序存在的不足和相應(yīng)改進(jìn)如下:
(1)檢測(cè)結(jié)果存儲(chǔ)于多個(gè)文件之中
NIST統(tǒng)計(jì)檢測(cè)程序的檢測(cè)結(jié)果存儲(chǔ)于多個(gè)文件之中,不方便觀察。本文通過(guò)增加標(biāo)識(shí),將數(shù)十個(gè)日志文件整合至一個(gè)日志文件,便于檢索。同時(shí)增加顯示級(jí)別控制,根據(jù)詳細(xì)、摘要、報(bào)警等不同需求,智能顯示內(nèi)容。
(2)基于傳統(tǒng)的命令行方式交互
本文裁剪命令行交互功能,增加讀配置文件方式實(shí)現(xiàn)參數(shù)自動(dòng)讀入功能,從而支持對(duì)多套參數(shù)進(jìn)行檢測(cè),為支持自動(dòng)化功能奠定基礎(chǔ)。
(3)不支持自動(dòng)化功能
NIST統(tǒng)計(jì)檢測(cè)程序的檢測(cè)結(jié)果需人工觀察日志文件,缺少自動(dòng)化功能。本文通過(guò)遞歸返回檢測(cè)結(jié)果,自動(dòng)判斷源假設(shè)是否成立,實(shí)現(xiàn)自動(dòng)化功能。同時(shí),為支持批量檢測(cè)功能提供支撐。
(4)不支持批量檢測(cè)功能
待檢測(cè)序列由密碼算法加載偽隨機(jī)產(chǎn)生的密鑰和初始向量產(chǎn)生,為降低密鑰和初始向量的選取對(duì)密碼算法輸出檢驗(yàn)判斷產(chǎn)生的影響,需要進(jìn)行多次檢測(cè),并給出整體結(jié)論,即檢測(cè)程序需要支持批量檢測(cè)功能。
下面以AES算法進(jìn)行頻數(shù)檢驗(yàn)和塊內(nèi)頻數(shù)檢驗(yàn)為例,說(shuō)明容忍度的意義。
給定容忍度=0.02,顯著性水平=0.01。令明文長(zhǎng)度為AES的分組長(zhǎng)度,即16字節(jié),明文值為全0。使用偽隨機(jī)方式產(chǎn)生密鑰,對(duì)明文迭代使用AES算法加密,將每次AES算法加密后的密文組成一個(gè)輸出序列,輸出序列的長(zhǎng)度為10 240比特,遠(yuǎn)大于進(jìn)行頻數(shù)檢驗(yàn)和塊內(nèi)頻數(shù)檢驗(yàn)的最小長(zhǎng)度100比特。然后對(duì)此輸出序列進(jìn)行NIST統(tǒng)計(jì)檢測(cè)程序中的頻數(shù)檢驗(yàn)和塊內(nèi)頻數(shù)檢驗(yàn),分別得到一個(gè)頻數(shù)檢驗(yàn)Pvalue值和一個(gè)塊內(nèi)頻數(shù)檢驗(yàn)Pvalue值。其中,塊內(nèi)頻數(shù)檢驗(yàn)中塊長(zhǎng)度取為128比特,滿足以下要求:128>20、128>10 240/100和10 240/128<100。使用偽隨機(jī)方式反復(fù)產(chǎn)生65 536次密鑰,進(jìn)行65 536次上述頻數(shù)檢驗(yàn)和塊內(nèi)頻數(shù)檢驗(yàn)。這些檢驗(yàn)中共有645次頻數(shù)檢驗(yàn)的Pvalue小于0.01,609次塊內(nèi)頻數(shù)檢驗(yàn)的Pvalue小于0.01。因?yàn)?45/65 536<0.02,609/65 536<0.02,所以在容忍度=0.02,顯著性水平=0.01的前提下,認(rèn)為AES算法輸出的序列是隨機(jī)的。
(5)非重疊模板匹配檢驗(yàn)
考查NIST統(tǒng)計(jì)檢測(cè)程序中非重疊模板匹配檢驗(yàn),當(dāng)模板長(zhǎng)度取9時(shí),模板共有148個(gè)。因此非重疊模板匹配檢驗(yàn)共有148個(gè)子檢驗(yàn)。NIST統(tǒng)計(jì)檢測(cè)程序沒(méi)有將這148個(gè)檢驗(yàn)結(jié)果進(jìn)一步整合,如果1項(xiàng)子檢驗(yàn)不通過(guò)就認(rèn)為整體檢驗(yàn)不通過(guò),則整體檢驗(yàn)過(guò)于嚴(yán)格,ZUC流密碼算法[7]、Snow流密碼算法[8]、Sosemanuk流密碼算法[9]都不能通過(guò)這種嚴(yán)格的檢驗(yàn)。
本文構(gòu)造一個(gè)統(tǒng)計(jì)量如下:
T=
通過(guò)148個(gè)子檢驗(yàn)結(jié)果衡量整體非重疊模板匹配檢驗(yàn)。其中t1為1項(xiàng)子檢驗(yàn)失敗次數(shù),t2為2項(xiàng)子檢驗(yàn)失敗次數(shù),…,t6為6項(xiàng)及6項(xiàng)以上子檢驗(yàn)失敗次數(shù)。此統(tǒng)計(jì)量體現(xiàn)了子檢驗(yàn)失敗次數(shù)越多越嚴(yán)重。
下面分別對(duì)ZUC流密碼算法、Snow流密碼算法、Sosemanuk流密碼算法和AES分組密碼算法進(jìn)行非重疊模板匹配檢驗(yàn),其中二元序列比特長(zhǎng)度為106,模板的比特長(zhǎng)度為9,檢驗(yàn)次數(shù)為1 024,檢驗(yàn)結(jié)果如表2所示。從表中最后一列值可以看出統(tǒng)計(jì)量的設(shè)計(jì)是合理的。
表2 非重疊模板匹配檢驗(yàn)統(tǒng)計(jì)量表
(6)其他優(yōu)化
裁剪NIST統(tǒng)計(jì)檢測(cè)程序中偽隨機(jī)數(shù)生成器功能,增加基于除法電路的線性反饋移位寄存器。相較于NIST統(tǒng)計(jì)檢測(cè)程序中復(fù)雜的偽隨機(jī)數(shù)生成器,線性反饋移位寄存器的輸出具有易于理論推導(dǎo)的更簡(jiǎn)單形式和更良好的統(tǒng)計(jì)學(xué)特性[10],適合用于本文中密鑰和初始向量的隨機(jī)性構(gòu)造。
本文首先詳細(xì)介紹NIST統(tǒng)計(jì)檢測(cè)程序,并描述了其存在的不足,然后以AES算法進(jìn)行多次頻數(shù)檢驗(yàn)和塊內(nèi)頻數(shù)檢驗(yàn)為例,闡述了引入容忍度的意義,最后以ZUC流密碼算法、Snow流密碼算法、Sosemanuk流密碼算法和AES分組密碼算法為例,實(shí)驗(yàn)證明了本文構(gòu)造的T統(tǒng)計(jì)量是合理的,從而進(jìn)行非重疊模板匹配檢驗(yàn)后,可得出唯一結(jié)論。