本發(fā)明涉及的是一種計算機安全領(lǐng)域的技術(shù),具體是一種基于類可分性判距的旁路區(qū)分器方法及系統(tǒng)。
背景技術(shù):
在現(xiàn)實中,密碼系統(tǒng)通常是以硬件或以硬件為表現(xiàn)形式的軟件來實現(xiàn)的,譬如:智能卡、RFID、密碼協(xié)處理器、SoC密碼芯片、密碼機等。在這些密碼系統(tǒng)的實現(xiàn)環(huán)境中,攻擊者可以觀察和測量密碼變換的能量消耗、電磁輻射等信息,利用這些額外的信息有可能實現(xiàn)比傳統(tǒng)的數(shù)學分析更有效地密碼破譯。人們通常把這種環(huán)境下的攻擊稱為“旁路攻擊(Side Channel Attack)”。旁路攻擊通常包括簡單功耗分析(SPA)和差分功耗分析(DPA)。其中DPA攻擊是通過記錄密碼設(shè)備對大量不同數(shù)據(jù)加密或解密操作時的功耗曲線,利用統(tǒng)計方法從功耗曲線中恢復(fù)出密碼設(shè)備中的密鑰,其分析效果也相對更加有效。
典型的DPA攻擊基于“分類‐判別”的思想,依據(jù)密碼算法運行時中間值的某個比特或某些比特將其對應(yīng)的功耗曲線分為若干類,再根據(jù)判別準則對這些類中功耗曲線計算判別值,依據(jù)最終得到的判別值來確定密鑰值。
傳統(tǒng)硬件工藝下,功耗泄露模型來源于每比特或每比特的翻轉(zhuǎn)消耗的功率是相同的,這通常適用于總線或寄存器的功耗泄露模型。而隨機電路工藝的改進,原有的功耗模型將可以不再適合,即,功耗模型將不再是漢明重量或漢明距離模型,因此,尋找合適的功耗模型是DPA攻擊過程中最大的難點之一;同時,有一些設(shè)備并沒有現(xiàn)成的功耗模型可以用,這類設(shè)備就無法傳統(tǒng)的DPA攻擊方法進行分析。有一些設(shè)備的功耗泄漏類型并不是固定的,若采用固定的功耗模型,在攻擊的過程中就會發(fā)生攻擊結(jié)果出現(xiàn)錯誤的情況。也就是可以不同的芯片,即使是同一批次的,其功耗模型也可能不一樣,這時候甚至都不能使用模板攻擊(在同一批次中一個芯片上做模板,在其他芯片上攻擊)。
典型DPA“分類‐判別”的思想,其優(yōu)勢在于:獨立于具體的泄露模型。能夠?qū)崿F(xiàn)通用分析,不依賴于泄露模型的先驗知識,利用判別標準檢驗各類之間的差異性。利用這種攻擊思想,能夠解決工藝變化帶來的泄露模型的不適用性。
雖然典型DPA利用“分類‐判別”的思想且獨立于具體的泄露模型,但仍然存在一些問題:1)其分析效率往往不如已經(jīng)泄露模型下的相關(guān)性分析(CPA),這是由于DPA的判別準則是差分,它僅僅利用了分類的均值。2)對于噪聲抵抗性較差別并且分析效率較低,所需要的曲線條數(shù)較CPA要更多。這加劇了原來本就耗時的功耗采集過程,對于存儲及計算資源都是極大消耗。3)典型DPA分析方法,只能利用功耗曲線上單點信息。而功耗泄露往往分布在相鄰的若干點上,在DPA方法中合理利用這些泄露點,將極大提高分析效率。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)的缺陷和不足,提出一種基于類可分性判距的旁路區(qū)分器方法及系統(tǒng),適用于所有DPA方法的應(yīng)用場景,并比DPA方法更具有通用性,解決了典型DPA判別方法信息利用單一的問題。同時,也能實現(xiàn)在DPA上的多點信息利用,提高分析效率。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
本發(fā)明涉及一種基于比特的通用差分功耗分析方法,對待測硬件輸入明文后循環(huán)執(zhí)行目標函數(shù)并采集期間產(chǎn)生的功耗曲線,對于每一個猜測子密鑰計算其中間值,對中間值按不同分類結(jié)構(gòu)進行分類后分析每種分類下的散度矩陣判據(jù),得到對應(yīng)的統(tǒng)計量曲線,并對所得到的分類結(jié)果進行組合處理,得到每個猜測子密鑰的綜合統(tǒng)計量曲線,最后根據(jù)綜合統(tǒng)計量曲線最高的峰值,該綜合統(tǒng)計量曲線所對應(yīng)的猜測子密鑰即為候選密鑰。
所述的候選密鑰其中:k為每個猜測的子密鑰,為散度矩陣判據(jù),Ci為分類結(jié)構(gòu)。
所述的分類包括:單比特分類、多比特分類以及漢明重量分類。
所述的中間值可表述為I=f(k,m),其中:k表示子密鑰,m表示明文,I表示待攻擊的中間值,f為選擇的算法操作,即DPA攻擊的目標函數(shù),該函數(shù)結(jié)構(gòu)已知。
技術(shù)效果
與現(xiàn)有技術(shù)相比,本發(fā)明利用類可分性判據(jù)來構(gòu)造DPA分析方法,該方法利用可分性判據(jù)這一統(tǒng)計量能夠擴大類與類之間的距離,使得類間的可分性變大,同時又能充分利用功耗曲線上多點信息提升DPA分析效率。
附圖說明
圖1為本發(fā)明流程圖;
圖2為本發(fā)明應(yīng)用AES加密算法功耗曲線示意圖;
圖3為J1為判據(jù)時,單點、單比特分類的分析成功率示意圖;
圖4為J2為判據(jù)時,單點、單比特分類的分析成功率示意圖;
圖5為J3為判據(jù)時,單點、單比特分類的分析成功率示意圖;
圖6為J4為判據(jù)時,單點、單比特分類的分析成功率示意圖;
圖7為J1為判據(jù)時,多點、單比特分類的分析成功率示意圖;
圖8為J2為判據(jù)時,多點、單比特分類的分析成功率示意圖;
圖9為J3為判據(jù)時,多點、單比特分類的分析成功率示意圖;
圖10為J4為判據(jù)時,多點、單比特分類的分析成功率示意圖。
具體實施方式
實施例1
本實施例涉及一種基于比特的通用差分功耗分析方法,以AES硬件實現(xiàn)為例進行說明:對于硬件實現(xiàn)的AES來說,其分析可表述成函數(shù):I=f(k,m)。由于密鑰混淆的存在,每一輪的寄存器中的中間值和當前8比特輪密鑰都關(guān)系,而其16個字節(jié)S盒是并行執(zhí)行,在功耗曲線上重疊在一起。這無形之中降低了信噪比,使得攻擊所需要的曲線條數(shù)增加,若要進行普通的DPA攻擊,必須同時大量采集功耗曲線占用較大存儲空間與計算能力。
本實施例包括以下步驟:
①隨機輸入明文m,循環(huán)執(zhí)行目標函數(shù)f,并采集功耗曲線,如圖2所示;
②根據(jù)密鑰k的每一個猜測,計算得到對應(yīng)的中間值I;
③依據(jù)中間值I選擇單比特分類、多比特分類或漢明重量分類中的任意一種,形成對應(yīng)的分類結(jié)構(gòu)Ci;
④對于不同的分類結(jié)構(gòu)Ci,進行散度矩陣判據(jù)的單點分析或多點分析;
⑤根據(jù)步驟④使用判據(jù)后得到的結(jié)果以及步驟③中不同的分類方式,采用相應(yīng)的判別結(jié)果經(jīng)過組合處理后得到的綜合統(tǒng)計量曲線中的最大值所代表的k值為候選密鑰,即其中:k為每個猜測的子密鑰,Ci為分類結(jié)構(gòu),為下面定義散度矩陣判據(jù)的任意一種:
其中tr表示求跡,SW表示類內(nèi)散度矩陣,SB表示類間散度矩陣,如圖3、圖7所示;
ii)J2=|SW|-1|SB|,其中||表示求行列式值,SW表示類內(nèi)散度矩陣,SB表示類間散度矩陣,如圖4、圖8所示;
iii)J3=tr(SW)-1tr(SB),其中tr表示求跡,SW表示類內(nèi)散度矩陣,SB表示類間散度矩陣,如圖5、圖9所示;
iv)J4=|SW|-1|ST|,其中||表示求行列式值,Sw表示類內(nèi)散度矩陣,ST表示總散度矩陣,如圖6、圖10所示。
所述的類內(nèi)散度矩陣類間散度矩陣總體散度矩陣C為分類個數(shù),其中:Δi表示每個分類,mi表示第Δi分類的均值,m表示功耗曲線的總均值,Ni表示Δi分類中功耗曲線條數(shù),P(Δi)表示Δi分類的概率及表示Δi分類中第k條功耗曲線。
步驟④中所述的單點分析,是指根據(jù)判據(jù)i)~iv)中,SW、SB與ST中所有X與m取值,均為單個功耗曲線點的向量;對應(yīng)多點分析,則均為多個功耗曲線點的向量,通過上述判據(jù)可將多點映射成單一值的統(tǒng)計量。
所述的分類包括:
a.如圖3~圖6所示的單比特分類:按待攻擊的中間值I的第一個比特分類分成兩類,即分成Δ1,0和Δ1,1,分別表示為第一比特為0的一類和第一比特為1的一類。
b.如圖7~圖10所示的多比特分類:按攻擊的中間值I的第若干比特分類,可分成2l類,l表示比特數(shù)。
c.漢明重量分類:按攻擊的中間值I的漢明重量進行分類。
所述的中間值可表述為I=f(k,m),其中:k表示子密鑰,m表示明文,I表示待攻擊的中間值,f為選擇的算法操作,即DPA攻擊的目標函數(shù),該函數(shù)結(jié)構(gòu)已知。
所述的組合處理是指:當進行多點分析時,進行與處理或進行或處理。
如在散度矩陣判據(jù)中選擇單比特分類,那么每個中間值I可分為兩類Δ1,0和Δ1,1對于AES中間值共有8個比特,每個比特兩類都可利用判據(jù)進行判別可得8個結(jié)果即:其中1≤r≤8,可以將這8個結(jié)果進行組合得到最終密鑰,即:
本實施例可以進一步通過以下系統(tǒng)實現(xiàn)上述方法,該系統(tǒng)包括:密鑰檢測模塊、信息分類模塊、統(tǒng)計量處理模塊以及峰值檢測模塊,其中:密鑰檢測模塊生成猜測密鑰并計算得到其對應(yīng)的中間值后輸出至信息分類模塊,信息分類模塊根據(jù)密鑰檢測模塊的中間值對分析曲線進行單比特、多比特或漢明重量分類,輸出曲線分類信息至統(tǒng)計量處理模塊,統(tǒng)計量處理模塊與峰值檢測模塊相連并傳輸統(tǒng)計量信息,峰值檢測模塊根據(jù)每次的統(tǒng)計量曲線,按照預(yù)設(shè)的散度矩陣判據(jù)計算綜合統(tǒng)計量曲線及總統(tǒng)計量曲線的峰值并輸出至密鑰檢測模塊,密鑰檢測模塊根據(jù)猜測猜測密鑰的中間值以及峰值檢測模塊返回的峰值進行對比并獲得正確的猜測密鑰;
所述的統(tǒng)計量信息包括:功耗曲線、分類信息以及每種分類下功耗曲線的統(tǒng)計量。
上述具體實施可由本領(lǐng)域技術(shù)人員在不背離本發(fā)明原理和宗旨的前提下以不同的方式對其進行局部調(diào)整,本發(fā)明的保護范圍以權(quán)利要求書為準且不由上述具體實施所限,在其范圍內(nèi)的各個實現(xiàn)方案均受本發(fā)明之約束。