可抵御差分功耗分析攻擊的加密處理裝置、集成電路芯片及密碼設(shè)備的制作方法
【專利摘要】本實(shí)用新型公開了一種可抵御差分功耗分析攻擊的加密處理裝置、集成電路芯片及密碼設(shè)備。所述的加密處理裝置包括:掩蓋處理電路單元SecMasking;預(yù)處理電路單元SecPrepare;和S盒電路單元SecSbox。本實(shí)用新型能夠?qū)崿F(xiàn)密碼運(yùn)算設(shè)備電路的工作功耗與運(yùn)算數(shù)據(jù)及運(yùn)算操作的無關(guān)化,并且其可以被廣泛應(yīng)用于需要高度安全性能的加解密運(yùn)算密碼設(shè)備。
【專利說明】可抵御差分功耗分析攻擊的加密處理裝置、集成電路芯片及密碼設(shè)備
【技術(shù)領(lǐng)域】
[0001]本實(shí)用新型屬于信息安全【技術(shù)領(lǐng)域】,具體而言,涉及一種可抵御差分功耗分析(Differential Power Analysis,簡稱DPA)攻擊的加密處理裝置、集成電路芯片及密碼設(shè)備。
【背景技術(shù)】
[0002]加密技術(shù)通常分為兩大類:對稱分組密碼算法以及非對稱分組密碼算法,其中,對稱分組密碼算法是指加密和解密均使用同一個(gè)密鑰,這種加密技術(shù)當(dāng)前被廣泛采用,如美國政府所采用的DES (Data Encrypt1n Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))加密標(biāo)準(zhǔn)就是一種典型的“對稱式”加密法,它的Sess1n Key長度為56bits。非對稱分組密碼算法是指加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)必須配對使用的“公鑰”和“私鑰”。
[0003]以經(jīng)典的對稱分組密碼算法的典型實(shí)現(xiàn)為例,如圖1所示,在圖1中r代表當(dāng)前輪變換的輪序數(shù),P和k代表當(dāng)前輪變換的輪分組數(shù)據(jù)和輪密鑰,σ和λ表示此輪內(nèi)的線性層變換,而唯一的非線性層變換Y則基本由多個(gè)S盒非線性變換組成。圖1所示的架構(gòu)并不僅僅適用于AES (Advanced Encrypt1n Standard,高級加密標(biāo)準(zhǔn))、DES等常見對稱分組密碼算法,也適用于已知或未知的包含非線性S盒構(gòu)造的其它對稱分組密碼算法。
[0004]密碼分析是密碼學(xué)的重要分支,典型的密碼分析通常不考慮密碼系統(tǒng)的具體實(shí)現(xiàn),而是僅通過數(shù)學(xué)推理、統(tǒng)計(jì)分析、高性能計(jì)算、可證明安全等途徑來發(fā)現(xiàn)密碼系統(tǒng)中的密鑰信息或不安全因素,這些分析方法主要包括差分分析、線性分析、相關(guān)密鑰分析、代數(shù)分析、線性逼近、困難問題求解、歸約證明等。
[0005]而在實(shí)際中,密碼系統(tǒng)通常是以硬件或以硬件為表現(xiàn)形式的軟件來實(shí)現(xiàn)的,譬如智能卡、RFID (Rad1 Frequency Identificat1n,射頻識別)、密碼協(xié)處理器、SoC (Systemon Chip,片上系統(tǒng))密碼芯片、密碼機(jī)等。在這些密碼系統(tǒng)的實(shí)現(xiàn)環(huán)境中,攻擊者不僅可以進(jìn)行“黑盒”詢問,而且往往還可以通過反向工程和微探測技術(shù)等手段獲得算法的硬件結(jié)構(gòu)和編碼實(shí)現(xiàn)方法,并可以觀察和測量密碼變換的運(yùn)行時(shí)間、能量消耗、電磁輻射等信息,甚至還可以“干預(yù)”密碼變換的正常運(yùn)行使其出錯(cuò)。攻擊者利用這些額外的信息有可能實(shí)現(xiàn)比“黑盒攻擊”更有效地密碼破譯。人們通常把這種環(huán)境下的攻擊稱為“旁路攻擊(SideChannel Attack)”。由于高效的攻擊性能,旁路攻擊已經(jīng)引起了國際學(xué)術(shù)界、工業(yè)界以及各國政府的高度重視和關(guān)注,成為密碼分析和密碼工程領(lǐng)域發(fā)展最為迅速的方向之一。
[0006]差分功耗分析是使用最廣泛的旁路攻擊方法,通過記錄密碼設(shè)備對大量不同數(shù)據(jù)分組加密或解密操作時(shí)的功耗曲線,能從功耗曲線中恢復(fù)出密碼設(shè)備中的密鑰。差分功耗分析利用的是密碼設(shè)備能量消耗的數(shù)據(jù)依賴性,使用多條功耗曲線來分析設(shè)備在某個(gè)固定時(shí)刻的能量消耗情況,并將能量消耗視作被處理數(shù)據(jù)的函數(shù)。
[0007]差分功耗分析攻擊實(shí)施的依據(jù)是密碼設(shè)備的功耗依賴于設(shè)備所執(zhí)行的密碼算法的中間值。因此,如果試圖抵御這種攻擊,就要降低甚至消除這種依賴性,最常見的防御方法有兩種:隱藏和掩碼。
[0008]隱藏策略的目標(biāo)是消除密碼設(shè)備的功耗與設(shè)備所執(zhí)行的操作和所處理的中間值之間的相關(guān)性,可以通過兩種途徑實(shí)現(xiàn)這一目標(biāo):第一種是使用特殊的方式構(gòu)建密碼設(shè)備,使其功耗隨機(jī)化,這意味著設(shè)備在各個(gè)時(shí)鐘周期的功耗隨機(jī)分布;第二種是使設(shè)備對于所有操作和所有操作數(shù)均具有同樣的功耗,即設(shè)備在各個(gè)時(shí)鐘周期的功耗相等。
[0009]掩碼技術(shù)的核心思想是:在計(jì)算的開始時(shí),首先使用一些隨機(jī)掩碼對消息和密鑰進(jìn)行掩碼操作,而其后所有的操作則幾乎與常規(guī)的計(jì)算過程完全相同;但是,在某些特定步驟的最后幾個(gè)步驟中,例如,在某一輪加密變換的最后,或者在計(jì)算過程中線性操作的最后,掩碼的值必須是已知的,以便在計(jì)算執(zhí)行結(jié)束時(shí)重新恢復(fù)出所期望的數(shù)據(jù)值。
[0010]但在上述策略中,其在針對以S盒查表操作為表征的非線性運(yùn)算中通過采用很多份冗余的偽查表操作來掩蓋唯一真查表操作來提高安全性,不可避免地,其面積資源開銷較大。另外,在針對以S盒查表操作為表征的非線性運(yùn)算中通過采用加性和乘性隨機(jī)掩碼因子、及不同極性數(shù)域之間的轉(zhuǎn)換操作來提高安全性,也會造成面積資源成本的大幅上升,從而不利于資源受限環(huán)境下可抵御差分功耗分析攻擊的加密處理裝置及方法的實(shí)現(xiàn)。
實(shí)用新型內(nèi)容
[0011]鑒于此,本實(shí)用新型實(shí)施例的目的在于提供一種針對含有S盒查表操作的密碼算法可抵御差分功耗分析攻擊的加密處理裝置、集成電路芯片及密碼設(shè)備。
[0012]本實(shí)用新型實(shí)施例采用以下技術(shù)方案實(shí)現(xiàn):
[0013]一種可抵御差分功耗分析攻擊的加密處理裝置,包括:
[0014]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0015]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0016]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0017]優(yōu)選地,SecMasking單元包括D觸發(fā)器DO、Dl、D2以及按位異或器X1、X2,其中:
[0018]源數(shù)據(jù)K和隨機(jī)數(shù)Γ被分別提供至按位異或器Xl的兩輸入端;
[0019]按位異或器Xl的輸出端與按位異或器X2的一輸入端相連,隨機(jī)數(shù)f被提供至按位異或器X2的另一輸入端;
[0020]按位異或器X2的輸出端與D觸發(fā)器DO的數(shù)據(jù)輸入端相連;
[0021]所述隨機(jī)數(shù)f與D觸發(fā)器Dl的數(shù)據(jù)輸入端相連;
[0022]所述隨機(jī)數(shù)Γ與D觸發(fā)器D2的數(shù)據(jù)輸入端相連;
[0023]D觸發(fā)器DO、Dl、D2的輸出端分別與SecPr印are單元的相應(yīng)輸入端相連。
[0024]優(yōu)選地,所述SecPrepare單元包括:按位異或器X3、X4、X5,線性變換單元σ O、σ 1、σ 2, AddRoundKey變換單兀ARK,以及gent參與變換單兀GADD,其中:
[0025]當(dāng)前有效的密碼算法子密鑰K和隨機(jī)數(shù)f被分別提供至按位異或器X3的輸入端;
[0026]SecMasking單元包括的D觸發(fā)器DO、Dl及D2輸出的三份數(shù)據(jù)pV Pr1及Plr2被相應(yīng)提供至線性變換單元σ O、σ I及σ 2的輸入端;
[0027]按位異或器Χ3的輸出端以及線性變換單元σ O的輸出端分別與AddRoundKey變換單元ARK的兩輸入端相連;
[0028]線性變換單元σ I以及σ 2的輸出端分別與按位異或器Χ4的兩輸入端相連;
[0029]AddRoundKey變換單元ARK的輸出端以及按位異或器Χ4的輸出端分別與按位異或器Χ5的兩輸入端相連;
[0030]按位異或器Χ5的輸出端與gent參與變換單元GADD的一輸入端相連,所述隨機(jī)數(shù)xr以及實(shí)時(shí)更新變量gent被分別提供至gent參與變換單元GADD的另外兩輸入端;
[0031]gent參與變換單元GADD的輸出端與SecSbox單元的輸入端相連。
[0032]優(yōu)選地,所述gent參與變換單元GADD基于被輸入的信息做以下處理:
[0033]對按位異或器X5的輸出信息以及所述隨機(jī)數(shù)f進(jìn)行按位異或操作;
[0034]對所述按位異或操作結(jié)果以及實(shí)時(shí)更新變量gent進(jìn)行布爾相加操作,輸出預(yù)處理數(shù)據(jù)
[0035]優(yōu)選地,SecSbox單元包括N個(gè)非線性變換SecS基本單元,在所述SecSbox單元中:
[0036]SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后分別輸入對應(yīng)N個(gè)可相異的SecS基本單元;
[0037]隨機(jī)數(shù)f以及f均被分別提供至每個(gè)SecS基本單元的另兩個(gè)輸入端;
[0038]分別對每個(gè)SecS基本單元的相同類型的輸出端進(jìn)行拼湊處理,以形成三個(gè)輸出端數(shù)據(jù)HlVnf1以及Hf2,其中,所述三個(gè)輸出端數(shù)據(jù)HlV Hf1以及Hf2按位異或操作的結(jié)果等于基于源數(shù)據(jù)P'密碼算法子密鑰K以及密碼算法普通S盒查表操作進(jìn)行相關(guān)運(yùn)算操作的結(jié)果。
[0039]優(yōu)選地,所述SecS基本單元包括:多路選擇器MO、Ml以及M2,與之對應(yīng)的三組D觸發(fā)器組DmOO?DmOk、DmlO?Dmlk、Dm20?Dm2k以及三組按位異或器組XmOO?XmOk、XmlO ?Xmlk、Xm20 ?Xm2k,其中:
[0040]SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后提供至當(dāng)前SecS基本單元的數(shù)據(jù)bif被提供至所述多路選擇器MO、Ml以及M2的控制選擇端;
[0041]所述多路選擇器MO、Ml以及M2的多個(gè)數(shù)據(jù)備選端分別與相對應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端相連;
[0042]所述多路選擇器MO、Ml以及M2對應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸入端與對應(yīng)的按位異或器組中的多個(gè)按位異或器的輸出端對應(yīng)相連;
[0043]隨機(jī)數(shù)f被分別提供至所述按位異或器組XmOO?XmOk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f被分別提供至所述按位異或器組XmlO?Xmlk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f與f的按位異或操作結(jié)果被分別提供至所述按位異或器組Xm20?Xm2k中的多個(gè)按位異或器的一輸入端;
[0044]所述D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端與相對應(yīng)的所述按位異或器組中的多個(gè)按位異或器的另一輸入端呈環(huán)狀鏈?zhǔn)竭B接;
[0045]所述多路選擇器MO、Ml以及M2的輸出端分別輸出待拼湊數(shù)據(jù)m'、Hiir1以及m%,其中i = I?N。
[0046]優(yōu)選地,所述多份隨機(jī)數(shù)據(jù)相互異或的結(jié)果等于所述源數(shù)據(jù)少。
[0047]一種集成電路芯片,其包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,所述加密處理裝置包括:
[0048]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0049]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0050]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0051]一種密碼設(shè)備,其包括如上述實(shí)施例所述的集成電路芯片,所述集成電路芯片包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,具體地,所述加密處理裝置包括:
[0052]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0053]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0054]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0055]在本實(shí)用新型實(shí)施例中,其SecMasking單元采用以通用隨機(jī)掩碼(randommasking)技術(shù)為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn),SecPrepare電路單元采用以按位異或器為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn),SecSbox單元電路采用以查表結(jié)果基于隨機(jī)掩碼技術(shù)而進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新的方案而實(shí)現(xiàn)。其針對以S盒查表操作為表征的非線性運(yùn)算采用“查表結(jié)果基于隨機(jī)掩碼技術(shù)進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新”的方案代替了 “用很多份冗余的偽查表操作來掩蓋唯一真查表操作”的方案,以很少的面積資源代價(jià)獲得了電路結(jié)構(gòu)較高的安全性能。
[0056]另外,本實(shí)用新型針對以S盒查表操作為表征的非線性運(yùn)算采用“查表結(jié)果基于隨機(jī)掩碼技術(shù)進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新”的方案代替了 “采用加性和乘性隨機(jī)掩碼因子及不同極性數(shù)域之間的轉(zhuǎn)換操作”的方案,在資源受限環(huán)境下為了可抵御差分功耗分析攻擊的加密處理裝置及方法的實(shí)現(xiàn)提供了一種可以獲得足夠安全性能的可能。
[0057]采用本實(shí)用新型,能夠?qū)崿F(xiàn)密碼運(yùn)算設(shè)備電路的工作功耗與運(yùn)算數(shù)據(jù)及運(yùn)算操作的無關(guān)化。并且其可以被廣泛應(yīng)用于需要高度安全性能的加解密運(yùn)算密碼設(shè)備。
【專利附圖】
【附圖說明】
[0058]圖1為非線性層由多組非線性S盒查找變換組成的對稱分組密碼算法的輪變換典型架構(gòu)示意圖;
[0059]圖2為本實(shí)用新型實(shí)施例提供的針對含有S盒查表操作的密碼算法可抵御(二階)差分功耗分析攻擊的加密處理裝置的電路實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0060]圖3為本實(shí)用新型實(shí)施例提供的SecMasking單元實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0061]圖4為本實(shí)用新型實(shí)施例提供的SecPrepare單元實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0062]圖5為本實(shí)用新型實(shí)施例提供的SecSbox單元的實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0063]圖6為本實(shí)用新型實(shí)施例提供的SecS基本單元的實(shí)現(xiàn)結(jié)構(gòu)示意圖。
[0064]本實(shí)用新型目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)異效果,下面將結(jié)合具體實(shí)施例以及附圖做進(jìn)一步的說明。
【具體實(shí)施方式】
[0065]下面結(jié)合附圖和具體實(shí)施例對本實(shí)用新型所述技術(shù)方案作進(jìn)一步的詳細(xì)描述,以使本領(lǐng)域的技術(shù)人員可以更好的理解本實(shí)用新型并能予以實(shí)施,但所舉實(shí)施例不作為對本實(shí)用新型的限定。
[0066]本實(shí)用新型實(shí)施例的描述中所使用的任何部件、單元、操作或變換都不應(yīng)當(dāng)被解釋為對本實(shí)用新型而言是關(guān)鍵性或必須的,除非明確地這樣描述。
[0067]參考圖2,其示出了本實(shí)用新型實(shí)施例提供的一種可抵御差分功耗分析攻擊的加密處理裝置架構(gòu)示意圖,所述加密處理裝置包括:
[0068]掩蓋處理電路單元SecMasking (下稱SecMasking單元),用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0069]預(yù)處理電路單元SecPrepare (下稱SecPrepare單元),用于依據(jù)隨機(jī)數(shù)Xlr對所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0070]S盒電路單元SecSbox (下稱SecSbox單元),用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0071]在本實(shí)用新型實(shí)施例中,所述SecMasking單元采用以通用隨機(jī)掩碼技術(shù)為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn),另外,所述多份隨機(jī)數(shù)據(jù)相互異或的結(jié)果等于所述源數(shù)據(jù)Plr AecPrepare單元采用以按位異或器為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn);SecSbox單元采用以查表結(jié)果基于隨機(jī)掩碼技術(shù)而進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新的方案而實(shí)現(xiàn)。本實(shí)施例中,使用S盒查表操作來表征密碼算法中的非線性運(yùn)算操作。
[0072]本實(shí)施例中,參考圖3所示,所述SecMasking單元包括D觸發(fā)器DO、Dl、D2以及按位異或器Xl、X2,所述SecMasking單元將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為三份,可抵御二階差分功耗分析攻擊。在所述SecMasking單元中:
[0073](I)源數(shù)據(jù)K和隨機(jī)數(shù)Γ被分別提供至按位異或器Xl的兩輸入端;
[0074](2)按位異或器Xl的輸出端與按位異或器X2的一輸入端相連,隨機(jī)數(shù)f被提供至按位異或器X2的另一輸入端;
[0075](3)按位異或器X2的輸出端與D觸發(fā)器DO的數(shù)據(jù)輸入端相連;
[0076](4)所述隨機(jī)數(shù)f與D觸發(fā)器Dl的數(shù)據(jù)輸入端相連;
[0077](5)所述隨機(jī)數(shù)Γ與D觸發(fā)器D2的數(shù)據(jù)輸入端相連;
[0078](6)D觸發(fā)器D0、D1、D2的輸出端分別與SecPr印are單元的相應(yīng)輸入端相連。
[0079]SecMasking單元的作用是基于密碼設(shè)備的每次S盒查表操作運(yùn)算都不同的隨機(jī)數(shù)(如圖3中的Γ和f),而將該次S盒查表操作既定的源數(shù)據(jù)Plr拆分為多份隨機(jī)數(shù)據(jù)(如圖3中的pV Pr1, pr2),并且滿足所述多份隨機(jī)數(shù)據(jù)(pV Pr1, Pr2)的相異或結(jié)果仍為少。
[0080]如此變換操作的有益效果在于:在全局層面上使單次S盒查表操作的源數(shù)據(jù)不被直接進(jìn)行查表操作,而以源數(shù)據(jù)在數(shù)理上為隨機(jī)數(shù)的多次S盒查表操作替換之,從而增加了對所述真實(shí)源數(shù)據(jù)進(jìn)行功耗分析的實(shí)現(xiàn)難度,即理論上的分析攻擊成本由一個(gè)單位增為至少多個(gè)單位,例如本實(shí)施例中即對應(yīng)是三個(gè)單位。
[0081]本實(shí)施例中,參考圖4所示,所述SecPrepare單元包括:按位異或器X3、X4、X5,線性變換單元σ O、σ 1、σ 2, AddRoundKey變換單元ARK,以及gent參與變換單元GADD,其中:
[0082](I)當(dāng)前有效的密碼算法子密鑰K和隨機(jī)數(shù)f被分別提供至按位異或器X3的輸入端;
[0083](2) SecMasking單元包括的D觸發(fā)器D0、D1及D2輸出的三份數(shù)據(jù)pVplr1及被相應(yīng)提供至線性變換單元σ O、σ I及σ 2的輸入端;
[0084](3)按位異或器Χ3的輸出端以及線性變換單元σ O的輸出端分別與AddRoundKey變換單元ARK的兩輸入端相連;
[0085](4)線性變換單元σ I以及σ 2的輸出端分別與按位異或器Χ4的兩輸入端相連;
[0086](5) AddRoundKey變換單元ARK的輸出端以及按位異或器Χ4的輸出端分別與按位異或器Χ5的兩輸入端相連;
[0087](6)按位異或器Χ5的輸出端與gent參與變換單元GADD的一輸入端相連,所述隨機(jī)數(shù)Xlr以及實(shí)時(shí)更新變量gent被分別提供至gent參與變換單元GADD的另外兩輸入端;
[0088](7) gent參與變換單元GADD的輸出端與SecSbox單元的輸入端相連。
[0089]所述的線性變換單元σ O、σ I以及σ 2,其在本實(shí)施例中被用于密碼算法中在S盒查表操作之前可能存在定義的一種線性變換操作。
[0090]所述的AddRoundKey變換單元ARK在本實(shí)施例中被用于密碼算法中在S盒查表操作之前可能存在定義的、將欲查表數(shù)據(jù)和密碼運(yùn)算當(dāng)前有效的密碼算法子密鑰K進(jìn)行結(jié)合的一種變換操作。
[0091]所述的gent參與變換單元GADD在本實(shí)施例中被用于抵消前述隨機(jī)數(shù)Xlr的參與、同時(shí)又加入實(shí)時(shí)更新變量gent的參與以實(shí)現(xiàn)所述“SecSbox單元電路的查表結(jié)果基于隨機(jī)掩碼技術(shù)進(jìn)行縱向?qū)崟r(shí)更新”的方案。
[0092]例如,一種實(shí)施方式中,所述gent參與變換單元GADD基于被輸入的信息做以下處理:
[0093](I)對按位異或器X5的輸出信息以及所述隨機(jī)數(shù)f進(jìn)行按位異或操作;
[0094](2)對所述按位異或操作結(jié)果以及實(shí)時(shí)更新變量gent進(jìn)行布爾相加操作,輸出預(yù)處理數(shù)據(jù)I/。
[0095]不難得知,本領(lǐng)域的技術(shù)人員可以對所要求保護(hù)實(shí)用新型的上述gent參與變換單元GADD單元的實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行變化和修改,而不實(shí)質(zhì)上違背本實(shí)用新型的精神和原理。所有的這些修改和變化均應(yīng)被包括在本實(shí)用新型的范圍內(nèi)。
[0096]SecPrepare單元的作用是:在有新隨機(jī)數(shù)Xlr的參與下,將前述SecMasking單元輸出的多份中間隨機(jī)數(shù)據(jù)(例如如圖4中的pV Pr1, pr2)和密碼算法當(dāng)前有效的密碼算法子密鑰K進(jìn)行如密碼算法規(guī)范所定義的、同時(shí)因有隨機(jī)數(shù)f參與而安全性又提升了的AddRoundKey變換操作。
[0097]另外,為了后續(xù)SecSbox變換單元的安全化實(shí)現(xiàn)又加入了有實(shí)時(shí)更新變量gent參與的有關(guān)變換操作。如此設(shè)計(jì)SecPrepare電路單元的有益效果在于:除了可提升后續(xù)SecSbox變換操作的安全性外,還可避免改動一般所謂密碼算法輪密鑰擴(kuò)展操作的實(shí)現(xiàn)結(jié)構(gòu),從而節(jié)省密碼設(shè)備的面積資源成本。
[0098]本實(shí)用新型實(shí)施例中,優(yōu)選地,在依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)W、并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理之后,得到多份目標(biāo)數(shù)據(jù);在具體實(shí)施時(shí),在密碼運(yùn)算最終步驟中,對所述多份目標(biāo)數(shù)據(jù)進(jìn)行相互異或操作處理可得到期待查找結(jié)果?f;或者,在密碼運(yùn)算中間步驟中,可將所述多份目標(biāo)數(shù)據(jù)作為下一次S盒查表操作的源數(shù)據(jù)。
[0099]參考圖5所示,所述SecSbox單元包括N個(gè)非線性變換SecS基本單元,具體地,在所述SecSbox單兀中:
[0100](I)SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份(即圖5中的代表的N份,其滿足I/ = {blr|b--r|bNr})之后分別輸入對應(yīng)N個(gè)可相異的SecS基本單元;br被劃分后的每份數(shù)據(jù)分別與其對應(yīng)的SecS基本單元(即如圖5中所示的和SecSi,其中,i = I, - ,N)的輸入端之一相連;
[0101](2)隨機(jī)數(shù)f以及f均被分別提供至每個(gè)SecS基本單元的另兩個(gè)輸入端;
[0102](3)分別對每個(gè)SecS基本單元的相同類型的輸出端進(jìn)行拼湊處理,以形成三個(gè)輸出端數(shù)據(jù)HlVnf1以及Hf2,其中,所述三個(gè)輸出端數(shù)據(jù)HlV Hf1以及Hf2按位異或操作的結(jié)果等于基于源數(shù)據(jù)P\密碼算法子密鑰K以及密碼算法普通S盒查表操作進(jìn)行相關(guān)運(yùn)算操作的結(jié)果。
[0103]例如,一種【具體實(shí)施方式】中,所述SecSbox單元的輸出數(shù)據(jù)可以被劃分為三份,通過數(shù)據(jù)劃分可抵御二階差分功耗分析攻擊。不難得知,本領(lǐng)域的技術(shù)人員可以對所述SecSbox單元的輸出數(shù)據(jù)的份數(shù)進(jìn)行變化和修改,而不實(shí)質(zhì)上違背本實(shí)用新型的精神和原理。所有這些修改和變化是要被包括在本申請公開的范圍之內(nèi)。
[0104]所述SecSbox電路單元的主要作用是為其中各個(gè)SecS基本單元?jiǎng)澐州斎雽ο?,并且引入隨機(jī)數(shù)以期在SecS變換操作中能通過隨機(jī)掩碼技術(shù)去實(shí)現(xiàn)相關(guān)的功耗掩蓋。
[0105]本實(shí)用新型實(shí)施例中,參考圖6所示,所述SecS基本單元包括:多路選擇器MO、Ml以及M2,與之對應(yīng)的三組D觸發(fā)器組DmOO?DmOKDmlO?Dmlk、Dm20?Dm2k以及三組按位異或器組XmOO?XmOk、XmlO?Xmlk、Xm20?Xm2k,所述SecS基本單元由三組相似的基本單元組成,可抵御二階差分功耗分析攻擊。具體地,其中:
[0106](I)SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后提供至當(dāng)前SecS基本單元的數(shù)據(jù)bif被提供至所述多路選擇器MO、Ml以及M2的控制選擇端;
[0107](2)所述多路選擇器MO、Ml以及M2的多個(gè)數(shù)據(jù)備選端分別與相對應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端相連;
[0108](3)所述多路選擇器M0、M1以及M2對應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸入端與對應(yīng)的按位異或器組中的多個(gè)按位異或器的輸出端對應(yīng)相連;
[0109](4)隨機(jī)數(shù)f被分別提供至所述按位異或器組XmOO?XmOk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f被分別提供至所述按位異或器組XmlO?Xmlk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f與f的按位異或操作結(jié)果被分別提供至所述按位異或器組Xm20?Xm2k中的多個(gè)按位異或器的一輸入端;
[0110](5)所述D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端與相對應(yīng)的所述按位異或器組中的多個(gè)按位異或器的另一輸入端呈環(huán)狀鏈?zhǔn)竭B接,例如,所述每個(gè)按位異或器組中的多個(gè)按位異或器的另輸入端與本組中對應(yīng)的D觸發(fā)器組中的相鄰D觸發(fā)器的輸出端對應(yīng)相連,以此形成所述鏈?zhǔn)江h(huán);
[0111](6)所述多路選擇器M0、M1以及M2的輸出端分別輸出待拼湊數(shù)據(jù)m%、m'以及Ki112,其中 i = I ?N。
[0112]所述SecS基本單元的主要作用是實(shí)現(xiàn)對輸入數(shù)據(jù)的安全化查表操作,其安全特征之一在于將對單一對象的查表操作等效轉(zhuǎn)化為多份查表操作,即所述基于隨機(jī)掩碼技術(shù)進(jìn)行橫向?qū)崟r(shí)更新;其安全特征之二在于將查表結(jié)果在相關(guān)查表寄存器之間進(jìn)行實(shí)時(shí)移存,即所述基于隨機(jī)掩碼技術(shù)進(jìn)行縱向?qū)崟r(shí)更新。
[0113]在本實(shí)用新型實(shí)施例中,上述兩大安全特征的最明顯優(yōu)勢就是:將針對輸入數(shù)據(jù)的直接且固化的查表操作轉(zhuǎn)化為間接且可動態(tài)更新的多份查表操作,極大地上掩蓋了原始查表操作的泄漏功耗信息。在使用本實(shí)用新型描述的上述抵御手段后,攻擊者為實(shí)施差分功耗分析攻擊,原先只需采集單份功耗信息的成本,驟然變?yōu)樾枰杉粫r(shí)刻泄漏的多份功耗信息,這樣不單單使得分析攻擊所需功耗信息的樣本采集量和采集難度大幅上升,更重要地是使差分功耗分析的計(jì)算復(fù)雜度具有了指數(shù)級別的上升。
[0114]由此,采用本實(shí)用新型,可以在不大幅增加面積資源成本的大前提下,多處通過通用隨機(jī)掩碼技術(shù)實(shí)現(xiàn)了對密碼運(yùn)算中最關(guān)鍵的以S盒查表操作為表征的非線性變換泄漏功耗的掩蓋。
[0115]相應(yīng)地,本實(shí)用新型實(shí)施例還提供了一種集成電路芯片,其包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,所述加密處理裝置包括:
[0116]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0117]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0118]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0119]對于所述加密處理裝置的具體描述可參考上述實(shí)施例,此處不再贅述。
[0120]本實(shí)用新型實(shí)施例還相應(yīng)地提供了一種密碼設(shè)備,其包括如上述實(shí)施例所述的集成電路芯片,例如所述密碼設(shè)備可以為智能卡、RFID、密碼協(xié)處理器、SoC密碼芯片、密碼機(jī)等,所述集成電路芯片包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,同樣地,所述加密處理裝置包括:
[0121]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0122]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0123]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0124]同樣地,對于所述加密處理裝置的詳細(xì)敘述請讀者參看上文,此處不予贅述之。
[0125]以上所述僅為本實(shí)用新型的優(yōu)選實(shí)施例,并非因此限制本實(shí)用新型的專利范圍,凡是利用本實(shí)用新型說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本實(shí)用新型的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,包括: 掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)^基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù); 預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ; S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
2.如權(quán)利要求1所述的可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,SecMasking單元包括D觸發(fā)器DO、Dl、D2以及按位異或器X1、X2,其中: 源數(shù)據(jù)Plr和隨機(jī)數(shù)Γ被分別提供至按位異或器Xl的兩輸入端; 按位異或器Xl的輸出端與按位異或器X2的一輸入端相連,隨機(jī)數(shù)f被提供至按位異或器X2的另一輸入端; 按位異或器X2的輸出端與D觸發(fā)器DO的數(shù)據(jù)輸入端相連; 所述隨機(jī)數(shù)f與D觸發(fā)器Dl的數(shù)據(jù)輸入端相連; 所述隨機(jī)數(shù)Γ與D觸發(fā)器D2的數(shù)據(jù)輸入端相連; D觸發(fā)器D0、D1、D2的輸出端分別與SecPr印are單元的相應(yīng)輸入端相連。
3.如權(quán)利要求1所述的可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,所述SecPrepare單元包括:按位異或器X3、X4、X5,線性變換單元σ O、σ 1、σ 2, AddRoundKey變換單元ARK,以及gent參與變換單元GADD,其中: 當(dāng)前有效的密碼算法子密鑰K和隨機(jī)數(shù)f被分別提供至按位異或器X3的輸入端;SecMasking單元包括的D觸發(fā)器DO、Dl及D2輸出的三份數(shù)據(jù)pV Pr1及Plr2被相應(yīng)提供至線性變換單元σ O、σ I及σ 2的輸入端; 按位異或器Χ3的輸出端以及線性變換單元σ O的輸出端分別與AddRoundKey變換單元ARK的兩輸入端相連; 線性變換單元σ I以及σ 2的輸出端分別與按位異或器Χ4的兩輸入端相連;AddRoundKey變換單元ARK的輸出端以及按位異或器Χ4的輸出端分別與按位異或器Χ5的兩輸入端相連; 按位異或器Χ5的輸出端與gent參與變換單元GADD的一輸入端相連,所述隨機(jī)數(shù)Xlr以及實(shí)時(shí)更新變量gent被分別提供至gent參與變換單元GADD的另外兩輸入端;gent參與變換單元GADD的輸出端與SecSbox單元的輸入端相連。
4.如權(quán)利要求3所述的可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,所述gent參與變換單元GADD基于被輸入的信息做以下處理: 對按位異或器X5的輸出信息以及所述隨機(jī)數(shù)f進(jìn)行按位異或操作; 對所述按位異或操作結(jié)果以及實(shí)時(shí)更新變量gent進(jìn)行布爾相加操作,輸出預(yù)處理數(shù)據(jù)br。
5.如權(quán)利要求1所述的可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,SecSbox單元包括N個(gè)非線性變換SecS基本單元,在所述SecSbox單元中: SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后分別輸入對應(yīng)N個(gè)可相異的SecS基本單元; 隨機(jī)數(shù)f以及f均被分別提供至每個(gè)SecS基本單元的另兩個(gè)輸入端; 分別對每個(gè)SecS基本單元的相同類型的輸出端進(jìn)行拼湊處理,以形成三個(gè)輸出端數(shù)據(jù)HiVnf1以及Hf2,其中,所述三個(gè)輸出端數(shù)據(jù)HiVnf1以及nf2按位異或操作的結(jié)果等于基于源數(shù)據(jù)P'密碼算法子密鑰K以及密碼算法普通S盒查表操作進(jìn)行相關(guān)運(yùn)算操作的結(jié)果。
6.如權(quán)利要求5所述的可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,所述SecS基本單元包括:多路選擇器M0、M1以及M2,與之對應(yīng)的三組D觸發(fā)器組DmOO?DmOk、DmlO?Dmlk、Dm20?Dm2k以及三組按位異或器組XmOO?XmOk、XmlO?Xmlk、Xm20?Xm2k,其中: SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后提供至當(dāng)前SecS基本單元的數(shù)據(jù)bif被提供至所述多路選擇器MO、Ml以及M2的控制選擇端; 所述多路選擇器MO、Ml以及M2的多個(gè)數(shù)據(jù)備選端分別與相對應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端相連; 所述多路選擇器MO、Ml以及M2對應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸入端與對應(yīng)的按位異或器組中的多個(gè)按位異或器的輸出端對應(yīng)相連; 隨機(jī)數(shù)f被分別提供至所述按位異或器組XmOO?XmOk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f被分別提供至所述按位異或器組XmlO?Xmlk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f與f的按位異或操作結(jié)果被分別提供至所述按位異或器組Xm20?Xm2k中的多個(gè)按位異或器的一輸入端; 所述D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端與相對應(yīng)的所述按位異或器組中的多個(gè)按位異或器的另一輸入端呈環(huán)狀鏈?zhǔn)竭B接; 所述多路選擇器MO、Ml以及M2的輸出端分別輸出待拼湊數(shù)據(jù)πι%、πΛ以及m%,其中i=l ?N。
7.如權(quán)利要求1所述的可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,所述多份隨機(jī)數(shù)據(jù)相互異或的結(jié)果等于所述源數(shù)據(jù)
8.一種集成電路芯片,其特征在于,包括如權(quán)利要求1-7任一項(xiàng)所述的可抵御差分功耗分析攻擊的加密處理裝置。
9.一種密碼設(shè)備,其特征在于,包括如權(quán)利要求8所述的集成電路芯片。
【文檔編號】H04L29/06GK203933683SQ201420181329
【公開日】2014年11月5日 申請日期:2014年4月16日 優(yōu)先權(quán)日:2014年4月16日
【發(fā)明者】王良清, 谷大武, 郭箏, 劉軍榮, 鄧峰 申請人:深圳國微技術(shù)有限公司