国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法的制作方法

      文檔序號(hào):6561268閱讀:220來(lái)源:國(guó)知局
      專利名稱:防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及信息安全技術(shù),特別是涉及一種用于防攻擊高級(jí)加密標(biāo)準(zhǔn)AES加密芯 片的算法技術(shù)。
      背景技術(shù)
      隨著集成電路分析技術(shù)的發(fā)展,芯片,尤其是安全芯片本身的安全性受到越來(lái) 越多的威脅,如何有效保護(hù)安全芯片中的重要或者敏感數(shù)據(jù)的完整性、機(jī)密性與有 效性關(guān)系到國(guó)家的經(jīng)濟(jì)、政治、文化與軍事等諸多方面。由于安全芯片的特殊性, 國(guó)內(nèi)一般無(wú)法獲得國(guó)際上先進(jìn)的安全芯片及其相關(guān)技術(shù),當(dāng)然也包括針對(duì)安全芯片 的防御攻擊和分析的技術(shù)。為了增強(qiáng)國(guó)家安全芯片本身的安全性,自主研究各類防 御芯片分析技術(shù)的高性能算法、新型電路結(jié)構(gòu),開(kāi)展芯片的安全防護(hù)工作就顯得十 分重要,并且已經(jīng)迫在眉睫。
      現(xiàn)在業(yè)內(nèi)普遍關(guān)注的安全芯片分析技術(shù)稱為旁路攻擊(SCA),其主要是基于物 理特征的分析技術(shù),包括電壓分析技術(shù)、故障分析技術(shù)、侵入分析技術(shù)、時(shí)間分析 技術(shù)、簡(jiǎn)單電流分析技術(shù)、差分電流分析技術(shù)、電磁輻射分析技術(shù)、高階差分分析 技術(shù)和漢明差分分析技術(shù)等。利用這些技術(shù),攻擊者可以在獲得密碼運(yùn)算載體的情 況下,不破壞芯片正常運(yùn)算,而快速獲得密鑰,從而破譯整個(gè)密碼系統(tǒng)。
      功耗分析是指通過(guò)分析密碼運(yùn)算過(guò)程中呈顯的電流/電源變化,從而引起消耗能 量的變化,獲得密鑰信息。功耗分析技術(shù)從最初的簡(jiǎn)單功耗分析(SPA)技術(shù),發(fā)展 為差分功耗分析(DPA)技術(shù),最近又有了高階差分功耗分析技術(shù)。SPA對(duì)密碼操作 過(guò)程中因指令序列的執(zhí)行而產(chǎn)生的較大幅度能量變化圖進(jìn)行分析;DPA則針對(duì)操作
      數(shù)據(jù)變化引起的微小的能量變化進(jìn)行分析,因?yàn)橄到y(tǒng)噪聲干擾和可能的采樣差錯(cuò), 這些微小變化容易丟失,所以需要進(jìn)行統(tǒng)計(jì)分析。目前,針對(duì)信息安全芯片的功耗 分析技術(shù)己經(jīng)成為攻擊者獲得密鑰等敏感信息的主要途徑之一,該類攻擊對(duì)信息安 芯片的威脅最大,于是針對(duì)功耗分析的相應(yīng)防御技術(shù)便成為人們的研究熱點(diǎn)。
      在硬件防御功耗分析措施方面,有人開(kāi)始研究相應(yīng)的對(duì)策。利用噪聲發(fā)生器產(chǎn) 生隨機(jī)的噪聲,加入到可能會(huì)被攻擊的信號(hào)端,以降低功耗分析的信噪比,從而使 得功耗分析的攻擊方法變得更加困難。但是該方法存在一些缺陷,攻擊者可以通過(guò) 更多的采樣和信號(hào)處理等方法完成對(duì)硬件的攻擊。異步電路由于其在平均功耗、能 量信號(hào)的峰值以及電磁輻射等方面的優(yōu)勢(shì),使得它在抵御功耗分析方面也有作用, 但由于芯片設(shè)計(jì)中異步電路本身運(yùn)用的不是很廣泛,相關(guān)的設(shè)計(jì)軟件也不是很齊全, 這為異步電路在安全芯片中的應(yīng)用帶來(lái)了不小的麻煩?,F(xiàn)有的比較有效的方法是算 法級(jí)Masking和電路一級(jí)的雙軌和Masking技術(shù)。
      差分功耗分析(Differential Power Analysis)最為常見(jiàn),通用性高,對(duì)被攻
      擊算法沒(méi)有依賴性,實(shí)現(xiàn)攻擊過(guò)程中也不需要對(duì)硬件實(shí)現(xiàn)有任何詳細(xì)了解。DPA所
      需要的是大量的實(shí)驗(yàn)數(shù)據(jù),與通過(guò)對(duì)輸入數(shù)據(jù)的分類,實(shí)現(xiàn)對(duì)中間過(guò)程數(shù)據(jù)的分類。
      即攻擊者知道中間數(shù)據(jù)與輸入數(shù)據(jù)在密鑰固定情況下的某種對(duì)應(yīng)關(guān)系。

      發(fā)明內(nèi)容
      針對(duì)上述現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種相對(duì) 安全而易實(shí)現(xiàn)的,無(wú)統(tǒng)計(jì)分析規(guī)律,并能最終把輸出數(shù)據(jù)恢復(fù)還原的防攻擊高級(jí)加 密標(biāo)準(zhǔn)(AES)的加密芯片的算法。
      為了解決上述技術(shù)問(wèn)題,本發(fā)明所提供的一種防攻擊高級(jí)加密標(biāo)準(zhǔn)(AES)的加 密芯片的算法,其特征在于,算法加密的工作流程-
      1)明文被分為128bits為一組pt,每一個(gè)組先與一個(gè)8bits的通過(guò)重復(fù)擴(kuò)展
      成128bits的隨機(jī)數(shù)mp異或。這一步實(shí)現(xiàn)了對(duì)輸入初始數(shù)據(jù)的掩蓋,必然導(dǎo)致中間過(guò)程數(shù)據(jù)的變化;
      2) 進(jìn)行密鑰擴(kuò)展,過(guò)程與標(biāo)準(zhǔn)AES加密完全一樣,唯一的不同是字節(jié)代換的 時(shí)候換用了帶Mask的新Sbox;新的SBox的輸入有5個(gè),分別為3個(gè)新產(chǎn)生的隨機(jī) 數(shù)Z, W, F,經(jīng)過(guò)異或運(yùn)算的數(shù)據(jù)M S (這里S代表不使用Mask方法時(shí)的原始中間數(shù) 據(jù)),和剛才用于異或運(yùn)算的隨機(jī)數(shù)M,輸出是一個(gè)8bits隨機(jī)數(shù)F'和一個(gè)與該隨 機(jī)數(shù)異或運(yùn)算而掩蓋的真實(shí)數(shù)據(jù)SB0X(S)④F';為了保證最終輸出的正確和處理 步驟的簡(jiǎn)單,'必須使得輸出的兩個(gè)值通過(guò)一步簡(jiǎn)單的異或就可以還原出真實(shí)的中間 數(shù)據(jù);
      3) 密鑰擴(kuò)展的結(jié)果是輸出44個(gè)字的mk,和44個(gè)被掩蓋了的子密鑰Subkeyemk; 它們按順序一一對(duì)應(yīng),異或后得到真實(shí)的子密鑰值,也是為了最終數(shù)據(jù)還原的實(shí)現(xiàn);
      4) 第一個(gè)經(jīng)過(guò)MASK的子密鑰Subkeyl rakl先與MASK后的需加密數(shù)據(jù)pt④mp 異或,然后這個(gè)數(shù)據(jù)輸入新SB0X,同時(shí)輸入的還有mpemkl, Z, W, F,輸出的將是F', SB0X(pt④Subkeyl) F,;
      5)對(duì)輸出的SBOX(pte Subkeyl)④F'做行移位,列混淆,再與第二個(gè)被MASK 過(guò)的子密鑰Subkey2$ mk2異或;
      6) F'則和與第二個(gè)子密鑰相對(duì)應(yīng)的隨機(jī)數(shù)mk2做異或;經(jīng)過(guò)處理后的這個(gè)數(shù) 據(jù)和這個(gè)數(shù)據(jù)通道也是為了最終還原輸出而存在的;
      7) 這時(shí)判斷是否到了最后一輪,如果沒(méi)到,則上面兩個(gè)數(shù)據(jù)進(jìn)入新Sbox,然 后重復(fù)上面的步驟;
      8) 如果到了最后一輪,兩個(gè)數(shù)據(jù)進(jìn)入新SBox后,輸出的F,與最后一個(gè)子密 鑰相對(duì)應(yīng)的mk44異或得到F'④mk44;
      9) SBOX (state Subkey43) F,則進(jìn)行行移位后與最后一個(gè)被Mask過(guò)的子密 鑰Subkey44e mk44異或;
      10) 最后將上面兩個(gè)所得數(shù)據(jù)異或,得到加密后的輸出128bits的密文。
      進(jìn)一步地,所述步驟2)中的密鑰為初始的128bits的密鑰先與一個(gè)32bits通 過(guò)重復(fù)擴(kuò)展的隨機(jī)數(shù)異或;雖然第一步的異或已經(jīng)修改了實(shí)際數(shù)據(jù);但為了提高安 全性,這個(gè)設(shè)計(jì)對(duì)密鑰也進(jìn)行了異或處理。
      進(jìn)一步地,所述新Sbox的工作流程首先判斷是進(jìn)行加密還是解密,如果是加 密的話,先對(duì)進(jìn)入的數(shù)據(jù)做有限域上的求逆,然后把求逆得到的結(jié)果用有限域上的 乘法與一個(gè)固定的矩陣A相乘,然后與一個(gè)固定的向量b做有限域上的加法,最終
      得到的就是字節(jié)代換的輸出值;如果是解密,則先對(duì)數(shù)據(jù)做有限域上的與一個(gè)固定 向量b的加法,然后將結(jié)果用有限域上乘法與一個(gè)固定的矩站A'相乘,注意A和 A'不同,經(jīng)過(guò)這些計(jì)算后的結(jié)果再在有限域上求逆,最終的結(jié)果就是解密過(guò)程中的 字節(jié)代換輸出。
      進(jìn)一步地,所述新Sbox的工作流程中有限域求逆算法:首先把數(shù)字A通過(guò)G(256) 到G (16)轉(zhuǎn)換公式分解成高四位Ah和低四位Al; Ah通過(guò)有限域上的平方后乘以 常數(shù)E (十進(jìn)制的14),假設(shè)這個(gè)結(jié)果稱為Ah2E, Al與Ah異或后的結(jié)果再與Al做 有限域上的乘法,這個(gè)值為(AleAh)Al,再把(AleAh)Al與Ah2E異或,得到 Ah2E (Al2 Ah Al),這個(gè)值經(jīng)過(guò)有限域求逆,得到(Ah2E (Al2 Ah Al))、這個(gè) 求逆結(jié)果分別與Ah,Al做有限域乘法得到Bh、 Bl,它們分別是字節(jié)代換結(jié)果的高四 位和低四位;把它們按照G (16)到G (256)的轉(zhuǎn)換公式能還原成八位值。
      本發(fā)明提供的防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法,將使用算法級(jí)Masking (掩蔽)實(shí)現(xiàn)防攻擊;與其他方法相比,Masking有較高的安全性。它的機(jī)理是通 過(guò)把輸入的初始數(shù)據(jù)與一個(gè)隨機(jī)數(shù)異或運(yùn)算而把DPA需要使用到的中間數(shù)據(jù)掩蓋。 因此輸入數(shù)據(jù)與中間過(guò)程數(shù)據(jù)的固定關(guān)系由于每次加密或者解密使用的隨機(jī)數(shù)不同 而不同,就喪失了統(tǒng)計(jì)分析所需要的規(guī)律,破壞了DPA攻擊的數(shù)學(xué)基礎(chǔ)。而Masking 的關(guān)鍵在于中間的所有數(shù)據(jù)都是被修改過(guò)的但最終可以把數(shù)據(jù)再恢復(fù)還原輸出。因 此這個(gè)設(shè)計(jì)需要兩個(gè)數(shù)據(jù)通道, 一個(gè)用于被修改的所需加密數(shù)據(jù)的正常加密處理,一個(gè)用于隨機(jī)數(shù)的處理,使得最后可以將兩個(gè)通道的數(shù)據(jù)通過(guò)簡(jiǎn)單異或而還原真實(shí) 輸出。經(jīng)過(guò)該設(shè)計(jì)修改的加密解密可以保持原有算法的正確性,同時(shí)可以起到防范
      DPA攻擊的效果。從實(shí)現(xiàn)上可以使用原有的自動(dòng)化設(shè)計(jì)工具,因此是個(gè)相對(duì)安全而 易實(shí)現(xiàn)的方案。


      圖1是本發(fā)明實(shí)例加密部分整體結(jié)構(gòu)示意框圖2是本發(fā)明實(shí)例的基于有限域求逆算法的Sbox示意框圖3是本發(fā)明圖2實(shí)例的有限域求逆的具體實(shí)現(xiàn)示意框圖4是本發(fā)明實(shí)例的加密情況下帶MASK的字節(jié)代換模塊的示意框圖5是本發(fā)明圖4實(shí)例的安全求逆模塊的具體示意框圖6是本發(fā)明實(shí)例的Mask乘法模塊的具體示意框圖7是本發(fā)明實(shí)例的4位安全求逆模塊示意框圖8是本發(fā)明實(shí)例的帶mask的與門(mén)的具體示意框圖。
      具體實(shí)施例方式
      以下結(jié)合

      對(duì)本發(fā)明的實(shí)施例作進(jìn)一步詳細(xì)描述,但本實(shí)施例并不用于 限制本發(fā)明,凡是采用本發(fā)明的相似算法及其相似變化,均應(yīng)列入本發(fā)明的保護(hù)范圍。
      本發(fā)明是一款防旁路攻擊的采用高級(jí)加密標(biāo)準(zhǔn)AES算法的高速加密芯片的加密 算法。所謂的防攻擊是指可以防SCA中的一種DPA。所設(shè)計(jì)芯片不僅采用NIST的標(biāo) 準(zhǔn)算法AES,防止DPA攻擊,另外還具有高速的特點(diǎn)??梢詫?duì)任意長(zhǎng)度的消息進(jìn)行 加密運(yùn)算,采用的密鑰是128bits。
      本發(fā)明設(shè)計(jì)只涉及加密核心部分,不包括接口模塊。芯片對(duì)外接口有128bits 的數(shù)據(jù)輸入接口, 128bits的密鑰輸入接口, lbits的加密或解密控制位,lbits的 加密或解密已完成指示位,lbits的加密或解密啟動(dòng)控制位,128bits的輸出接口。
      整體上使用20個(gè)SB0X并行工作,可以在13時(shí)鐘周期內(nèi)完成一次加密或解密。
      根據(jù)所實(shí)現(xiàn)算法的特點(diǎn),芯片可以分為加密部分,解密部分,密鑰擴(kuò)展部分。
      芯片整體框圖如圖l (由于加密與解密過(guò)程的類似,僅顯示加密部分)
      -參見(jiàn)圖1所示,mp,mk,Z,W,F(xiàn),F'都為隨機(jī)數(shù),xor為異或運(yùn)算,字節(jié)代換模塊
      為帶Mask的新模塊,行移位和列混淆模塊為AES標(biāo)準(zhǔn)模塊。
      加密芯片的算法工作流程
      1) 明文被分為128bits為一組pt,每一個(gè)組先與一個(gè)8bits的隨機(jī)數(shù)卿(通 過(guò)重復(fù)擴(kuò)展成128bits)異或。這一步實(shí)現(xiàn)了對(duì)輸入初始數(shù)據(jù)的掩蓋,必然導(dǎo)致中 間過(guò)程數(shù)據(jù)的變化。
      2) 128bits的密鑰先與一個(gè)32bits的隨機(jī)數(shù)mk (通過(guò)重復(fù)擴(kuò)展成128bit)異 或。這一步不是必須的,因?yàn)榈谝徊降漠惢蛞呀?jīng)修改了實(shí)際數(shù)據(jù)。但為了提高安全 性,這個(gè)設(shè)計(jì)對(duì)密鑰也進(jìn)行了異或處理。
      3) 進(jìn)行密鑰擴(kuò)展,過(guò)程與標(biāo)準(zhǔn)AES加密完全一樣,唯一的不同是字節(jié)代換的 時(shí)候換用了帶Mask的新Sbox。新的SBox的輸入有5個(gè),分別為3個(gè)新產(chǎn)生的隨機(jī) 數(shù)Z,W,F(xiàn),經(jīng)過(guò)異或運(yùn)算的數(shù)據(jù)M④S (這里S代表不使用Mask方法時(shí)的原始中間數(shù) 據(jù)),和剛才用于異或運(yùn)算的隨機(jī)數(shù)M,輸出是一個(gè)8bits隨機(jī)數(shù)F'和一個(gè)與該隨 機(jī)數(shù)異或運(yùn)算而掩蓋的真實(shí)數(shù)據(jù)SB0X(S) F'。為了保證最終輸出的正確和處理 步驟的簡(jiǎn)單,必須使得輸出的兩個(gè)值通過(guò)一步簡(jiǎn)單的異或就可以還原出真實(shí)的中間 數(shù)據(jù)。新的SBox設(shè)計(jì)難點(diǎn)在于字節(jié)代換的非線性,具體實(shí)現(xiàn)方法在下文詳細(xì)介紹。
      4) 密鑰擴(kuò)展的結(jié)果是輸出44個(gè)字的mk,和44個(gè)被掩蓋了的子密鑰Subkey mk。 它們按順序一一對(duì)應(yīng),異或后得到真實(shí)的子密鑰值,也是為了最終數(shù)據(jù)還原的實(shí)現(xiàn)。
      5) 第一個(gè)經(jīng)過(guò)MASK的子密鑰Subkeyl mkl先與MASK后的需加密數(shù)據(jù)pt④mp 異或,然后這個(gè)數(shù)據(jù)輸入新SB0X,同時(shí)輸入的還有rapemkl, Z, W, F,輸出的將是F', SB0X(pt Subkeyl) F,。
      6) 對(duì)輸出的SB0X(pt④Subkeyl)eF'做行移位,列混淆,再與第二個(gè)被MASK 過(guò)的子密鑰Subkey2 mk2異或。
      7) F'則和與第二個(gè)子密鑰相對(duì)應(yīng)的隨機(jī)數(shù)rak2做異或。經(jīng)過(guò)處理后的這個(gè)數(shù) 據(jù)和這個(gè)數(shù)據(jù)通道也是為了最終還原輸出而存在的。
      8) 這時(shí)判斷是否到了最后一輪,如果沒(méi)到,則上面兩個(gè)數(shù)據(jù)進(jìn)入新Sbox,然 后重復(fù)上面的步驟。
      9) 如果到了最后一輪,兩個(gè)數(shù)據(jù)進(jìn)入新SBox后,輸出的F'與最后一個(gè)子密 鑰相對(duì)應(yīng)的mk44異或得到F' 0mk44。
      10) SB0X(state Subkey43)④F'則進(jìn)行行移位后與最后一個(gè)被Mask過(guò)的子密 鑰Subkey44④mk44異或。
      11) 最后將上面兩個(gè)所得數(shù)據(jù)異或,得到加密后的輸出128bits的密文。
      模塊分述-
      這個(gè)部分只介紹與Mask技術(shù)相關(guān)的新Sbox和密鑰擴(kuò)展模塊,而行移位,列混 淆等為標(biāo)準(zhǔn)的AES模塊,不另贅述。關(guān)于標(biāo)準(zhǔn)模塊的說(shuō)明請(qǐng)參照AES官方文檔。
      字節(jié)代換模塊
      該模塊即Sbox非線性變換部分。它相當(dāng)與一個(gè)査表運(yùn)算,把一個(gè)8bits的數(shù) 據(jù)通過(guò)非線性變換為另一 8bits數(shù)據(jù)。初始數(shù)據(jù)經(jīng)過(guò)異或后,其他中間處理步驟都 是線性的,因此最終恢復(fù)數(shù)據(jù)時(shí)所需要的隨機(jī)數(shù)是可以平行地增加一個(gè)數(shù)據(jù)通道而 計(jì)算得到的。但是Sbox(SeF)不等于Sbox(S)④F。 Mask的難點(diǎn)就在于這個(gè)模塊的非 線性。為了使得數(shù)據(jù)的恢復(fù)可以容易地進(jìn)行,需要構(gòu)建新的SB0X',它要滿足 Sbox, (S F)= Sbox(S)①F。
      AES的字節(jié)代換模塊,
      由于新Sbox的構(gòu)建是建立在原Sbox的基礎(chǔ)上的,因此這里先介紹未加MASK 的SB0X。它的實(shí)現(xiàn)分査表和有限域求逆兩種,這里使用第二種方法。因?yàn)殡m然査表
      法的原理簡(jiǎn)單,但表格需要根據(jù)每次的隨機(jī)數(shù)F的不同而重新建立,所需要的時(shí)間
      和硬件復(fù)雜度已經(jīng)不能滿足正常加密所能承受的限度。如果先選擇固定數(shù)目的隨機(jī) 數(shù)< 再建立好對(duì)應(yīng)的表格儲(chǔ)存起來(lái),那么隨機(jī)數(shù)的選擇范圍如果很大,則固定表格 的儲(chǔ)存所占用的空間也是無(wú)法承受的;如果范圍很小,使用的不同的表格有限,則 犧牲了安全性,也就失去了進(jìn)行Mask的意義。
      基于有限域求逆算法的Sb0X框圖如圖2所示;首先判斷是進(jìn)行加密還是解密,
      如果是加密的話,先對(duì)進(jìn)入的數(shù)據(jù)做有限域上的求逆,然后把求逆得到的結(jié)果用有
      限域上的乘法與一個(gè)固定的矩陣A相乘,然后與一個(gè)固定的向量b做有限域上的加 法,最終得到的就是字節(jié)代換的輸出值;如果是解密,則先對(duì)數(shù)據(jù)做有限域上的與 一個(gè)固定向量b的加法,然后將結(jié)果用有限域上乘法與一個(gè)固定的矩站A'相乘, 注意A和A'不同,經(jīng)過(guò)這些計(jì)算后的結(jié)果再在有限域上求逆,最終的結(jié)果就是解密 過(guò)程中的字節(jié)代換輸出。
      參見(jiàn)圖3所示,有限域求逆算法的具體實(shí)現(xiàn)如下先將8bits數(shù)據(jù)A二 (a7, a6, a5, a4, a3, a2, al, a0)分解為兩個(gè)4bits的數(shù)al和ah,然后所進(jìn)行的有限域 乘法,有限域平方和有限域求逆都是4bits數(shù)據(jù)的運(yùn)算。得到兩個(gè)4bits的輸出數(shù) 據(jù)bl和bh后再合成為8bits的數(shù)。把8位分解到4位的意義是8位求逆復(fù)雜度太 高,相應(yīng)的4位求逆相對(duì)容易實(shí)現(xiàn)。該部分僅討論加密過(guò)程。首先把數(shù)字A通過(guò)G (256)到G (16)轉(zhuǎn)換公式分解成高四位Ah和低四位Al。 Ah通過(guò)有限域上的平方 后乘以常數(shù)E (十進(jìn)制的14),假設(shè)這個(gè)結(jié)果稱為Ah2E, Al與Ah異或后的結(jié)果再與 Al做有限域上的乘法,這個(gè)值為(Al①Ah) Al,再把它與Ah2E異或,得到Ah2E$ (Al2 Ah Al)。這個(gè)值經(jīng)過(guò)有限域求逆,得到(Ah2E (Al2 Ah Al))人這個(gè)求逆結(jié)果分別與 Ah,Al做有限域乘法得到Bh, Bl,它們分別是字節(jié)代換結(jié)果的高四位和低四位。把 它們按照G (16)到G (256)的轉(zhuǎn)換公式可以還原成八位值。 G (256)到G(16)的轉(zhuǎn)換計(jì)算公式(1)是
      aA=al xor a7 aB=a5 xor a7 aC=a4 xor a6 alO-aC xor a0 xor a5 all=al xor a2 al2=aA al3=a2 xor a4
      ahO-aC xor a5 ahl=aA xor aC
      ah2=aB xor a2 xor a3 ah3=aB
      G (.16)到G (256)的轉(zhuǎn)換計(jì)算公式(2)是
      aA-all xor ah3 a0=al0 xor ahO a2=aA xor aB a4=aA xor aB xor al3 a6=aA xor al2 xor al3 xor ahO
      aB=ahO xor ahl al=aB xorah3 a3=aB xor all xor ah2 a5=aB xor al2 a7=aB xor al2 xor ah3
      有限域上的乘法公式(3)是-
      QO-aObO xor a3bl xor (a2 xor a3)b2 xor(al xor a2)b3 Ql-albO xor(aO xor a3)bl xor a2b2 xor alb3 Q2=a2b0 xor albl xor(aO xor a3)b2 xor(a2 xor a3)b3 Q3=a3b0 xor a2bl xor alb2 xor(aO xor a3)b3
      相連表示AND
      有限域上的平方公式(4)是
      Q0=a0xora2 Ql=a2 Q2=alxora3 Q3=a3
      有限域上的求逆公式(5)是
      A=al xor a2 xor a3 xor ala2a3 Q0=A xor a0 xor a0a2 xor ala2 xor a0ala2 Ql=al(a0 xor a2 xor a3 xor a0a3)xor a0a2 xor a3 Q2=a0(al xor a2 xor a3 xor a2a3)xor a2 xor a3 Q3=A xor a0a3 xor ala3 xor a2a3
      相連表示AND。 .帶MASK的字節(jié)代換模塊, 新的SBox的輸入有5個(gè),分別為3個(gè)新產(chǎn)生的隨機(jī)數(shù)Z (4bits) ,W(4bits),F(8bits),經(jīng)過(guò)異或運(yùn)算的中間數(shù)據(jù)S M (這里S代表不使 用MASK方法時(shí)的原始中間數(shù)據(jù)),和剛才用于異或運(yùn)算的隨機(jī)數(shù)M,輸出是一個(gè)8bits 隨機(jī)數(shù)F'和一個(gè)被該隨機(jī)數(shù)異或運(yùn)算而掩蓋的真實(shí)數(shù)據(jù)SBOX(S' ) @F'。
      M是為了數(shù)據(jù)的還原,而新的隨機(jī)數(shù)中Z和W用于內(nèi)部數(shù)據(jù)的掩蓋,F(xiàn)用于模塊輸出值的掩蓋。
      為了簡(jiǎn)化,僅畫(huà)出加密情況下的框圖如圖4所示,M, W, Z, F為四個(gè)相互獨(dú) 立的隨機(jī)數(shù),SxorM為被隨機(jī)數(shù)Mask后的輸入,這五個(gè)數(shù)據(jù)進(jìn)入安全求逆模塊后 得到S—'xor F,這是被新的隨機(jī)數(shù)F所Mask的輸入的逆,S—1 xor F在有限域上乘以 矩陣A再加上向量b后,得到(S—'A)xor(FA)xorb,即相當(dāng)于Sbox(S)xor(FA),另一 個(gè)數(shù)據(jù)通道上把F與A相乘,得到了F, -FA,則輸出是Sbox(S)xorF,和F,,只要 把它們異或就可以得到真實(shí)的字節(jié)代換結(jié)果Sbox(S)。圖4對(duì)應(yīng)于圖2 (去掉解密模 塊部分),可以看出多了一個(gè)數(shù)據(jù)通道進(jìn)行平行計(jì)算,用于最終輸出數(shù)據(jù)的還原。
      實(shí)際計(jì)算步驟中新的隨機(jī)數(shù)先與原數(shù)據(jù)運(yùn)算,然后才會(huì)去掉以前步驟所引入的 隨機(jī)數(shù)。這樣實(shí)現(xiàn)了隨機(jī)數(shù)的更新,提高安全性。另外需要注意的是這個(gè)換隨機(jī)數(shù) 的步驟不能錯(cuò),如果先去隨機(jī)數(shù)再加隨機(jī)數(shù)則實(shí)際數(shù)據(jù)已經(jīng)暴露過(guò)。正確的步驟是 先加新的,再去舊的。
      圖4中的安全求逆模塊的具體框圖如圖5所示;圖5對(duì)應(yīng)前面的圖3,只不過(guò) 明顯多了一個(gè)數(shù)據(jù)通道給隨機(jī)數(shù)。由于加密數(shù)據(jù)經(jīng)過(guò)修改后進(jìn)行了 8位到4位的差 分,因此為了每一個(gè)步驟中的暫時(shí)還原與進(jìn)一步換用新的隨機(jī)數(shù)修改真實(shí)數(shù)據(jù),初 始輸入的隨機(jī)數(shù)也被拆分成4位配合使用。最后隨機(jī)數(shù)和加密數(shù)據(jù)都還原成8位數(shù) 據(jù)。
      圖5中的4位安全求逆模塊和Mask乘法模塊在下文介紹。拆分,整合,平方公 式都同上述的公式(1)、 (2)、 (3)、 (4)、 (5)。
      圖6中所有數(shù)據(jù)都是4位,A和B為真實(shí)數(shù)據(jù),X,Y,Z為隨機(jī)數(shù),X,Y用于消除 前面異或運(yùn)算導(dǎo)致的修改,新的Z用于掩蓋輸出的真實(shí)值。4位乘法同上文介紹的 有限域乘法公式(3)。首先A xor X,B xor Y, X, Y之間分別做四位乘法,如圖6所 示得到四個(gè)乘積(A xor X) (B xor Y), (B xor Y) X, (A xor X) Y, XY,然后Z 分別與上述結(jié)果從右到左疊加異或,依次得到XY xor Z, (A xor X) Y xor XY xor
      Z (化簡(jiǎn)為AY xor Z), AY xor Z xor (B xor Y) X, AY xor Z xor (B xor Y) xor X (A xor X) (B xor Y),這個(gè)最終值化簡(jiǎn)可以得到(AB)xor Z。這樣就實(shí)現(xiàn)了 A與 B的相乘,并且沒(méi)有在最初,中途和最后泄露真實(shí)的值,所有的數(shù)據(jù)都有隨機(jī)數(shù)做
      Mask。
      4位安全求逆模塊,
      四位求逆公式如同上文所示公式(5)不變,但是其中的與門(mén)替換為下面介紹的 帶MASK的與門(mén)。
      具體實(shí)現(xiàn)的算法有很多種,其中一種參見(jiàn)圖7所示;圖7中的求逆模塊有三個(gè)輸 入,分別是隨機(jī)數(shù)mask (需要使用它是為了在過(guò)程中將它去掉),與隨機(jī)數(shù)異或過(guò) 的中間數(shù)據(jù)States mask, —個(gè)新隨機(jī)數(shù)W作為新的隨機(jī)數(shù)來(lái)修正真實(shí)值。輸出有 兩個(gè),分別是一個(gè)掩蓋真實(shí)數(shù)據(jù)的值x,和所求的逆與這個(gè)值的異或mA。
      輸出mA-state—1 @x
      raA可以通過(guò)上面介紹過(guò)的求逆公式計(jì)算,只需要把其中的與門(mén)換成帶mask的與門(mén)。
      下面是如何計(jì)算x:
      <formula>complex formula see original document page 14</formula>.
      帶mask的與門(mén)參見(jiàn)圖8所示,圖8中所有數(shù)據(jù)都為1位,a, b為真實(shí)數(shù)據(jù),x, y, z 為隨機(jī)數(shù),x,y用于消除前面異或運(yùn)算導(dǎo)致的修改,新的z用于掩蓋輸出的真實(shí)值。
      密鑰擴(kuò)展部分-
      由于初始密鑰已經(jīng)與隨機(jī)數(shù)做過(guò)異或,這個(gè)部分要做的工作是獲得有隨機(jī)數(shù)保護(hù) 的子密鑰,和恢復(fù)出真實(shí)子密鑰所對(duì)應(yīng)的隨機(jī)數(shù)。它們被分別存在兩個(gè)數(shù)組w[i]和mk[i]中。
      密鑰擴(kuò)展部分的C偽代碼如下
      <formula>complex formula see original document page 15</formula>
      mkl, mk2, mk3, mk4為8Mts隨機(jī)數(shù)。
      Subword使用四個(gè)帶MASK的Sbox。
      帶Mask的Sbox的輸入是rotword (tempi), mk[i-1], W(4bits隨機(jī)數(shù)), Z(4bits隨機(jī)數(shù)),F(xiàn)(設(shè)置為0)。這里的F可以設(shè)置為0,是因?yàn)樗袛?shù)據(jù)己經(jīng)有了 修改,這里可以省略一些隨機(jī)數(shù)。
      隨機(jī)數(shù)的產(chǎn)生
      整個(gè)設(shè)計(jì)的所有隨機(jī)數(shù)都由嵌在IP中的RNG (隨機(jī)數(shù)生成模塊)生成,每個(gè)時(shí) 鐘產(chǎn)生一位隨機(jī)數(shù)。當(dāng)每次加密開(kāi)始時(shí),首先把RNG產(chǎn)生的隨機(jī)數(shù)鎖存到相應(yīng)的寄 存器中供數(shù)據(jù)處理過(guò)程使用。
      權(quán)利要求
      1、一種防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法,其特征在于,加密算法的工作流程1)明文被分為128bits為一組pt,每一個(gè)組先與一個(gè)8bits的通過(guò)重復(fù)擴(kuò)展成128bits的隨機(jī)數(shù)mp異或;2)進(jìn)行密鑰擴(kuò)展,過(guò)程與標(biāo)準(zhǔn)AES加密完全一樣,唯一的不同是字節(jié)代換的時(shí)候換用了帶Mask的新Sbox;新的SBox的輸入有5個(gè),分別為3個(gè)新產(chǎn)生的隨機(jī)數(shù)Z,W,F(xiàn),經(jīng)過(guò)異或運(yùn)算的數(shù)據(jù)Mid="icf0001" file="A2006101192380002C1.gif" wi="2" he="2" top= "93" left = "84" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>S(這里S代表不使用Mask方法時(shí)的原始中間數(shù)據(jù)),和剛才用于異或運(yùn)算的隨機(jī)數(shù)M,輸出是一個(gè)8bits隨機(jī)數(shù)F’和一個(gè)與該隨機(jī)數(shù)異或運(yùn)算而掩蓋的真實(shí)數(shù)據(jù)SBOX(S)id="icf0002" file="A2006101192380002C2.gif" wi="2" he="2" top= "113" left = "103" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>F’;為了保證最終輸出的正確和處理步驟的簡(jiǎn)單,必須使得輸出的兩個(gè)值通過(guò)一步簡(jiǎn)單的異或就可以還原出真實(shí)的中間數(shù)據(jù);3)密鑰擴(kuò)展的結(jié)果是輸出44個(gè)字的mk,和44個(gè)被掩蓋了的子密鑰Subkeyid="icf0003" file="A2006101192380002C3.gif" wi="2" he="2" top= "144" left = "167" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>mk;它們按順序一一對(duì)應(yīng),異或后得到真實(shí)的子密鑰值,也是為了最終數(shù)據(jù)還原的實(shí)現(xiàn);4)第一個(gè)經(jīng)過(guò)MASK的子密鑰Subkey1id="icf0004" file="A2006101192380002C4.gif" wi="2" he="2" top= "164" left = "103" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>mk1先與MASK后的需加密數(shù)據(jù)ptid="icf0005" file="A2006101192380002C5.gif" wi="2" he="2" top= "164" left = "169" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>mp異或,然后這個(gè)數(shù)據(jù)輸入新SBOX,同時(shí)輸入的還有mpid="icf0006" file="A2006101192380002C6.gif" wi="2" he="2" top= "175" left = "120" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>mk1,Z,W,F(xiàn),輸出的將是F’,SBOX(ptid="icf0007" file="A2006101192380002C7.gif" wi="2" he="2" top= "185" left = "38" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>Subkey1)id="icf0008" file="A2006101192380002C8.gif" wi="2" he="2" top= "185" left = "61" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>F’;5)對(duì)輸出的SBOX(ptid="icf0009" file="A2006101192380002C9.gif" wi="2" he="2" top= "195" left = "72" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>Subkey1)id="icf0010" file="A2006101192380002C10.gif" wi="2" he="2" top= "195" left = "95" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>F’做行移位,列混淆,再與第二個(gè)被MASK過(guò)的子密鑰Subkey2id="icf0011" file="A2006101192380002C11.gif" wi="2" he="2" top= "205" left = "61" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>mk2異或;6)F’則和與第二個(gè)子密鑰相對(duì)應(yīng)的隨機(jī)數(shù)mk2做異或;經(jīng)過(guò)處理后的這個(gè)數(shù)據(jù)和這個(gè)數(shù)據(jù)通道也是為了最終還原輸出而存在的;7)這時(shí)判斷是否到了最后一輪,如果沒(méi)到,則上面兩個(gè)數(shù)據(jù)進(jìn)入新Sbox,然后重復(fù)上面的步驟;8)如果到了最后一輪,兩個(gè)數(shù)據(jù)進(jìn)入新SBox后,輸出的F’與最后一個(gè)子密鑰相對(duì)應(yīng)的mk44異或得到F’id="icf0012" file="A2006101192380003C1.gif" wi="2" he="2" top= "39" left = "78" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>mk44;9)SBOX(stateid="icf0013" file="A2006101192380003C2.gif" wi="2" he="2" top= "49" left = "59" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>Subkey43)id="icf0014" file="A2006101192380003C3.gif" wi="2" he="2" top= "49" left = "82" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>F’則進(jìn)行行移位后與最后一個(gè)被Mask過(guò)的子密鑰Subkey44id="icf0015" file="A2006101192380003C4.gif" wi="2" he="2" top= "59" left = "45" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>mk44異或;10)最后將上面兩個(gè)所得數(shù)據(jù)異或,得到加密后的輸出128bits的密文。
      2、 根據(jù)權(quán)利要求1所述的防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法,其特征在于, 所述步驟2)中的密鑰為初始的128bits的密鑰先與一個(gè)32bits通過(guò)重復(fù)擴(kuò)展的隨 機(jī)數(shù)異或。
      3、 根據(jù)權(quán)利要求1所述的防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法,其特征在于, 所述新Sbox的工作流程首先判斷是進(jìn)行加密還是解密,如果是加密的話,先對(duì)進(jìn) 入的數(shù)據(jù)做有限域上的求逆,然后把求逆得到的結(jié)果用有限域上的乘法與一個(gè)固定 的矩陣A相乘,然后與一個(gè)固定的向量b做有限域上的加法,最終得到的就是字節(jié) 代換的輸出值;如果是解密,則先對(duì)數(shù)據(jù)做有限域上的與一個(gè)固定向量b的加法, 然后將結(jié)果用有限域上乘法與一個(gè)固定的矩站A'相乘,注意A和A'不同,經(jīng)過(guò)這 些計(jì)算后的結(jié)果再在有限域上求逆,最終的結(jié)果就是解密過(guò)程中的字節(jié)代換輸出。
      4、 根據(jù)權(quán)利要求1所述的防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法,其特征在于, 所述新Sbox的工作流程中有限域求逆算法首先把數(shù)字A通過(guò)G (256)到G (16) 轉(zhuǎn)換公式分解成高四位Ah和低四位Al; Ah通過(guò)有限域上的平方后乘以常數(shù)E (十 進(jìn)制的14),假設(shè)這個(gè)結(jié)果稱為Ah2E, Al與Ah異或后的結(jié)果再與Al做有限域上的 乘法,這個(gè)值為(Al Ah)Al,再把(AleAh)Al與Ah2E異或,得到Ah2E (Al、Ah Al), 這個(gè)值經(jīng)過(guò)有限域求逆,得到(Ah2E (Al26AhAl))這個(gè)求逆結(jié)果分別與Ah,Al 做有限域乘法得到Bh、 Bl,它們分別是字節(jié)代換結(jié)果的高四位和低四位;把它們按 照G (16)到G (256)的轉(zhuǎn)換公式能還原成八位值。
      全文摘要
      本發(fā)明公開(kāi)一種防攻擊高級(jí)加密標(biāo)準(zhǔn)的加密芯片的算法,涉及信息安全技術(shù)領(lǐng)域;該算法的機(jī)理是通過(guò)把輸入的初始數(shù)據(jù)與一個(gè)隨機(jī)數(shù)異或運(yùn)算而把DPA需要使用到的中間數(shù)據(jù)掩蓋;而Masking的關(guān)鍵在于中間的所有數(shù)據(jù)都是被修改過(guò)的但最終可以把數(shù)據(jù)再恢復(fù)還原輸出。因此這個(gè)設(shè)計(jì)需要兩個(gè)數(shù)據(jù)通道,一個(gè)用于被修改的所需加密數(shù)據(jù)的正常加密處理,一個(gè)用于隨機(jī)數(shù)的處理,使得最后可以將兩個(gè)通道的數(shù)據(jù)通過(guò)簡(jiǎn)單異或而還原真實(shí)輸出。本發(fā)明具有相對(duì)安全而易實(shí)現(xiàn)的,無(wú)統(tǒng)計(jì)分析規(guī)律,并能最終把輸出數(shù)據(jù)恢復(fù)還原的特點(diǎn)。
      文檔編號(hào)G06F21/00GK101196965SQ200610119238
      公開(kāi)日2008年6月11日 申請(qǐng)日期2006年12月7日 優(yōu)先權(quán)日2006年12月7日
      發(fā)明者周玉潔, 晗 秦, 譚詠偉, 陳志敏 申請(qǐng)人:上海安創(chuàng)信息科技有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1