版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
3.1物聯(lián)網平安的密碼理論概述3.2模運算3.3群論3.4有限域理論3.5歐幾里德算法及其擴展3.6AES對稱密碼算法3.7橢圓曲線公鑰密碼算法3.1物聯(lián)網平安的密碼理論概述碼算法和協(xié)議可以分為以下4個主要領域。(1)對稱加密:用于加密任意大小的數(shù)據(jù)塊或數(shù)據(jù)流的內容,包括消息、文件、加密密鑰和口令;(2)非對稱加密:用于加密小的數(shù)據(jù)塊,如加密密鑰或者數(shù)字簽名中使用的Hash函數(shù)值;(3)數(shù)據(jù)完整性算法:用于保護數(shù)據(jù)塊〔如一條消息〕的內容免于被修改;(4)認證協(xié)議:有許多基于密碼算法的認證方案,用來認證實體的真實性。本書中討論的密碼算法和協(xié)議大局部是基于有限域數(shù)論的,包括素數(shù)域GF(p)和二進制域GF(2m)?;诙M制域的數(shù)論相對于素數(shù)域有硬件實現(xiàn)上的優(yōu)勢,并且是當前流行的高級加密標準〔AdvancedEncryptionStandard,AES〕和橢圓曲線加密〔EllipticCurveCryptography,ECC〕密碼方案的根底。例如,基于GF(2m)的ECC是目前廣泛應用的公鑰密碼算法,它的每位密鑰長度取得的平安強度最高、計算和存儲所需空間更少?;贕F(2m)域的數(shù)論在密碼方案實現(xiàn)上有較大的改善。因此,在GF(2m)域上的密碼算法操作的高效實現(xiàn)是那些緊湊型、低能量體系結構應用的根底,如物聯(lián)網中的RFID和無線傳感器網絡的密碼協(xié)議實現(xiàn)。WSN由大量與基站通信的微型節(jié)點組成,基站負責收集來自節(jié)點的數(shù)據(jù)并與外部進行通信。在這樣的應用場景中,WSN的平安尤其重要,因為大量節(jié)點暴露在潛在的敵對環(huán)境中,并且如果其中一個節(jié)點被敵方捕獲,那么可能導致整個網絡損失沉重,因此,WSN要求多種密碼算法為其效勞,而且對能夠用于傳感器節(jié)點的低本錢、低能耗體系結構有一個明顯的需求。RFID可用于動物跟蹤、收費系統(tǒng)、訪問控制、平安數(shù)字貨幣等廣泛的領域,對這些應用而言,平安和隱私是一個根本需求。然而,平安措施的加強總是伴隨著額外的本錢投入?,F(xiàn)在已出現(xiàn)許多用于無源RFID的密碼算法,這些算法與標準算法并沒有相同的加密強度,為了防止這類問題的出現(xiàn),科研人員在開發(fā)用于RFID設備的低本錢ECC和AES實現(xiàn)方面已做出了多種努力。ECC因其每位平安強度高、計算量和存儲量需求少而成為得到廣泛應用的密碼算法。當實現(xiàn)一個橢圓曲線系統(tǒng)時,一個關鍵的考慮是怎樣高效實現(xiàn)有限域中的計算,如ECC在二進制域GF(2m)中的實現(xiàn),AES也一樣。GF(2m)域中計算復雜性的降低使相應的密碼方案實現(xiàn)效率更高。3.2模運算如果a是整數(shù),n是正整數(shù),那么我們定義a模n是a除以n所得的余數(shù)。整數(shù)n稱為模數(shù)。因此,對于任意整數(shù)a,我們總可以寫出a=qn+r,0≤r<n;q=[a/n]a=[a/n]×n+(amodn)如果(amodn)=(bmodn),那么我們稱為整數(shù)a和b是模n同余的,可以表示為a=b(modn);如果a=0(modn),那么n|a。模運算具有如下性質: 〔1〕如果n|(a-b),那么a≡b(modn);〔2〕a≡b(modn)隱含b≡a(modn);〔3〕a≡b(modn),b≡c(modn)隱含a≡c(modn)。
3.3群論群〔Groups〕由一個非空集合G組成,在集合G中定義了一個二元運算符“·〞,滿足以下四個屬性?!?〕封閉性〔Closure〕:對任意的a,b∈G,有a·b∈G?!?〕結合律〔Associativity〕:對任何的a,b,c∈G,有a·b·c=(a·b)·c=a·(b·c)?!?〕單位元〔ExistenceofIdentity〕:存在一個元素i∈G〔稱為單位元〕,對任意元素,有a·i=i·a=a。〔4〕逆元〔ExistenceofInverse〕:對任意a∈G,存在一個元素a?1∈G〔稱為逆元〕,使得a·a?1=a?1·a=i。把滿足上述性質的代數(shù)系統(tǒng)稱為群,記為{G,·}。如果一個群同時滿足下面的交換律,那么稱其為交換群〔或Abel群〕。交換律〔Commutativity〕:對任意的a,b∈G,有a·b=b·a。假設一個群的元素是有限的,那么稱該群為有限群,否那么為無限群。有限群的階是指有限群中元素的個數(shù)。群具有以下性質:〔1〕群中的單位元是唯一的?!?〕群中每一個元素的逆元是唯一的?!?〕對任意的a,b,c∈G,假設a·b=c·a,那么b=c;同樣,假設b·a=c·a那么b=c。3.4有限域理論
域〔Field〕是由一個非帶有運算符的非空集合F組成的,在集合F中定義了兩個二元運算符“+〞和“·〞,并滿足:〔1〕F關于加法“+〞是一個交換群,其單位元為“0〞,a的逆元為?a;〔2〕F關于乘法“·〞是一個交換群,其單位元為“1〞,a的逆元為a?1;〔3〕分配律,對任意的a,b,c∈F,有a·(b+c)=(b+c)·a=a·b+a·c;〔4〕無零因子,對任意的a,b∈F,假設a·b=0,那么a=0或b=0。那么這樣的集合稱為域,記為{F,+,·}。假設域F只包含有限個元素,那么稱其為有限域。有限域中元素的個數(shù)稱為有限域的階。盡管存在有限個元素的無限域,但只有有限域在密碼學中得到了廣泛應用。關于有限域,有以下定理:的二進制串(am?1am?2…a1a0)表示,使得GF(2m)={(am?1am?2…a1a0)},對于加法有(am?1am?2…a1a0)+(bm?1bm?2…b1b0)=(cm?1cm?2…c1c0)式中ci=〔ai+bi〕mod2〔i=0,1,2,…,m-1〕。由域元素的加法定義可見,域元素相加,實際上是域元素所代表的多項式進行系數(shù)模2“加〞,因此,相加后系數(shù)為偶數(shù)的項將消去,而且系數(shù)模2“加〞時“+〞與“?〞同效。對于乘法有(am?1am?2…a1a0)·(bm?1bm-2…b1b0)=(cm?1cm?2…c1c0)式中,多項式cm?1xm?1+cm?2xm?2+…+c1x+c0是多項式(am?1xm?1+am?2xm?2+…+a1x+a0)·(bm?1xm?1+bm?2xm?2+…+b1x+b0)在GF(2)上被f(x)除所得的剩余式。上述表示GF(2m)的方法稱為多項式基表示〔PolynomialBasisRepresentation〕,即上述加法和乘法運算均是基于多項式的運算。GF(2m)中包含2m個元素。令GF*(2m)表示GF(2m)中所有非零元素的集合,可證明在GF(2m)中至少存在一個元素g,使得GF(2m)中任意非零元素可以表示成g的某次冪的形式,這樣的元素g稱為GF(2m)的生成元,即GF*(2m)={gi=0≤i≤2m?2}共有2m?1個元素。a=gi∈GF*(2m)的乘法逆元是a-1=g-1=g(-i)mod(2m-1)
g2m-1=g0=1
基于生成元的計算顯得更加簡便,其前提是預先生成了域中所有非零元素基于生成元的各次冪的表示,必要時還應對冪指數(shù)進行mod(2m-1)運算。當m=3時,GF(2m)域就轉化為GF(23)域,即每個域元素對應的是一個字節(jié)。為了構造GF(23),我們需要選擇次數(shù)為3的不可約多項式。僅僅有兩個這樣的多項式x3+x2+1和x3+x+1。加法等價于各項的對位異或,因此(x+1)+x=1。GF(2m)內的一個多項式可以由它的二元系數(shù)(am-1am-2…a1a0)唯一表示。因此GF(2m)內的每個多項式可以由m位的數(shù)來表示,加法由兩個m位的數(shù)進行對位異或來實現(xiàn)。GF(2m)內的乘法沒有簡單的異或操作來實現(xiàn),然而卻有一種相當直觀且容易實現(xiàn)的技巧。本質上,GF(2m)內的數(shù)乘以2可以先左移,然后根據(jù)條件異或上一個常數(shù)。乘上一個大數(shù)可以重復運用該規(guī)那么。3.5歐幾里德算法及其擴展〔3〕R=XmodY;〔4〕X←Y;〔5〕Y←R;〔6〕轉到第〔2〕步。歐幾里德算法也可以描述為:為了求兩個正整數(shù)a、b的最大公約數(shù),首先將兩個正整數(shù)中的較大數(shù)賦值給ri=0時結束,那么其前一個余數(shù)就是兩者的最大公約數(shù)。具體的循環(huán)求解過程如圖3-1所示,圖中的i代表輪數(shù)、qi代表商、ri代表余數(shù)。圖3-1歐幾里德算法循環(huán)過程為了不僅能夠確定兩個正整數(shù)的最大公約數(shù),如果這兩個正整數(shù)互素時,還能確定它們的逆元,求逆運算是密碼學中最根本的需求,因為任何明文加密后都需要通過解密來恢復。如果整數(shù)n≥1且gcd(a,n)=1,那么a有一個模n的乘法逆元a-1,即對小于n的正整數(shù)a,存在一個小于n的整數(shù)a-1,使得a·a-1≡1modn。擴展的歐幾里德算法可描述如下:〔1〕〔X1,X2,X3)←〔1,0,n〕,〔Y1,Y2,Y3〕←〔0,1,a〕;〔2〕假設Y3=0那么返回X3=gcd〔a,n〕,表示無逆元;〔3〕假設Y3=1那么返回Y3=gcd〔a,n〕,此時Y2=a-1modn;〔4〕Q=[X3/Y3];〔5〕〔T1,T2,T3〕←〔X1?Q·Y1,X2?Q·Y2,X3?Q·Y3〕;〔6〕〔X1,X2,X3〕〔Y1,Y2,Y3〕;〔7〕〔Y1,Y2,Y3〕〔T1,T2,T3〕;〔8〕轉到第〔2〕步。如圖3-2所示,擴展的歐幾里德算法也可描述為:要計算a-1modn,引入中間變量xi,基于商qi和余數(shù)ri之間的關系,首先將n和a分別賦值給ri的前兩個變量,將0和1分別賦值給xi的前兩個變量,完成初始化;然后循環(huán)利用qi=[ri-1÷ri]、ri+1=ri-1-qi·ri和xi+1=xi-1-qi·xi,直到余數(shù)ri=0結束循環(huán);假設前一個余數(shù)等于1,那么對應的xi就是待求的逆a-1modn,假設前一個余數(shù)不等于1,那么它們不是互素的,待求的逆不存在。圖3-2歐幾里德算法循環(huán)過程3.6AES對稱密碼算法
3.6.1加密原理3.6.2根本加密變換1.[S盒]變換〔SubBytes〕2.列混合變換〔MixColumns〕3.行移位運算〔ShiftRows〕4.輪密鑰加變換〔AddRoundKey〕3.6.3AES的解密1.逆字節(jié)代替2.逆行移位〔InvShiftRows〕3.逆列混合〔InvMixColumns〕3.6.4密鑰擴展在1999年,NIST發(fā)布了一個新版的DES標準,其指示DES應該只能在遺留系統(tǒng)內使用,而新系統(tǒng)那么應當使用3DES。3DES的主要缺點是算法用軟件實現(xiàn)相對較慢。初始的DES是為20世紀70年代中期的硬件實現(xiàn)設計的,并沒有產生有效的軟件代碼。3DES的輪數(shù)是DES的3倍,顯得更慢。第二個缺點是DES和3DES都使用了64位的分組,出于效率和平安的考慮,更希望使用大的分組長度。因為這些缺點,3DES并不是長期使用的合理選擇。作為替換,NIST于1997年發(fā)出新的高級加密標準AES的征求邀請,新算法在平安強度上應該大于等于3DES,且效率有很大提升。NIST在2001年11月完成了它的評估,發(fā)表了最后的標準。NIST選擇了Rijndael作為AES算法,開發(fā)和提交Rijndael用于AES的兩位研究人員都是來自比利時的密碼學家:JoanDaemen博士和VincentRijmen博士。Rijndael算法是一種非Feistel的對稱分組密碼體制,采用代替/置換網絡,每輪由三層組成:線性混合層確保多輪之上的高度分散,非線性層由16個S盒并置起到混淆的作用,密碼加密層將子密鑰異或到中間狀態(tài)。Rijndael是一個迭代分組密碼,其分組長度和密鑰長度都是可變的,只是為了滿足AES的要求才限定處理的分組大小是128位,而密鑰長度為128、192或256位,相應的迭代輪數(shù)為10輪、12輪或14輪。Rijndael會聚了平安性能、效率、可實現(xiàn)性和靈活性等優(yōu)點,最大的優(yōu)點是可以給出算法的最正確差分特征的概率,并分析算法抵抗差分密碼分析及密碼分析的能力。Rijndael對內存的需求非常低,因此適合用于資源受限的環(huán)境中,Rijndael的操作簡單,并可抵御強大和實時的攻擊。3.6.1加密原理行移位、列混淆和輪密鑰加等階段組成,從一個階段到下一個階段數(shù)據(jù)分組被變換,在整個加密開始和結束階段,AES使用數(shù)據(jù)分組的概念,在其間每一個階段之前或之后,數(shù)據(jù)分組被稱為態(tài),態(tài)也由16個字節(jié)組成,但被表示成字節(jié)的一個矩陣,因此態(tài)的每一行或每一列都是一個字。Rijndael算法的原理過程如圖3-3所示?!?〕給定一個明文X,將State初始化為X,并進行AddRoundKey操作,將輪密鑰與State異或。〔2〕對前Nr—1輪中的每一輪,用S盒進行一次SubBytes代換操作;對State做一次ShiftRows行移位操作;再對State做一次MixColumns列混淆操作;然后進行AddRoundKey操作。〔3〕最后一輪〔第Nr輪〕依次進行SubBytes、ShiftRows、AddRoundKey操作。圖3-3AES加密和解密〔4〕將最后State中的內容定義為密文Y。即在第一輪之前要進行一個AddRoundKey操作,中間各輪依次進行SubBytes、ShiftRows、MixColumns、AddRoundKey操作,最后一輪中沒有MixColumns操作,字節(jié)運算和字符運算是AES中的兩種根本運算。
3.6.2根本加密變換y0123456789ABCDEFx0637C777BF26B6FC53001672BFED7AB761CA82C97DFA5947F0ADD4A2AF9CA472C02B7FD9326363FF7CC34A5E5F171D83115304C723C31896059A071280E2EB27B275409832C1A1B6E5AA0523BD6B329E32F84553D100ED20FCB15B6ACBBE394A4C58CF6D0EFAAFB434D338545F9027F503C9FA8751A3408F929D38F5BCB6DA2110FFF3D28CD0C13EC5F974417C4A77E3D645D1973960814FDC222A908846EEB814DE5E0BDBAE0323A0A4906245CC2D3AC629195E479BE7C8376D8DD54EA96C56F4EA657AAE08CBA78252E1CA6B4C6E8DD741F4BBD8B8AD703EB5664803F60E613557B986C11D9EEE1F8981169D98E949B1E87E9CE5528DFF8CA1890DBFE6426841992D0FB054BB16
表3-1S盒SubBytes()變換方法如圖3-4所示,實際上,SubBytes()變換由兩個步驟組成。
圖3-4SudBytes()實現(xiàn)非線性置換〔S盒〕〔1〕把S盒中的每個字節(jié)映射為它在有限域GF(28)中的乘法逆,“0〞被映射為其自身,即對于α?GF(28),求β?GF(28),使得。α·β=β·ɑ≡1mod(x8+x4+x3+x+1)?!?〕將S盒中每個字節(jié)記為〔b7,b6,b5,b4,b3,b2,b1,b0〕,對S盒中每個字節(jié)的每位做如下變換〔稱為仿射變換〕:bi=bi⊕b(i+4)mod8⊕b(i+5)mod8⊕b(i+6)mod8⊕b(i+7)mod8⊕ci式中,ci是指字節(jié){63}=(c7c6…c0)=(01100011)的第i位。矩陣可表示為即字節(jié)Sr,c基于S盒的非線性置換要經歷兩個階段:首先進行GF(28)域上的乘法逆運算,然后進行仿射變換,從而得到S'r,c。2.列混合變換〔MixColumns〕MixColumns()實現(xiàn)逐列混合,其方法是S'(x)=C(x)·S(x)mod(x4+1)式中C(x)={03}·x3+{01}·x2+{01}·x+{02},{}內的數(shù)字為字節(jié);S'(x)=S'0,c+S'1,c·x+S'2,c·x2+S'3,c·x3;S(x)=S0,c+S1,c·x+S2,c·x2+S3,c·x3。S'0,c代表C(x)與S(x)相乘后x的指數(shù)mod(x4+1)等于0的項的系數(shù)之后,利用ximod(x4+1)=ximod4可得S'0,c={02}S0,c+{03}S1,c+{01}S2,c+{01}S3,c→[02,03,01,01]·[S0,c,S1,c,S2,c,S3,c]T其余類似,因此MixColumns()方法可用下面的矩陣表示如以下圖3-5所示形式。
圖3-5MiColumns()完成基于列的變換3.行移位運算〔ShiftRows〕ShiftRows()完成基于行的循環(huán)移位操作,變換方法如圖3-6所示,即行移位變換作用在中間態(tài)的行上,[第0行不變,第1行循環(huán)左移1個字節(jié),第2行循環(huán)左移2個字節(jié),第3行循環(huán)左移3個字節(jié)。]
圖3-6ShiftRows()完成循環(huán)移位操作4.輪密鑰加變換〔AddRoundKey〕AddRoundKey()用于將輸入或中間態(tài)S的每一列與一個密鑰字ki進行按位異或,即AddRoundKey(S,ki)=S+ki,ki〔i=0,1,…Nr〕由原始密鑰k通過密鑰擴展算法產生。每一個輪密鑰由Nb個字組成,w[r×Nb+c]表示第r輪的第c個輪密鑰字。輪密鑰加變換可表示為[S'0,c,S'1,c,S'2,c,S'3,c]=[S0,c,S1,c,S2,c,S3,c]⊕[w[r×Nb+c]],0≤r<Nr;0≤c<NbAddRoundKey()輪密鑰加變換如圖3-7所示。
圖3-7AddRoundKey()輪密鑰加變換3.6.3AES的解密AES的解密算法與加密算法類似〔逆加密算法〕,主要區(qū)別在于解密算法輪密鑰要逆序使用,四個根本運算都有對應的逆變換,如表3-2所示。AES解密的根本運算中除輪密鑰加變換AddRoundKey不變外,其余的字節(jié)代替SubBytes、行移位ShiftRows、列混合MixColumns都要進行求逆變換,即InvSubBytes、InvShiftRows、InvMixColumns。1.逆字節(jié)代替〔InvSubBytes〕與字節(jié)代替類似,逆字節(jié)代替基于逆S盒〔見表3-2〕實現(xiàn)。表3-2逆S盒〔十六進制〕
y0123456789ABCDEFx052096AD53036A538BF40A39E81F3D7FB17CE339829B2FFF87348E4344C4DEE9CB2547B9432A6C2233DEE4C950B42FAC34E3082EA16628D924B2765BA2496D8BD125472F8F66486689816D4A45CCC5D65B69256C704850FDEDB9DA5E154657A78D9D84690D8AB008CBCD30AF7E45805B8B345067D02C1E8FCA3F0F02C1AFBD0301138A6B83A9111414F67DCEA97F2CFCEF0B4E673996AC7422E7AD3585E2F937E81C75DF6EA47F11A711D29C5896FB7620EAA18BE1BBFC563E4BC6D279209ADBC0FE78CD5AF4C1FDDA8338807C731B11210592780EC5FD60517FA919B54A0D2DE57A9F93C99CEFEA0E03B4DAE2AF5B0C8EBBB3C83539961F172B047EBA77D626E169146355210C7D在InvSubBytes()中要用到仿射變換的逆變換,然后計算乘法逆。仿射變換的逆變換為bi=bi(i+2)mod8⊕bi(i+5)mod8⊕bi(i+7)mod8⊕di式中,di是指字節(jié){05}=(d7d6…d0)的第i位。該式用矩陣表示為2.逆行移位〔InvShiftRows〕與行移位相反,逆行移位將態(tài)State的后3行按相反的方向進行移位操作,[即第0行保持不變,第1行循環(huán)向右移1個字節(jié),第2行循環(huán)向右移2個字節(jié),第3行循環(huán)向右移3個字節(jié)。]3.逆列混合〔InvMixColumns〕逆列混合的處理方法與MixColumns()類似,每一列都通過與一個固定的多項式D(x)相乘進行變換,定義為S'(x)=D(x)·S(x)mod(x4+1)式中,D(x)是C(x)模(x4+1)的逆,即C(x)·D(x)=({03}·x3+{01}·x2+{01}·x+{02})·D(x)≡1mod(x4+1)進而得到D(x)={0b}·x3+{0d}·x2+{09}·x+{0e}。因此,寫成矩陣乘法的形式,InvMix-Columns()按以下方式對列進行變換。式中,c=0,1,2,3表示元素所在的列數(shù)。3.6.4密鑰擴展通過生成器產生Nr+1個輪密鑰,每個輪密鑰由Nb個字組成〔4×32=128位〕,共有Nb(Nr+1)個字W[i],i=0,1,…,Nb(Nr+1)-1,Nr和Nb分別為迭代輪數(shù)和中間態(tài)的列數(shù)〔Nb=4〕。盡管AES可使用128位、192位或256位三種密鑰大小,但由密鑰擴展算法生成的AES的輪密鑰統(tǒng)一都是128位,與AES的明文和密文分組大小一致。在加密過程中,需要Nr+1個輪密鑰〔子密鑰〕,需要構造4(Nr+1)個32位字。Rijndael的密鑰擴展方案的偽碼描述如下。KeyExpansion〔bytekey[4*Nk],wordw[Nb*〔Nr+1〕],Nk〕//Nk代表以位字為單位的密鑰的長度,即Nk=密鑰長度/32begin i=0 while〔i<Nk〕 w[i]=word[key[4*i],key[4*i+1],key[4*i+2],key[4*i+3]] i=i+1 endwhile i=Nk while〔i<Nb*〔Nr+1〕〕
wordtemp=w[i-1] if〔imodNk=0〕 temp=SubWord〔RotWord〔temp〕〕xorRcon[i/Nk] elseif〔Nk=8andimodNk=4〕 temp=SubWord〔temp〕 endif w[i]=w[i-Nk]xortemp i=i+1 endwhileend其中,Key[]和W[]分別用于存儲擴展前、后的密鑰。SubWord()、RotWord()分別是與S盒的置換和以字節(jié)為單位的循環(huán)移位。Rcon[i]=(RC[i],00,00,00),RC[1]=01,RC[i]=2·RC[i-1]〔i>1〕。字節(jié)運算是多項式運算,因此可用多項式表示為RC[i]=x·RC[i-1]=xi-1mod(x8+x4+x3+x+1),i≥1對于AES-128,AES密鑰擴展算法的輸入是4個字〔每個字32位,共128位〕。輸入密鑰直接被復制到擴展密鑰數(shù)組的前4個字中,得到w[0]、w[1]、w[2]、w[3];然后每次用4個字填充擴展密鑰數(shù)組余下的局部。在擴展密鑰數(shù)組中w[i]的值依賴于w[i-1]和w[i-4](i≥4)。對于中w[]下標不為4的倍數(shù)的元素,只是簡單地異或,其邏輯關系為w[i]=w[i-1]⊕w[i-4],i不為4的倍數(shù)。對w[]中下標為4的倍數(shù)的元素,采用如下的計算方法?!?〕RotWord():將輸入字的4個字節(jié)循環(huán)左移一個字節(jié),即將字〔b0,b1,b2,b3〕變?yōu)椤瞓1,b2,b3,b0〕?!?〕SubWord():基于S盒對輸入字即步驟1的結果中的每個字節(jié)進行S代替。〔3〕將步驟〔2〕的結果再與輪常量Rcon[i/4]相異或?!?〕將步驟〔3〕的結果再與w[i-4]異或,即w[i]=SubWord(RotWord(w[i-1]))⊕Rcon[i/4]⊕w[i-4]式中,i為4的倍數(shù)AES-192和AES-256的密鑰擴展算法與AES-128類似。3.7橢圓曲線公鑰密碼算法3.7.1橢圓曲線密碼概述3.7.2橢圓曲線的加法規(guī)那么3.7.3橢圓曲線密碼體制1.系統(tǒng)的建立和密鑰的生成2.橢圓曲線加密體制3.7.1橢圓曲線密碼概述橢圓曲線密碼體制〔ECC〕是迄今為止被實踐證明平安有效的三類公鑰密碼體制之一,以高效性著稱,由Koblitz和Miller在1985年分別提出。ECC的平安性基于橢圓曲線離散對數(shù)問題的難解性,即橢圓曲線離散對數(shù)問題被公認為要比整數(shù)因子分解問題和模p離散對數(shù)問題難解得多。一般來說,ECC沒有亞指數(shù)攻擊,所以它的密鑰長度大大減少,256位的ECC密鑰就可以到達對稱密碼體制128位密鑰的平安水平,這就保證了ECC密碼體制成為目前公鑰密碼體制中每位提供加密強度最高的體制之一,可以有效減少處理開銷,且具有存儲效率、計算效率高和通信帶寬小等方面的優(yōu)勢,特別適用于那些對計算能力支持力度不高的系統(tǒng),如RFID、WSN等。有限域GF(2m)上的橢圓曲線是對于固定的a、b值,滿足如下方程y2+xy=x3+ax2+b的所有點〔x,y〕的集合,外加一個無窮遠點O。其中,a、b、x和y均在有限域GF(2m)上取值。這類橢圓曲線通常也可用E2m(a,b)來表示。該橢圓曲線只有有限個點,域GF(2m)上的元素是m位的二進制串。3.7.2橢圓曲線的加法規(guī)那么可以證明,只要非負整數(shù)a和b滿足4a3+27b2(modp)≠0那么E2m(a,b)就表示模2m?1的橢圓群,這個群中的元素〔x,y〕和一個稱為無窮遠點的O共同組成橢圓群,這是一個Able群,具有重要的“加法規(guī)那么〞屬性,即對于橢圓曲線上的任意兩點:P1?=?(x1,y1)和P2?=?(x2,y2),存在第三個點P3?=?(x3,y3)?=?P1+P2,該點也在該橢圓曲線上。加法規(guī)那么1:O+O=O。加法規(guī)那么2:對于曲線上的所有點P,滿足P+O=P。加法規(guī)那么3:對于每一個點P,有一個特殊點Q滿足,P+Q=O,稱這個特殊點為?P,即點P與Q互逆。假設P=(x,y),那么?P=(x,x+y),即某點的逆與該點有相同的x坐標,逆的y坐標那么在該點的x、y坐標之后。加法規(guī)那么4:對于所有的點P和Q,滿足加法交換律,即P+Q=Q+P。加法規(guī)那么5:對于所有的點P、Q和R,滿足加法結合律,即P+(Q+R)=(P+Q)+R。加法規(guī)那么6:兩個不同且不互逆的點P(x1,y1)與Q(x2,y2)(x1≠x2)的加法規(guī)那么為P(x1,y1)+Q(x2,y2)=S(x3,y3)式中加法規(guī)那么7〔倍點規(guī)那么〕:式中對于有限域GF(2m),設生成元為g,那么所有的加法運算應是g的冪指數(shù)xmod(2m-1)的結果,即當g的冪指數(shù)x大于2m?1時,需要進行gxmod(2m-1)運算。3.7.3橢圓曲線密碼體制橢圓曲線離散對數(shù)問題。橢圓曲線E和點G,隨機選擇一個整數(shù)d,容易計算Q=d×G,但給定Q和G計算d那么
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)分析師招聘面試題集
- 深度解析(2026)《GBT 19183.1-2024電氣和電子設備機械結構 戶外機殼 第1部分:設計導則》
- 葵花油項目可行性研究報告(立項備案申請)
- 特需醫(yī)療:個性化需求與價值滿足策略
- 深度解析(2026)《GBT 18992.1-2003冷熱水用交聯(lián)聚乙烯(PE-X)管道系統(tǒng) 第1部分總則》
- 儀器、儀表項目可行性分析報告范文
- 功率模塊項目可行性分析報告范文(總投資10000萬元)
- 深度解析(2026)《GBT 18571-2001小艇 舷外機便攜式燃油系統(tǒng)》(2026年)深度解析
- 新媒體數(shù)據(jù)分析報告常見問題解答
- 建筑設計師面試考核要點解析
- JCT640-2010 頂進施工法用鋼筋混凝土排水管
- 【社區(qū)智慧養(yǎng)老模式研究國內外文獻綜述4800字】
- 扁平疣的課件
- 教學查房課件-強直性脊柱炎
- 傳染病報告卡
- 句法成分課件(共18張)統(tǒng)編版語文八年級上冊
- 2023版中國近現(xiàn)代史綱要課件:07第七專題 星星之火可以燎原
- 通知書產品升級通知怎么寫
- 氣管插管術 氣管插管術
- 大學《實驗診斷學》實驗八:病例分析培訓課件
- GB/T 28400-2012釹鎂合金
評論
0/150
提交評論