密碼學(xué)SM2,SM3,SM4加密標(biāo)準(zhǔn)_第1頁
密碼學(xué)SM2,SM3,SM4加密標(biāo)準(zhǔn)_第2頁
密碼學(xué)SM2,SM3,SM4加密標(biāo)準(zhǔn)_第3頁
密碼學(xué)SM2,SM3,SM4加密標(biāo)準(zhǔn)_第4頁
密碼學(xué)SM2,SM3,SM4加密標(biāo)準(zhǔn)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、、概述1. SM21圓曲線公鑰密碼算法加密標(biāo)準(zhǔn)SM2T法就是ECCffi圓曲線密碼機(jī)制,但在簽名、密鑰交換方面不同于ECDSAECD的國(guó)際標(biāo)準(zhǔn),而是采取了更為安全的機(jī)制。SM2-1橢圓曲線數(shù)字簽名算法,SM2-2橢圓曲線密鑰交換協(xié)議,SM2-3橢圓曲線公鑰加 密算法,分別用于實(shí)現(xiàn)數(shù)字簽名密鑰協(xié)商和數(shù)據(jù)加密等功能。SM2算法與RSA算法不同的是,SM2算法是基于橢圓曲線上點(diǎn)群離散對(duì)數(shù)難題,相對(duì) 于RSAB法,256位的SM2g碼強(qiáng)度已經(jīng)比2048位的RS端碼強(qiáng)度要高。橢圓曲線算法公鑰密碼所基于的曲線性質(zhì): 橢圓曲線多倍點(diǎn)運(yùn)算構(gòu)成一個(gè)單向函數(shù)。在多倍點(diǎn)運(yùn)算中,已知多倍點(diǎn)與基點(diǎn),求解倍數(shù)的問題稱為橢

2、圓曲線離散對(duì)數(shù)問題。 對(duì)于一般橢圓曲線的離散對(duì)數(shù)問題, 目前只存在指數(shù)級(jí)計(jì)算復(fù)雜度的求解方法。 與大數(shù)分解問題及有限域上離散對(duì)數(shù)問題相比,橢圓曲線離散對(duì)數(shù)問題的求解難度要大得多。因此,在相同安全程度要求下,橢圓曲線密碼較其他公鑰密碼所需的秘鑰規(guī)模要小得多。2. SM3合希算法加密標(biāo)準(zhǔn)SM31一種密碼散列函數(shù)標(biāo)準(zhǔn)。密碼散列函數(shù)是散列函數(shù)的一種。它被認(rèn)為是一種單向函數(shù), 也就是說極其難以由散列函數(shù)輸出的結(jié)果, 回推 輸入的數(shù)據(jù)是什么。這種散列函數(shù)的輸入數(shù)據(jù),通常被稱為消息,而它的輸出結(jié)果,經(jīng)常被稱為消息摘要。SM3®用于商用密碼應(yīng)用中的數(shù)字簽名和驗(yàn)證消息認(rèn)證碼的生成與驗(yàn)證以及隨機(jī)數(shù)的生成

3、, 可滿足多種密碼應(yīng)用的安全需求。 為了保證雜湊算法的安全性,其產(chǎn)生的雜湊值的長(zhǎng)度不應(yīng)太短,例如MD5俞出128比特雜 湊值,輸出長(zhǎng)度太短,影響其安全性 SHA-1 算法的輸出長(zhǎng)度為 160 比特, SM鰥法的輸出長(zhǎng)度為256比特,因此SM3B法的安全性要高于MD5T法 和SHA-1算法。一個(gè)理想的密碼散列函數(shù)應(yīng)該有這些特性:對(duì)于任何一個(gè)給定的消息,它都很容易就能運(yùn)算出散列數(shù)值;難以由一個(gè)已知的散列數(shù)值,去推算出原始的消息; 在不更動(dòng)散列數(shù)值的前提下, 修改消息內(nèi)容是不可行的;對(duì)于兩個(gè)不同的消息,它不能給與相同的散列數(shù)值。3. SM的組密碼算法加密標(biāo)準(zhǔn)SM4算法是一個(gè)分組對(duì)稱密鑰算法,明文、密

4、鑰、密文都是16字節(jié),加密和解密密鑰相同。加密算法與密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu)。解密過程與加密過程的結(jié)構(gòu)相似,只是輪密鑰的使用順序相反。SM4用于實(shí)現(xiàn)數(shù)據(jù)的加密/解密運(yùn)算,以保證數(shù)據(jù)和信息的機(jī)密性。要保證一個(gè)對(duì)稱密碼算法的安全性的基本條件是其具備足夠的密鑰長(zhǎng)度, SM餅法與AEST法具有相同的密鑰長(zhǎng)度分組長(zhǎng)度 128比特,因此在安全性上高于3DESB法。二、SM劫口密標(biāo)準(zhǔn)1. SM28本原理1)基礎(chǔ)參數(shù)SM2的曲線方程為y2 = x3 + ax + b ,其中:a:0XFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000OFFFFFFFFF

5、FF FFFFCb:0X28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93c:0XFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFF FFFFF私鑰長(zhǎng)度:32字節(jié)公鑰長(zhǎng)度:SM2非壓縮公鑰格式字節(jié)用長(zhǎng)度為65字節(jié),壓縮格式長(zhǎng)度為33字節(jié),若公鑰y坐標(biāo)最后一位為0,則首字節(jié)為0x02,否則為0x03。非壓縮格式公鑰首字節(jié)為0x04。簽名長(zhǎng)度:64字節(jié)2)密鑰對(duì)生成SM瑞鑰生成是指生成SM緋法的密鑰對(duì)的過程,該密鑰對(duì)包括私鑰和與之對(duì)應(yīng)的公鑰輸入:一個(gè)有效

6、的Fq(q=p且p為大于3的素?cái)?shù),或q=2m)上橢圓曲線系 統(tǒng)參數(shù)的集合。輸出:與橢圓曲線系統(tǒng)參數(shù)相關(guān)的一個(gè)密鑰對(duì) (d, P)k: SM2PrivateKey , SM2a鑰Q:SM2PublicKey, SM2公鑰用隨機(jī)數(shù)發(fā)生器產(chǎn)生整數(shù)d 1, n-2;G 為基點(diǎn),計(jì)算點(diǎn)P=(xp, y P)=dG密鑰對(duì)是(d, P),其中d為私鑰,P為公鑰3)簽名算法a)預(yù)處理1預(yù)處理1指使用簽名方的用戶身份標(biāo)識(shí)和簽名方公鑰,通過運(yùn)算得 到Z值的過程,Z值用于預(yù)處理2。輸入:ID字符串,用戶身份標(biāo)識(shí);Q SM2PublicKey,用戶的公鑰。輸出:Z字節(jié)用,預(yù)處理1的輸出。計(jì)算公式:Z=SM3(ENTL

7、|ID|a|b|x 物 4伙 杷 a)參數(shù)說明:ENTL:由兩個(gè)字節(jié)標(biāo)識(shí)的ID的比特長(zhǎng)度;ID:用戶身份標(biāo)識(shí),一般情況下,其長(zhǎng)度為 16字節(jié),默認(rèn)值從左至 右依次是:0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38。a, b:為系統(tǒng)曲線參數(shù);XG, y G為基點(diǎn);Xa, y A為用戶的公鑰。b)預(yù)處理2預(yù)處理2是指使用Z值和待簽名消息,通過 SM3運(yùn)算得到雜湊值H 的過程。雜湊值H用戶SM2t字簽名。輸入:Z字節(jié)用;M字節(jié)用,待簽名消息輸出:H字節(jié)用,雜湊

8、值計(jì)算公式:H=SM3(Z|M)c)生成簽名SM2簽名是指使用預(yù)處理2的結(jié)果和簽名者的私鑰,通過簽名計(jì)算得 到簽名結(jié)果的過程。輸入:d: SM2PrivateKey,簽名者私鑰;H字節(jié)用,預(yù)處理2的結(jié)果輸出:sign: SM2Signature ,簽名值設(shè)待簽名的消息為M,為了獲取消息M的數(shù)字簽名(r,s)(r,s)(r,s),作為簽名者的用戶A應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:置M =ZA|M ;計(jì)算e=H(M'),將e的數(shù)據(jù)類型轉(zhuǎn)化為整數(shù);用隨 機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)kC1, n-1;計(jì)算橢圓曲線點(diǎn)(x1, y1)=kG , 將x1的數(shù)據(jù)類型轉(zhuǎn)化為整數(shù);計(jì)算 r=(e+x1)mod n ,若r=0

9、或r+k=n則 返回第3步;計(jì)算s=(1+d a) -1*(k-r*d A)mod n ,若s=0則返回第3步; 將r, s轉(zhuǎn)化為字節(jié)用。消息M的簽名為(r, s)。d)簽名驗(yàn)證輸入:H:字節(jié)用,預(yù)處理2的結(jié)果;sign : SM2Signature,簽名值; Q: PublicKey ,簽名者的公鑰輸出:為真表示驗(yàn)證通過,為假表示驗(yàn)證不通過。為了檢驗(yàn)收到的消息M及其數(shù)字簽名(r, s),作為驗(yàn)證者的用戶B 應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:A.檢驗(yàn)r C 1,n-1,是否成立,若不成立則驗(yàn)證不通過;B.檢驗(yàn)sC1,n-1,是否成立,若不成立則驗(yàn)證不通過;C.置 M =Za|M ;D.計(jì)算e=H(M'

10、;),將e的數(shù)據(jù)類型轉(zhuǎn)化為整數(shù);E.將r,s的數(shù)據(jù)類型轉(zhuǎn)化為整數(shù),計(jì)算t=(r+s)mod n,若t=0 ,則驗(yàn)證 不通過;F.計(jì)算橢圓曲線點(diǎn)(x1, y1)=sG+tP a;G.將x1的數(shù)據(jù)類型轉(zhuǎn)化為整數(shù),計(jì)算 R=(e+x1)mod n,檢驗(yàn)R=r是否 成立,若成立則驗(yàn)證通過;否則驗(yàn)證不通過。2 . SM2的應(yīng)用SM2在固件安全中的應(yīng)用:固件控制著整個(gè)存儲(chǔ)系統(tǒng)的正常運(yùn)行,倘若非法人員可以隨意導(dǎo)入固件、修改固件,那么數(shù)據(jù)也將完全暴露,因此保護(hù)數(shù)據(jù)存儲(chǔ)安全的首要一點(diǎn)就是要確保固件在導(dǎo)入、保存和執(zhí)行過程中的安全。在固件導(dǎo)入過程中使用SM2算法進(jìn)行驗(yàn)簽,其中用到的公鑰保存在主控 芯片內(nèi)部,私鑰由受

11、信用的固件廠商保存。對(duì)于要導(dǎo)入的固件,需要使用私鑰對(duì)其進(jìn)行簽名,將簽名和固件一起導(dǎo)入到盤片,帶有簽名的固件下載到緩存RAM!,再用公鑰進(jìn)行SM2僉簽。只有使用合法私鑰簽名的固件才能通過 驗(yàn)簽,成功導(dǎo)入,沒有簽名或者使用非法私鑰簽名的固件無法通過驗(yàn)簽而被丟棄。如此,擁有合法私鑰的用戶才擁有固件的導(dǎo)入權(quán)限,從源頭上確保了 盤片內(nèi)部固件的合法性。3 .對(duì)比SM2與同類型算法RSA算法數(shù)學(xué)原理簡(jiǎn)單,在工程應(yīng)用中比較易于實(shí)現(xiàn),但它的單位安全 強(qiáng)度相對(duì)較低。目前國(guó)際上公認(rèn)的對(duì)于RSA算法最有效的攻擊方法,即一般數(shù)域篩方法去破譯和攻擊 RSA譯法,它的破譯或求解難度是亞指數(shù)級(jí)的。SM2算法的數(shù)學(xué)理論非常深?yuàn)W

12、復(fù)雜,在工程應(yīng)用中比較難于實(shí)現(xiàn),但它 的單位安全強(qiáng)度相對(duì)較高。用國(guó)際上公認(rèn)的對(duì)于SM2算法最有效的攻擊方法Pollard rho去破譯攻擊SM2算法,它的破譯或求解難度基本上是指數(shù)級(jí)的。 SM2算法的單位安全強(qiáng)度高于RSA算法。一月認(rèn)為當(dāng)SM編碼體制的密鑰長(zhǎng) 度為160比特時(shí),其安全性相當(dāng)于RSAfg用1024比特密鑰長(zhǎng)度,密鑰短意味 著更短的處理時(shí)間和密鑰存儲(chǔ)空間。SM2具有安全性能更高、計(jì)算量小、處理速度快、存儲(chǔ)空間占用小、帶 寬要求低和便于密碼管理等優(yōu)點(diǎn),能在整體上提高加密過程中的速度與安全 性。三、SM動(dòng)口密標(biāo)準(zhǔn)1. SM3S本原理對(duì)長(zhǎng)度為l(l < 2A64)比特的消息m, S

13、M3雜湊算法經(jīng)過填充和迭代壓縮,生成雜湊值,雜湊值長(zhǎng)度為 256 比特。1) 填充假設(shè)消息 m 的長(zhǎng)度為 l 比特。首先將比特“ 1”添加到消息的末尾,再添加k個(gè)“0”,k是滿足l + 1 + k 三448mod512的最小的非負(fù)整 數(shù)。然后再添加一個(gè)64 位比特串,該比特串是長(zhǎng)度l 的二進(jìn)制表示。填充后的消息m'的比特長(zhǎng)度為512的倍數(shù)。2) 迭代將填充后的消息m'按512比特進(jìn)行分組:m' =B0)BB(n-1),其中 n=(l+k+65)/512。對(duì)mi按下列方式迭代:FOR i=0 TO n-1V(i+1) =CF(V) , B )ENDFOR其中CF是壓縮函數(shù)

14、,V0)為256比特初始值IV, Bi)為填充后的消息分組, 迭代壓縮的結(jié)果為Vn)03)消息擴(kuò)展將消息分組口i)按以下方法擴(kuò)展生成132個(gè)字W, Wi,,W , W。W ,,W63,用于壓縮函數(shù)CF:將消息分組B劃分為16個(gè)字W Wi,,WFOR j=16 TO 67W P1(Wi6 W9 (W-3 <<<15)(W-13 <<<7) WENDFORFOR j=0 TO 63W j=W W4ENDFOR4)壓縮函數(shù)令A(yù),B,C,D,E,F,G,H為字寄存器,SS1,SS2,TT1,TT2為中間變量,壓縮函數(shù) V+1 =CF(V) , B (i) ), 0&

15、lt;=i<=n-1,計(jì)算過程如下:FOR j=0 TO 63SS1 (A<<<12)+E+(Tj<<<j)<<<7SS2 SS1 (A<<<12)TT1 FF(A,B,C)+D+SS2+W jTT2 G«E,F,G)+H+SS1+jD CC B<<<9B AA TT1H GG F<<<19F EE Po(TT2)ENDFORV(i+1) ABCDEFGHV(i)5)雜湊值A(chǔ)BCDEFGHVn)輸出256比特的雜湊值y=ABCDEFGH2. SM3的應(yīng)用SM3ft芯片中的

16、應(yīng)用:芯片中有sm3函數(shù)的入口,每次只能輸入8個(gè)字節(jié)(64位)的16進(jìn)制數(shù), 所以要把文件拆分成N*8字節(jié),并轉(zhuǎn)為16進(jìn)制,需要執(zhí)行sm3函數(shù)N次 前面N-1次和最后一次執(zhí)行函數(shù)所用的報(bào)文不同,前面N-1次中報(bào)文的p1=01 (沒有返回雜湊值,但是函數(shù)中記錄下迭代中間結(jié)果,作為下一次迭代輸入, 不輸出),最后一次報(bào)文的p1=02,(結(jié)合上面迭代中間值,輸出最終雜湊值)。3. 對(duì)比SM3t同類型算法摘要函數(shù)在密碼學(xué)中具有重要的地位,被廣泛應(yīng)用在數(shù)字簽名,消息認(rèn)證, 數(shù)據(jù)完整性檢測(cè)等領(lǐng)域。摘要函數(shù)通常被認(rèn)為需要滿足三個(gè)基本特性:碰撞 穩(wěn)固性,原根穩(wěn)固性和第二原根穩(wěn)固性。2005年,Wang等人給出

17、了 MD5B法和 SHA-1算法的碰撞攻擊方法,現(xiàn)今被廣泛應(yīng)用的MD5B法和SHA-1算法不再是安全的算法。SM3算法適用于商用密碼應(yīng)用中白數(shù)字簽名和驗(yàn)證,是在SHA-256基礎(chǔ)上改進(jìn)實(shí)現(xiàn)的一種算法。SM鯽法采用Merkle-Damgard結(jié)構(gòu),消息分組長(zhǎng)度 為512位,摘要值長(zhǎng)度為256位。SM3算法的壓縮函數(shù)與SHA-256的壓縮函 數(shù)具有相似的結(jié)構(gòu),但是SM3算法的設(shè)計(jì)更加復(fù)雜,比如壓縮函數(shù)的每一輪都 使用2個(gè)消息字。SM3B勺安全性相對(duì)較高。四、SM4加密標(biāo)準(zhǔn)1. SM4S本原理1)參數(shù)產(chǎn)生字節(jié)由8位二進(jìn)制數(shù)表示,字由32位二進(jìn)制數(shù)表示;S盒為固定的8 比特輸入和輸出置換;加密密鑰長(zhǎng)度

18、為128bit ,表示為 MK=(MK0,MK1,MK2,MK3)其中 MKi (i=0,1,2,3) 為字。輪密鑰表示為 rki(i=0,1,2.,31)為字。FK=(FK0,FK1,FK2,FK3)為系統(tǒng)參數(shù),CK=(CK0,CK1,.,CK31)為固定參數(shù),都為字。2)輪函數(shù)整體的加密函數(shù)為:X+4=F(X , X i+1, X i+2, X i+3, rk i 尸Xi T(Xi+i X+2 X+3 rk i)其中T為一個(gè)合成置換,由非線性變換和線性變換復(fù)合而成。非線性變換由4個(gè)平行的S盒構(gòu)成,S盒的數(shù)據(jù)均采用16進(jìn)制。線性變換公式如下,其中B為非線性變換得到的字C=L(B)=B(B&l

19、t;<2)(B<<10)(B<<18)(B<<24)3)密鑰擴(kuò)展已知加密密鑰 MK=(MK0,MK1,MK2,MK3), 系統(tǒng)參數(shù) FK=(FK0,FK1,FK2,FK3),固定參數(shù) CK=(CK0,CK1,.,CK31) 。 rki 為輪 密鑰,輪密鑰由加密密鑰生成。首先(K0, K 1, K 2, K 3)=(MK0 FK0, MKi FK, MK2 FK2, MK3 FK3),然 后對(duì) i =0,1,2, ,31 : rki=K+4=K T' (Ki+i K+2 K+3 CK),該變換與加 密中的T變換基本相同,只是將其中的線性變換改為:L' (B)=B(B<<13) (B<<23),由于系統(tǒng)參數(shù)個(gè)固定參數(shù)是已知的,輪密鑰即可求得。4)加密解密過程加密最后一輪變換時(shí),輸出為:(Yo, Y 1, Y 2, Y 3) = R(X32, X 33, X 34, X 35) = (

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論