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