本發(fā)明涉及側(cè)信道密碼分析技術(shù)領(lǐng)域,具體涉及一種面向側(cè)信道密碼能量跡的篩選方法及系統(tǒng)。
背景技術(shù):
密碼設(shè)備在運(yùn)行密碼算法時(shí),由于CMOS器件的能量特性總會(huì)導(dǎo)致密碼設(shè)備會(huì)泄漏與密碼算法相關(guān)的信息。如圖1所示,圖1中Alice向Bob發(fā)送數(shù)據(jù)時(shí),為了確保安全性,會(huì)先對數(shù)據(jù)明文進(jìn)行加密,此時(shí)會(huì)泄漏電磁、聲音、能量和熱量等信息,而當(dāng)Bob接收到數(shù)據(jù)后,在進(jìn)行解密的過程中,又會(huì)泄漏電磁、能量損耗、執(zhí)行時(shí)間、頻率等信息。側(cè)信道密碼分析利用這些泄漏信息并結(jié)合區(qū)分器可成功破解密碼算法的密鑰信息。
實(shí)際中,通過探針采集并用于進(jìn)行能量攻擊的能量跡總是數(shù)量多、維度高,降低了能量攻擊的效率。針對此問題,用于降低維度的方法被提出。通過能量跡矩陣的均值和方差選擇與攻擊最相關(guān)的時(shí)刻,可提高能量攻擊的效率。這種方法需要對能量跡泄漏時(shí)刻有精準(zhǔn)地確定,當(dāng)針對防護(hù)的實(shí)現(xiàn)進(jìn)行攻擊時(shí),這種方法將無法發(fā)揮其作用。此外,一種基于主成分分析的方法用于對能量跡進(jìn)行分類,這種方法借助于噪聲矩陣的第一主成分來篩選含噪聲較小的能量跡。雖然可提高攻擊效率,但針對防護(hù)的實(shí)現(xiàn)進(jìn)行攻擊時(shí)這種方法并未得到有效的驗(yàn)證。
另一方面,采集的能量跡之間會(huì)有較大的差別,篩選有用的能量跡可提高能量攻擊效率,但針對能量跡的篩選問題目前還沒有有效的解決方法。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)存在的不足和缺陷,本發(fā)明提供一種面向側(cè)信道密碼能量跡的篩選方法及系統(tǒng)。
一方面,本發(fā)明實(shí)施例提出一種面向側(cè)信道密碼能量跡的篩選方法,包括:
S1、獲取對稱密碼算法在嵌入式設(shè)備上加密時(shí)產(chǎn)生的能量跡;
S2、選取一定條數(shù)的能量跡S組成能量跡矩陣L,并構(gòu)建分解矩陣A;
S3、對分解矩陣A進(jìn)行標(biāo)準(zhǔn)化得到分解矩陣B;
S4、對分解矩陣B進(jìn)行奇異值分解得到特征值和對應(yīng)的特征向量;
S5、選擇最大特征值λ對應(yīng)的特征向量v;
S6、對組成特征向量v的元素進(jìn)行降序排列得到相應(yīng)的下標(biāo)索引排序;
S7、按著下標(biāo)索引排序選擇需要用于進(jìn)行攻擊的能量跡。
另一方面,本發(fā)明實(shí)施例提出一種面向側(cè)信道密碼能量跡的篩選系統(tǒng),包括:
獲取單元,用于獲取對稱密碼算法在嵌入式設(shè)備上加密時(shí)產(chǎn)生的能量跡;
構(gòu)建單元,用于選取一定條數(shù)的能量跡S組成能量跡矩陣L,并構(gòu)建分解矩陣A;
標(biāo)準(zhǔn)化單元,用于對分解矩陣A進(jìn)行標(biāo)準(zhǔn)化得到分解矩陣B;
分解單元,用于對分解矩陣B進(jìn)行奇異值分解得到特征值和對應(yīng)的特征向量;
第一選擇單元,用于選擇最大特征值λ對應(yīng)的特征向量v;
排列單元,用于對組成特征向量v的元素進(jìn)行降序排列得到相應(yīng)的下標(biāo)索引排序;
第二選擇單元,用于按著下標(biāo)索引排序選擇需要用于進(jìn)行攻擊的能量跡。
本發(fā)明具有如下有益效果:
通過選擇最大特征值的方式,可選擇能量跡矩陣中最有效的泄漏信號(hào)成分,而最大特征值對應(yīng)的特征向量描述了能量跡矩陣在這一方向上含有最多的信息,特征向量的每個(gè)分量對應(yīng)著每條能量跡的貢獻(xiàn),因此本發(fā)明通過對最大特征值所對應(yīng)的特征向量的元素排序的方式能夠篩選出最有效的能量跡。另外,前述已有技術(shù)中第一種方案無法對有防護(hù)策略的密碼實(shí)現(xiàn)方案進(jìn)行攻擊,第二種方案還未得到有效地驗(yàn)證。而本發(fā)明的方案不需要精確定位與攻擊最相關(guān)的時(shí)刻,通過篩選有效能量跡的方式可避免這一問題,另外篩選上并不會(huì)改變與攻擊最相關(guān)時(shí)刻的時(shí)序,經(jīng)篩選并結(jié)合現(xiàn)有的高階攻擊方法可有效地提高攻擊效率。
附圖說明
圖1為密碼設(shè)備在運(yùn)行密碼算法時(shí)泄漏的信息示意圖;
圖2為本發(fā)明面向側(cè)信道密碼能量跡的篩選方法一實(shí)施例的流程示意圖;
圖3為AES密碼算法的加密過程和攻擊點(diǎn)示意圖;
圖4為本發(fā)明面向側(cè)信道密碼能量跡的篩選系統(tǒng)一實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參看圖2,本實(shí)施例公開一種面向側(cè)信道密碼能量跡的篩選方法,包括:
S1、獲取對稱密碼算法在嵌入式設(shè)備上加密時(shí)產(chǎn)生的能量跡;
密碼算法在運(yùn)行時(shí)會(huì)產(chǎn)生瞬時(shí)的能量損耗,這些能量損耗與密碼算法內(nèi)部的運(yùn)行狀態(tài)密切相關(guān),通常的攻擊點(diǎn)選在密碼算法的第一輪,如圖3所示為AES密碼算法的加密過程和攻擊點(diǎn)。在具體應(yīng)用中,可以通過探針采集需要用于篩選的能量跡。
S2、選取一定條數(shù)的能量跡S組成能量跡矩陣L,并構(gòu)建分解矩陣A;
具體來說,可以選取用于篩選的N(如N取值為2000、5000)條能量跡S,N條能量跡S構(gòu)成能量跡矩陣M,經(jīng)過轉(zhuǎn)置后組成能量跡矩陣L。
S3、對分解矩陣A進(jìn)行標(biāo)準(zhǔn)化得到分解矩陣B;
為了消除分解矩陣A中行向量的差別,需要對分解矩陣A進(jìn)行標(biāo)準(zhǔn)化。本實(shí)施例中,對分解矩陣A進(jìn)行標(biāo)準(zhǔn)化可以按下式進(jìn)行:
其中,x表示分解矩陣A中的每一行,u為分解矩陣A所有行向量的平均值向量,σ是行向量x的標(biāo)準(zhǔn)差,z是標(biāo)準(zhǔn)化后的行向量,分解矩陣A中的每一行經(jīng)過標(biāo)準(zhǔn)化后得到分解矩陣B。
S4、對分解矩陣B進(jìn)行奇異值分解得到特征值和對應(yīng)的特征向量;
本實(shí)施例中,對分解矩陣B進(jìn)行奇異值分解可以按下式進(jìn)行:
Bv=λv,
其中,λ為奇異值分解后的特征值,v為對應(yīng)的特征向量。
S5、選擇最大特征值λ對應(yīng)的特征向量v;
本實(shí)施例中,具體可以對特征值進(jìn)行降序排序,并獲得最大的特征值和其對應(yīng)的特征向量。
S6、對組成特征向量v的元素進(jìn)行降序排列得到相應(yīng)的下標(biāo)索引排序;
S7、按著下標(biāo)索引排序選擇需要用于進(jìn)行攻擊的能量跡。
在具體應(yīng)用中,在確定需要用于進(jìn)行能量攻擊的能量跡條數(shù)下,可以按下標(biāo)索引排序選擇相同下標(biāo)索引的能量跡。比如,下標(biāo)索引排序的前5位依次為2、3、5、1、7,需要用于進(jìn)行能量攻擊的能量跡條數(shù)為3條,則可以選擇第2條、第3條和第5條能量跡作為需要用于進(jìn)行攻擊的能量跡。
由于現(xiàn)有的攻擊方案中,通常采集到的泄漏信號(hào)(能量跡)數(shù)量多、維度高,有效地選擇泄漏信號(hào)可以提高攻擊效率,但篩選的方案現(xiàn)有技術(shù)中還未提出過。該結(jié)論可通過理論證明,如能量攻擊中的相關(guān)能量攻擊方法,利用假設(shè)能量模型和真實(shí)泄漏能量信號(hào)之間的相關(guān)性關(guān)系猜測正確密鑰,相關(guān)性越高,則猜測的密鑰越有可能接近于真實(shí)密鑰。若有效能量跡的集合可表示為集合A,無較明顯特征的泄漏信號(hào)可表示為集合C,A與C的集合為通常攻擊中采集到的所有泄漏信號(hào),通過明文和能量跡的對應(yīng)關(guān)系同樣可分出對應(yīng)的假設(shè)能量模型,分別命名為集合B和集合D。數(shù)學(xué)上可證明若集合A與集合B的相關(guān)性大于集合C與D的相關(guān)性,則集合A與B的相關(guān)性要大于A并C與B并D的相關(guān)性,數(shù)學(xué)可描述為:
若Corr(A,B)>Corr(C,D),則Corr(A,B)>Corr(A:C,B:D),此處Corr代表相關(guān)性運(yùn)算,:表示集合的并集。通過這種相關(guān)性的證明說明如果泄漏信號(hào)集合中存在部分集合泄漏特征較為明顯,則可通過篩選這些部分能量跡的方法提高原始能量攻擊的攻擊效率。
通常所采集到的泄漏信號(hào)按時(shí)間順序排列可當(dāng)作一個(gè)矩陣來處理,而對一個(gè)復(fù)雜的矩陣而言通常會(huì)利用一些分解方法把復(fù)雜的矩陣變換成簡單的矩陣(如對角矩陣)。然后利用變換后的最簡矩陣分析矩陣的特征。而特征分解正是這樣一種分析方法,將復(fù)雜的矩陣分解成對角陣和特征向量,對角陣由特征值組成,這些特征值的大小說明了矩陣在這一特征值下的特征空間里含有的成分多少,即與我們需要的最有效的能量泄漏信號(hào)相關(guān)的成分有多少。通過選擇最大特征值的方式,可選擇能量跡矩陣中最有效的泄漏信號(hào)成分。最大特征值對應(yīng)的特征向量描述了能量跡矩陣在這一方向上含有最多的信息,特征向量的每個(gè)分量對應(yīng)著每條能量跡的貢獻(xiàn),因此本發(fā)明通過對最大特征值所對應(yīng)的特征向量的元素排序的方式能夠篩選出最有效的能量跡。另外,前述已有技術(shù)中第一種方案無法對有防護(hù)策略的密碼實(shí)現(xiàn)方案進(jìn)行攻擊,第二種方案還未得到有效地驗(yàn)證。而本發(fā)明的方案不需要精確定位與攻擊最相關(guān)的時(shí)刻,通過篩選有效能量跡的方式可避免這一問題,另外篩選上并不會(huì)改變與攻擊最相關(guān)時(shí)刻的時(shí)序,經(jīng)篩選并結(jié)合現(xiàn)有的高階攻擊方法可有效地提高攻擊效率。
參看圖4,本實(shí)施例公開一種面向側(cè)信道密碼能量跡的篩選系統(tǒng),包括:
獲取單元1,用于獲取對稱密碼算法在嵌入式設(shè)備上加密時(shí)產(chǎn)生的能量跡;
構(gòu)建單元2,用于選取一定條數(shù)的能量跡S組成能量跡矩陣L,并構(gòu)建分解矩陣A;
標(biāo)準(zhǔn)化單元3,用于對分解矩陣A進(jìn)行標(biāo)準(zhǔn)化得到分解矩陣B;
分解單元4,用于對分解矩陣B進(jìn)行奇異值分解得到特征值和對應(yīng)的特征向量;
本實(shí)施例中,所述分解單元4具體可以用于按下式對分解矩陣A進(jìn)行標(biāo)準(zhǔn)化:
其中,x表示分解矩陣A中的每一行,u為分解矩陣A所有行向量的平均值向量,σ是行向量x的標(biāo)準(zhǔn)差,z是標(biāo)準(zhǔn)化后的行向量,分解矩陣A中的每一行經(jīng)過標(biāo)準(zhǔn)化后得到分解矩陣B。
第一選擇單元5,用于選擇最大特征值λ對應(yīng)的特征向量v;
排列單元6,用于對組成特征向量v的元素進(jìn)行降序排列得到相應(yīng)的下標(biāo)索引排序;
第二選擇單元7,用于按著下標(biāo)索引排序選擇需要用于進(jìn)行攻擊的能量跡。
具體地,所述第二選擇單元7,可以用于在確定需要用于進(jìn)行能量攻擊的能量跡條數(shù)下,按下標(biāo)索引排序選擇相同下標(biāo)索引的能量跡。
本發(fā)明實(shí)施例所述的面向側(cè)信道密碼能量跡的篩選系統(tǒng),通過選擇最大特征值的方式,可選擇能量跡矩陣中最有效的泄漏信號(hào)成分,而最大特征值對應(yīng)的特征向量描述了能量跡矩陣在這一方向上含有最多的信息,特征向量的每個(gè)分量對應(yīng)著每條能量跡的貢獻(xiàn),因此本發(fā)明通過對最大特征值所對應(yīng)的特征向量的元素排序的方式能夠篩選出最有效的能量跡。另外,前述已有技術(shù)中第一種方案無法對有防護(hù)策略的密碼實(shí)現(xiàn)方案進(jìn)行攻擊,第二種方案還未得到有效地驗(yàn)證。而本發(fā)明的方案不需要精確定位與攻擊最相關(guān)的時(shí)刻,通過篩選有效能量跡的方式可避免這一問題,另外篩選上并不會(huì)改變與攻擊最相關(guān)時(shí)刻的時(shí)序,經(jīng)篩選并結(jié)合現(xiàn)有的高階攻擊方法可有效地提高攻擊效率。
本發(fā)明所提供的系統(tǒng)可通過MATLAB實(shí)現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。術(shù)語“上”、“下”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個(gè)元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
本發(fā)明的說明書中,說明了大量具體細(xì)節(jié)。然而能夠理解的是,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本發(fā)明公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋呈反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。本發(fā)明并不局限于任何單一的方面,也不局限于任何單一的實(shí)施例,也不局限于這些方面和/或?qū)嵤├娜我饨M合和/或置換。而且,可以單獨(dú)使用本發(fā)明的每個(gè)方面和/或?qū)嵤├蛘吲c一個(gè)或更多其他方面和/或其實(shí)施例結(jié)合使用。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。