亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

可抵御差分功耗分析攻擊的加密處理裝置及方法

文檔序號(hào):7801551閱讀:168來(lái)源:國(guó)知局
可抵御差分功耗分析攻擊的加密處理裝置及方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種可抵御差分功耗分析攻擊的加密處理裝置及方法。在本發(fā)明實(shí)施例提供的所述加密處理裝置中,所述SecMasking單元采用以通用隨機(jī)掩碼技術(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)。采用本發(fā)明,能夠?qū)崿F(xiàn)密碼運(yùn)算設(shè)備電路的工作功耗與運(yùn)算數(shù)據(jù)及運(yùn)算操作的無(wú)關(guān)化。并且其可以被廣泛應(yīng)用于需要高度安全性能的加解密運(yùn)算密碼設(shè)備。
【專(zhuān)利說(shuō)明】可抵御差分功耗分析攻擊的加密處理裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于信息安全【技術(shù)領(lǐng)域】,具體而言,涉及一種可抵御差分功耗分析(Differential Power Analysis,簡(jiǎn)稱(chēng)DPA)攻擊的加密處理裝置及方法。
【背景技術(shù)】
[0002]加密技術(shù)通常分為兩大類(lèi):對(duì)稱(chēng)分組密碼算法以及非對(duì)稱(chēng)分組密碼算法,其中,對(duì)稱(chēng)分組密碼算法是指加密和解密均使用同一個(gè)密鑰,這種加密技術(shù)當(dāng)前被廣泛采用,如美國(guó)政府所采用的DES (Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))加密標(biāo)準(zhǔn)就是一種典型的“對(duì)稱(chēng)式”加密法,它的Session Key長(zhǎng)度為56bits。非對(duì)稱(chēng)分組密碼算法是指加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)必須配對(duì)使用的“公鑰”和“私鑰”。
[0003]以經(jīng)典的對(duì)稱(chēng)分組密碼算法的典型實(shí)現(xiàn)為例,如圖1所示,在圖1中r代表當(dāng)前輪變換的輪序數(shù),P和k代表當(dāng)前輪變換的輪分組數(shù)據(jù)和輪密鑰,σ和λ表示此輪內(nèi)的線(xiàn)性層變換,而唯一的非線(xiàn)性層變換Y則基本由多個(gè)S盒非線(xiàn)性變換組成。圖1所示的架構(gòu)并不僅僅適用于AES (Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))、DES等常見(jiàn)對(duì)稱(chēng)分組密碼算法,也適用于已知或未知的包含非線(xiàn)性S盒構(gòu)造的其它對(duì)稱(chēng)分組密碼算法。
[0004]密碼分析是密碼學(xué)的重要分支,典型的密碼分析通常不考慮密碼系統(tǒng)的具體實(shí)現(xiàn),而是僅通過(guò)數(shù)學(xué)推理、統(tǒng)計(jì)分析、高性能計(jì)算、可證明安全等途徑來(lái)發(fā)現(xiàn)密碼系統(tǒng)中的密鑰信息或不安全因素,這些分析方法主要包括差分分析、線(xiàn)性分析、相關(guān)密鑰分析、代數(shù)分析、線(xiàn)性逼近、困難問(wèn)題求解、歸約證明等。
[0005]而在實(shí)際中,密碼系統(tǒng)通常是以硬件或以硬件為表現(xiàn)形式的軟件來(lái)實(shí)現(xiàn)的,譬如智能卡、RFID (Radio Frequency Identification,射頻識(shí)別)、密碼協(xié)處理器、SoC (Systemon Chip,片上系統(tǒng))密碼芯片、密碼機(jī)等。在這些密碼系統(tǒng)的實(shí)現(xiàn)環(huán)境中,攻擊者不僅可以進(jìn)行“黑盒”詢(xún)問(wèn),而且往往還可以通過(guò)反向工程和微探測(cè)技術(shù)等手段獲得算法的硬件結(jié)構(gòu)和編碼實(shí)現(xiàn)方法,并可以觀察和測(cè)量密碼變換的運(yùn)行時(shí)間、能量消耗、電磁輻射等信息,甚至還可以“干預(yù)”密碼變換的正常運(yùn)行使其出錯(cuò)。攻擊者利用這些額外的信息有可能實(shí)現(xiàn)比“黑盒攻擊”更有效地密碼破譯。人們通常把這種環(huán)境下的攻擊稱(chēng)為“旁路攻擊(SideChannel Attack)”。由于高效的攻擊性能,旁路攻擊已經(jīng)引起了國(guó)際學(xué)術(shù)界、工業(yè)界以及各國(guó)政府的高度重視和關(guān)注,成為密碼分析和密碼工程領(lǐng)域發(fā)展最為迅速的方向之一。
[0006]差分功耗分析是使用最廣泛的旁路攻擊方法,通過(guò)記錄密碼設(shè)備對(duì)大量不同數(shù)據(jù)分組加密或解密操作時(shí)的功耗曲線(xiàn),能從功耗曲線(xiàn)中恢復(fù)出密碼設(shè)備中的密鑰。差分功耗分析利用的是密碼設(shè)備能量消耗的數(shù)據(jù)依賴(lài)性,使用多條功耗曲線(xiàn)來(lái)分析設(shè)備在某個(gè)固定時(shí)刻的能量消耗情況,并將能量消耗視作被處理數(shù)據(jù)的函數(shù)。
[0007]差分功耗分析攻擊實(shí)施的依據(jù)是密碼設(shè)備的功耗依賴(lài)于設(shè)備所執(zhí)行的密碼算法的中間值。因此,如果試圖抵御這種攻擊,就要降低甚至消除這種依賴(lài)性,最常見(jiàn)的防御方法有兩種:隱藏和掩碼。
[0008]隱藏策略的目標(biāo)是消除密碼設(shè)備的功耗與設(shè)備所執(zhí)行的操作和所處理的中間值之間的相關(guān)性,可以通過(guò)兩種途徑實(shí)現(xiàn)這一目標(biāo):第一種是使用特殊的方式構(gòu)建密碼設(shè)備,使其功耗隨機(jī)化,這意味著設(shè)備在各個(gè)時(shí)鐘周期的功耗隨機(jī)分布;第二種是使設(shè)備對(duì)于所有操作和所有操作數(shù)均具有同樣的功耗,即設(shè)備在各個(gè)時(shí)鐘周期的功耗相等。
[0009]掩碼技術(shù)的核心思想是:在計(jì)算的開(kāi)始時(shí),首先使用一些隨機(jī)掩碼對(duì)消息和密鑰進(jìn)行掩碼操作,而其后所有的操作則幾乎與常規(guī)的計(jì)算過(guò)程完全相同;但是,在某些特定步驟的最后幾個(gè)步驟中,例如,在某一輪加密變換的最后,或者在計(jì)算過(guò)程中線(xiàn)性操作的最后,掩碼的值必須是已知的,以便在計(jì)算執(zhí)行結(jié)束時(shí)重新恢復(fù)出所期望的數(shù)據(jù)值。
[0010]但在上述策略中,其在針對(duì)以S盒查表操作為表征的非線(xiàn)性運(yùn)算中通過(guò)采用很多份冗余的偽查表操作來(lái)掩蓋唯一真查表操作來(lái)提高安全性,不可避免地,其面積資源開(kāi)銷(xiāo)較大。另外,在針對(duì)以S盒查表操作為表征的非線(xiàn)性運(yùn)算中通過(guò)采用加性和乘性隨機(jī)掩碼因子、及不同極性數(shù)域之間的轉(zhuǎn)換操作來(lái)提高安全性,也會(huì)造成面積資源成本的大幅上升,從而不利于資源受限環(huán)境下可抵御差分功耗分析攻擊的加密處理裝置及方法的實(shí)現(xiàn)。

【發(fā)明內(nèi)容】

[0011]鑒于此,本發(fā)明實(shí)施例的目的在于提供一種針對(duì)含有S盒查表操作的密碼算法可抵御差分功耗分析攻擊的加密處理裝置及其方法。
[0012]本發(fā)明實(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對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0016]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(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,線(xiàn)性變換單元σ 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及P12被相應(yīng)提供至線(xiàn)性變換單元σ O、σ I及σ 2的輸入端;
[0027]按位異或器Χ3的輸出端以及線(xiàn)性變換單元σ O的輸出端分別與AddRoundKey變換單元ARK的兩輸入端相連;
[0028]線(xiàn)性變換單元σ 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]對(duì)按位異或器X5的輸出信息以及所述隨機(jī)數(shù)f進(jìn)行按位異或操作;
[0034]對(duì)所述按位異或操作結(jié)果以及實(shí)時(shí)更新變量gent進(jìn)行布爾相加操作,輸出預(yù)處理數(shù)據(jù)
[0035]優(yōu)選地,SecSbox單元包括N個(gè)非線(xiàn)性變換SecS基本單元,在所述SecSbox單元中:
[0036]SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后分別輸入對(duì)應(yīng)N個(gè)可相異的SecS基本單元;
[0037]隨機(jī)數(shù)f以及f均被分別提供至每個(gè)SecS基本單元的另兩個(gè)輸入端;
[0038]分別對(duì)每個(gè)SecS基本單元的相同類(lèi)型的輸出端進(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,與之對(duì)應(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ù)備選端分別與相對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端相連;
[0042]所述多路選擇器MO、Ml以及M2對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸入端與對(duì)應(yīng)的按位異或器組中的多個(gè)按位異或器的輸出端對(duì)應(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ā)器的輸出端與相對(duì)應(yīng)的所述按位異或器組中的多個(gè)按位異或器的另一輸入端呈環(huán)狀鏈?zhǔn)竭B接;
[0045]所述多路選擇器MO、Ml以及M2的輸出端分別輸出待拼湊數(shù)據(jù)m'、Hiir1以及m%,其中i=l?N。[0046]—種集成電路芯片,其包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,所述加密處理裝置包括:
[0047]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0048]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0049]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0050]一種密碼設(shè)備,其包括如上述實(shí)施例所述的集成電路芯片,所述集成電路芯片包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,具體地,所述加密處理裝置包括:
[0051]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0052]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0053]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0054]—種可抵御差分功耗分析攻擊的加密處理方法,包括:
[0055]將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0056]依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0057]依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)W、并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0058]優(yōu)選地,所述多份隨機(jī)數(shù)據(jù)相互異或的結(jié)果等于所述源數(shù)據(jù)少。
[0059]優(yōu)選地,在依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)br進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理之后,得到多份目標(biāo)數(shù)據(jù);
[0060]對(duì)所述多份目標(biāo)數(shù)據(jù)進(jìn)行相互異或操作處理可得到期待查找結(jié)果Hf ;
[0061]或者,可將所述多份目標(biāo)數(shù)據(jù)作為下一次S盒查表操作的源數(shù)據(jù)。
[0062]在本發(fā)明實(shí)施例中,其SecMasking單元采用以通用隨機(jī)掩碼(random masking)技術(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)。其針對(duì)以S盒查表操作為表征的非線(xiàn)性運(yùn)算采用“查表結(jié)果基于隨機(jī)掩碼技術(shù)進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新”的方案代替了 “用很多份冗余的偽查表操作來(lái)掩蓋唯一真查表操作”的方案,以很少的面積資源代價(jià)獲得了電路結(jié)構(gòu)較高的安全性能。[0063]另外,本發(fā)明針對(duì)以S盒查表操作為表征的非線(xiàn)性運(yùn)算采用“查表結(jié)果基于隨機(jī)掩碼技術(shù)進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新”的方案代替了 “采用加性和乘性隨機(jī)掩碼因子及不同極性數(shù)域之間的轉(zhuǎn)換操作”的方案,在資源受限環(huán)境下為了可抵御差分功耗分析攻擊的加密處理裝置及方法的實(shí)現(xiàn)提供了一種可以獲得足夠安全性能的可能。
[0064]采用本發(fā)明,能夠?qū)崿F(xiàn)密碼運(yùn)算設(shè)備電路的工作功耗與運(yùn)算數(shù)據(jù)及運(yùn)算操作的無(wú)關(guān)化。并且其可以被廣泛應(yīng)用于需要高度安全性能的加解密運(yùn)算密碼設(shè)備。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0065]圖1為非線(xiàn)性層由多組非線(xiàn)性S盒查找變換組成的對(duì)稱(chēng)分組密碼算法的輪變換典型架構(gòu)示意圖;
[0066]圖2為本發(fā)明實(shí)施例提供的針對(duì)含有S盒查表操作的密碼算法可抵御(二階)差分功耗分析攻擊的加密處理裝置的電路實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0067]圖3為本發(fā)明實(shí)施例提供的SecMasking單元實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0068]圖4為本發(fā)明實(shí)施例提供的SecPr印are單元實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0069]圖5為本發(fā)明實(shí)施例提供的SecSbox單元的實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0070]圖6為本發(fā)明實(shí)施例提供的SecS基本單元的實(shí)現(xiàn)結(jié)構(gòu)示意圖。
[0071]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)異效果,下面將結(jié)合具體實(shí)施例以及附圖做進(jìn)一步的說(shuō)明。
【具體實(shí)施方式】
[0072]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明所述技術(shù)方案作進(jìn)一步的詳細(xì)描述,以使本領(lǐng)域的技術(shù)人員可以更好的理解本發(fā)明并能予以實(shí)施,但所舉實(shí)施例不作為對(duì)本發(fā)明的限定。
[0073]本發(fā)明實(shí)施例的描述中所使用的任何部件、單元、操作或變換都不應(yīng)當(dāng)被解釋為對(duì)本發(fā)明而言是關(guān)鍵性或必須的,除非明確地這樣描述。
[0074]參考圖2,其示出了本發(fā)明實(shí)施例提供的一種可抵御差分功耗分析攻擊的加密處理裝置架構(gòu)示意圖,所述加密處理裝置包括:
[0075]掩蓋處理電路單元SecMasking (下稱(chēng)SecMasking單元),用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0076]預(yù)處理電路單元SecPrepare (下稱(chēng)SecPrepare單元),用于依據(jù)隨機(jī)數(shù)Xlr對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ;
[0077]S盒電路單元SecSbox(下稱(chēng)SecSbox單元),用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0078]在本發(fā)明實(shí)施例中,所述SecMasking單元采用以通用隨機(jī)掩碼技術(shù)為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn),另外,所述多份隨機(jī)數(shù)據(jù)相互異或的結(jié)果等于所述源數(shù)據(jù)Plr ;SeCPrepare單元采用以按位異或器為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn);SecSb0X單元采用以查表結(jié)果基于隨機(jī)掩碼技術(shù)而進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新的方案而實(shí)現(xiàn)。本實(shí)施例中,使用S盒查表操作來(lái)表征密碼算法中的非線(xiàn)性運(yùn)算操作。
[0079]本實(shí)施例中,參考圖3所示,所述SecMasking單元包括D觸發(fā)器D0、D1、D2以及按位異或器Xl、X2,所述SecMasking單元將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為三份,可抵御二階差分功耗分析攻擊。在所述SecMasking單元中:
[0080](1)源數(shù)據(jù)Plr和隨機(jī)數(shù)ir被分別提供至按位異或器Xl的兩輸入端;
[0081](2)按位異或器Xl的輸出端與按位異或器X2的一輸入端相連,隨機(jī)數(shù)f被提供至按位異或器X2的另一輸入端;
[0082](3)按位異或器X2的輸出端與D觸發(fā)器DO的數(shù)據(jù)輸入端相連;
[0083](4)所述隨機(jī)數(shù)f與D觸發(fā)器Dl的數(shù)據(jù)輸入端相連;
[0084](5)所述隨機(jī)數(shù)ir與D觸發(fā)器D2的數(shù)據(jù)輸入端相連;
[0085](6)0觸發(fā)器00、01、02的輸出端分別與SecPr印are單元的相應(yīng)輸入端相連。
[0086]SecMasking單元的作用是基于密碼設(shè)備的每次S盒查表操作運(yùn)算都不同的隨機(jī)數(shù)(如圖3中的ir和f),而將該次S盒查表操作既定的源數(shù)據(jù)Plr拆分為多份隨機(jī)數(shù)據(jù)(如圖3中的pV Pr1, pr2),并且滿(mǎn)足所述多份隨機(jī)數(shù)據(jù)(pV Pr1, pr2)的相異或結(jié)果仍為少。
[0087]如此變換操作的有益效果在于:在全局層面上使單次S盒查表操作的源數(shù)據(jù)不被直接進(jìn)行查表操作,而以源數(shù)據(jù)在數(shù)理上為隨機(jī)數(shù)的多次S盒查表操作替換之,從而增加了對(duì)所述真實(shí)源數(shù)據(jù)進(jìn)行功耗分析的實(shí)現(xiàn)難度,即理論上的分析攻擊成本由一個(gè)單位增為至少多個(gè)單位,例如本實(shí)施例中即對(duì)應(yīng)是三個(gè)單位。
[0088]本實(shí)施例中,參考圖4所示,所述SecPrepare單元包括:按位異或器X3、X4、X5,線(xiàn)性變換單元σ O、σ 1、σ 2,AddRoundKey變換單元ARK,以及gent參與變換單元GADD,其中:
[0089](I)當(dāng)前有效的密碼算法子密鑰K和隨機(jī)數(shù)f被分別提供至按位異或器X3的輸入端;
[0090](2) SecMasking單元包括的D觸發(fā)器DO、Dl及D2輸出的三份數(shù)據(jù)pV Plr1及被相應(yīng)提供至線(xiàn)性變換單元σ O、σ I及σ 2的輸入端;
[0091](3)按位異或器Χ3的輸出端以及線(xiàn)性變換單元σ O的輸出端分別與AddRoundKey變換單元ARK的兩輸入端相連;
[0092](4)線(xiàn)性變換單元σ I以及σ 2的輸出端分別與按位異或器Χ4的兩輸入端相連;
[0093](5)AddRoundKey變換單元ARK的輸出端以及按位異或器X4的輸出端分別與按位異或器X5的兩輸入端相連;
[0094](6)按位異或器X5的輸出端與gent參與變換單元GADD的一輸入端相連,所述隨機(jī)數(shù)f以及實(shí)時(shí)更新變量gent被分別提供至gent參與變換單元GADD的另外兩輸入端;
[0095](7) gent參與變換單元GADD的輸出端與SecSbox單元的輸入端相連。
[0096]所述的線(xiàn)性變換單元σ O、σ I以及σ 2,其在本實(shí)施例中被用于密碼算法中在S盒查表操作之前可能存在定義的一種線(xiàn)性變換操作。
[0097]所述的AddRoundKey變換單元ARK在本實(shí)施例中被用于密碼算法中在S盒查表操作之前可能存在定義的、將欲查表數(shù)據(jù)和密碼運(yùn)算當(dāng)前有效的密碼算法子密鑰K進(jìn)行結(jié)合的一種變換操作。
[0098]所述的gent參與變換單元GADD在本實(shí)施例中被用于抵消前述隨機(jī)數(shù)Xlr的參與、同時(shí)又加入實(shí)時(shí)更新變量gent的參與以實(shí)現(xiàn)所述“SecSbox單元電路的查表結(jié)果基于隨機(jī)掩碼技術(shù)進(jìn)行縱向?qū)崟r(shí)更新”的方案。
[0099]例如,一種實(shí)施方式中,所述gent參與變換單元GADD基于被輸入的信息做以下處理:
[0100](I)對(duì)按位異或器X5的輸出信息以及所述隨機(jī)數(shù)Xlr進(jìn)行按位異或操作;
[0101](2)對(duì)所述按位異或操作結(jié)果以及實(shí)時(shí)更新變量gent進(jìn)行布爾相加操作,輸出預(yù)處理數(shù)據(jù)I/。
[0102]不難得知,本領(lǐng)域的技術(shù)人員可以對(duì)所要求保護(hù)發(fā)明的上述gent參與變換單元GADD單元的實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行變化和修改,而不實(shí)質(zhì)上違背本發(fā)明的精神和原理。所有的這些修改和變化均應(yīng)被包括在本發(fā)明的范圍內(nèi)。
[0103]SecPrepare單元的作用是:在有新隨機(jī)數(shù)Xlr的參與下,將前述SecMasking單元輸出的多份中間隨機(jī)數(shù)據(jù)(例如如圖4中的pV Pr1, Plr2)和密碼算法當(dāng)前有效的密碼算法子密鑰V進(jìn)行如密碼算法規(guī)范所定義的、同時(shí)因有隨機(jī)數(shù)f參與而安全性又提升了的AddRoundKey變換操作。
[0104]另外,為了后續(xù)SecSbox變換單元的安全化實(shí)現(xiàn)又加入了有實(shí)時(shí)更新變量gent參與的有關(guān)變換操作。如此設(shè)計(jì)SecPrepare電路單元的有益效果在于:除了可提升后續(xù)SecSbox變換操作的安全性外,還可避免改動(dòng)一般所謂密碼算法輪密鑰擴(kuò)展操作的實(shí)現(xiàn)結(jié)構(gòu),從而節(jié)省密碼設(shè)備的面積資源成本。
[0105]本發(fā)明實(shí)施例中,優(yōu)選地,在依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)f、并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理之后,得到多份目標(biāo)數(shù)據(jù);在具體實(shí)施時(shí),在密碼運(yùn)算最終步驟中,對(duì)所述多份目標(biāo)數(shù)據(jù)進(jìn)行相互異或操作處理可得到期待查找結(jié)果Hf ;或者,在密碼運(yùn)算中間步驟中,可將所述多份目標(biāo)數(shù)據(jù)作為下一次S盒查表操作的源數(shù)據(jù)。
[0106]參考圖5所示,所述SecSbox單元包括N個(gè)非線(xiàn)性變換SecS基本單元,具體地,在所述SecSbox單兀中:
[0107](I) SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份(即圖5中的b' b_ _r, bNr代表的N份,其滿(mǎn)足IZ=Ibk I b..r bNr})之后分別輸入對(duì)應(yīng)N個(gè)可相異的SecS基本單元;br被劃分后的每份數(shù)據(jù)分別與其對(duì)應(yīng)的SecS基本單元(即如圖5中所示的和SecSi,其中,i=l,…,N)的輸入端之一相連;
[0108](2)隨機(jī)數(shù)f以及f均被分別提供至每個(gè)SecS基本單元的另兩個(gè)輸入端;
[0109](3)分別對(duì)每個(gè)SecS基本單元的相同類(lèi)型的輸出端進(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é)果。
[0110]例如,一種【具體實(shí)施方式】中,所述SecSbox單元的輸出數(shù)據(jù)可以被劃分為三份,通過(guò)數(shù)據(jù)劃分可抵御二階差分功耗分析攻擊。不難得知,本領(lǐng)域的技術(shù)人員可以對(duì)所述SecSbox單元的輸出數(shù)據(jù)的份數(shù)進(jìn)行變化和修改,而不實(shí)質(zhì)上違背本發(fā)明的精神和原理。所有這些修改和變化是要被包括在本申請(qǐng)公開(kāi)的范圍之內(nèi)。
[0111]所述SecSbox電路單元的主要作用是為其中各個(gè)SecS基本單元?jiǎng)澐州斎雽?duì)象,并且引入隨機(jī)數(shù)d以期在SecS變換操作中能通過(guò)隨機(jī)掩碼技術(shù)去實(shí)現(xiàn)相關(guān)的功耗掩蓋。[0112]本發(fā)明實(shí)施例中,參考圖6所示,所述SecS基本單元包括:多路選擇器M0、M1以及M2,與之對(duì)應(yīng)的三組D觸發(fā)器組DmOO?DmOk、DmlO?Dmlk、Dm20?Dm2k以及三組按位異或器組XmOO?Xm0k、Xml0?Xmlk、Xm20?Xm2k,所述SecS基本單兀由三組相似的基本單元組成,可抵御二階差分功耗分析攻擊。具體地,其中:
[0113](I)SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后提供至當(dāng)前SecS基本單元的數(shù)據(jù)bif被提供至所述多路選擇器MO、Ml以及M2的控制選擇端;
[0114](2)所述多路選擇器MO、Ml以及M2的多個(gè)數(shù)據(jù)備選端分別與相對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端相連;
[0115](3)所述多路選擇器MO、Ml以及M2對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸入端與對(duì)應(yīng)的按位異或器組中的多個(gè)按位異或器的輸出端對(duì)應(yīng)相連;
[0116](4)隨機(jī)數(shù)f被分別提供至所述按位異或器組XmOO?XmOk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f被分別提供至所述按位異或器組XmlO?Xmlk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f與f的按位異或操作結(jié)果被分別提供至所述按位異或器組Xm20?Xm2k中的多個(gè)按位異或器的一輸入端;
[0117](5)所述D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端與相對(duì)應(yīng)的所述按位異或器組中的多個(gè)按位異或器的另一輸入端呈環(huán)狀鏈?zhǔn)竭B接,例如,所述每個(gè)按位異或器組中的多個(gè)按位異或器的另輸入端與本組中對(duì)應(yīng)的D觸發(fā)器組中的相鄰D觸發(fā)器的輸出端對(duì)應(yīng)相連,以此形成所述鏈?zhǔn)江h(huán);
[0118](6)所述多路選擇器MO、Ml以及M2的輸出端分別輸出待拼湊數(shù)據(jù)m%、以及Ki112,其中 i=l ?N。
[0119]所述SecS基本單元的主要作用是實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的安全化查表操作,其安全特征之一在于將對(duì)單一對(duì)象的查表操作等效轉(zhuǎn)化為多份查表操作,即所述基于隨機(jī)掩碼技術(shù)進(jìn)行橫向?qū)崟r(shí)更新;其安全特征之二在于將查表結(jié)果在相關(guān)查表寄存器之間進(jìn)行實(shí)時(shí)移存,即所述基于隨機(jī)掩碼技術(shù)進(jìn)行縱向?qū)崟r(shí)更新。
[0120]在本發(fā)明實(shí)施例中,上述兩大安全特征的最明顯優(yōu)勢(shì)就是:將針對(duì)輸入數(shù)據(jù)的直接且固化的查表操作轉(zhuǎn)化為間接且可動(dòng)態(tài)更新的多份查表操作,極大地上掩蓋了原始查表操作的泄漏功耗信息。在使用本發(fā)明描述的上述抵御手段后,攻擊者為實(shí)施差分功耗分析攻擊,原先只需采集單份功耗信息的成本,驟然變?yōu)樾枰杉粫r(shí)刻泄漏的多份功耗信息,這樣不單單使得分析攻擊所需功耗信息的樣本采集量和采集難度大幅上升,更重要地是使差分功耗分析的計(jì)算復(fù)雜度具有了指數(shù)級(jí)別的上升。
[0121]由此,采用本發(fā)明,可以在不大幅增加面積資源成本的大前提下,多處通過(guò)通用隨機(jī)掩碼技術(shù)實(shí)現(xiàn)了對(duì)密碼運(yùn)算中最關(guān)鍵的以S盒查表操作為表征的非線(xiàn)性變換泄漏功耗的掩蓋。
[0122]相應(yīng)地,本發(fā)明實(shí)施例還提供了一種集成電路芯片,其包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,所述加密處理裝置包括:
[0123]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0124]預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)Xr參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)br ;
[0125]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)yr以及隨機(jī)數(shù)zr,并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)br進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0126]對(duì)于所述加密處理裝置的具體描述可參考上述實(shí)施例,此處不再贅述。
[0127]本發(fā)明實(shí)施例還相應(yīng)地提供了一種密碼設(shè)備,其包括如上述實(shí)施例所述的集成電路芯片,例如所述密碼設(shè)備可以為智能卡、RFID、密碼協(xié)處理器、SoC密碼芯片、密碼機(jī)等,所述集成電路芯片包括如上述實(shí)施例所述的可抵御差分功耗分析攻擊的加密處理裝置,同樣地,所述加密處理裝置包括:
[0128]掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0129]預(yù)處理電路單元SecPrepare,用于依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)bt ;
[0130]S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)br進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0131]同樣地,對(duì)于所述加密處理裝置的詳細(xì)敘述請(qǐng)讀者參看上文,此處不予贅述之。
[0132]與上述實(shí)施例相對(duì)應(yīng)地,本發(fā)明實(shí)施例還相應(yīng)地提供了一種可抵御差分功耗分析攻擊的加密處理方法,包括:
[0133]S100、將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù);
[0134]S200、依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)br ;
[0135]S300、依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
[0136]一種具體實(shí)施例中,所述步驟SlOO的實(shí)施主體為SecMasking單元,繼續(xù)參考圖2以及圖3所示,所述SecMasking單元采用以通用隨機(jī)掩碼技術(shù)為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn),另外,所述多份隨機(jī)數(shù)據(jù)相互異或的結(jié)果等于所述源數(shù)據(jù)少。
[0137]一種【具體實(shí)施方式】中,參考圖3,所述SecMasking單元包括D觸發(fā)器D0、D1、D2以及按位異或器Xl、X2,所述SecMasking單元將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為三份,可抵御二階差分功耗分析攻擊。在所述SecMasking單元中:
[0138](1)源數(shù)據(jù)Plr和隨機(jī)數(shù)ir被分別提供至按位異或器Xl的兩輸入端;
[0139](2)按位異或器Xl的輸出端與按位異或器X2的一輸入端相連,隨機(jī)數(shù)jr被提供至按位異或器X2的另一輸入端;
[0140](3)按位異或器X2的輸出端與D觸發(fā)器DO的數(shù)據(jù)輸入端相連;
[0141](4)所述隨機(jī)數(shù)jr與D觸發(fā)器Dl的數(shù)據(jù)輸入端相連;
[0142](5)所述隨機(jī)數(shù)ir與D觸發(fā)器D2的數(shù)據(jù)輸入端相連;[0143](6)0觸發(fā)器00、01、02的輸出端分別與SecPr印are單元的相應(yīng)輸入端相連。
[0144]SecMasking單元的作用是基于密碼設(shè)備的每次S盒查表操作運(yùn)算都不同的隨機(jī)數(shù)(如圖3中的i和j),而將該次S盒查表操作既定的源數(shù)據(jù)Plr拆分為多份隨機(jī)數(shù)據(jù)(如圖3中的pV Pr1, pr2),并且滿(mǎn)足所述多份隨機(jī)數(shù)據(jù)(P; Pr1, Pr2)的相異或結(jié)果仍為少。
[0145]如此變換操作的有益效果在于:在全局層面上使單次S盒查表操作的源數(shù)據(jù)不被直接進(jìn)行查表操作,而以源數(shù)據(jù)在數(shù)理上為隨機(jī)數(shù)的多次S盒查表操作替換之,從而避免對(duì)所述真實(shí)源數(shù)據(jù)進(jìn)行功耗分析的實(shí)現(xiàn)難度,即理論上的分析攻擊成本由一個(gè)單位增為至少多個(gè)單位,例如本實(shí)施例中即對(duì)應(yīng)是三個(gè)單位。
[0146]在所述步驟S200中,所述步驟的實(shí)施主體為SecPrepare單元,SecPrepare單元采用以按位異或器為基礎(chǔ)的結(jié)構(gòu)實(shí)現(xiàn)。繼續(xù)參考圖4所示,一種優(yōu)選實(shí)施方式中,所述SecPrepare單元包括:按位異或器X3、X4、X5,線(xiàn)性變換單元σ O、σ 1、σ 2, AddRoundKey變換單元ARK,以及gent參與變換單元GADD,其中:
[0147](I)當(dāng)前有效的密碼算法子密鑰K和隨機(jī)數(shù)f被分別提供至按位異或器X3的輸入端;
[0148](2) D觸發(fā)器D0、D1及D2輸出的三份數(shù)據(jù)PV1Z1及&被相應(yīng)提供至線(xiàn)性變換單元σ O、σ I及σ 2的輸入端;
[0149](3)按位異或器X3的輸出端以及 線(xiàn)性變換單元σ O的輸出端分別與AddRoundKey變換單元ARK的兩輸入端相連;
[0150](4)線(xiàn)性變換單元σ I以及σ 2的輸出端分別與按位異或器Χ4的兩輸入端相連;
[0151](5)AddRoundKey變換單元ARK的輸出端以及按位異或器X4的輸出端分別與按位異或器X5的兩輸入端相連;
[0152](6)按位異或器X5的輸出端與gent參與變換單兀GADD的一輸入端相連,所述隨機(jī)數(shù)f以及實(shí)時(shí)更新變量gent被分別提供至gent參與變換單元GADD的另外兩輸入端;
[0153](7) gent參與變換單元GADD的輸出端與SecSbox單元的輸入端相連。
[0154]所述的線(xiàn)性變換單元σ O、σ I以及σ 2,其在本實(shí)施例中被用于密碼算法中在S盒查表操作之前可能存在定義的一種線(xiàn)性變換操作。
[0155]所述的AddRoundKey變換單元ARK在本實(shí)施例中被用于密碼算法中在S盒查表操作之前可能存在定義的、將欲查表數(shù)據(jù)和密碼運(yùn)算當(dāng)前有效的密碼算法子密鑰K進(jìn)行結(jié)合的一種變換操作。
[0156]所述的gent參與變換單元GADD在本實(shí)施例中被用于抵消前述隨機(jī)數(shù)Xlr的參與、同時(shí)又加入實(shí)時(shí)更新變量gent的參與以實(shí)現(xiàn)所述“SecSbox單元電路的查表結(jié)果基于隨機(jī)掩碼技術(shù)進(jìn)行縱向?qū)崟r(shí)更新”的方案。
[0157]例如,一種實(shí)施方式中,所述gent參與變換單元GADD基于被輸入的信息做以下處理:
[0158](I)對(duì)按位異或器X5的輸出信息以及所述隨機(jī)數(shù)f進(jìn)行按位異或操作;
[0159](2)對(duì)所述按位異或操作結(jié)果以及實(shí)時(shí)更新變量gent進(jìn)行布爾相加操作,輸出預(yù)處理數(shù)據(jù)I/。
[0160]不難得知,本領(lǐng)域的技術(shù)人員可以對(duì)所要求保護(hù)發(fā)明的上述gent參與變換單元GADD單元的實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行變化和修改,而不實(shí)質(zhì)上違背本發(fā)明的精神和原理。所有的這些修改和變化均應(yīng)被包括在本發(fā)明的范圍內(nèi)。
[0161]SecPrepare單元的作用是:在有新隨機(jī)數(shù)Xlr的參與下,將前述SecMasking單元輸出的多份中間隨機(jī)數(shù)據(jù)(例如如圖4中的pV Pr1, Plr2)和密碼算法當(dāng)前有效的密碼算法子密鑰V進(jìn)行如密碼算法規(guī)范所定義的、同時(shí)因有隨機(jī)數(shù)f參與而安全性又提升了的AddRoundKey變換操作。
[0162]另外,為了后續(xù)SecSbox變換單元的安全化實(shí)現(xiàn)又加入了有實(shí)時(shí)更新變量gent參與的有關(guān)變換操作。如此設(shè)計(jì)SecPrepare電路單元的有益效果在于:除了可提升后續(xù)SecSbox變換操作的安全性外,還可避免改動(dòng)一般所謂密碼算法輪密鑰擴(kuò)展操作的實(shí)現(xiàn)結(jié)構(gòu),從而節(jié)省密碼設(shè)備的面積資源成本。
[0163]對(duì)于所述步驟S300,其實(shí)施主體為SecSbox單元,在本實(shí)施例中,所述SecSbox單元采用以查表結(jié)果基于隨機(jī)掩碼技術(shù)而進(jìn)行縱向及橫向同時(shí)實(shí)時(shí)更新的方案而實(shí)現(xiàn)。優(yōu)選地,在依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理之后,得到多份目標(biāo)數(shù)據(jù);在具體實(shí)施時(shí),在密碼運(yùn)算最終步驟中,對(duì)所述多份目標(biāo)數(shù)據(jù)進(jìn)行相互異或操作處理可得到期待查找結(jié)果mr;或者,在密碼運(yùn)算中間步驟中,可將所述多份目標(biāo)數(shù)據(jù)作為下一次S盒查表操作的源數(shù)據(jù)。
[0164]繼續(xù)參考圖5所示,在優(yōu)選的一種【具體實(shí)施方式】中,所述SecSbox單元包括N個(gè)非線(xiàn)性變換SecS基本單元,具體地,在所述SecSbox單元中:
[0165](I) SecPrepare單兀輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份(即圖5中的bllr, tr'代表的N份,其滿(mǎn)足)之后分別輸入對(duì)應(yīng)N個(gè)可相異的SecS基本單元被劃分后的每份數(shù)據(jù)分別與其對(duì)應(yīng)的SecS基本單元(即如圖5中所示的和SecSi,其中,i=l,…,N)的輸入端之一相連;
[0166](2)隨機(jī)數(shù)/以及f均被分別提供至每個(gè)SecS基本單元的另兩個(gè)輸入端;
[0167](3)分別對(duì)每個(gè)SecS基本單元的相同類(lèi)型的輸出端進(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é)果。
[0168]例如,一種【具體實(shí)施方式】中,所述SecSbox單元的輸出數(shù)據(jù)可以被劃分為三份,通過(guò)數(shù)據(jù)劃分可抵御二階差分功耗分析攻擊。不難得知,本領(lǐng)域的技術(shù)人員可以對(duì)所述SecSbox單元的輸出數(shù)據(jù)的份數(shù)進(jìn)行變化和修改,而不實(shí)質(zhì)上違背本發(fā)明的精神和原理。所有這些修改和變化是要被包括在本申請(qǐng)公開(kāi)的范圍之內(nèi)。
[0169]所述SecSbox電路單元的主要作用是為其中各個(gè)SecS基本單元?jiǎng)澐州斎雽?duì)象,并且引入隨機(jī)數(shù)以期在SecS變換操作中能通過(guò)隨機(jī)掩碼技術(shù)去實(shí)現(xiàn)相關(guān)的功耗掩蓋。
[0170]本發(fā)明實(shí)施例中,參考圖6所示,所述SecS基本單元包括:多路選擇器M0、M1以及M2,與之對(duì)應(yīng)的三組D觸發(fā)器組DmOO~DmOk、DmlO~Dmlk、Dm20~Dm2k以及三組按位異或器組XmOO~XmOk、XmlO~Xmlk、Xm20~Xm2k,所述SecS基本單兀由三組相似的基本單元組成,可抵御二階差分功耗分析攻擊。具體地,其中:
[0171](I)SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后提供至當(dāng)前SecS基本單元的數(shù)據(jù)bif被提供至所述多路選擇器MO、Ml以及M2的控制選擇端;
[0172](2)所述多路選擇器MO、Ml以及M2的多個(gè)數(shù)據(jù)備選端分別與相對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端相連;
[0173](3)所述多路選擇器MO、Ml以及M2對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸入端與對(duì)應(yīng)的按位異或器組中的多個(gè)按位異或器的輸出端對(duì)應(yīng)相連;
[0174](4)隨機(jī)數(shù)f被分別提供至所述按位異或器組XmOO?XmOk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f被分別提供至所述按位異或器組XmlO?Xmlk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f與f的按位異或操作結(jié)果被分別提供至所述按位異或器組Xm20?Xm2k中的多個(gè)按位異或器的一輸入端;
[0175](5)所述D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端與相對(duì)應(yīng)的所述按位異或器組中的多個(gè)按位異或器的另一輸入端呈環(huán)狀鏈?zhǔn)竭B接,例如,所述每個(gè)按位異或器組中的多個(gè)按位異或器的另輸入端與本組中對(duì)應(yīng)的D觸發(fā)器組中的相鄰D觸發(fā)器的輸出端對(duì)應(yīng)相連,以此形成所述鏈?zhǔn)江h(huán);
[0176](6)所述多路選擇器MO、Ml以及M2的輸出端分別輸出待拼湊數(shù)據(jù)m%、以及Ki112,其中 i=l ?N。
[0177]所述SecS基本單元的主要作用是實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的安全化查表操作,其安全特征之一在于將對(duì)單一對(duì)象的查表操作等效轉(zhuǎn)化為多份查表操作,即所述基于隨機(jī)掩碼技術(shù)進(jìn)行橫向?qū)崟r(shí)更新;其安全特征之二在于將查表結(jié)果在相關(guān)查表寄存器之間進(jìn)行實(shí)時(shí)移存,即所述基于隨機(jī)掩碼技術(shù)進(jìn)行縱向?qū)崟r(shí)更新。
[0178]在本發(fā)明實(shí)施例中,上述兩大安全特征的最明顯優(yōu)勢(shì)就是:將針對(duì)輸入數(shù)據(jù)的直接且固化的查表操作轉(zhuǎn)化為間接且可動(dòng)態(tài)更新的多份查表操作,極大地上掩蓋了原始查表操作的泄漏功耗信息。在使用本發(fā)明描述的上述抵御手段后,攻擊者為實(shí)施差分功耗分析攻擊,原先只需采集單份功耗信息的成本,驟然變?yōu)樾枰杉粫r(shí)刻泄漏的多份功耗信息,這樣不單單使得分析攻擊所需功耗信息的樣本采集量和采集難度大幅上升,更重要地是使差分功耗分析的計(jì)算復(fù)雜度具有了指數(shù)級(jí)別的上升。
[0179]由此采用本發(fā)明,可以在不大幅增加面積資源成本的大前提下,多處通過(guò)通用隨機(jī)掩碼技術(shù)實(shí)現(xiàn)了對(duì)密碼運(yùn)算中最關(guān)鍵的以S盒查表操作為表征的非線(xiàn)性變換泄漏功耗的掩蓋。
[0180]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,包括: 掩蓋處理電路單元SecMasking,用于將期待進(jìn)行S盒查表操作的源數(shù)據(jù)^基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù); 預(yù)處理電路單元SecPr印are,用于依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ; S盒電路單元SecSbox,用于依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)并基于隨機(jī)掩碼技術(shù)對(duì)所述預(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,線(xiàn)性變換單元σ 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)提供至線(xiàn)性變換單元σ O、σ I及σ 2的輸入端; 按位異或器Χ3的輸出端以及線(xiàn)性變換單元σ O的輸出端分別與AddRoundKey變換單元ARK的兩輸入端相連; 線(xiàn)性變換單元σ 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基于被輸入的信息做以下處理: 對(duì)按位異或器X5的輸出信息以及所述隨機(jī)數(shù)f進(jìn)行按位異或操作; 對(duì)所述按位異或操作結(jié)果以及實(shí)時(shí)更新變量gent進(jìn)行布爾相加操作,輸出預(yù)處理數(shù)據(jù)br。
5.如權(quán)利要求1所述的可抵御差分功耗分析攻擊的加密處理裝置,其特征在于,SecSbox單元包括N個(gè)非線(xiàn)性變換SecS基本單元,在所述SecSbox單元中:SecPrepare單元輸出的預(yù)處理數(shù)據(jù)I/被劃分成多份之后分別輸入對(duì)應(yīng)N個(gè)可相異的SecS基本單元; 隨機(jī)數(shù)f以及f均被分別提供至每個(gè)SecS基本單元的另兩個(gè)輸入端; 分別對(duì)每個(gè)SecS基本單元的相同類(lèi)型的輸出端進(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,與之對(duì)應(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ù)bk被提供至所述多路選擇器MO、Ml以及M2的控制選擇端; 所述多路選擇器MO、Ml以及M2的多個(gè)數(shù)據(jù)備選端分別與相對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端相連; 所述多路選擇器MO、Ml以及M2對(duì)應(yīng)的D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸入端與對(duì)應(yīng)的按位異或器組中的多個(gè)按位異或器的輸出端對(duì)應(yīng)相連; 隨機(jī)數(shù)f被分別提供至所述按位異或器組Xm00~Xm0k中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f被分別提供至所述按位異或器組Xml0~Xmlk中的多個(gè)按位異或器的一輸入端,隨機(jī)數(shù)f與f的按位異或操作結(jié)果被分別提供至所述按位異或器組Xm20~Xm2k中的多個(gè)按位異或器的一輸入端; 所述D觸發(fā)器組中的多個(gè)D觸發(fā)器的輸出端與相對(duì)應(yīng)的所述按位異或器組中的多個(gè)按位異或器的另一輸入端呈環(huán)狀鏈?zhǔn)竭B接; 所述多路選擇器MO、Ml以及M2的輸出端分別輸出待拼湊數(shù)據(jù)πι%、πΛ以及m%,其中i=l ~N。
7.一種集成電路芯片,其特征在于,包括如權(quán)利要求1-6任一項(xiàng)所述的可抵御差分功耗分析攻擊的加密處理裝置。
8.一種可抵御差分功耗分析攻擊的加密處理方法,其特征在于,包括: 將期待進(jìn)行S盒查表操作的源數(shù)據(jù)Plr基于隨機(jī)掩碼技術(shù)拆分為多份隨機(jī)數(shù)據(jù); 依據(jù)隨機(jī)數(shù)f對(duì)所述多份隨機(jī)數(shù)據(jù)以及當(dāng)前有效的密碼算法子密鑰K進(jìn)行輪密鑰加AddRoundKey變換,并在實(shí)時(shí)更新變量gent的參與下對(duì)所述變換處理結(jié)果執(zhí)行至少以消除所述隨機(jī)數(shù)f參與影響的S盒變換預(yù)處理并輸出預(yù)處理數(shù)據(jù)I/ ; 依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)f、并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理。
9.如權(quán)利要求8所述的可抵御差分功耗分析攻擊的加密處理方法,其特征在于,所述多份隨機(jī)數(shù)據(jù)相互異或的結(jié)果等于所述源數(shù)據(jù)
10.如權(quán)利要求8所述的可抵御差分功耗分析攻擊的加密處理方法,其特征在于,在依據(jù)隨機(jī)數(shù)f以及隨機(jī)數(shù)f、并基于隨機(jī)掩碼技術(shù)對(duì)所述預(yù)處理數(shù)據(jù)I/進(jìn)行縱向及橫向S盒查找處理以及實(shí)時(shí)更新處理之后,得到多份目標(biāo)數(shù)據(jù); 對(duì)所述多份目標(biāo)數(shù)據(jù)進(jìn)行相互異或操作處理可得到期待查找結(jié)果Hf ;或者,可將所述多份目 標(biāo)數(shù)據(jù)作為下一次S盒查表操作的源數(shù)據(jù)。
【文檔編號(hào)】H04L29/06GK103905462SQ201410153362
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2014年4月16日 優(yōu)先權(quán)日:2014年4月16日
【發(fā)明者】王良清, 谷大武, 郭箏, 劉軍榮, 鄧峰 申請(qǐng)人:深圳國(guó)微技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1