本發(fā)明涉及計(jì)算機(jī)安全領(lǐng)域,具體而言是一種可防御旁路攻擊的計(jì)算循環(huán)冗余校驗(yàn)(cyclicredundancycheck,crc)的電路裝置。
背景技術(shù):
在密碼系統(tǒng)中,硬件電路對(duì)不同數(shù)據(jù)進(jìn)行運(yùn)算時(shí),會(huì)產(chǎn)生不同的功耗和電磁輻射等旁路信息。
密碼系統(tǒng)的攻擊者可采集這些信息對(duì)運(yùn)算數(shù)據(jù)進(jìn)行推測(cè),從而實(shí)現(xiàn)系統(tǒng)的攻擊及破解,該種攻擊方式即旁路攻擊。
循環(huán)冗余校驗(yàn)(cyclicredundancycheck,crc)是一種根據(jù)不定長(zhǎng)度的數(shù)據(jù)產(chǎn)生簡(jiǎn)短固定位數(shù)校驗(yàn)碼的散列函數(shù),主要用于數(shù)據(jù)傳輸后的錯(cuò)誤偵測(cè)。
如圖1所示,無(wú)旁路攻擊防護(hù)的crc電路在計(jì)算不同數(shù)據(jù)時(shí),會(huì)產(chǎn)生不同的旁路信息,從而泄漏被計(jì)算的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的在于解決上述問(wèn)題而提供的一種防御旁路攻擊的crc運(yùn)算電路裝置和方法,針對(duì)無(wú)旁路攻擊防護(hù)的crc運(yùn)算在計(jì)算不同明文輸入時(shí),會(huì)產(chǎn)生不同的旁路信息,從而泄漏明文的問(wèn)題。其可對(duì)帶有掩碼保護(hù)的輸入數(shù)據(jù)進(jìn)行計(jì)算,因計(jì)算過(guò)程中明文不會(huì)出現(xiàn),故防止了明文的旁路信息的泄漏。
為實(shí)現(xiàn)本發(fā)明目的還提供一種防御旁路攻擊的crc運(yùn)算裝置,包括第一異或單元,第一crc運(yùn)算單元,第二crc運(yùn)算單元,第二異或單元;其中:
所述第一異或單元,用于將明文和掩碼進(jìn)行異或,并將異或后的第一計(jì)算值輸入到第一crc運(yùn)算單元;
所述第一crc運(yùn)算單元,用于對(duì)第一計(jì)算值進(jìn)行運(yùn)算,得到第一crc運(yùn)算值;
所述第二crc運(yùn)算單元,用于將所述掩碼進(jìn)行運(yùn)算,得到第二crc運(yùn)算值;
所述第二異或單元,用于將第一crc運(yùn)算值與第二crc運(yùn)算值進(jìn)行異或,得到明文的運(yùn)算值。
所述的第一crc運(yùn)算單元與第二crc運(yùn)算單元為相同的crc運(yùn)算單元。
更優(yōu)地,所述的安全芯片,還包括掩碼生成單元,用于生成一個(gè)安全碼作為掩碼。
更優(yōu)地,所述安全碼為隨機(jī)數(shù);
所述隨機(jī)數(shù)通過(guò)隨機(jī)數(shù)函數(shù)random()或真隨機(jī)數(shù)發(fā)生器生成。
crc運(yùn)算電路裝置的隨機(jī)數(shù)可以由真隨機(jī)發(fā)生器生成,真隨機(jī)數(shù)發(fā)生器是硬件電路,通過(guò)采集熱噪聲等方法生成隨機(jī)數(shù)。
更優(yōu)地,所述的crc運(yùn)算電路裝置,還包括掩碼生成單元,用于生成一個(gè)安全碼作為掩碼。
為實(shí)現(xiàn)本發(fā)明目的還提供一種防御旁路攻擊的crc運(yùn)算方法,包括下列步驟:
設(shè)置兩個(gè)crc運(yùn)算單元,第一crc運(yùn)算單元輸入數(shù)據(jù)為明文異或掩碼的第一計(jì)算值;第二crc運(yùn)算單元輸入數(shù)據(jù)為掩碼;
啟動(dòng)第一crc運(yùn)算單元的計(jì)算,故其結(jié)果為明文異或掩碼的crc運(yùn)算值,得到第一crc運(yùn)算值;
啟動(dòng)crc運(yùn)算單元的計(jì)算,其結(jié)果為掩碼的第二crc運(yùn)算值;
將第一crc運(yùn)算單元的結(jié)果即第一crc運(yùn)算值和第二crc運(yùn)算單元的結(jié)果即第二crc運(yùn)算值異或,得出明文的crc運(yùn)算值。
更優(yōu)地,所述的crc運(yùn)算方法,在設(shè)置兩個(gè)crc運(yùn)算單元之前,還包括如下步驟:
生成一個(gè)安全碼作為掩碼。
更優(yōu)地,所述安全碼為隨機(jī)數(shù);
所述隨機(jī)數(shù)通過(guò)隨機(jī)數(shù)函數(shù)random()生成。
本發(fā)明一種防御旁路攻擊的安全芯片及crc運(yùn)算電路裝置和方法,具有如下優(yōu)點(diǎn):
其可對(duì)有掩碼保護(hù)的明文數(shù)據(jù)進(jìn)行計(jì)算,因計(jì)算過(guò)程中明文不會(huì)出現(xiàn),故防止了明文旁路信息的泄漏。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明具體實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)具體實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1現(xiàn)有的crc運(yùn)算結(jié)構(gòu);
圖2為本發(fā)明實(shí)施例防御旁路攻擊的crc運(yùn)算電路裝置示意圖;
圖3為本發(fā)明實(shí)施例防御旁路攻擊的crc運(yùn)算方法流程圖。
具體實(shí)施方式
如圖2、3所示,為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明了。結(jié)合具體的實(shí)施方式,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。此過(guò)程中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,用以避免對(duì)不必要地混淆本發(fā)明的概念。對(duì)于這些描述,只是示例性的。并不是限制本發(fā)明的范圍。
本實(shí)施例的一種防御旁路攻擊的crc運(yùn)算電路裝置,如圖2所示,包括掩碼生成單元10,第一異或單元20,第一crc運(yùn)算單元30,第二crc運(yùn)算單元40,第二異或單元50;其中:
所述掩碼生成單元10,用于利用隨機(jī)數(shù)函數(shù)random(),生成一個(gè)隨機(jī)數(shù)作為掩碼;
所述第一異或單元20,用于將明文和所述掩碼進(jìn)行異或,并將異或后的第一計(jì)算值輸入到第一crc運(yùn)算單元;
所述第一crc運(yùn)算單元30,用于對(duì)第一計(jì)算值進(jìn)行運(yùn)算,得到第一crc運(yùn)算值;
所述第二crc運(yùn)算單元40,用于將所述掩碼進(jìn)行crc運(yùn)算,得到第二crc運(yùn)算值;
所述第二異或單元50,用于將第一crc運(yùn)算值與第二crc運(yùn)算值進(jìn)行異或,得到明文的crc運(yùn)算值。
本發(fā)明實(shí)施例中,利用隨機(jī)數(shù)函數(shù)random()或者真隨機(jī)數(shù)器生成掩碼,并將掩碼與明文進(jìn)行異或,使得明文在進(jìn)行crc運(yùn)算時(shí)不可見(jiàn),利用異或后的第一計(jì)算值進(jìn)行crc運(yùn)算,得到第一crc運(yùn)算值。同時(shí),將掩碼進(jìn)行單獨(dú)的crc運(yùn)算,得到掩碼的第二crc運(yùn)算值,根據(jù)crc運(yùn)算為線(xiàn)性運(yùn)算的特點(diǎn),再利用第一crc運(yùn)算值和第二crc運(yùn)算值進(jìn)行異或,從而得到明文的crc運(yùn)算值。
crc運(yùn)算電路裝置的隨機(jī)數(shù)可以由真隨機(jī)發(fā)生器生成,真隨機(jī)數(shù)發(fā)生器是硬件電路,通過(guò)采集熱噪聲等方法生成隨機(jī)數(shù)。
本發(fā)明實(shí)施例還提供一種防御旁路攻擊的crc運(yùn)算方法,如圖3所示,包括下列步驟:
步驟s100,利用隨機(jī)數(shù)函數(shù)random(),生成一個(gè)隨機(jī)數(shù)作為掩碼;
步驟s200,設(shè)置兩個(gè)crc運(yùn)算單元,第一crc運(yùn)算單元輸入數(shù)據(jù)為明文異或掩碼的第一計(jì)算值;第二crc運(yùn)算單元輸入數(shù)據(jù)為掩碼;
如圖3所示,用硬件電路或軟件設(shè)置兩個(gè)相同的crc運(yùn)算單元,分別為第一crc運(yùn)算單元和第二crc運(yùn)算單元,所述crc運(yùn)算單元與現(xiàn)有技術(shù)中的crc運(yùn)算單元電路結(jié)構(gòu)相同,只是現(xiàn)有技術(shù)中輸入的是明文,而本發(fā)明實(shí)施例中第一crc運(yùn)算單元輸入的是明文異或掩碼的第一計(jì)算值,而第二crc運(yùn)算單元輸入的是掩碼。
將明文與該掩碼進(jìn)行異或,將異或結(jié)果即第一計(jì)算值輸入第一crc運(yùn)算單元,并將該掩碼單獨(dú)輸入第二crc運(yùn)算單元。
步驟s300,啟動(dòng)第一crc運(yùn)算單元的計(jì)算,故其結(jié)果為明文異或掩碼的crc運(yùn)算值,得到第一crc運(yùn)算值;
步驟s400,啟動(dòng)crc運(yùn)算單元的計(jì)算,其結(jié)果為掩碼的第二crc運(yùn)算值;
步驟s500,因crc運(yùn)算為線(xiàn)性運(yùn)算,將第一crc運(yùn)算單元的結(jié)果即第一crc運(yùn)算值和第二crc運(yùn)算單元的結(jié)果即第二crc運(yùn)算值異或,得出明文的crc運(yùn)算值。
本實(shí)施例的防御旁路攻擊的crc運(yùn)算結(jié)構(gòu),針對(duì)無(wú)旁路攻擊防護(hù)的crc運(yùn)算在計(jì)算不同明文輸入時(shí),會(huì)產(chǎn)生不同的旁路信息,從而泄漏明文的問(wèn)題。其可對(duì)帶有掩碼保護(hù)的輸入數(shù)據(jù)進(jìn)行計(jì)算,因計(jì)算過(guò)程中明文不會(huì)出現(xiàn),故防止了明文的旁路信息的泄漏。
本領(lǐng)域普通技術(shù)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。本領(lǐng)域普通技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)軌道的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器
(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的優(yōu)選的實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。