基于比特的通用差分功耗分析方法及系統(tǒng)的制作方法
【專利摘要】一種基于比特的通用差分功耗分析方法及系統(tǒng),對于多個猜測子密鑰中的每一個計(jì)算其中間值,并對中間值的每個比特位進(jìn)行通用DPA攻擊,采用類可分性判據(jù)對得到每個比特位對應(yīng)的功耗曲線進(jìn)行分類,計(jì)算每種分類下功耗曲線的統(tǒng)計(jì)量,得到對應(yīng)于每個比特的統(tǒng)計(jì)量曲線,并對所得到的八次分類結(jié)果進(jìn)行組合處理,得到每個猜測子密鑰的綜合統(tǒng)計(jì)量曲線,最后根據(jù)綜合統(tǒng)計(jì)量曲線最高的單點(diǎn)峰值,該綜合統(tǒng)計(jì)量曲線所對應(yīng)的猜測子密鑰即為正確子密鑰;本發(fā)明適用于所有DPA方法的應(yīng)用場景,并比DPA方法更具有通用性,也彌補(bǔ)了其它的一些通用DPA方法的不足之處。
【專利說明】
基于比特的通用差分功耗分析方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及的是一種計(jì)算機(jī)安全領(lǐng)域的技術(shù),具體是一種基于比特的通用差分功 耗分析方法及系統(tǒng)。
【背景技術(shù)】
[0002] 在現(xiàn)實(shí)中,密碼系統(tǒng)通常是以硬件或以硬件為表現(xiàn)形式的軟件來實(shí)現(xiàn)的,譬如:智 能卡、RFID、密碼協(xié)處理器、SoC密碼芯片、密碼機(jī)等。在這些密碼系統(tǒng)的實(shí)現(xiàn)環(huán)境中,攻擊者 可以觀察和測量密碼變換的能量消耗、電磁輻射等信息,利用這些額外的信息有可能實(shí)現(xiàn) 比傳統(tǒng)的數(shù)學(xué)分析更有效地密碼破譯。人們通常把這種環(huán)境下的攻擊稱為"旁路攻擊(Side Channel Attack)"。旁路攻擊通常包括簡單功耗分析(SPA)和差分功耗分析(DPA)。其中DPA 攻擊是通過記錄密碼設(shè)備對大量不同數(shù)據(jù)加密或解密操作時(shí)的功耗曲線,利用統(tǒng)計(jì)方法從 功耗曲線中恢復(fù)出密碼設(shè)備中的密鑰,其分析功能也相對更加有效。
[0003] DPA攻擊中,通常需要當(dāng)一種功耗泄露模型,例如漢明重量模型或漢明距離模型, 這種當(dāng)?shù)脑硎牵寒?dāng)每比特或每比特的翻轉(zhuǎn)消耗的功率是相同的,它們通常適用于總線或 寄存器的功耗泄露模型。但是,一般的DPA方法存在如下幾個不足:1)功耗模型必須和真實(shí) 的泄漏相匹配,否則就無法成功攻擊。隨機(jī)電路工藝的改進(jìn),原有的功耗模型將可以不再適 合,即,功耗模型將不再是漢明重量或漢明距離模型,因此,尋找合適的功耗模型是DPA攻擊 過程中最大的難點(diǎn)之一;2)有一些設(shè)備并沒有現(xiàn)成的功耗模型可以用,這類設(shè)備就無法對 傳統(tǒng)的DPA攻擊方法進(jìn)行分析。例如,公鑰的某些實(shí)現(xiàn);3)有一些設(shè)備的功耗泄漏類型并不 是固定的,若采用固定的功耗模型,在攻擊的過程中就會發(fā)生攻擊結(jié)果出現(xiàn)錯誤的情況。也 就是可以不同的芯片,即使是同一批次的,其功耗模型也可能不一樣,這時(shí)候甚至都不能使 用模板攻擊。
[0004] 通用DPA就是針對DPA攻擊中的問題提出的攻擊方法,它不使用任何的功耗模型, 只根據(jù)不同的中間值產(chǎn)生不同的功耗來進(jìn)行區(qū)分,具有通用的特性。在通用DPA中,通常是 把中間值按值來分類,具體為:一個字節(jié),即8比特的中間值,按值分類就是把它們分成2 8 = 256類。但如果密鑰與中間值是一對一的關(guān)系的,通用DPA則因?yàn)闊o法區(qū)分真假密鑰猜測下 的統(tǒng)計(jì)特性,而使得攻擊無法成功。
[0005] 目前提出的通用DPA有很多種:包括MIA,LR-based DPA等等。但是對于通用DPA也 存在一定的問題:1)通用DPA在抗噪聲能力不如傳統(tǒng)的DPA攻擊方法;2)對于像AES這種中間 值和對應(yīng)的輸入之間是一對一關(guān)系的情況,通用DPA被證明無法成功攻擊;3)計(jì)算復(fù)雜度變 高,使得不太實(shí)用。例如,MIA需要計(jì)算密度函數(shù),這將大大提高其計(jì)算復(fù)雜度,消耗計(jì)算資 源。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明針對現(xiàn)有技術(shù)大部分基于漢明重量的功耗(能量)模型,無法解決非漢明重 量下的能量攻擊等缺陷和不足,提出一種基于比特的通用差分功耗分析方法及系統(tǒng),適用 于所有DPA方法的應(yīng)用場景,并比DPA方法更具有通用性,也彌補(bǔ)了其它的一些通用DPA方法 的不足之處。
[0007] 本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0008] 本發(fā)明涉及一種基于比特的通用差分功耗分析方法,對于多個猜測子密鑰中的每 一個計(jì)算其中間值,并對中間值的每個比特位進(jìn)行通用DPA攻擊,采用類可分性判據(jù)對得到 每個比特位對應(yīng)的功耗曲線進(jìn)行分類,計(jì)算每種分類下功耗曲線的統(tǒng)計(jì)量,得到對應(yīng)于每 個比特的統(tǒng)計(jì)量曲線,并對所得到的八次分類結(jié)果進(jìn)行組合處理,得到每個猜測子密鑰的 綜合統(tǒng)計(jì)量曲線,最后根據(jù)綜合統(tǒng)計(jì)量曲線最高的單點(diǎn)峰值,該綜合統(tǒng)計(jì)量曲線所對應(yīng)的 猜測子密鑰即為正確子密鑰。
[0009] 所述的正確子密銩
> 其中:Ω〇表示比特〇所對 應(yīng)的分類曲線集,Ω 1表示比特1所對應(yīng)的分類曲線集,Nip表示曲線的點(diǎn)數(shù),JQ)( Ω 〇, Ω ^表 示對第j個比特應(yīng)用J判據(jù)的值。
[0010] 所述的分類是指:按待攻擊的中間值I的第一個比特分類分成兩類,即分成〇1>0和 Ω ι,ι,分別表不為第一比特為〇的一類和第一比特為1的一類。
[0011] 所述的統(tǒng)計(jì)量包括但不限于兩類曲線之間的統(tǒng)計(jì)距離。
[0012] 所述的中間值的模型為I = f(k,m),其中:k表示子密鑰,m表示明文,I表示待攻擊 的中間值,f為選擇的算法操作,即DPA攻擊的目標(biāo)函數(shù),該中間值滿足:
[0013] 1)中間值的每一比特都與子密鑰的每比特相關(guān);
[0014] 2)中間值的每一比特都是獨(dú)立且是均勻分布的。
[0015]所述的組合處理是指:當(dāng)每個比特對應(yīng)的量為Result (i ),1 <8,則把所有相關(guān) 系數(shù)組合在一起,得到Result = com(Result(l),Result(2),…,Result(8)),其中:com是組 合方法。
[0016] 在組合處理時(shí),當(dāng)每個比特對應(yīng)的量為概率形式的結(jié)果時(shí),由于完成整個事件則 需要完成過程中的每個事件,因此使用與的方法;當(dāng)每個比特對應(yīng)的量為距離形式的結(jié)果 時(shí),由于總體的距離則是個體的距離之和,因此使用累加的方法,不管是概率還是距離,方 法都要求每個比特是獨(dú)立且均勻分布的。
[0017] 在組合處理時(shí),當(dāng)任一比特與另一比特完全相關(guān),即,第一比特的值決定了第二比 特的值,則在組合時(shí)只計(jì)算兩個比特之一即可。 技術(shù)效果
[0018] 與現(xiàn)有技術(shù)相比,本發(fā)明在同數(shù)量的曲線條數(shù)下,計(jì)算復(fù)雜度是一般DPA的8倍;在 漢明重量模型下本方法所需的功率曲線的條數(shù)一般要多于CPA,少于DPA,在非漢明重量模 型下CPA及DPA方法不能攻擊成功,但本方法仍然可以分析成功且受影響可能不大。
【附圖說明】
[0019] 圖1為本發(fā)明方法示意圖。
【具體實(shí)施方式】 實(shí)施例1
[0020] 本實(shí)施例涉及一種基于比特的通用差分功耗分析方法,對于多個猜測子密鑰中的 每一個計(jì)算其中間值,并對中間值的每個比特位進(jìn)行通用DPA攻擊,采用類可分性判據(jù)對得 到每個比特位對應(yīng)的功耗曲線進(jìn)行分類,計(jì)算每種分類下功耗曲線的統(tǒng)計(jì)量,得到對應(yīng)于 每個比特的統(tǒng)計(jì)量曲線,并對所得到的八次分類結(jié)果進(jìn)行組合處理,得到每個猜測子密鑰 的綜合統(tǒng)計(jì)量曲線,最后根據(jù)綜合統(tǒng)計(jì)量曲線最高的單點(diǎn)峰值,該綜合統(tǒng)計(jì)量曲線所對應(yīng) 的猜測子密鑰即為正確子密鑰。
[0021] 所述的正確子密
其中:Ω〇表示比特〇所對 應(yīng)的分類曲線集,Ω 1表示比特1所對應(yīng)的分類曲線集,Nip表示曲線的點(diǎn)數(shù),JQ)( Ω 〇, Ω ^表 示對第j個比特應(yīng)用J判據(jù)的值。
[0022] 所述的分類是指:按待攻擊的中間值I的第一個比特分類分成兩類,即分成〇1>0和 Ω ι,ι,分別表不為第一比特為〇的一類和第一比特為1的一類。
[0023]所述的統(tǒng)計(jì)量包括但不限于兩類曲線之間的統(tǒng)計(jì)距離。
[0024] 所述的中間值的模型為I = f(k,m),其中:k表示子密鑰,m表示明文,I表示待攻擊 的中間值,f為攻擊的目標(biāo)算法操作,該中間值滿足:
[0025] 1)中間值的每一比特都與子密鑰的每比特相關(guān);
[0026] 2)中間值的每一比特都是獨(dú)立且是均勻分布的。
[0027]所述的組合處理是指:當(dāng)每個比特對應(yīng)的量,例如,CPA中相關(guān)系數(shù)為Result(i ),1 <;[<8,則把所有相關(guān)系數(shù)組合在一起,得到1^811]^ = 〇〇111(1^81111:(1),1^81111:(2)廣·, Result(8)),其中,com是某種組合方法。
[0028] 在組合處理時(shí),當(dāng)每個比特對應(yīng)的量為概率形式的結(jié)果時(shí),由于完成整個事件則 需要完成過程中的每個事件,因此使用與的方法;當(dāng)每個比特對應(yīng)的量為距離形式的結(jié)果 時(shí),由于總體的距離則是個體的距離之和,因此使用累加的方法,不管是概率還是距離,方 法都要求每個比特是獨(dú)立且均勻分布的。
[0029] 所述的與的方法具體為. ^ ,, Η
[0030] 所述的累加的方法具體為
[0031] 例如一種極端的情形,當(dāng)?shù)谝槐忍嘏c第二比特完全相關(guān),即,第一比特的值決定了 第二比特的值,此時(shí),Result(l)與Result(2)就是相同的,那么,在組合結(jié)果時(shí)只需要考慮 Result( 1)或Result(2)即可。
[0032] 如圖1所示,本實(shí)施例具體包括以下步驟:
[0033] 針對單個比特的情形,通用DPA過程描述如下:
[0034] 1)猜測一個子密鑰k,并計(jì)算待攻擊的中間值I = f(k,m);
[0035] 2)根據(jù)I的每個比特位把功耗曲線按此比特對應(yīng)的0或1分成兩類〇1,〇和0 1,1;
[0036] 3)根據(jù)某種統(tǒng)計(jì)量,如兩類問題的統(tǒng)計(jì)距離,得到統(tǒng)計(jì)量曲線(即曲線上的每個點(diǎn) 是對應(yīng)分類曲線點(diǎn)的統(tǒng)計(jì)距離);
[0037] 4)每一個密鑰猜測都將得到一條統(tǒng)計(jì)量曲線,對于一階DPA攻擊,從所有的統(tǒng)計(jì)量 曲線中找到最高的單點(diǎn)峰值,其所對應(yīng)的子密鑰即為正確猜測,即
[0038]當(dāng)存在八個比特位時(shí),將八個比特位對應(yīng)的結(jié)果組合處理,即得到正確猜測的子 密f
其中:J(j)(Q〇, Ω〇表示對第j個比特應(yīng)用J判據(jù) 的值。
[0039 ]本實(shí)施例可以進(jìn)一步通過以下系統(tǒng)實(shí)現(xiàn)上述方法,該系統(tǒng)包括:密鑰檢測模塊、信 息分類模塊、統(tǒng)計(jì)量處理模塊以及峰值檢測模塊,其中:密鑰檢測模塊生成猜測密鑰并計(jì)算 得到其對應(yīng)的中間值信息后輸出至信息分類模塊,信息分類模塊根據(jù)密鑰檢測模塊的中間 值信息對分析曲線進(jìn)行分類,輸出曲線分類信息至統(tǒng)計(jì)量處理模塊,統(tǒng)計(jì)量處理模塊與峰 值檢測模塊相連并傳輸統(tǒng)計(jì)量信息,峰值檢測模塊根據(jù)每次的統(tǒng)計(jì)量曲線,計(jì)算綜合統(tǒng)計(jì) 量曲線及總統(tǒng)計(jì)量曲線的峰值并輸出至密鑰檢測模塊,密鑰檢測模塊根據(jù)猜測密鑰的中間 值以及峰值檢測模塊返回的峰值進(jìn)行對比并獲得正確的猜測密鑰。
[0040] 所述的統(tǒng)計(jì)量信息包括:功耗曲線、分類信息以及每種分類下功耗曲線的統(tǒng)計(jì)量。
[0041] 上述具體實(shí)施可由本領(lǐng)域技術(shù)人員在不背離本發(fā)明原理和宗旨的前提下以不同 的方式對其進(jìn)行局部調(diào)整,本發(fā)明的保護(hù)范圍以權(quán)利要求書為準(zhǔn)且不由上述具體實(shí)施所 限,在其范圍內(nèi)的各個實(shí)現(xiàn)方案均受本發(fā)明之約束。
【主權(quán)項(xiàng)】
1. 一種基于比特的通用差分功耗分析方法,其特征在于,對于多個猜測子密鑰中的每 一個計(jì)算其中間值,并對中間值的每個比特位進(jìn)行通用DPA攻擊,采用類可分性判據(jù)對得到 每個比特位對應(yīng)的功耗曲線進(jìn)行分類,計(jì)算每種分類下功耗曲線的統(tǒng)計(jì)量,得到對應(yīng)于每 個比特的統(tǒng)計(jì)量曲線,并對所得到的八次分類結(jié)果進(jìn)行組合處理,得到每個猜測子密鑰的 綜合統(tǒng)計(jì)量曲線,最后根據(jù)綜合統(tǒng)計(jì)量曲線最高的單點(diǎn)峰值,該綜合統(tǒng)計(jì)量曲線所對應(yīng)的 猜測子密鑰即為正確子密鑰; 所述的正確子密哲^中:Ω Q表示比特〇所對應(yīng)的 分類曲線集,Ω :表示比特1所對應(yīng)的分類曲線集,Nip表示曲線的點(diǎn)數(shù),Jw( Ω 〇, Ω d表示對 第j個比特應(yīng)用J判據(jù)的值。2. 根據(jù)權(quán)利要求1所述的基于比特的通用差分功耗分析方法,其特征是,所述的分類是 指:按待攻擊的中間值I的第一個比特分類分成兩類,即分成 Ω i,q和Ω ι,ι,分別表不為第一 比特為0的一類和第一比特為1的一類。3. 根據(jù)權(quán)利要求1所述的基于比特的通用差分功耗分析方法,其特征是,所述的統(tǒng)計(jì)量 包括兩類曲線之間的統(tǒng)計(jì)距離。4. 根據(jù)權(quán)利要求1所述的基于比特的通用差分功耗分析方法,其特征是,所述的中間值 的模型為I = f(k,m),其中:k表示子密鑰,m表示明文,I表示待攻擊的中間值,f為選擇的算 法操作,即DPA攻擊的目標(biāo)函數(shù);該中間值滿足: 1) 中間值的每一比特都與子密鑰的每比特相關(guān); 2) 中間值的每一比特都是獨(dú)立且是均勻分布的。5. 根據(jù)權(quán)利要求1~4中任一所述的基于比特的通用差分功耗分析方法,其特征是,所 述的組合處理是指:當(dāng)每個比特對應(yīng)的量為Result (i ),I Si <8,則把所有相關(guān)系數(shù)組合在 一起,得到Result = com(Result( I),Result(2),…,Result(8)),其中:com是組合方法。6. 根據(jù)權(quán)利要求5所述的基于比特的通用差分功耗分析方法,其特征是,在組合處理 時(shí),當(dāng)每個比特對應(yīng)的量為概率形式的結(jié)果時(shí),由于完成整個事件則需要完成過程中的每 個事件,因此使用與的方法;當(dāng)每個比特對應(yīng)的量為距離形式的結(jié)果時(shí),由于總體的距離則 是個體的距離之和,因此使用累加的方法。7. 根據(jù)權(quán)利要求5所述的基于比特的通用差分功耗分析方法,其特征是,在組合處理 時(shí),當(dāng)任一比特與另一比特完全相關(guān),即,第一比特的值決定了第二比特的值,則在組合時(shí) 只計(jì)算兩個比特之一即可。8. 根據(jù)權(quán)利要求6所述的基于比特的通用差分功耗分析方法,其特征是,所述的與的方 法具體為:所述的累加的方法具體為:9. 一種實(shí)現(xiàn)權(quán)利要求1~8中任一所述方法的系統(tǒng),其特征在于,密鑰檢測模塊、信息分 類模塊、統(tǒng)計(jì)量處理模塊以及峰值檢測模塊,其中:密鑰檢測模塊生成猜測密鑰并計(jì)算得到 其對應(yīng)的中間值信息后輸出至信息分類模塊,信息分類模塊根據(jù)密鑰檢測模塊的中間值信 息對分析曲線進(jìn)行分類,輸出曲線分類信息至統(tǒng)計(jì)量處理模塊,統(tǒng)計(jì)量處理模塊與峰值檢 測模塊相連并傳輸統(tǒng)計(jì)量信息,峰值檢測模塊根據(jù)每次的統(tǒng)計(jì)量曲線,計(jì)算綜合統(tǒng)計(jì)量曲
【文檔編號】H04L9/00GK105897401SQ201610452671
【公開日】2016年8月24日
【申請日】2016年6月21日
【發(fā)明人】劉軍榮, 陸海寧, 郭箏, 張馳
【申請人】上海觀源信息科技有限公司