專利名稱:寄存器翻轉時刻隨機化控制電路的制作方法
技術領域:
本發(fā)明主要涉及到密碼芯片旁路攻擊防御領域,特指利用兩個不同時鐘域之間的信號傳輸實現(xiàn)寄存器翻轉時刻隨機化的控制電路。
背景技術:
旁路攻擊是一種針對密碼芯片的密鑰破解技術,這種攻擊技術繞過了純數(shù)學破解的計算復雜性,通過分析芯片在運行密碼算法時所泄漏的旁路信息來實現(xiàn)竊取算法密鑰的目的。相對于傳統(tǒng)的密鑰破解技術,旁路攻擊極大的降低了密鑰搜索空間,對安全系統(tǒng)造成很大威脅。差分功耗分析(DPA=Differential Power Analyse)攻擊是現(xiàn)有旁路攻擊中的典型代表,對密碼芯片具有很大的威脅性。DPA攻擊通過大量采樣密碼芯片在執(zhí)行加、解密算法時所消耗的瞬態(tài)功耗軌跡,并利用統(tǒng)計學的方法分析功耗樣本與算法內部某些中間結果的相關性來驗證所猜測的若干密鑰位是否正確。由于DPA攻擊是一種基于統(tǒng)計分析的攻擊技術,因此攻擊者必須將所有采樣的瞬態(tài)功耗軌跡按照所要分析的中間結果變化時刻進行時間對齊。在普通的同步電路中,寄存器輸出端的信號總是在系統(tǒng)時鐘的上升沿統(tǒng)一發(fā)生翻轉,這使得攻擊者很容易實現(xiàn)功耗軌跡時間對齊的目的。因此,在已有成功的DPA攻擊實例中,攻擊者都選擇了密碼算法電路中關鍵寄存器的輸出端信號作為功耗相關性分析的目標。根據(jù)DPA攻擊的這一特性,國內外研究者提出了基于隨機化的DPA攻擊防護思想。主要可分為兩種實現(xiàn)方式,一種方式是通過在算法執(zhí)行過程中隨機的插入偽操作來擾亂分析目標的產生時刻。這種方式的缺點在于時間隨機化的粒度較大,難以實現(xiàn)足夠的隨機化程度。而且攻擊者也有可能識別偽操作產生的功耗特征,進而在功耗樣本中加以過濾。隨機化的另一種實現(xiàn)方式是采用異步電路實現(xiàn)密碼算法。在異步電路中由于沒有同步時鐘,因而也就不具有同步的寄存器輸出信號。但是針對旁路攻擊防護領域的異步電路設計實現(xiàn)方法本身還處于研究階段,目前還沒有能被公認的成熟可靠的設計方法和相關工具。因此,采用異步電路實現(xiàn)密碼算法在電路設計的復雜性和可靠性方面存在缺陷。
發(fā)明內容
本發(fā)明要解決的技術問題就在于針對現(xiàn)有技術存在的技術問題,本發(fā)明提出了一種能夠實現(xiàn)寄存器翻轉時刻隨機化的控制電路,通過將算法中關鍵寄存器翻轉時刻隨機化的方法增大攻擊者對功耗樣本時間對齊的難度,從而增大差分功耗攻擊的難度。為解決上述技術問題,本發(fā)明提出了一種寄存器翻轉時刻隨機化控制電路,它包括1.兩個不同時鐘域下的數(shù)據(jù)傳輸請求、應答信號的控制單元,每個請求、應答信號控制單元包括兩個帶復位、置位功能的D觸發(fā)器和一個兩輸入或非門;2.在系統(tǒng)上電復位后兩個控制單元可以周期性的產生請求和應答信號,其中請求信號連接數(shù)據(jù)通路中相應時鐘域下寄存器的同步使能端,實現(xiàn)數(shù)據(jù)的跨時鐘域傳輸;利用不同頻率時鐘信號之間相位差的變化實現(xiàn)在高頻時鐘域中寄存器翻轉時刻相對于低頻時鐘上升沿的隨機化。與現(xiàn)有技術相比,本發(fā)明的優(yōu)點就在于1、本發(fā)明利用不同頻率時鐘信號的相位差變化關系實現(xiàn)密碼算法電路中關鍵寄存器翻轉時刻的隨機化。相對于使用隨機插入偽操作的隨機化技術,本發(fā)明的寄存器翻轉時刻隨機化程度更高,更難以被攻擊者識別。2、本發(fā)明提出的寄存器翻轉時刻隨機化控制電路結構簡單,且全部由同步邏輯單元實現(xiàn)。相對于采用異步電路實現(xiàn)的隨機化方法,降低了電路的設計復雜性。3、本發(fā)明提供電路設計實現(xiàn)過程中相關信號的時序約束條件計算方法,降低了電路設計實現(xiàn)難度。
圖1是本發(fā)明的寄存器翻轉時刻隨機化控制電路結構示意圖;圖2是本發(fā)明具體實施的原理示意圖;圖3是本發(fā)明具體實施中請求、應答信號的時序圖。
具體實施例方式以下將結合附圖和具體實施例對本發(fā)明做進一步詳細說明。圖1是本發(fā)明提出的寄存器翻轉時刻隨機化控制電路結構示意圖,控制電路包括 Clk_a時鐘域下的信號控制單元和Clk_b時鐘域下的信號控制單元兩部分。Clk_a時鐘域控制單元包括兩個帶復位、置位端的D觸發(fā)器101和102以及或非門103,兩個D觸發(fā)器的時鐘輸入端連接Clk_a。觸發(fā)器101輸入Clk_b時鐘域的請求信號 Req_b,輸出與Clk_a時鐘邊沿對齊的應答信號Ack_a。其實現(xiàn)的功能為,當Req_b信號為1 時,Ack_a信號在Clk_a時鐘上升沿跳變?yōu)?,當Req_b信號為0時,Ack_a信號在Clk_a時鐘上升沿跳變?yōu)??;蚍情T103的輸入端連接Clk_b時鐘域的Req_b和經過一級buffer單元的Ack_b信號,輸出端連接觸發(fā)器102的輸入端,觸發(fā)器102輸出與Clk_a時鐘邊沿對齊的請求信號Req_a。其實現(xiàn)的功能為,當Req_b和Ack_b信號都為0時,Req_a信號在Clk_a 時鐘上升沿跳變?yōu)?,當Ack_b信號跳變?yōu)?時,Req_a信號在Clk_a時鐘上升沿跳變?yōu)?。 為了避免在Ack_b信號跳變?yōu)?而同時Req_b信號跳變?yōu)?的情況下或非門103產生毛刺信號,電路中在Ack_b信號端添加了一級buffer單元104使Ack_b信號跳變略晚于Req_b 信號。Clk_b時鐘域控制單元結構與Clk_a時鐘域控制單元相同,其區(qū)別在于D觸發(fā)器 201和202的時鐘輸入端連接的是Clk_b時鐘。此外,Reset信號連接至觸發(fā)器101、201和 202的復位端以及觸發(fā)器102的置位端。這樣,當系統(tǒng)復位時Req_a信號為1而Req_b、Ack_ b和Ack_a信號保持為低,在電路正常工作后請求、響應信號由控制電路周期性產生。本發(fā)明所提出的寄存器翻轉時刻隨機化控制電路具體實施原理如圖2所示。在圖中我們假設寄存器2的輸出端信號可以被攻擊者選作分析目標,而寄存器1和寄存器3沒有攻擊隱患。由此,我們稱寄存器2為關鍵寄存器而寄存器1和寄存器3為普通寄存器。關鍵寄存器在芯片內部產生的時鐘Clk_a下工作,而普通寄存器的工作時鐘(1103與芯片系統(tǒng)時鐘相位同步,實現(xiàn)密碼算法電路與外圍電路以及片外信號的同步傳輸。關鍵寄存器與普通寄存器之間的數(shù)據(jù)傳輸通過寄存器翻轉時刻控制電路產生的數(shù)據(jù)請求信號Req_a和 Req_b控制,Req_a和Req_b分別連接相應時鐘域中數(shù)據(jù)通路寄存器的同步使能端,當請求信號為1時,寄存器在對應的時鐘上升沿時刻采樣輸入數(shù)據(jù)。這樣由于時鐘(讓_3與(讓3 的頻率差異就可以導致密碼算法電路中關鍵寄存器翻轉時刻相對于Clk_b跳變沿的變化。 由于Clk_a和Clk_b都是周期信號,這使得兩個時鐘的相位差變化情況會表現(xiàn)出周期性的特點。在這種情況下,攻擊者一旦獲得了 clk_a的頻率信息就可以通過周期性的將功耗軌跡進行時間平移的方法來實現(xiàn)時間對齊的目的。為了解決這一問題,本發(fā)明要求內部時鐘生成器能夠產生不同頻率的時鐘信號,通過隨機數(shù)生成器產生的信號控制(3讓_&在不同時鐘頻率間隨機切換。圖3顯示了請求、響應信號以及數(shù)據(jù)通路的時序關系。下面通過描述圖2電路中數(shù)據(jù)的傳輸來解釋控制電路中請求、響應信號的工作過程。在電路運行過程中,當寄存器2向組合邏輯B輸出數(shù)據(jù)后,控制電路在下一個Clk_a的上升沿將接收數(shù)據(jù)請求信號Req_a置為1,即將寄存器1和寄存器3的同步使能端置位為1。在這之后的第一個Clk_b上升沿, 寄存器1將數(shù)據(jù)Datal打入組合邏輯A中,同時,應答信號Ack_b被置為1。在這之后的第一個Clk_a的上升沿Req_a信號被置為0。由此完成數(shù)據(jù)從Clk_b時鐘域向Clk_a時鐘域的傳送。當Req_a信號為0后,應答信號Ack_b在下一個Clk_b的上升沿被置位到0,同時數(shù)據(jù)請求信號Req_b置為1,開始數(shù)據(jù)從Clk_a時鐘域向Clk_b時鐘域的傳送。具體的操作過程與上述相同。圖3中的虛線箭頭指示了輸入數(shù)據(jù)在三個寄存器中的傳輸過程。為保證本發(fā)明提出的寄存器翻轉時刻隨機化控制電路能夠穩(wěn)定工作,圖2所示的電路中各種信號還需要滿足一定的時序要求。主要包括時鐘Clk_a與Clk_b的頻率要求、 數(shù)據(jù)傳輸路徑的建立時間要求和請求、響應信號需要滿足的時序要求。對于時鐘Clk_a與Clk_b的頻率要求方面,由于時鐘Clk_b要滿足與外圍電路的信號同步傳輸,因此,在系統(tǒng)中cik_b時鐘域的電路需要保持固定的數(shù)據(jù)吞吐率。即在圖2 所示的原型電路中,寄存器1必須保持每3個Clk_b時鐘周期從前級電路接收一次數(shù)據(jù),而寄存器3必須保持每3個Clk_b時鐘周期向后級電路發(fā)送一次數(shù)據(jù)。因此,Clk_b時鐘可以設置為系統(tǒng)時鐘的三倍頻。而由圖3所示的請求、響應信號時序關系可知,要保證寄存器1 和寄存器3每3個Clk_b時鐘周期都能傳輸數(shù)據(jù),則Clk_a的時鐘周期必須小于Clk_b的時鐘周期,即Clk_a的時鐘頻率必須高于Clk_b。對數(shù)據(jù)傳輸路徑建立時間的要求包括組合邏輯A的路徑時間Tsetup A和組合邏輯B 的路徑時間Tsetup B,組合邏輯A的路徑建立時間可由下式計算TSetup—A Tpath—A+Tsetup—reg2(1)公式中Tpath A是組合邏輯A的最大路徑傳輸延遲,Tsetup reg2是寄存器2的數(shù)據(jù)輸入端建立時間約束。根據(jù)圖3中所描述的數(shù)據(jù)傳輸關系,寄存器1在Clk_b的第一個時鐘上升沿將數(shù)據(jù)打入組合邏輯A,同時應答信號Ack_b被置為1。經過一個(讓_13時鐘周期后應答信號Ack_b被置為0,同時數(shù)據(jù)請求信號Req_b被置為1。在這之后的第一個Clk_a時鐘上升沿寄存器2采樣組合邏輯A的輸出信號。由此可知,假設八1\是時鐘(讓_3與時鐘(11 b的相位偏差,則組合邏輯A相對于寄存器2的建立時間約束如下式所示Tpath_A+Tsetup_reg2 < Tclk^AT1(2)式中T。lk b是的Clk_b時鐘周期。由于在電路工作過程中,AT1始終為一個大于0的隨機值,因此可以將組合邏輯A的最大路徑延遲約束定義為下式Tpath_A〈 Tclk_b-Tsetup_rexg2(3)對于組合邏輯B的最大路徑延遲約束可以通過相似的方法推導。當寄存器2將新數(shù)據(jù)打入組合邏輯B的同時,應答信號Ack_a被置為1。經過時刻八1~2后,在第一個(讓3 時鐘的上升沿Req_b信號被置為0,再經過一個Clk_b時鐘周期寄存器3將采樣組合邏輯B 的輸出信號。因此,組合邏輯B的路徑建立時間約束要求可由下式計算Tpath_B+Tsetup_reg3 <Tclk—b+AT2(4)公式中Tpath B是組合邏輯A的最大路徑傳輸延遲,Tsrtup Mg3是寄存器3的數(shù)據(jù)輸入端建立時間約束。由于我們約束Clk_a的時鐘周期始終小于Clk_b,因此Δ T2的最小取值等于T。lk—b與T。lk a的差。因此可以將組合邏輯B的最大路徑延遲約束定義為下式Tpath—B〈 2Tclk—b_Tclk—a_Tsetup—reg3(5)請求、響應信號需要滿足的時序要求包括Req_a信號和Ack_a信號相對于時鐘 Clk_b的建立時間約束、Req_b信號和Ack_b信號相對于時鐘Clk_a的建立時間約束以及 Req_a信號和Req_b信號作為數(shù)據(jù)通路寄存器同步使能信號的建立時間約束。假設Req_a 信號和Ack_a信號的路徑建立時間為Tsrtup a,Req_b信號和Ack_b信號的路徑建立時間為 Ts_—b。對于Tsrtup a,由于Clk_a的時鐘周期小于Clk_b,則信號和Ack_a信號跳變沿相對于Clk_b上升沿的最小時間間隔等于兩個時鐘周期的差值。因此只要約束Req_a信號和Ack_a信號的路徑建立時間小于兩個時鐘周期的差值即可保證信號能被Clk_b穩(wěn)定采樣,即滿足以下公式Tsetup_a < Tclk—b_Tclk—a,max(6)其中Telka,max表示Clk_a所有可能的時鐘周期值的最大值。對于Tsetup b,同樣由于Clk_a的時鐘周期小于Clk_b,在一個Clk_b周期中即使Req_b信號和Ack_b信號來不及被第一個Clk_a上升沿采樣還能被下一個Clk_a上升沿采樣采樣。因此只要約束Req_b信號和Ack_b信號的路徑建立時間小于一個Clk_a時鐘周期即可保證信號被及時采樣,即滿足以下公式
權利要求
1. 一種寄存器翻轉時刻隨機化控制電路,其特征在于它包括 兩個不同時鐘域下的數(shù)據(jù)傳輸請求、應答信號的控制單元,每個請求、應答信號控制單元包括兩個帶復位、置位功能的觸發(fā)器和一個兩輸入或非門;在系統(tǒng)上電復位后兩個控制單元可以周期性的產生請求和應答信號,其中請求信號連接數(shù)據(jù)通路中相應時鐘域下寄存器的同步使能端,實現(xiàn)數(shù)據(jù)的跨時鐘域傳輸;利用不同頻率時鐘信號之間相位差的變化實現(xiàn)在高頻時鐘域中寄存器翻轉時刻相對于低頻時鐘上升沿的隨機化。
全文摘要
本發(fā)明公開了一種寄存器翻轉時刻隨機化控制電路,通過本發(fā)明提供的信號時序約束條件計算方法實現(xiàn),可以利用不同頻率時鐘信號間的相位差變化實現(xiàn)高頻時鐘域中寄存器翻轉時刻相對于低頻時鐘跳變沿的隨機化,它包括兩個不同時鐘域下數(shù)據(jù)傳輸請求、應答信號的控制單元,每個請求、應答信號控制單元包括兩個帶復位、置位功能的D觸發(fā)器和一個兩輸入或非門。
文檔編號G06F21/00GK102254110SQ20101017693
公開日2011年11月23日 申請日期2010年5月20日 優(yōu)先權日2010年5月20日
發(fā)明者樂大珩, 何小威, 孫巖, 張均安, 張明, 張民選, 李少青, 段志奎, 竇強, 譚曉強, 趙振宇, 陳吉華, 馬卓 申請人:中國人民解放軍國防科學技術大學