專利名稱:一種防止對分組算法進行功耗攻擊的電路結構的制作方法
技術領域:
本發(fā)明涉及信息安全技術,是一種適用于安全芯片的防攻擊技術。
背景技術:
在信息安全領域中,隨著智能卡應用和計算機網(wǎng)絡的日益普及,密碼算法和專用密碼電路的應用也日益廣泛。且由于集成電路的發(fā)展以及應用技術的不斷發(fā)展,智能卡等設備越來越多地承載著個人和商業(yè)機密信息。隨著測量和分析技術的不斷進步,對于密碼 算法的攻擊不再僅僅局限于密碼算法本身,對于其載體的攻擊也日益成熟并不斷發(fā)展。智能卡密碼算法實現(xiàn)的安全問題也逐漸受到人們的廣泛關注。其中側信道攻擊是一種具有代表性且極具威脅的一種攻擊方法。由于集成電路本身的特性,在其上運行密碼算法時,不可避免地要泄露,注入功耗,時間,電磁輻射以及差錯信息等。通過采集利用上述信息,進行功耗曲線或電磁曲線收集,信號處理,數(shù)學分析等攻擊并最終獲得敏感信息(如密鑰)的攻擊方法就稱為側信道攻擊。智能卡中的密碼算法電路以半導體器件為基礎,由大量晶體管構成,當晶體管上發(fā)生充放電時,電子從娃襯底流過,消耗能量,同時產生電磁福射。代表0,1信息的大量晶體管電路翻轉會導致功耗不同,使運算密鑰與功耗或電磁輻射之間存在相關性。功耗分析和電磁分析就是依賴于加密硬件在運算過程中功耗消耗和電磁輻射與加密信息和密鑰的相關性。分組密碼算法是信息安全的常用的核心技術。通常的分組密碼算法中,數(shù)據(jù)在實際加密和解密的過程中,經過16圈運算,每一圈運算包括裝載數(shù)據(jù),引入密鑰參與計算,S盒運算等操作,這些操作采用組合邏輯實現(xiàn),在同一時鐘周期內完成。攻擊者在采集了大量的功耗或電磁輻射曲線后,經過對齊數(shù)據(jù),就可以容易地獲得差分數(shù)據(jù),通過數(shù)學分析,從而獲得整個的密鑰信息。要想消除集成電路工作過程中和密碼相關的功耗特征或者電磁特征,是比較困難的事情,代價也很大。從功耗分析和電磁分析方法提出以來,針對對稱分組密碼算法,如DES, AES,提出了許多的防護方法,有算法級別的方法,例如使用隨機掩碼,密碼運算過程中插入隨機等待等;有電路級別的方法,例如雙軌編碼,差分邏輯等。這些方法對運算性能和面積影響比較大,尤其對智能卡而言,由此帶來的面積和功耗增加的代價是難以接受的。
發(fā)明內容
本發(fā)明提供一種用于集成電路的能夠有效防止針對分組算法的功耗分析和電磁輻射分析的技術,以及實現(xiàn)該方法的電路結構。本方法應用標準單元庫,使用RTL級電路描述語言實現(xiàn),與未加防護的標準分組密碼算法實現(xiàn)比較,所消耗資源增加不大。電路結構對分組密碼運算的性能損失不大,尤其在較大數(shù)據(jù)量的情況下,運算速度近似等于標準分組密碼算法實現(xiàn)。本發(fā)明不需要特殊門電路或者額外設計特殊單元來掩蓋功耗信息,而是采用將標準分組密碼算法切割后使用流水線方式來構造電路結構,且應用靈活,既可以在處理較大數(shù)據(jù)量時為計算加速,也可以在較小數(shù)據(jù)量時保證同樣的防御效果。本發(fā)明將對稱算法每一圈運算劃分為若干子步驟,在所劃分的步驟的基礎上,實行流水線操作運算,根據(jù)所劃分步驟的數(shù)目,實現(xiàn)相應級數(shù)的流水線,每一級流水線計算不同的數(shù)據(jù),保證每個時鐘周期同時進行不同數(shù)據(jù)的不同運算。對每一級流水線處理數(shù)據(jù)施加隨機數(shù)掩碼,保證流水線實際處理數(shù)據(jù)的互異性。流水線各級處理的數(shù)據(jù)為不同的明文,可以有效提高加解密效率。流水線各級處理的數(shù)據(jù)可以為一條或幾條明文(明文數(shù)量小于流水線級數(shù)),剩余流水線各級輸入隨機數(shù)。在僅需要處理少量明文的情況下,仍然可以有效對功耗分析進行抵御。每一時鐘周期進行的運算為不同明文的不同操作疊加,不同明文和/或隨機數(shù)間相互掩蓋,當攻擊者進行功耗分析或電磁輻射分析時,真實密鑰對應的差分功耗曲線將沒有明顯的特征,使攻擊失效,從而防止攻擊者對分組算法進行功耗分析或電磁輻射分析。同時對多個明文進行并行運算,提高了處于高安全性防護狀態(tài)下加解密運算的效率,在僅需 對少量明文進行運算的情況下,引入隨機數(shù)參與運算,保證對任意輸入方式均進行防護。對各級輸入數(shù)據(jù)采用隨機數(shù)掩碼掩蓋,保證了各級處理數(shù)據(jù)的不一致性,從而對任意輸入均進行防護。同時對多個明文進行并行運算,提高了處于高安全性防護狀態(tài)下加解密運算的效率,在僅需對少量明文進行運算的情況下,引入隨機數(shù)掩碼參與運算,保證對任意輸入方式均進行防護。本發(fā)明采用對輸入數(shù)據(jù)施加隨機數(shù)掩碼的方法,來防止攻擊者通過施加相同數(shù)據(jù)的方法來規(guī)避防御措施。本發(fā)明電路結構亦可采用以整個圈運算或其他運算劃分為單位,作為流水線的每一級,實現(xiàn)類似的多級流水線結構。本發(fā)明是以觸發(fā)器為例來實現(xiàn)流水線結構的寄存器的,寄存器的物理實現(xiàn)載體包括但不限于觸發(fā)器、鎖存器和RAM存儲器等物理存儲單元。
圖I本發(fā)明以DES為例的工作方法圖2根據(jù)本發(fā)明的工作方法的DES硬件實現(xiàn)示意圖
具體實施例方式下面以DES為例,說明本發(fā)明的具體實施方式
。本發(fā)明將標準DES每圈運算劃分為四步操作,分別為L/R寄存器翻轉(運算一),異或密鑰(運算二),S-box查表(運算三)和L/R寄存器異或(運算四)(但不限于劃分為四步且不限于每一劃分步驟的具體操作),在每一步之間插入寄存器,用于暫存流水線每級處理結果。圈運算所需硬件進行復用,因此電路為四級流水線結構(依每圈所劃分步驟數(shù)量而定)。密碼算法電路的功耗構成通常包含下面幾個部分Ptotal = Pop+Pdata+Pel.noise+Pconst其中Pttrtal表示電路的總功耗,Ptjp表示由電路中不同操作導致的功耗,Pdata表示電路中對不同操作數(shù)據(jù)計算所導致的功耗,Pe,Mise和P_st分別表示電路中電子噪聲導致的功耗以及電路的靜態(tài)功耗。本發(fā)明提出的流水線硬件電路結構,其原理是不僅疊加了不同處理數(shù)據(jù)導致的功耗Pdata,還疊加了每圈中的四步操作所導致的功耗Ptjp,且流水線的實現(xiàn)方式保證了對四組數(shù)據(jù)的四種不同操作在同一時鐘沿進行疊加,在時間上精確地施加了相對于被攻擊明文的噪聲,使得攻擊者很難區(qū)分出所攻擊明文對應的功耗分量,擾亂了被攻擊明文與電路總功耗的相關性,從而達到防御功耗分析和電磁輻射分析的效果。由于流水線中處理的四組數(shù)據(jù)的可以同時為明文數(shù)據(jù),因此相互間互為擾亂噪聲,達到了對每一條明文數(shù)據(jù)同等的防御功耗分析和電磁輻射分析的效果。該流水線結構DES電路實現(xiàn)100包括一組圈運算單元200。在整個DES運算過程中,這組圈運算單元200會被復用16次。圈運算單元200包括-寄存器10,用于存儲每級流水線操作的中間計算結果-組合電路20,用于進行異或圈密鑰等相關計算-組合電路30,用于進行S-box查表等相關計算-組合電路40,用于進行L/R寄存器異或等相關計算-選擇器50,用于根據(jù)所進行的圈數(shù)對圈運算裝載數(shù)據(jù)進行選擇以及根據(jù)輸入數(shù)據(jù)選擇匹配的隨機數(shù)掩碼。在第一時鐘周期,電路裝載圈密鑰一,數(shù)據(jù)一被施以隨機數(shù)掩碼一,被送入流水線第一級,進行運算一;在第二時鐘周期,數(shù)據(jù)一的運算一結果被送入流水線第二級,進行運算二,數(shù)據(jù)二被施以隨機數(shù)掩碼二,被送入流水線第一級,進行運算一;在第三時鐘周期,數(shù)據(jù)一的運算二結果被送入流水線第三級,進行運算三,數(shù)據(jù)二的運算一結果被送入流水線第二級,進行運算二,數(shù)據(jù)三被施以隨機數(shù)掩碼三,被送入流水線第一級,進行運算一;在第四時鐘周期,數(shù)據(jù)一的運算三結果被送入流水線第四級,進行運算四,數(shù)據(jù)二的運算二結果被送入流水線第三級,進行運算三,數(shù)據(jù)三的運算一結果被送入流水線第二級,進行運算二,數(shù)據(jù)四被施以隨機數(shù)掩碼四,被送入流水線第一級,進行運算一;在第五時鐘周期,電路裝載圈密鑰二,數(shù)據(jù)一的運算四結果被送入流水線第一級,進行第二圈運算的運算一,數(shù)據(jù)二的運算三結果被送入流水線第四級,進行運算四,數(shù)據(jù)三的運算二結果被送入流水線第三級,進行運算三,數(shù)據(jù)四,被送入流水線第二級,進行運算二。以此類推,在每一數(shù)據(jù)的最后一圈運算結束后,脫掉隨機數(shù)掩碼,輸出正確的運算數(shù)據(jù)。本實施方式是以每一圈運算的分步操作為流水線單元的實現(xiàn)方式闡述的,但不限于分步操作作為流水線單元的實現(xiàn)方式,包括以每一圈運算為流水線單元的實現(xiàn)方式等。
本實施方式是以DES為例進行闡述的,但本發(fā)明不只限于DES加解密算法運算的抗功耗分析和電磁場輻射分析的防護。本發(fā)明同樣適用于所有對稱分組加解密算法運算的抗功耗分析和電磁場輻射分析的防護。例如但不限于,DES、AES、3DES等對稱分組加解密算法運算的抗功耗分析和電磁場輻射分析的防護。
權利要求
1.一種抵御針對對稱算法進行功耗分析的方法,其特征在于將對稱算法每一圈運算劃分為若干子步驟,在所劃分的步驟的基礎上,實行流水線操作運算,根據(jù)所劃分步驟的數(shù)目,實現(xiàn)相應級數(shù)的流水線,每一級流水線計算不同的數(shù)據(jù),保證每個時鐘周期同時進行不同數(shù)據(jù)的不同運算,對每一級流水線處理數(shù)據(jù)施加隨機數(shù)掩碼,保證流水線實際處理數(shù)據(jù)的互異性。
2.如權利要求I所述的一種抵御針對對稱算法進行功耗分析的方法,其特征在于流水線各級處理的數(shù)據(jù)可以為一條或幾條明文,明文數(shù)量小于流水線級數(shù),剩余流水線各級輸入隨機數(shù),在僅需要處理少量明文的情況下,仍然可以有效對功耗分析進行抵御。
3.如權利要求I所述的一種抵御針對對稱算法進行功耗分析的方法,其特征在于每一時鐘周期進行的運算為不同明文的不同操作疊加,不同明文和/或隨機數(shù)間相互掩蓋,當攻擊者進行功耗分析或電磁輻射分析時,真實密鑰對應的差分功耗曲線將沒有明顯的特征,使攻擊失效,從而防止攻擊者對分組算法進行功耗分析或電磁輻射分析。
4.如權利要求I所述的一種抵御針對對稱算法進行功耗分析的方法,其特征在于對各級輸入數(shù)據(jù)采用隨機數(shù)掩碼掩蓋,保證了各級處理數(shù)據(jù)的不一致性,從而對任意輸入均進行防護。
5.如權利要求I所述的一種抵御針對對稱算法進行功耗分析的方法,其特征在于同時對多個明文進行并行運算,提高了處于高安全性防護狀態(tài)下加解密運算的效率,在僅需對少量明文進行運算的情況下,引入隨機數(shù)掩碼參與運算,保證對任意輸入方式均進行防護。
全文摘要
本發(fā)明提出了一種可以有效抵御通過功耗分析(簡單功耗分析SPA和差分功耗分析DPA)或電磁輻射分析(DEMA)技術對采用分組加解密算法的模塊、芯片和智能卡卡片等進行攻擊以獲取加解密運算密鑰的技術及其電路實現(xiàn)結構。在高安全性智能卡應用中,例如但不限于,電子身份證、金融卡、社??ǖ葢妙I域中,本發(fā)明能夠有效地保護分組算法模塊、芯片和智能卡卡片等,防止加解密運算密鑰被功耗分析或電磁輻射分析技術所破譯獲取。本發(fā)明還能夠在連續(xù)的加密運算中,提高加密運算的效率,在提高對分組算法模塊、芯片和智能卡卡片等的安全防護強度的同時保證了加密運算的執(zhí)行效率。本發(fā)明具有很好的創(chuàng)新性、實用性和有效性。
文檔編號H04L9/06GK102970131SQ20111025718
公開日2013年3月13日 申請日期2011年8月31日 優(yōu)先權日2011年8月31日
發(fā)明者劉戩, 陳波濤, 袁永峰 申請人:北京中電華大電子設計有限責任公司