一種防止差分功耗分析的智能卡加密方法及裝置的制造方法
【專利摘要】本發(fā)明的實(shí)施例提供一種防止差分功耗分析的智能卡加密方法及裝置,涉及信息安全技術(shù)領(lǐng)域,能夠?qū)崿F(xiàn)對(duì)差分功耗分析攻擊的防御,提高智能卡密鑰的安全性。該方法包括:獲取64位的明文,并對(duì)該明文進(jìn)行初始置換;對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算,并在每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加隨機(jī)延時(shí);完成第16輪加密運(yùn)算后,進(jìn)行逆初始置換還原真實(shí)的密文信息,存儲(chǔ)并輸出該密文信息。本發(fā)明應(yīng)用于智能卡加密。
【專利說明】
一種防止差分功耗分析的智能卡加密方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種防止差分功耗分析的智能卡加密方法及裝置?!颈尘凹夹g(shù)】
[0002]TD-LTE(英文:Time Divis1n Long Term Evolut1n,中文:分時(shí)長期演進(jìn))電力無線專網(wǎng)以其高帶寬、低延時(shí)、靈活覆蓋及安全可靠等特性,在配用電通信領(lǐng)域得到了廣泛的應(yīng)用與發(fā)展。其中,TD-LTE電力無線專網(wǎng)無線鏈路的安全性取決于無線專網(wǎng)智能卡芯片, 而智能卡芯片的安全性應(yīng)取決于其所使用的密碼算法、認(rèn)證方式以及安全協(xié)議的復(fù)雜度。 而現(xiàn)有的電力無線智能卡芯片通常使用DES(英文:Data Encrypt1n Algorithm,中文:數(shù)據(jù)加密算法)加密算法來進(jìn)行加解密。其中,DES加密技術(shù)是一種典型的對(duì)稱加密算法。對(duì)稱加密算法的含義是加密和解密使用相同的密鑰,通信雙方需要同時(shí)知道密鑰并且確定不被泄漏。DES加密算法流程具體過程包括:64位的明文首先進(jìn)行初始置換,然后分為左右兩部分,通過S盒、異或、左右交換等操作進(jìn)行16次輪運(yùn)算,最后經(jīng)過逆初始置換得到密文。
[0003]在DES加密算法提出不久,便有許多人試圖使用旁路攻擊(side-channel attack) 密碼分析技術(shù)攻擊該算法,該算法無需對(duì)密鑰算法進(jìn)行繁瑣的數(shù)學(xué)分析,而是利用加密過程中產(chǎn)生的物理泄露(例如,溫度、聲波、電磁輻射、執(zhí)行時(shí)間、功率消耗等)來獲取密鑰等隱秘信息。其中,DPA(英文differential Power Analysis,中文:差分功耗分析攻擊)是現(xiàn)今最為普遍的一種旁路攻擊方法,攻擊者可以通過旁路接入的方法,記錄加密時(shí)的功耗情況, 然后通過不斷地變換明文,逐位破解分析功耗波形圖,從而破譯密鑰。
[0004]具體的,對(duì)于DES加密算法,當(dāng)攻擊者猜對(duì)某一輪進(jìn)入S盒的子密鑰時(shí),便可按一定規(guī)則差分處理后的相關(guān)功耗曲線將顯示出一些很突出的尖峰,若差分功耗曲線出現(xiàn)明顯的尖峰,則表示本輪密鑰猜測成果。差分功耗分析技術(shù),實(shí)質(zhì)是通過對(duì)比差分功耗圖來逐位破解密鑰,其具體破解步驟如下:從密鑰的最高位開始假設(shè)要攻擊的密鑰位為〇,針對(duì)每一位密鑰的攻擊都是破解該密鑰位對(duì)應(yīng)的那一輪加密運(yùn)算;在加密模型中對(duì)明文進(jìn)行這一輪加密,查看加密結(jié)果中某一個(gè)固定位的值是〇還是1;在芯片中對(duì)同一明文進(jìn)行加密,獲取功耗圖,若加密模型中,結(jié)果的某一個(gè)固定位的值是〇,就將這條功耗圖放在〇集合中,否則將其放入1集合中;按照上述過程把所有明文加密的功耗圖分為兩組,并計(jì)算每一組的平均功耗曲線;把這兩個(gè)分組的平均功耗曲線相減得到差分功耗曲線,在差分曲線中所假設(shè)密鑰位對(duì)應(yīng)的時(shí)間點(diǎn)上,若出現(xiàn)尖峰則說明假設(shè)正確,該密鑰位為0,否則說明假設(shè)錯(cuò)誤,該密鑰位為1;按照上述步驟依次破解密鑰的每一位。[〇〇〇5]這樣通過采集大量的能量痕跡,利用統(tǒng)計(jì)學(xué)原理和差分分析方法便可猜測并破解加密密鑰。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實(shí)施例提供一種防止差分功耗分析的智能卡加密方法及裝置,能夠?qū)崿F(xiàn)對(duì)差分功耗分析攻擊的防御,提高智能卡密鑰的安全性。
[0007]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0008]第一方面,提供一種防止差分功耗分析的智能卡加密方法,包括:
[0009]獲取64位的明文,并對(duì)所述明文進(jìn)行初始置換;
[0010]對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算,并在每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加隨機(jī)延時(shí);
[0011]完成第16輪加密運(yùn)算后,進(jìn)行逆初始置換還原真實(shí)的密文信息,存儲(chǔ)并輸出所述密文信息。
[0012]第二方面,提供一種防止差分功耗分析的智能卡加密裝置,包括:置換模塊、運(yùn)算模塊、延時(shí)模塊以及存儲(chǔ)器;
[0013]其中,所述置換模塊連接所述存儲(chǔ)器,用于從所述存儲(chǔ)器中獲取64位的明文,并對(duì)所述明文進(jìn)行初始置換;
[0014]所述運(yùn)算模塊連接所述置換模塊,用于對(duì)所述置換模塊進(jìn)行初始置換后的明文進(jìn)行16輪加密運(yùn)算;
[0015]所述延時(shí)模塊連接所述運(yùn)算模塊,用于在所述運(yùn)算模塊對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加隨機(jī)延時(shí);
[0016]所述置換模塊連接所述運(yùn)算模塊,還用于在所述運(yùn)算模塊完成第16輪加密運(yùn)算后,進(jìn)行逆初始置換還原出真實(shí)的密文信息,并將所述密文信息寫入所述存儲(chǔ)器;
[0017]所述存儲(chǔ)器,用于存儲(chǔ)并輸出所述密文信息。
[0018]本發(fā)明的實(shí)施例提供的防止差分功耗分析的智能卡加密方法及裝置,通過在現(xiàn)有的DES算法的16輪加密運(yùn)算的每輪加密運(yùn)算中加入隨機(jī)延時(shí)的過程,從而使得每次加密的運(yùn)算位置隨機(jī)變化,進(jìn)而增大破解的難度,使得加密后的智能卡能夠?qū)崿F(xiàn)對(duì)差分功耗分析攻擊的防御,提高了智能卡密鑰的安全性。
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1為現(xiàn)有的DES加密算法步驟圖;
[0021 ]圖2為現(xiàn)有的DES加密算法中S盒變換的變換流程圖;
[0022]圖3為本發(fā)明實(shí)施例提供的防止差分功耗分析的智能卡加密方法的方法流程圖;
[0023]圖4為本發(fā)明實(shí)施例提供的隨機(jī)延時(shí)添加示意圖;
[0024]圖5為本發(fā)明實(shí)施例提供的S盒的運(yùn)算順序隨機(jī)化的方法流程圖;
[0025]圖6為本發(fā)明實(shí)施例提供的隨機(jī)噪聲的添加方法流程圖;
[0026]圖7為本發(fā)明實(shí)施例提供的防止差分功耗分析的智能卡加密裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0028]本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨(dú)存在A,同時(shí)存在A和B,單獨(dú)存在B這三種情況。另外,本文中字符7”,一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。
[0029]本發(fā)明實(shí)施例提供的防止差分功耗分析的智能卡加密方法的執(zhí)行主體可以為防止差分功耗分析的智能卡加密裝置,或者用于執(zhí)行上述防止差分功耗分析的智能卡加密方法的智能卡芯片、中央處理器(英文:Central Processing Unit,簡稱:CPU)或者可以為上述智能卡芯片中的控制單元或者功能模塊。
[0030]參照圖1所示的現(xiàn)有的DES加密算法步驟圖可知,現(xiàn)有的DES加密算法包括如下步驟:1)將明文分組,每個(gè)分組輸入為64位的明文;2)使用IP置換表對(duì)明文進(jìn)行初始置換,初始置換過程是與密鑰無關(guān)的操作;3)加密迭代過程,有16個(gè)形同的處理過程,稱謂輪 (round),即整個(gè)加密過程共16輪加密運(yùn)算;4)對(duì)經(jīng)過16輪加密運(yùn)算的明文進(jìn)行逆初始置換,這一變換過程也不需要密鑰,能夠還原出真實(shí)的密文;5)輸出64位的密文。[0031 ]如圖1所示,16輪加密運(yùn)算中的每一的加密運(yùn)算的執(zhí)行過程如下:1)明文分組:對(duì) 64位明文進(jìn)行移位操作,將64位明文分成左半部分(L)和右半部分(R),每部分各32位,本輪運(yùn)算中的右半部分直接作為下一輪運(yùn)算的左半部分,右半部分的32位進(jìn)行擴(kuò)展置換變?yōu)?8 位,其輸出包括8個(gè)5位的塊,每塊包含4位對(duì)應(yīng)的輸入位,加上兩個(gè)臨界的塊中緊鄰的位;2) 密鑰混合:將經(jīng)過擴(kuò)展的48位右半部分與本輪的48位密鑰進(jìn)行異或運(yùn)算;3) S盒變換:將2) 中的結(jié)果經(jīng)過S盒變換,由原來的48位變換為32位;其中,具體的轉(zhuǎn)換過程如圖2所示,其過程如下:首先將48位數(shù)據(jù)分為8組6位的數(shù)據(jù),通過8個(gè)S盒分別將將數(shù)據(jù)塊轉(zhuǎn)換為4位的數(shù)據(jù),最后將這些數(shù)據(jù)塊合并為32位的數(shù)據(jù);4)P置換:將3)中S盒輸出的32位的數(shù)據(jù)利用固定的置換,P置換進(jìn)行重組;5)異或運(yùn)算:將4)中結(jié)果與左半部分進(jìn)行異或,運(yùn)算結(jié)果成為下一輪加密運(yùn)算過程的右半部分。
[0032]針對(duì)現(xiàn)有的DES算法應(yīng)對(duì)差分功耗分析破解技術(shù)的不足,本發(fā)明實(shí)施例提供的防止差分功耗分析的智能卡加密方法,通過在現(xiàn)有的DES加密算法中增加隨機(jī)噪聲、隨機(jī)延時(shí)和隨機(jī)順序過程,干擾密鑰破解者對(duì)密鑰位置的定位和密鑰的破解,從而實(shí)現(xiàn)對(duì)差分功耗分析攻擊的防御。[〇〇33]參照圖3所示,本發(fā)明實(shí)施例提供的防止差分功耗分析的智能卡加密方法具體包括如下步驟:[〇〇34]301、獲取64位的明文。
[0035]具體的,該裝置在獲取到待加密明文后,會(huì)將該待加密明文進(jìn)行明文分組,使得每組明文輸入為64位的明文,然后按照下述步驟302-304的過程,依次將每組明文進(jìn)行加密, 得到每組明文的密文信息。[〇〇36]302、對(duì)該明文進(jìn)行初始置換。
[0037] —般的,在16輪加密運(yùn)算的前后首尾各有一次置換,稱謂IP置換和FP置換(或稱為 IP-1,F(xiàn)P為IP的反函數(shù))。其中,IP初始置換過程具體包括:使用IP置換表,將原始的64位明文進(jìn)行明文置換。反之,在進(jìn)行FP置換即IP逆初始置換時(shí),還是按照IP置換表,將明文還原為原始明文。
[0038]303、對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算,并在每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加隨機(jī)延時(shí)。
[0039]示例性的,在16輪加密運(yùn)算的每一輪加密運(yùn)算過程中,在擴(kuò)展變換與第一異或運(yùn)算之間、異或運(yùn)算與S盒變換之間、S盒變換與P變換之間、P變換與第二異或運(yùn)算之間以及第二異或運(yùn)算之后中的至少一種運(yùn)算中加入一個(gè)隨機(jī)延時(shí)。
[0040]具體的,參照圖4所示的隨機(jī)延時(shí)添加示意圖可知,步驟303中在每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加一個(gè)隨機(jī)延時(shí),包括以下至少一個(gè)步驟:
[0041 ]在每一輪加密運(yùn)算的擴(kuò)展變換與第一異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí);
[0042]在每一輪加密運(yùn)算的異或運(yùn)算與S盒變換之間一個(gè)添加隨機(jī)延時(shí);
[0043]在每一輪加密運(yùn)算的S盒變換與P變換之間一個(gè)添加隨機(jī)延時(shí);
[0044]在每一輪加密運(yùn)算的P變換與第二異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí);
[0045]在每一輪加密運(yùn)算的第二異或運(yùn)算之后添加一個(gè)隨機(jī)延時(shí);
[0046]在每一輪加密運(yùn)算的8個(gè)S盒之間添加隨機(jī)延時(shí)。
[0047]需要說明的是,由于步驟303中16輪加密運(yùn)算中的每一輪加密運(yùn)算過程中8個(gè)S盒的任意兩兩相鄰的S盒之間可添加一個(gè)隨機(jī)時(shí)延,因此,若每次隨機(jī)延時(shí)添加過程中僅加入一個(gè)隨時(shí)延時(shí),則每一輪加密運(yùn)算的8個(gè)S盒之間最多可添加7個(gè)隨機(jī)延時(shí)。
[0048]304、完成第16輪加密運(yùn)算后,進(jìn)行逆初始置換還原真實(shí)的密文信息,并輸出密文
?目息O
[0049]本發(fā)明的實(shí)施例提供的防止差分功耗分析的智能卡加密方法及裝置,通過在現(xiàn)有的DES算法的16輪加密運(yùn)算的每輪加密運(yùn)算中加入隨機(jī)延時(shí)的過程,從而使得每次加密的運(yùn)算位置隨機(jī)變化,進(jìn)而增大破解的難度,使得加密后的智能卡能夠?qū)崿F(xiàn)對(duì)差分功耗分析攻擊的防御,提高了智能卡密鑰的安全性。
[0050]可選的,在步驟303中經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算過程中,還包括如下內(nèi)容:
[0051 ] Al、將每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算的運(yùn)算順序隨機(jī)化。
[0052]參照圖5所示的S盒的運(yùn)算順序隨機(jī)化的方法流程圖可知,S盒運(yùn)算順序隨機(jī)化的具體實(shí)現(xiàn)步驟包括:
[0053]I)初始化數(shù)組mark[]元素全部為O。
[0054]2)生成隨機(jī)數(shù)r = rand()%8,初始化cnt(已參加運(yùn)算的S盒個(gè)數(shù),即標(biāo)記S盒個(gè)數(shù))為O O
[0055]3)判斷mark[r]是否等于I,如果是,令r= (r+Ι) %8,直到找到第一個(gè)mark[r]等于O的位置。
[0056]4)選擇與S盒對(duì)應(yīng)的輸入位置和輸出位置。
[0057]5)選擇S盒,進(jìn)行壓縮運(yùn)算。
[0058]6)標(biāo)記S盒為已參與運(yùn)算過,mark[r] = I。
[0059]7)計(jì)算cnt++,如果cnt等于7,算法結(jié)束;否則進(jìn)入2繼續(xù)執(zhí)行。
[0060]基于上述內(nèi)容可知,S盒的隨機(jī)運(yùn)算策略是設(shè)計(jì)一個(gè)8個(gè)元素組成的標(biāo)識(shí)數(shù)組mark
[8],初始化數(shù)組元素全部為O,當(dāng)其中的S[r]盒參與運(yùn)算時(shí),標(biāo)記mark[r]為I,當(dāng)再次隨機(jī)至丨Jr時(shí),判斷mark[r]的值,如果mark[r]為1,那么r自增1,如果r自增1后的mark[r]仍然為1, r再自增1,如此反復(fù),直至8個(gè)S盒全部參與了運(yùn)算,整個(gè)S盒運(yùn)算期間,需要八次生成隨機(jī)數(shù)。
[0061]這樣基于上述的步驟A1以及圖3對(duì)應(yīng)的實(shí)施例可知,一個(gè)最優(yōu)方案,即隨機(jī)S盒方案可以為:在DES加密過程中,可以在S盒運(yùn)算前加入一個(gè)隨機(jī)延時(shí)或在8個(gè)S盒之間添加隨機(jī)延時(shí)或在S盒運(yùn)算后加入一個(gè)隨機(jī)延時(shí),并將8個(gè)S盒的運(yùn)算執(zhí)行順序進(jìn)行隨機(jī)化設(shè)計(jì),使得每次加密的預(yù)算位置隨機(jī)變化,從而進(jìn)一步的加大破解的難度。[〇〇62]可選的,在步驟303在對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的過程中,還包括如下內(nèi)容:
[0063]A2、觸發(fā)隨機(jī)噪聲干擾程序,進(jìn)行無意義的隨機(jī)運(yùn)算,產(chǎn)生隨機(jī)噪聲。
[0064]示例性的,如圖6所示的隨機(jī)噪聲涉及方案流程圖,在進(jìn)行DES加密算法的過程中, 明文完成分組和初始置換后,對(duì)明文進(jìn)行16輪加密運(yùn)算,此時(shí)對(duì)隨機(jī)噪聲進(jìn)程發(fā)出一個(gè)干擾觸發(fā)指令,而隨機(jī)噪聲進(jìn)程在接收到干擾觸發(fā)指令后,會(huì)進(jìn)行一次隨機(jī)運(yùn)算,產(chǎn)生隨機(jī)噪聲,運(yùn)行完隨機(jī)運(yùn)算后進(jìn)行一次判定,是否收到干擾結(jié)束指令,若未收到該干擾結(jié)束指令, 繼續(xù)運(yùn)算隨機(jī)噪聲程序,繼續(xù)產(chǎn)生隨機(jī)噪聲,若接收到該干擾結(jié)束指令,則結(jié)束隨機(jī)噪聲程序,干擾結(jié)束。而該干擾結(jié)束指令時(shí)在明文經(jīng)過16輪加密運(yùn)算之后而產(chǎn)生的。
[0065]這樣通過加入噪聲干擾,從而干擾加密運(yùn)算的功耗值,使得攻擊者無法難以根據(jù)差分功耗波形圖破解智能卡密鑰。
[0066]本發(fā)明的實(shí)施例提供一種防止差分功耗分析的智能卡加密裝置,實(shí)施例中與圖3-6對(duì)應(yīng)實(shí)施例中相關(guān)的技術(shù)術(shù)語、概念等的說明可以參照上述的實(shí)施例,這里不再贅述。如圖7所示,該裝置4包括:置換模塊41、運(yùn)算模塊42、延時(shí)模塊43以及存儲(chǔ)器44,其中:[〇〇67]其中,置換模塊41連接存儲(chǔ)器44,用于從存儲(chǔ)器44中獲取64位的明文,并對(duì)明文進(jìn)行初始置換。[〇〇68]運(yùn)算模塊42連接置換模塊41,用于對(duì)置換模塊41進(jìn)行初始置換后的明文進(jìn)行16輪加密運(yùn)算。[〇〇69]延時(shí)模塊43連接運(yùn)算模塊42,用于在運(yùn)算模塊42對(duì)經(jīng)過初始置換后的明文進(jìn)行16 輪加密運(yùn)算的每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加隨機(jī)延時(shí)。
[0070]置換模塊41連接運(yùn)算模塊42,還用于在運(yùn)算模塊42完成第16輪加密運(yùn)算后,進(jìn)行逆初始置換還原真實(shí)的密文信息,并將該密文信息寫入存儲(chǔ)器44。[0071 ]存儲(chǔ)器44,用于存儲(chǔ)并輸出密文信息,以及存儲(chǔ)明文。[〇〇72]可選的,延時(shí)模塊43在運(yùn)算模塊42對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加一個(gè)隨機(jī)延時(shí),用于實(shí)現(xiàn)以下至少一個(gè)步驟:
[0073]在每一輪加密運(yùn)算的擴(kuò)展變換與第一異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí);
[0074]在每一輪加密運(yùn)算的異或運(yùn)算與S盒變換之間一個(gè)添加隨機(jī)延時(shí);
[0075]在每一輪加密運(yùn)算的S盒變換與P變換之間一個(gè)添加隨機(jī)延時(shí);
[0076]在每一輪加密運(yùn)算的P變換與第二異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí);
[0077]在每一輪加密運(yùn)算的第二異或運(yùn)算之后添加一個(gè)隨機(jī)延時(shí);
[0078]在每一輪加密運(yùn)算的8個(gè)S盒之間添加隨機(jī)延時(shí)。
[0079]可選的,運(yùn)算模塊42在對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算過程中,還用于將每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算的運(yùn)算順序隨機(jī)化。
[0080]可選的,運(yùn)算模塊42在對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的過程中,還用于觸發(fā)隨機(jī)噪聲干擾程序,進(jìn)行無意義的隨機(jī)運(yùn)算,產(chǎn)生隨機(jī)噪聲。
[0081 ]可選的,該裝置還包括分組模塊45,其中:
[0082]分組模塊45連接存儲(chǔ)器44,用于對(duì)待加密的明文進(jìn)行分組,并將每組明文寫入存儲(chǔ)器44中,每個(gè)分組輸入的明文為64位明文。
[0083]本發(fā)明的實(shí)施例提供的防止差分功耗分析的智能卡加密裝置,通過在現(xiàn)有的DES算法的16輪加密運(yùn)算的每輪加密運(yùn)算中加入隨機(jī)延時(shí)、隨機(jī)噪聲以及S盒運(yùn)算順序隨機(jī)化的過程,從而使得每次加密的運(yùn)算位置隨機(jī)變化,進(jìn)而增大破解的難度,使得加密后的智能卡能夠?qū)崿F(xiàn)對(duì)差分功耗分析攻擊的防御,提高了智能卡密鑰的安全性。
[0084]需要說明的是,在具體實(shí)現(xiàn)過程中,上述如圖3所示的方法流程中的各步驟均可以通過硬件形式的處理器執(zhí)行存儲(chǔ)器中存儲(chǔ)的軟件形式的計(jì)算機(jī)執(zhí)行指令實(shí)現(xiàn),為避免重復(fù),此處不再贅述。而上述防止差分功耗分析的智能卡加密裝置所執(zhí)行的動(dòng)作所對(duì)應(yīng)的程序均可以以軟件形式存儲(chǔ)于該裝置的存儲(chǔ)器中,以便于處理器調(diào)用執(zhí)行以上各個(gè)模塊對(duì)應(yīng)的操作。
[0085]上文中的存儲(chǔ)器可以包括易失性存儲(chǔ)器(volatile memory),例如隨機(jī)存取存儲(chǔ)器(random-access memory ,RAM);也可以包括非易失性存儲(chǔ)器(non-volatile memory),例如只讀存儲(chǔ)器(read-only memory,R0M),快閃存儲(chǔ)器(flash memory),硬盤(hard diskdrive,HDD)或固態(tài)硬盤(solid-state drive,SSD);還可以包括上述種類的存儲(chǔ)器的組合。
[0086]上文所提供的裝置中的處理器可以是一個(gè)處理器,也可以是多個(gè)處理元件的統(tǒng)稱。例如,處理器可以為中央處理器(central processing unit,CPU;也可以為其他通用處理器、數(shù)字信號(hào)處理器(digital signal processing,DSP)、專用集成電路(applicat1nspecific integrated circuit,ASIC)、現(xiàn)場可編程門陣列(field-programmable gatearray,F(xiàn)PGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等;還可以為專用處理器,該專用處理器可以包括基帶處理芯片、射頻處理芯片等中的至少一個(gè)。
[0087]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置和模塊的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
[0088]在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0089]所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0090]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理包括,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0091]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換; 而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種防止差分功耗分析的智能卡加密方法,其特征在于,包括:獲取64位的明文,并對(duì)所述明文進(jìn)行初始置換;對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算,并在每一輪加密運(yùn)算過程中的至少一種 運(yùn)算后添加隨機(jī)延時(shí);完成第16輪加密運(yùn)算后,進(jìn)行逆初始置換還原真實(shí)的密文信息,存儲(chǔ)并輸出所述密文fg息。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在每一輪加密運(yùn)算過程中的至少一種 運(yùn)算后添加一個(gè)隨機(jī)延時(shí),包括以下至少一個(gè)步驟:在每一輪加密運(yùn)算的擴(kuò)展變換與第一異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí);在每一輪加密運(yùn)算的異或運(yùn)算與S盒變換之間一個(gè)添加隨機(jī)延時(shí);在每一輪加密運(yùn)算的S盒變換與P變換之間一個(gè)添加隨機(jī)延時(shí);在每一輪加密運(yùn)算的P變換與第二異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí);在每一輪加密運(yùn)算的第二異或運(yùn)算之后添加一個(gè)隨機(jī)延時(shí);在每一輪加密運(yùn)算的8個(gè)S盒之間添加隨機(jī)延時(shí)。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述對(duì)經(jīng)過初始置換后的明文進(jìn)行16 輪加密運(yùn)算的每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算過程中,還包括:將所述每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算的運(yùn)算順序隨機(jī)化。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述對(duì)經(jīng)過初始置換后的明文進(jìn)行16 輪加密運(yùn)算的過程中,還包括:觸發(fā)隨機(jī)噪聲干擾程序,進(jìn)行無意義的隨機(jī)運(yùn)算,產(chǎn)生隨機(jī)噪聲。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取64位的明文之前,所述方法還包 括:對(duì)待加密的明文進(jìn)行分組,每個(gè)分組輸入的明文為64位明文。6.—種防止差分功耗分析的智能卡加密裝置,其特征在于,包括:置換模塊、運(yùn)算模塊、 延時(shí)模塊以及存儲(chǔ)器;其中,所述置換模塊連接所述存儲(chǔ)器,用于從所述存儲(chǔ)器中獲取64位的明文,并對(duì)所述 明文進(jìn)行初始置換;所述運(yùn)算模塊連接所述置換模塊,用于對(duì)所述置換模塊進(jìn)行初始置換后的明文進(jìn)行16 輪加密運(yùn)算;所述延時(shí)模塊連接所述運(yùn)算模塊,用于在所述運(yùn)算模塊對(duì)經(jīng)過初始置換后的明文進(jìn)行 16輪加密運(yùn)算的每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加隨機(jī)延時(shí);所述置換模塊連接所述運(yùn)算模塊,還用于在所述運(yùn)算模塊完成第16輪加密運(yùn)算后,進(jìn) 行逆初始置換還原出真實(shí)的密文信息,并將所述密文信息寫入所述存儲(chǔ)器;所述存儲(chǔ)器,用于存儲(chǔ)并輸出所述密文信息。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述延時(shí)模塊在所述運(yùn)算模塊對(duì)經(jīng)過初始 置換后的明文進(jìn)行16輪加密運(yùn)算的每一輪加密運(yùn)算過程中的至少一種運(yùn)算后添加一個(gè)隨 機(jī)延時(shí),用于實(shí)現(xiàn)以下至少一個(gè)步驟:在每一輪加密運(yùn)算的擴(kuò)展變換與第一異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí);在每一輪加密運(yùn)算的異或運(yùn)算與S盒變換之間一個(gè)添加隨機(jī)延時(shí); 在每一輪加密運(yùn)算的S盒變換與P變換之間一個(gè)添加隨機(jī)延時(shí); 在每一輪加密運(yùn)算的P變換與第二異或運(yùn)算之間添加一個(gè)隨機(jī)延時(shí); 在每一輪加密運(yùn)算的第二異或運(yùn)算之后添加一個(gè)隨機(jī)延時(shí); 在每一輪加密運(yùn)算的8個(gè)S盒之間添加隨機(jī)延時(shí)。8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述運(yùn)算模塊在對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算過程中,還用于將所述每一輪加密運(yùn)算的8個(gè)S盒運(yùn)算的運(yùn)算順序隨機(jī)化。9.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述運(yùn)算模塊在對(duì)經(jīng)過初始置換后的明文進(jìn)行16輪加密運(yùn)算的過程中,還用于觸發(fā)隨機(jī)噪聲干擾程序,進(jìn)行無意義的隨機(jī)運(yùn)算,產(chǎn)生隨機(jī)噪聲。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置,還包括: 分組模塊連接所述存儲(chǔ)器,用于對(duì)待加密的明文進(jìn)行分組,并將每組明文寫入所述存儲(chǔ)器中,每個(gè)分組輸入的明文為64位明文。
【文檔編號(hào)】H04L9/06GK106027222SQ201610514815
【公開日】2016年10月12日
【申請日】2016年6月30日
【發(fā)明人】陳立明, 董旭柱, 謝雄威, 吳爭榮, 劉志文, 俞小勇, 羅洋, 禤亮, 黃曉勝, 陶凱, 李瑾, 秦昊, 黃冠瑯
【申請人】中國南方電網(wǎng)有限責(zé)任公司電網(wǎng)技術(shù)研究中心, 南方電網(wǎng)科學(xué)研究院有限責(zé)任公司, 中國電子科技集團(tuán)第七研究所, 廣西電網(wǎng)有限責(zé)任公司電力科學(xué)研究院, 廣西電網(wǎng)有限責(zé)任公司南寧供電局