一種抗攻擊的仲裁器的制造方法
【技術領域】
[0001]本發(fā)明涉及計算機處理器,特別涉及一種抗攻擊的仲裁器。
【背景技術】
[0002]現(xiàn)有的仲裁器是基于可能出現(xiàn)的多個輸入請求和一個輸出響應選擇的實現(xiàn)。如果輸入請求只有一個,則輸出響應必定是對應的輸入;如果有多個輸入請求同時存在,則輸出響應的選擇是依賴于某種算法函數(shù)得到的。
[0003]圖1是現(xiàn)有仲裁器的實現(xiàn)結構示意圖。其中,請求數(shù)據(jù)1、請求數(shù)據(jù)2、……、請求數(shù)據(jù)η 101組成仲裁器的η個輸入請求,響應數(shù)據(jù)1、響應數(shù)據(jù)2、……、響應數(shù)據(jù)η 105組成仲裁器的η個輸出響應,復用器102負責在請求應答周期內根據(jù)仲裁算法選擇某個請求作為共享資源模塊103的輸入,解復用器104負責在輸出響應周期內根據(jù)復用器102的仲裁結果將共享資源模塊103的輸出進行解復用返回相應的響應數(shù)據(jù)105,即請求數(shù)據(jù)I經過仲裁器最后返回響應數(shù)據(jù)I,而不會返回響應數(shù)據(jù)2或其他。共享資源模塊103在請求應答周期啟動運算,在輸出響應周期返回運算結果。
[0004]在一些涉及安全的應用場合,共享資源模塊103可能涉及某些密碼算法,如高級加密標準(Advanced Encrypt1n Standard,AES),這時可能就要求請求x的響應只能返回到響應X,不能返回到除響應X以外的響應,那么一旦解復用器104遭到黑客攻擊,請求X的響應就有可能被返回到其它響應,密碼運算的結果就存在泄露的風險。
[0005]噪聲攻擊是一種簡單實用的攻擊手段,通過快速改變被攻擊信號的狀態(tài),以影響電路的正常運行。噪聲攻擊通常是將噪聲疊加在電源或時鐘信號上,也可以外加短暫電場或電磁脈沖。如果用時鐘噪聲(比正常的時鐘脈沖要短得多)或電源噪聲(電源電壓的快速波動)對仲裁器進行攻擊,仲裁器中的某些晶體管可能會受到影響,導致一個或多個觸發(fā)器進入錯誤狀態(tài),進而執(zhí)行完全不同的錯誤選擇,盡管無法預知何種噪聲會導致何種錯誤,但它能相當簡單地進行系統(tǒng)的搜索,達到故障注入的效果。
[0006]因此,在一些涉及安全的仲裁器設計中,針對故障注入等攻擊手段有必要對現(xiàn)有技術下的仲裁器進行一些改進,增強其抗攻擊的能力以適應更復雜的應用。
【發(fā)明內容】
[0007]本發(fā)明為了解決上述現(xiàn)有技術的問題,提出一種抗攻擊的仲裁器,在現(xiàn)有技術下仲裁器實現(xiàn)的基礎上,在解復用器之前增加異或運算,實現(xiàn)對原始響應數(shù)據(jù)的加擾,在解復用器之后增加異或運算,實現(xiàn)對加擾響應數(shù)據(jù)的解擾,有效減小仲裁器響應數(shù)據(jù)被泄露的風險。
[0008]該仲裁器具體包括:復用器,用于接收多路請求,根據(jù)仲裁算法選擇一路請求的請求數(shù)據(jù)輸出;共享資源模塊,接收所述復用器選擇輸出的請求數(shù)據(jù),在請求應答周期內啟動運算,在輸出響應周期內輸出運算結果;加擾器,用于將所述運算結果和所述被應答的請求數(shù)據(jù)進行加擾后輸出至解復用器;解復用器,用于接收加擾后的運算結果,并在輸出響應周期內將運算結果進行解復用得到對應的加擾后的響應數(shù)據(jù);解擾器,與請求一一對應,用于將加擾后的響應數(shù)據(jù)和被應答的請求數(shù)據(jù)進行解擾后得到響應數(shù)據(jù)返回至對應的請求。
[0009]當仲裁器的請求應答和輸出響應不在同一個時鐘周期內完成時,還需要增加加擾寄存器,用來寄存被應答的請求數(shù)據(jù),然后在輸出響應周期內與原始響應數(shù)據(jù)完成異或操作。
[0010]當仲裁器的請求應答和輸出響應在同一個時鐘周期內完成時,加擾寄存器就不是必需的。
[0011]本發(fā)明在現(xiàn)有技術下仲裁器實現(xiàn)的基礎上,在解復用器前后分別增加加、解擾器實現(xiàn)對仲裁器響應數(shù)據(jù)的加解擾,有效減小仲裁器響應數(shù)據(jù)被泄露的風險,以少許的邏輯冗余,換來更高的安全性。
【附圖說明】
[0012]圖1是現(xiàn)有技術的結構示意圖;
圖2是本發(fā)明的結構示意圖;
圖3是本發(fā)明一具體實施例的結構示意圖。
【具體實施方式】
[0013]如圖2所示,本發(fā)明在現(xiàn)有技術的基礎上,提出了新的仲裁器的結構,該仲裁器包括復用器102、共享資源模塊103、解復用器104、加擾器107和解擾器108。
[0014]其中復用器102用來接收多路請求數(shù)據(jù),根據(jù)仲裁算法選擇多路請求數(shù)據(jù)中的一路請求數(shù)據(jù)輸出。共享資源模塊103用來接收復用器選擇輸出的請求數(shù)據(jù),在請求應答周期內啟動運算,在輸出響應周期內輸出運算結果。一般,共享資源模塊103適用于一些資源密集型的模塊或者執(zhí)行復雜運算的算法模塊。資源密集型的模塊如一次性可編程存儲器(OneTime Programmable、OTP):假設存在多路請求對OTP進行讀操作,請求數(shù)據(jù)就是讀地址,響應數(shù)據(jù)就是OTP返回的讀數(shù)據(jù)。執(zhí)行復雜運算的算法模塊如循環(huán)冗余校驗碼電路(CyclicRedundancy Check,CRC):假設存在多路請求完成CRC運算,請求數(shù)據(jù)就是輸入信息,響應數(shù)據(jù)就是CRC值;又或者是AES加解密引擎:假設存在多路請求完成AES加密,請求數(shù)據(jù)就是明文和密鑰,響應數(shù)據(jù)就是密文。
[0015]新增加的加擾器107可以將共享資源模塊得出的運算結果與被應答的請求數(shù)據(jù)進行加擾后再輸出至解復用器104。然后解復用器104接收加擾后的運算結果,并在輸出響應周期內將運算結果進行解復用得到對應的加擾后的響應數(shù)據(jù)。新增加的解擾器108,與請求數(shù)據(jù)一一對應,將被應答的請求數(shù)據(jù)和加擾后的響應數(shù)據(jù)進行解擾后得到響應數(shù)據(jù)。
[0016]上述加擾器107用來實現(xiàn)對原始響應數(shù)據(jù)的加擾,同時加擾過程需引入被應答的請求數(shù)據(jù),實現(xiàn)加擾結果對請求數(shù)據(jù)的強相關。之后為了實現(xiàn)各個通道能通過各自的請求數(shù)據(jù)解擾出各自的響應數(shù)據(jù),加擾器107通常應采用對稱算法,簡單的如異或、移位異或、加減法運算等,復雜的如數(shù)據(jù)加密標準(Data Encrypt1n Standard、DES)、AES、RC5算法等。實際應用中,可根據(jù)資源和安全性進行權衡來選擇具體的算法。其中,被應答的請求數(shù)據(jù)將作為算法的輸入之一參與對原始響應數(shù)據(jù)的加擾。例如,對于異或運算,可直接將原始響應數(shù)據(jù)與被應答的請求數(shù)據(jù)異或;