本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種針對(duì)密碼芯片電磁脈沖故障分析的防御裝置。
背景技術(shù):
目前,各類密碼算法已經(jīng)廣泛應(yīng)用在生產(chǎn)生活的各個(gè)領(lǐng)域,包括FPGA,ASIC在內(nèi)的多種類型密碼芯片也得到了廣泛應(yīng)用。而旁路攻擊(Side Channel Attack,SCA)是一種通過(guò)觀測(cè)設(shè)備工作過(guò)程中泄露的信息來(lái)推斷設(shè)備內(nèi)部狀態(tài)的攻擊方法,對(duì)于密碼芯片來(lái)說(shuō),旁路攻擊主要用于提取密鑰等密碼參數(shù),從而使密碼芯片失去保密功能。一般情況下,一個(gè)運(yùn)行密碼算法的硬件設(shè)備均能正確地執(zhí)行各種密碼運(yùn)算,但在有干擾情況下,密碼運(yùn)算模塊可能會(huì)出現(xiàn)故障導(dǎo)致運(yùn)算錯(cuò)誤,利用這些故障行為或錯(cuò)誤信息來(lái)恢復(fù)密鑰等秘密參數(shù)的方法稱為密碼故障分析。密碼故障分析是旁路攻擊方法的一種。電磁脈沖故障分析是一種簡(jiǎn)單廉價(jià)的攻擊方式,通過(guò)外部電磁脈沖注入到芯片內(nèi)部的方式來(lái)干擾密碼芯片工作,使之執(zhí)行出錯(cuò),不需要侵入芯片,是一種具有較高可行性的攻擊方式。電磁脈沖有多種不同的表現(xiàn)形式,諸如電磁輻射(Electromagnetic Emission)和激光(Laser)。值得一提的是,激光作為一種特殊的電磁脈沖,通過(guò)鐳射高能離子束來(lái)干擾電路的電特性,已經(jīng)取得了較好的分析攻擊效果。
到目前為止,針對(duì)密碼芯片的電磁脈沖故障分析研究已經(jīng)取得了一些成果,使得傳統(tǒng)意義上認(rèn)為安全的密碼算法在實(shí)現(xiàn)上變得不再安全。為了防御針對(duì)密碼芯片的電磁脈沖故障分析,一些方法已經(jīng)提出。例如為了確保存儲(chǔ)數(shù)據(jù)的完整性,在密碼實(shí)現(xiàn)過(guò)程中,可以增加額外的循環(huán)冗余校驗(yàn)(CRC)。校驗(yàn)連同數(shù)據(jù)一起存儲(chǔ),當(dāng)數(shù)據(jù)從存儲(chǔ)器中加載時(shí),可以檢測(cè)是否被篡改,但是CRC方法不適合同編碼數(shù)據(jù)進(jìn)行高效計(jì)算,在隨后的計(jì)算中,必須采取其它方法來(lái)保障數(shù)據(jù)安全。模塊冗余也是一種直接的防御方法。模塊冗余裝置在空間上可以并行實(shí)現(xiàn),將算法執(zhí)行多次并比較結(jié)果是否一致,這種方法導(dǎo)致硬件開(kāi)銷至少增加一倍;在時(shí)間上可以重復(fù)計(jì)算,主要通過(guò)增加計(jì)算執(zhí)行次數(shù)來(lái)實(shí)現(xiàn),這種方法導(dǎo)致時(shí)間至少增加一倍??梢?jiàn)模塊冗余的防御成本非常高。隨機(jī)延時(shí)方法在密碼執(zhí)行過(guò)程鐘插入隨機(jī)延時(shí),并不是直接阻止電磁脈沖故障分析,而是降低攻擊者的故障注入精度,使得只使用某種特定故障的攻擊變得更加困難。而掩碼的方法通過(guò)對(duì)密碼中間數(shù)據(jù)和運(yùn)算進(jìn)行掩碼,能夠在一定程度上阻止攻擊者通過(guò)探測(cè)設(shè)備獲取敏感數(shù)據(jù),但是Boscher等學(xué)者指出掩碼并不足以防御故障分析??梢钥吹?,目前針對(duì)密碼芯片的電磁脈沖故障分析并沒(méi)有實(shí)用且完善的防御裝置,特別是低成本的防御裝置還有待研究。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)現(xiàn)有的密碼芯片在防御電磁脈沖故障分析上的不足,提出了一種針對(duì)密碼芯片電磁故障分析的防御裝置,這種裝置能在密碼芯片經(jīng)歷電磁故障分析時(shí)能給出報(bào)警信號(hào),該信號(hào)可以通知密碼電路何時(shí)遭受了攻擊,從而使密碼芯片及時(shí)采取相應(yīng)的對(duì)策,例如不再輸出和密文相關(guān)的信息,從而防御此類型的攻擊。
本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:一種針對(duì)密碼芯片電磁脈沖故障分析的防御裝置,包括依次相連的環(huán)形振蕩器、調(diào)制器以及數(shù)字相位檢測(cè)器。
進(jìn)一步的,所述環(huán)形振蕩器由奇數(shù)個(gè)反相器構(gòu)成閉環(huán)。
進(jìn)一步的,所述調(diào)制器將環(huán)形振蕩器輸出的信號(hào)進(jìn)行分頻調(diào)制。
進(jìn)一步的,所述調(diào)制器由D觸發(fā)器組成。
進(jìn)一步的,所述數(shù)字相位檢測(cè)器主要由兩個(gè)D觸發(fā)器和兩個(gè)異或門(mén)組成,用于判斷輸入信號(hào)的相位差,從而輸出報(bào)警信號(hào)alarm。
本發(fā)明有如下的有益效果:
1、本發(fā)明涉及的電路結(jié)構(gòu)完全由數(shù)字電路構(gòu)成,可以很方便的在現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)和專用集成電路(ASIC)中實(shí)現(xiàn),不需要特別的工藝條件。
2、本發(fā)明電路結(jié)構(gòu)簡(jiǎn)單,延遲低,可以及時(shí)檢測(cè)電磁脈沖故障分析時(shí)產(chǎn)生的干擾脈沖,快速給出警告信號(hào)。
3、本發(fā)明在故障干擾結(jié)束后,可以自主恢復(fù)正常,不需要外部復(fù)位。
4、本發(fā)明輸出的報(bào)警信號(hào)是數(shù)字信號(hào),因此在同一個(gè)密碼芯片中,本發(fā)明可以多次組合使用,輸出信號(hào)通過(guò)簡(jiǎn)單的數(shù)字組合電路就能處理,成本較低。
5、本發(fā)明的附加效果是能改變密碼芯片的功耗特征,一定程度上防御功耗故障分析攻擊。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例的電路結(jié)構(gòu)示意圖;
圖2是本發(fā)明在防御電磁脈沖故障時(shí)的典型波形示意圖;
圖中,環(huán)形振蕩器1、調(diào)制器2、數(shù)字相位檢測(cè)器3、預(yù)警狀態(tài)4,報(bào)警狀態(tài)5,自恢復(fù)預(yù)警狀態(tài)6。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。
圖1是本發(fā)明的電路結(jié)構(gòu)示意圖,該電路結(jié)構(gòu)包括依次相連的環(huán)形振蕩器1、調(diào)制器2以及數(shù)字相位檢測(cè)器3。環(huán)形振蕩器1通過(guò)奇數(shù)個(gè)反相器構(gòu)成閉環(huán),來(lái)產(chǎn)生頻率為f的信號(hào)振蕩信號(hào)ck,圖中使用3個(gè)反相器構(gòu)成,只是一種實(shí)施方式示意,可以根據(jù)實(shí)際需要的信號(hào)頻率調(diào)整反相器個(gè)數(shù)。該振蕩信號(hào)ck輸入到調(diào)制器2,它通過(guò)D觸發(fā)器分頻調(diào)制得到頻率為f/2的分頻信號(hào)data。振蕩信號(hào)ck和分頻信號(hào)data輸入到數(shù)字相位檢測(cè)器3,該模塊主要由兩個(gè)D觸發(fā)器和兩個(gè)異或門(mén)組成,用于判斷輸入信號(hào)的相位差,從而輸出報(bào)警信號(hào)alarm。具體來(lái)說(shuō),兩個(gè)D觸發(fā)器級(jí)聯(lián)構(gòu)成信號(hào)鏈,由振蕩信號(hào)ck上升沿觸發(fā),其輸出分別記為B和A(B也是第二級(jí)觸發(fā)器的輸入)。2個(gè)異或門(mén)輸入來(lái)自信號(hào)data、A和B,最終實(shí)現(xiàn)如下邏輯關(guān)系:
考慮到信號(hào)在芯片中實(shí)際傳輸中會(huì)有延時(shí),不失一般性,可以認(rèn)為信號(hào)data相比ck有一個(gè)固定的延時(shí),圖中標(biāo)記為Delay。
圖2給出了一次具體的防御電磁故障時(shí)的典型波形示意圖,該電路結(jié)構(gòu)一次典型的工作流程分為以下3個(gè)階段:
第一步,電路在預(yù)警狀態(tài)4。信號(hào)data和ck保持固定的頻率不發(fā)生變化。電路節(jié)點(diǎn)B,A,X,Y信號(hào)保持周期性穩(wěn)定狀態(tài),信號(hào)alarm為固定低電平。
第二步,電路受到外部電磁脈沖等故障分析手段干擾,進(jìn)入報(bào)警狀態(tài)5。這些干擾會(huì)導(dǎo)致環(huán)形振蕩器模塊輸出受到干擾,表現(xiàn)為一些干擾脈沖。此時(shí)信號(hào)data和ck的固有關(guān)系被打破,電路節(jié)點(diǎn)B,A,X,Y信號(hào)也會(huì)產(chǎn)生波動(dòng),最后表現(xiàn)為alarm信號(hào)出現(xiàn)一個(gè)或多個(gè)高電平脈沖。首個(gè)alarm高電平脈沖會(huì)被后續(xù)電路鎖存,標(biāo)記為芯片受到故障分析攻擊,進(jìn)而采取進(jìn)一步措施。
第三步,電路自恢復(fù)到預(yù)警狀態(tài)6。待攻擊結(jié)束后,各信號(hào)自動(dòng)會(huì)恢復(fù)到第一步的狀態(tài),alarm信號(hào)也會(huì)恢復(fù)到低電平狀態(tài)。電路繼續(xù)正常工作。即這種電路結(jié)構(gòu)在故障干擾結(jié)束后,可以自主恢復(fù)正常,不需要外部復(fù)位。
為了在有限開(kāi)銷下,使防御的效果最佳化,環(huán)形振蕩器模塊將放置在密碼電路附近,并且可以布置多個(gè)這個(gè)這樣的電路結(jié)構(gòu)。若干個(gè)輸出的報(bào)警信號(hào)也可以通過(guò)組合邏輯來(lái)生成滿足實(shí)際使用需要的特定邏輯。
應(yīng)當(dāng)理解的是,上述實(shí)施例為了便于普通技術(shù)人員理解,描述較為詳細(xì)且具體,并不能因此而認(rèn)為是對(duì)本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請(qǐng)求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。