一種抗錯(cuò)誤注入攻擊的安全芯片加固方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及電子加密技術(shù)領(lǐng)域,特別涉及一種抗錯(cuò)誤注入攻擊的安全芯片加固方 法及裝置。
【背景技術(shù)】
[0002] 隨著信息技術(shù)的迅猛發(fā)展,信息安全重要性是毋庸置疑的。雖然安全芯片中有復(fù) 雜的加解密算法和密鑰保護(hù)機(jī)制,然而近年來安全芯片易受到錯(cuò)誤注入攻擊,從而導(dǎo)致在 加密算法執(zhí)行的過程中產(chǎn)生瞬態(tài)的邏輯錯(cuò)誤,攻擊者通過分析正確的和錯(cuò)誤的加密結(jié)果, 最終引起密鑰的泄露。安全芯片的錯(cuò)誤注入攻擊已被列為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)"FIPS 140-3"中重要的一類攻擊方式。
[0003] 現(xiàn)有對(duì)安全芯片進(jìn)行抗錯(cuò)誤注入攻擊的防御主要有三種,最常見的一種是對(duì)整個(gè) 加密電路做物理的防御,例如在整個(gè)芯片中加金屬網(wǎng)或者傳感器,這種方法的缺點(diǎn)是由于 是對(duì)整塊芯片進(jìn)行防御,所以增加了芯片的復(fù)雜性,尤其是類似傳感器這樣的模擬器件,無 疑是增加了芯片的面積開銷,并且降低了性能。一種是在加密電路當(dāng)中加入了錯(cuò)誤檢測(cè)模 塊,這種方法能夠在運(yùn)算的同時(shí),實(shí)時(shí)檢測(cè)是否有錯(cuò)誤發(fā)生,但它是通過在密碼算法的主運(yùn) 算硬件之外,再加上另外一組獨(dú)立的運(yùn)算模塊進(jìn)行逆運(yùn)算,將主運(yùn)算的結(jié)果再經(jīng)過逆運(yùn)算 后和主運(yùn)算的輸入對(duì)比,從而實(shí)現(xiàn)并發(fā)錯(cuò)誤檢測(cè)。這樣的冗余檢錯(cuò)方法其缺點(diǎn)就是會(huì)造成 近一倍的額外硬件開銷。另外一種常用的方法是針對(duì)具體的加密算法的攻擊弱點(diǎn),從算法 層面做改進(jìn),來達(dá)到抗錯(cuò)誤注入攻擊的目的。顯然這種方法的缺點(diǎn)是只針對(duì)具體的某一種 加密算法做改進(jìn),應(yīng)用范圍太局限,而且要求設(shè)計(jì)人員精通密碼算法。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供了一種抗錯(cuò)誤注入攻擊的安全加固方法,只對(duì)敏感單元進(jìn)行加 固,產(chǎn)生的硬件開銷小,且適用于任意的密碼電路。該方法包括:
[0005] 對(duì)安全芯片中的所有邏輯單元分別在錯(cuò)誤注入攻擊情況下進(jìn)行加密或解密功能 仿真,生成仿真結(jié)果;
[0006] 根據(jù)所述仿真結(jié)果查找故障字典,若在故障字典中查找到與所述仿真結(jié)果相同的 值,則將相應(yīng)的被錯(cuò)誤注入攻擊的邏輯單元標(biāo)記為敏感單元,直到遍歷完所有的邏輯單元 為止,生成敏感單元列表;
[0007] 對(duì)敏感單元列表中的所有敏感單元進(jìn)行加固。
[0008] 在一個(gè)實(shí)施例中,所述對(duì)安全芯片中的所有邏輯單元分別在錯(cuò)誤注入攻擊情況下 進(jìn)行加密或解密功能仿真,生成仿真結(jié)果,具體包括:
[0009] 根據(jù)測(cè)試激勵(lì)文件和軟錯(cuò)誤自動(dòng)注入腳本對(duì)安全芯片中的所有邏輯單元分別在 錯(cuò)誤注入攻擊情況下進(jìn)行加密或解密功能仿真,生成仿真結(jié)果;
[0010] 所述測(cè)試激勵(lì)文件用于提供加密或解密運(yùn)算所需要的輸入數(shù)據(jù);
[0011] 所述軟錯(cuò)誤自動(dòng)注入腳本用于控制被注入錯(cuò)誤的邏輯單元和錯(cuò)誤注入時(shí)序。
[0012] 在一個(gè)實(shí)施例中,所述測(cè)試激勵(lì)文件還用于控制軟錯(cuò)誤自動(dòng)注入腳本和敏感單元 篩查腳本的執(zhí)行;
[0013] 所述敏感單元篩查腳本用于存儲(chǔ)所有的仿真結(jié)果,在故障字典中查找并判斷被注 入錯(cuò)誤的邏輯單元是否為敏感單元。
[0014] 在一個(gè)實(shí)施例中,還包括:按以下步驟生成故障字典:
[0015] 分析錯(cuò)誤注入攻擊方法;
[0016] 根據(jù)錯(cuò)誤注入攻擊方法建立錯(cuò)誤注入攻擊模型;
[0017] 根據(jù)錯(cuò)誤注入攻擊模型確定加密或解密運(yùn)算的敏感步驟;所述敏感步驟指在密碼 算法運(yùn)算過程中,易被錯(cuò)誤注入攻擊且可用產(chǎn)生的錯(cuò)誤數(shù)據(jù)結(jié)果分析出密鑰的運(yùn)算步驟;
[0018] 對(duì)所有敏感步驟分別注入所有可能的錯(cuò)誤,輸入加密或解密運(yùn)算所需要的數(shù)據(jù), 進(jìn)行加密或解密運(yùn)算;
[0019] 收集所有的錯(cuò)誤注入下的加密或解密運(yùn)算的結(jié)果,生成故障字典。
[0020] 在一個(gè)實(shí)施例中,所述對(duì)敏感單元列表中的所有敏感單元進(jìn)行加固,包括:在安全 芯片中定位所有敏感單元,并在所有敏感單元上插入傳感器。
[0021] 在一個(gè)實(shí)施例中,所述對(duì)敏感單元列表中的所有敏感單元進(jìn)行加固,包括:用抗單 粒子翻轉(zhuǎn)效應(yīng)的加固單元替換敏感單元,所述抗單粒子翻轉(zhuǎn)效應(yīng)的加固單元與敏感單元具 有同等功能。
[0022] 本發(fā)明實(shí)施例提供了一種抗錯(cuò)誤注入攻擊的安全芯片加固裝置,只對(duì)敏感單元進(jìn) 行加固,產(chǎn)生的硬件開銷小,且適用于任意的密碼電路。該裝置包括:
[0023] 仿真結(jié)果生成模塊,用于對(duì)安全芯片中的所有邏輯單元分別在錯(cuò)誤注入攻擊情況 下進(jìn)行加密或解密功能仿真,生成仿真結(jié)果;
[0024] 敏感單元生成模塊,用于根據(jù)所述仿真結(jié)果查找故障字典,若在故障字典中查找 到與所述仿真結(jié)果相同的值,則將相應(yīng)的被錯(cuò)誤注入攻擊的邏輯單元標(biāo)記為敏感單元,直 到遍歷完所有的邏輯單元為止,生成敏感單元列表;
[0025] 敏感單元加固模塊,用于對(duì)敏感單元列表中的所有敏感單元進(jìn)行加固。
[0026] 在一個(gè)實(shí)施例中,所述仿真結(jié)果生成模塊具體用于:根據(jù)測(cè)試激勵(lì)文件和軟錯(cuò)誤 自動(dòng)注入腳本對(duì)安全芯片中的所有邏輯單元分別在錯(cuò)誤注入攻擊情況下進(jìn)行加密或解密 功能仿真,生成仿真結(jié)果;
[0027] 所述測(cè)試激勵(lì)文件用于提供加密或解密運(yùn)算所需要的輸入數(shù)據(jù);
[0028] 所述軟錯(cuò)誤自動(dòng)注入腳本用于控制被注入錯(cuò)誤的邏輯單元和錯(cuò)誤注入時(shí)序。
[0029] 在一個(gè)實(shí)施例中,所述測(cè)試激勵(lì)文件還用于控制軟錯(cuò)誤自動(dòng)注入腳本和敏感單元 篩查腳本的執(zhí)行;
[0030] 所述敏感單元篩查腳本用于存儲(chǔ)所有的仿真結(jié)果,在故障字典中查找并判斷被注 入錯(cuò)誤的邏輯單元是否為敏感單元。
[0031] 在一個(gè)實(shí)施例中,還包括:故障單元生成模塊,用于按以下步驟生成故障字典:
[0032] 分析錯(cuò)誤注入攻擊方法;
[0033] 根據(jù)錯(cuò)誤注入攻擊方法建立錯(cuò)誤注入攻擊模型;
[0034] 根據(jù)錯(cuò)誤注入攻擊模型確定加密或解密運(yùn)算的敏感步驟;所述敏感步驟指在密碼 算法運(yùn)算過程中,易被錯(cuò)誤注入攻擊且可用產(chǎn)生的錯(cuò)誤數(shù)據(jù)結(jié)果分析出密鑰的運(yùn)算步驟;
[0035] 對(duì)所有敏感步驟分別注入所有可能的錯(cuò)誤,輸入加密或解密運(yùn)算所需要的數(shù)據(jù), 進(jìn)行加密或解密運(yùn)算;
[0036] 收集所有的錯(cuò)誤注入下的加密或解密運(yùn)算的結(jié)果,生成故障字典。
[0037] 在一個(gè)實(shí)施例中,所述敏感單元加固模塊具體用于,在安全芯片中定位所有敏感 單元,并在所有敏感單元上插入傳感器。
[0038] 在一個(gè)實(shí)施例中,所述敏感單元加固模塊具體用于,用抗單粒子翻轉(zhuǎn)效應(yīng)的加固 單元替換敏感單元,所述抗單粒子翻轉(zhuǎn)效應(yīng)的加固單元與敏感單元具有同等功能。
[0039] 在本發(fā)明實(shí)施例中,通過對(duì)安全芯片中的所有邏輯單元分別在錯(cuò)誤注入攻擊情況 下進(jìn)行加密或解密功能仿真,然后根據(jù)仿真結(jié)果和故障字典查找被錯(cuò)誤注入攻擊的敏感單 元,最后對(duì)敏感單元進(jìn)行加固,與現(xiàn)有的抗錯(cuò)誤注入攻擊的方法相比,使用本發(fā)明方法及裝 置只需對(duì)敏感單元進(jìn)行加固即可,產(chǎn)生的硬件開銷??;不需要設(shè)計(jì)人員精通密碼算法,也不 需要了解電路的具體結(jié)構(gòu),適用于任意的密碼電路。
【附圖說明】
[0040] 此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,并不 構(gòu)成對(duì)本發(fā)明的限定。在附圖中:
[0041] 圖1是本發(fā)明實(shí)施例提供的一種抗錯(cuò)誤注入攻擊的安全芯片加固方法流程圖;
[0042] 圖2是本發(fā)明實(shí)施例提供的一種故障字典生成流程圖;
[0043] 圖3是本發(fā)明實(shí)施例提供的一種具體的抗錯(cuò)誤注入攻擊的安全芯片加固方法流 程圖;
[0044] 圖4是本發(fā)明實(shí)施例提供的一種抗錯(cuò)誤注入攻擊的安全芯片加固裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0045] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施方式和附圖,對(duì) 本發(fā)明做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施方式及其說明用于解釋本發(fā)明,但并 不作為對(duì)本發(fā)明的限定。
[0046] 現(xiàn)有的對(duì)安全芯片進(jìn)行抗錯(cuò)誤注入攻擊的防御方法,大部分是以硬件開銷作為代 價(jià),還有的是只針對(duì)一種加密算法做改進(jìn),使得應(yīng)用范圍局限,且要求設(shè)計(jì)人員必須精通密 碼算法。如果可以提出一種過程簡(jiǎn)單的抗錯(cuò)誤注入攻擊的防御方法,且不要求設(shè)計(jì)人員精 通密碼算法,也不需要了解電路的具體結(jié)構(gòu),同時(shí)還不會(huì)產(chǎn)生高額的硬件開銷,就能克服現(xiàn) 有技術(shù)中存在的問題。基于此,本發(fā)明提出一種抗錯(cuò)誤注入攻擊的安全加固方法及裝置。
[0047] 圖1