一種抗旁路攻擊的時鐘串擾實現方法
【技術領域】
[0001]本發明涉及旁路攻擊的防護技術,具體涉及一種抗旁路攻擊的時鐘串擾實現方法。
【背景技術】
[0002]隨著信息技術的發展與應用,金融IC卡和電子交易設備的應用越來越廣泛。而金融IC卡和電子交易設備的安全性也越來越重要。整個金融IC卡和電子交易設備的核心即采用公鑰加密算法對交易者身份進行論證,使用對稱加密對交易內容進行加密,保證整個交易環節的安全。
[0003]隨著交易安全性的提高,黑客的攻擊技術也在提高。從早期通過對磁條卡復制制作偽卡進行攻擊,到現在通過旁路攻擊和侵入式攻擊對金融IC卡和交易設備進行攻擊。這對金融IC卡和電子交易設備的本身抗攻擊性提出了更高要求,僅僅實現加解密已經不能抵抗黑客的攻擊,同時要保證加解密的實現方法和整個系統能夠抵抗黑客的旁路攻擊和侵入攻擊。
[0004]最新的安全技術要不但保證加解密的正確性,也要保證加解密安全性。通過對加解密算法實現方式的改進,能提升加解密的安全性,但這會大大增加加解密算法的硬件實現成本和算法執行效率。
【發明內容】
[0005]本發明提供一種抗旁路攻擊的時鐘串擾實現方法,通過對時鐘的串擾提高對旁路攻擊的抵抗能力,提高系統的安全性。
[0006]為了達到上述目的,本發明的技術方案是提供一種抗旁路攻擊的時鐘串擾實現方法,其中對一路輸入時鐘的相位和頻率進行串擾,產生一路串擾時鐘的過程,包含:
對輸入時鐘進行相位延遲得到多路相位延遲時鐘;
對輸入時鐘進行分頻得到一路分頻時鐘,所述分頻時鐘的分頻數在設定的數值范圍內動態切換;
隨機生成第一隨機數和第二隨機數;
將各路相位延遲時鐘和一路分頻時鐘分別作為時鐘源,鎖存第一隨機數分別得到第一選擇信號和第二選擇信號;根據第一選擇信號對分頻數進行隨機選擇;同時根據第二選擇信號從多個時鐘源中隨機選出其中一路時鐘源作為輸出時鐘;
對于選出的這一路輸出時鐘,鎖存第二隨機數得到第三選擇信號,對這一路輸出時鐘的持續周期數進行隨機選擇;
對這一路輸出時鐘實際持續的周期進行計數,當計數的數值達到隨機選擇的持續周期數時,隨機選出新的時鐘源,隨機選出新的持續周期數并重新開始計數。
[0007]其中,對輸入時鐘ClkIn進行相位延遲,得到四路相位差為1/4周期的相位延遲時鐘(:1詘、(:讓1、(:11^2和(:11^3。
[0008]其中,使用10位LFSR反饋電路作為隨機數生成電路,來產生第一隨機數RandomSel[2:0]和第二隨機數RandomCnt[3:0]。
[0009]其中,鎖存第一隨機數RandomSel[2:0],并根據其中的后兩位得到第一選擇信號ClkSel [ 1: O],用來確定分頻時鐘Clk4的分頻數為2、3、4、5中隨機選出的一個數值,使輸入時鐘ClkIn通過2-5分頻電路進行分頻。
[0010]其中,鎖存第一隨機數RandomSel[2:0],得到第二選擇信號ClkSel[2:0];
采用不帶毛刺的時鐘切換電路進行隨機時鐘選擇,根據第二選擇信號ClkSel[2:0]選擇相應的時鐘源作為輸出時鐘,對應關系為:
ClkSel=3 ’ bOOO時,選擇相位延遲時鐘ClkO ;
ClkSel=3 ’bOOl時,選擇相位延遲時鐘Clkl ;
ClkSel=3’b010時,選擇相位延遲時鐘Clk2;
ClkSel=3 ’ b011時,選擇相位延遲時鐘Clk3;
ClkSel=3’bl00時,選擇的分頻時鐘Clk4為2分頻時鐘;
ClkSel=3’bl01時,選擇的分頻時鐘Clk4為3分頻時鐘;
ClkSel=3’bllO時,選擇的分頻時鐘Clk4為4分頻時鐘; (:11^61=3’13111時,選擇的分頻時鐘(:11^4為5分頻時鐘。
[0011]其中,鎖存第二隨機數RandomCnt[3:0],得到第三選擇信號ClkCnt[3:0],用來選擇ClkCnt,使設定的持續周期數在16?31個時鐘周期之間隨機變化;當計數值count [ 4:0 ]從O計數到ClkCnt+16后,重新從O開始計數。
[0012]綜上所述,本發明提供的一種抗旁路攻擊的時鐘串擾實現方法,其優點在于:
綜上所述,本發明通過對輸入時鐘的相位和頻率串擾,產生一個加擾的時鐘。對輸入時鐘進行相位延遲產生四個相位差為1/4個周期的時鐘,以及分頻數為2、3、4或者5的動態切換分頻時鐘,共五個時鐘源。通過隨機在五個時鐘源中選擇一路作為時鐘輸出,同時分頻時鐘在2到5分頻數之間隨機選擇。每選擇一路時鐘后,此時鐘持續周期數也在16個時鐘到31個時鐘之間隨機選擇,最終通過隨機選擇時鐘源,隨機每一個時鐘源的持續周期產生一個相位和頻率隨機變換的串擾時鐘。旁路攻擊對功耗和電磁輻射的測量是以穩定時鐘周期為基準的,對于加擾后的時鐘,功耗和電磁輻射無法以同一時鐘周期作為基準測量,大大增加旁路攻擊的難度。
【附圖說明】
[0013]圖1為本發明一種抗旁路攻擊的時鐘串擾方法整體實現結構圖;
圖2為本發明所述隨機數生成模塊的實現圖;
圖3為本發明中所述不帶毛刺時鐘切換電路實現圖;
圖4為一個示例中原始時鐘ClkIn和串擾時鐘ClkOut的信號波形圖。
【具體實施方式】
[0014]以下結合【附圖說明】對本發明的實施例作進一步詳細描述,但本實施例并不用于限制本發明,凡是采用本發明的相似結構、方法及其相似變化,均應列入本發明的保護范圍。
[0015]本發明提供一種抗旁路攻擊的時鐘串擾實現方法,能夠在系統級別提升加解密實現的安全性,通過很小的硬件成本,對算法時鐘進行串擾,使旁路攻擊者難以精確測量加解密過程中的功耗和電磁輻射,很大程度提高旁路攻擊難度和攻擊時間,從而抵御黑客攻擊。
[0016]如圖1所示,是本發明所述抗旁路攻擊的時鐘串擾方法的整體實現結構,所述方法包含:
相位延遲時鐘生成:令輸入時鐘ClkIn通過三級相同的相位延遲電路,產生相位間隔一致的三個時鐘Clkl、Clk2和Clk3,再將輸入時鐘ClkIn作為時鐘ClkO,得到共四個相位延遲時鐘。
[0017]其中,單級相位延遲電路采用標準單元庫的DELl模塊級聯而成。DELl模塊在TTcorner下的時間延遲為Ins,在不同溫度和工藝下,偏差范圍為±50%,即時間延遲為0.5ns?
1.5ns。根據輸入時鐘的周期,單級延遲電路設計延遲時間為時鐘周期的四分之一,比如時鐘頻率為40MHz,時鐘周期即為25ns,則單級延遲電路設計為延遲6ns,因此使用6個DELl模塊級聯。
[0018]分頻時鐘生成:令輸入時鐘ClkIn通過動態可設2-5分頻電路,產生分頻時鐘Clk4,在某個確定時刻,Clk4分頻值是確定的,為2-5中的一個。根據輸入的ClkSel [ 1: O]值選擇不同分頻值,對應關系為:
ClkSel [ 1:0]=2,bOO: Clk4為2分頻時鐘ClkSel[l:0]=2’b01: Clk4為3分頻時鐘ClkSel [ 1:0]=2,blO: Clk4為4分頻時鐘ClkSel [ 1:0]=2,bl1: Clk4為5分頻時鐘。
[0019]隨機數生成:隨機數生成電路使用LFSR反饋電路,產生隨機選擇和隨機時鐘周期需要的隨機數(RandomSel [2:0]和RandomCnt [3:0])。如圖2所示,隨機數采用10位的LFSR(線性反饋移位寄存器)電路,面積很小,產生的隨機數隨機性能滿足應用要求。公式如下:
feedback = lsfr[8]'lsfr[5]'lsfr[4]'lsfr[2]'lsfr[0];lsfr[9:0] = {feedback, lsfr[9:1]};
RandomSel[2:0] = lsfr[2:0] ' lsfr[5:3];
RandomCnt[3:0] = lsfr[9:6]0
[0020]隨機時鐘選擇:采用不帶毛刺的時鐘切換電路,根據ClkSel[2:0],從四個相位延遲時鐘ClkO、Clkl、Clk2和Clk3和分頻時鐘Clk4這五個時鐘源中,隨機選擇一路對應的時鐘源。
[0021]不帶毛刺時鐘切換電路,如圖3所示,其核心在于每個時鐘的選擇信號經過此時鐘下降沿采樣后,再去開關時鐘避免產生毛刺。同時,每個時鐘的選擇有效信號與其它時鐘有效信號互斥,保證最終只有一個時鐘輸出。比如ClkSel[2:0]=3’b010,選擇Clk2,此時
clk0_sel_reg=0;clkl_sel_reg=0;clk2_sel_reg=l;clk3_sel_reg=0;clk4_sel_reg=0o
[0022]ClkO~Clk4與其各自對應的選擇信號clkO_sel_reg?clk4_sel_reg相與,因為只