新四季網

基於sm2密鑰交換協議的密鑰協商方法及裝置的製作方法

2023-06-16 10:00:06

專利名稱:基於sm2密鑰交換協議的密鑰協商方法及裝置的製作方法
技術領域:
本發明涉及信息技術領域,特別涉及一種基於SM2密鑰交換協議的密鑰協商方法
及裝置。
背景技術:
2010年12月中國國家密碼管理局將SM2、SM3密碼算法公開,標誌著SM2、SM3密碼算法進入了商用化階段。SM2密鑰交換協議作為SM2密碼算法的一個組成部分,其在密鑰管理和密鑰協商功能領域得到很好的應用。在SM2密鑰交換協議工程實現過程中,W參數作為密鑰交換協議內的一個重要參數,其參數值的生成運算效率成為整個密鑰交換協議實現效率的決定性因素。基於SM2密鑰交換協議的規定,現有的密鑰協商流程如下假設用戶A為密鑰協商發起方,而用戶B為密鑰協商響應方,用戶A和用戶B協商獲得的密鑰數據的長度為klen比特,以及用戶A和用戶B雙方使用相同的橢圓曲線方程, 其中,該橢圓曲線方程類型可選擇素域方程y2 = x3+ax+b,也可以選擇二元擴域方程y2+xy =x3+ax2+b ο在SM2密鑰交換協議內規定使用的密鑰派生函數記為KDF(Z,klen),其作用是從一個秘密比特串中派生出密鑰數據,其中,ζ為輸入的秘密比特串,整數klen表示要獲得的密鑰數據的比特長度,要求該值小於032-1)ν,將長度為klen的密鑰數據比特串記為K。在密鑰數據生成的過程中,密鑰派生函數需要調用密碼雜湊函數(例如,SM3密碼雜湊算法), 通常將密碼雜湊函數記為HvO,密碼雜湊函數的輸出是長度為ν比特的雜湊值。下面介紹密鑰派生函數運算步驟如下(1)、初始化一個32比特構成的計數器ct = 0x00000001 ;(2)、分別採用i從1到「- /vl的取值循環執行以下步驟a和步驟b,各次的執行結
果分別記為Hai、Ha2......Ha\k,enivy\、Ha、.\kMv],其中,Up^M為生成的最後一個t的
取值的部分或全部a、計算 Hai = hv(Z I I ct) ; | | 為級聯運算b、ct++;在計算,Uptwv1時,若klen/v是整數,則令υ「Α/βΛ/ν = 明,若klen/V是非整數,則令^f!「論…為^^編H最左邊的(射⑶-(vxL蹌Wv」))個比特;⑶、最後,令I= Zfo1 Il Il …Il Hafklenhyi || HaIfklen^ ; κ 便是獲得的密鑰數據。基於獲得的密鑰函數,用戶A和用戶B為了獲得相同的密鑰,需要進行密鑰協商, 具體運算步驟如下記狄=「(「10&( )]/2)]-1。
用戶A:Al 採用隨機數發生器產生隨機數rA e [1,n-1];A2:計算橢圓曲線點I A= [rA]G= (x1 Yl), (Χι,Υι)即是點&的坐標值,G為選取的橢圓曲線參數。A3 將&發送給用戶B ;用戶B:Bl 採用隨機數發生器產生隨機數rB e [1,n-1];B2:計算橢圓曲線點&= [rB]G= (x2, y2), (x2, y2)即是點&的坐標值,G為選取的橢圓曲線參數。B3 從&中取出域元素x2,若域元素x2為二元擴域數據,則先要將其數據類型轉換為整數,若域元素x2為素域數據,則無需轉換,可直接進行後續操作;接著,計算用戶B側
的中間參數g,^ = 2W + (x2 & (2W -1));B4 計算& = (dB + x^-rB)modn ,其中,tB為用戶B側的中間參數,dB為用戶
B本地保存的私鑰、rB為用戶B本地產生的隨機數。B5 驗證&是否滿足橢圓曲線方程(採用素域方式或二元擴域方式可預先與用戶A約定,雙方採用相同的橢圓曲線方程),若不滿足則確定本次密鑰協商失敗,若滿足,則從&中取出域元素xl,若域元素Xl為二元擴域域數據,則先要將其數據類型轉換為整數,
若域元素Xl為素域數據,則無需轉換,可直接進行後續操作,計算用戶B側的中間參數¥, ^ = 2w+(x,&(2w-l));B6 計算橢圓曲線點廠=· ] (ΡΑ + [ ] Ra ) = (χν, >V ),其中,h為選取的橢圓
曲線參數,Pa為用戶A的公鑰,判斷V是否為無窮遠點(如,xv = 0, yv = 0),若是,則確認用戶B密鑰協商失敗,否則,將域元素xv、yv的數據類型轉換為比特串;B7:計算Kb = KDF(xv| IyvI Za ZB,klen) ;KB即為用戶B通過密鑰協商獲得的密鑰數據,此時,可默認用戶B的密鑰協商成功。可選地,在執行B7後,用戶B還可以進一步執行B8 B8 將Ra的坐標xl、yl和&的坐標x2、y2的數據類型均轉換為比特串,計算& = Hash (0x02 |yv| Hash(xv |ZA| Zb X1My1 X2 |y2)),HashO 可以看作是密碼雜湊函數 HvO,&可以看作是運算獲得的一雜湊值。B9 將&發送給用戶A,若執行了 B8,則還需進一步將&發送給用戶A ;用戶A A4 從&中取出域元素xl,若域元素xl為二元擴域數據,則先要將其數據類型轉換為整數,若域元素xl為素域數據,則無需轉換,可直接進行後續操作,計算中間參數;, 〒=2"+(^&(2"-1));A5 計算G = ( 4+^τ4)πιο η ,其中,tA為用戶A側的中間參數,dA為用戶A本地保存的私鑰、rA為用戶A本地產生的隨機數。A6 驗證&是否滿足橢圓曲線方程(與用戶B約定),若不滿足,則確定本次密鑰協商失敗;否則,從&中取出域元素x2,若域元素x2為二元擴域域數據,則先要將其數據類型轉換為整數,若域元素x2為素域數據,則無需轉換,可直接進行後續操作,計算中間參數Α7 計算橢圓曲線點t/ = [h-tA](PB+[^]RB) = (χυ,γυ),若U是無窮遠點(如,Xu
=0,= 0),則A協商失敗;否則將域元素%、Yu的數據類型轉換為比特串;A8:計算Ka = KDFUuI IyuI Za |&,klen),Ka即為用戶A通過密鑰協商獲得的密鑰數據,此時,可默認用戶A的密鑰協商成功;可選地,在執行A8後,若接收到用戶B發送的SB,則用戶A還可以進一步執行A9 禾P AlO A9 將Ra的坐標xl、yl和&的坐標x2、y2的數據類型均轉換為比特串,計算S1 = Hash (0x02 IyuI Hash(xJ |ZA| Zb X1My1 X2 |y2)),HashO 可以看作是密碼雜湊函數 HvO,S1可以看作是運算獲得的一雜湊值,並檢驗S1 = Sb是否成立,若成立,則確定用戶B 到用戶A的密鑰確認成功,若不成立則確定從用戶B到用戶A的密鑰確認失敗;AlO 計算 \ = Hash(0x03 yj Hash(xJ Za Zb X1 yj X2 |y2)),並將 \ 發送給用戶B。用戶B :(若接收到用戶A發送的SA,則用戶B可以繼續執行步驟BlO和Bll)BlO 計算 & = Hash(0x03 yv Hash(xv Za Zb X1 yj X2 |y2)),並檢驗 & = Sa是否成立,若成立,則確定用戶A到用戶B的密鑰確認成功,若不成立則確定從用戶A到用戶B的密鑰確認失敗。上述過程便是SM2密鑰交換協議描述的密鑰協商過程,由此可知,在上述流程中, W參數值運算公式為w =「(「log2(n)l/ 2)1-1 ,其中n為橢圓曲線參數,稱為階n,階n通常是 160位以上的大整數,如果基於階η直接求取10 (η)的對數值,然後再進行向上取整運算, 在工程實現上是較為複雜的,也比較耗費計算時間,從而直接降低了密鑰協商流程的實現效率,提升了密鑰協商流程的實現複雜度。

發明內容
本發明實施例提供一種基於SM2密鑰交換協議的密鑰協商方法及裝置,用以降低密鑰協商流程的實現複雜度,提高密鑰協商流程的實現效率。本發明實施例提供的具體技術方案如下一種基於SM2密鑰交換協議的密鑰協商方法,包括確定本次密鑰協商所使用的橢圓曲線參數階η的取值;計算所述階η小於或等於2Χ時,X的最小正整數值,並基於獲得的X的最小正整數值獲得參數W的取值;基於所述W的取值與協商對端進行密鑰協商。一種基於SM2密鑰交換協議的密鑰協商裝置,包括第一控制模塊,用於確定本次密鑰協商所使用的橢圓曲線參數階η的取值,並計算所述階η小於或等於2Χ時,X的最小正整數值,並基於獲得的X的最小正整數值獲得參數 W的取值;
第二控制模塊,用於基於所述W的取值與協商對端進行密鑰協商。一種參數生成裝置,包括確定單元,用於確定本次密鑰協商所使用的橢圓曲線參數階η的取值;計算單元,用於計算所述階η小於或等於2Χ時,X的最小正整數值,並基於獲得的 X的最小正整數值獲得參數W的取值。本發明實施例中,協商雙方均根據令不等式η < 2Χ成立的X取值中的最小正整數值,來計算參數W,並根據該參數W與協商對端進行基於SM2密鑰交換協議的密鑰協商。相較於採用先計算log2(n)對數值再向上取整的方式計算參數W的方法,有效地減少了計算量,並且降低了算法的實現複雜度,從而在很大程度上提高了基於SM2密鑰交換協議的密鑰協商流程的實現效率,進而優化了 SM2密鑰交換協議的工程化實現。


圖IA為本發明實施例中密鑰協商裝置功能結構示意圖;圖IB為本發明實施例中參數W生成裝置功能結構示意圖;圖2為本發明實施例中進行密鑰協商的流程圖;圖3為本發明實施例中生成參數W的第一種方法流程圖;圖4為本發明實施例中生成參數W的第二種方法流程圖。
具體實施例方式在基於SM2密鑰交換協議的密鑰協商過程中,為了降低密鑰協商流程的執行複雜度,提高密鑰協商流程的實現效率,本發明實施例中,進行密鑰協商的雙方不再採用 「log2( )l來計算參數W,而是求取滿足η < 2Χ中X的最小正整數值,並基於獲得的X的最小正整數值獲得參數W的取值(例如,將X的最小正整數值替代的運算結果代入公式 W = [([Iog2 ( )1 / 2」 -1中計算W的取值),然後,再基於採用這種方式計算出的W值與對端進行密鑰協商。下面仍以用戶A和用戶B為例,結合附圖對本發明優選的實施方式進行詳細說明。參閱圖IA所示,本發明實施例中,基於SM2密鑰交換協議的密鑰協商雙方中,任意一方使用的密鑰協商裝置(可以是用戶Α,也可以是用戶B)包括第一控制模塊10和第二控制模塊11,其中,第一控制模塊10,用於確定本次密鑰協商所使用的橢圓曲線參數階η的取值,並計算階η小於或等於2Χ時,X的最小正整數值,並基於獲得的X的最小正整數值獲得參數W 的取值;第二控制模塊11,用於基於上述參數W的取值與協商對端進行密鑰協商。如圖IA所示,第二控制模塊11內部又可細分為若干以軟體形式實現的功能單元和以硬體形式實現的功能單元,這些功能單元的作用將在後續實施例中進行詳細介紹,另一方面,圖IA所示的第二控制模塊11內部的功能單元的劃分方式僅為一種舉例,實現應用中可以根據具體的應用環境而另行規劃,在此不再贅述。另一方面,實際應用中,第一控制模塊10可以是密鑰協商裝置中設置的邏輯模塊,也可以是具有獨立運行功能的子裝置,參閱圖IB所示,本發明實施例中,第一控制模塊10包括確定單元100和計算單元101,其中,確定單元100,用於確定本次密鑰協商所使用的橢圓曲線參數階η的取值;計算單元101,用於計算階η小於或等於2Χ時,X的最小正整數值,並基於獲得的 X的最小正整數值獲得參數W的取值。基於上述技術方案,參閱圖2所示,本發明實施例中,SM2密鑰協商雙方中的任意一方(可以是用戶Α,也可以是用戶B)所執行的具體流程如下步驟200 確定本次密鑰協商所使用的橢圓曲線參數階η的取值。通常階η的取值會預先設置,用戶A和用戶B在SM2密鑰協商流程的啟動階段,會約定採用的橢圓曲線的方程,以及向對端發送自身採用的公鑰,即Pa和IV步驟210 計算確定的階η小於或等於2的X次方時,X的最小正整數值,即確定令不等式η < 2Χ成立的X的最小正整數值,並基於獲得的X的最小正整數值獲得參數W的取值。本實施例中,在確定令不等式η 21"-1 ?若是,則直接將m的當前取值作為X的最小正整數值;否則,採用設定步長值(如,步長值為1)對m逐次進行減小,每減少一次,判斷一次η > 21"-1 ?直到該不等式成立為止,並將m減少後的最後取值作為X的最小正整數值。本實施例中,在獲得X的最小正整數值後,在基於X的最小正整數值計算參數W的取值時,可以採用多種方式例如參閱圖3所示,可以先判斷最後獲得的m的奇偶性(即X的最小正整數取值的奇偶性),若m為奇數,則將m除以第一預設參數並進行向下取整後的結果作為參數W的取值,如,採用公式w = L /2」計算參數W的取值,其中丄」為向下取整操作,m為X的最小正整數;若m為偶數,則將m除以第一預設參數並進行向下取整後再減去第二預設參數的結果作為參數W的取值,如,採用公式w = ^/2」—1計算參數W的取值,其中,2為第一預設參數, 1為第二預設參數。又例如,參閱圖4所示,可以先判斷最後獲得的m的奇偶性(即X的最小正整數取值的奇偶性),若m為奇數,則將m右移設定位數後的結果作為參數W的取值,如,採用公式 w = m>> 1計算參數W的取值,其中,>>為向右移位操作,1為右移的設定位數,m >> 1 即表示將m的當前取值的最低位(二元擴域形式)刪除,再將最高位補零;若m為偶數,則將m右移設定位數後再減去第三預設參數的結果作為參數W的取值,如,採用公式w = (m >> 1)"1計算參數W的取值,其中,第一個1為右移設定位數,第二個1為第三預設參數。步驟220 基於獲得的參數W的取值與協商對端進行密鑰協商。參閱圖2所示,實現SM2密鑰交換協議的密鑰協商裝置即可作為發起方用戶A,也可作為響應方用戶B,其中,第一控制模塊10即是計算參數W的運算模塊,密鑰協商裝置通過第一控制模塊10獲得參數W後,與對端進行密鑰協商的過程如下在SM2密鑰交換協議流程啟動後,用戶發起方A和用戶響應方B通過各自使用的密鑰協商裝置內設置的第一控制模塊10分別獲得相應的參數W,接著,用戶A通過密鑰協商裝置內的第二控制模塊11計算隨機數和橢圓曲線點,其中,第二控制模塊11可以通過硬體方式實現,參閱圖1所示,用戶A可以通過第二控制模塊11內的隨機數發生單元生成隨機數rAe [l,n-l],而ECC運算單元可以基於生成的隨機數產生橢圓曲線點I A= [rA]G= (Xl,yi),同時,第二控制模塊11將本密鑰協商裝置中密鑰存儲子模塊內保存的參與本次密鑰協商所用到的私鑰dA相對應的公鑰Pa取出,並將公鑰Pa 通過本地以軟體形式實現的通信接口將橢圓曲線點&和公鑰Pa發送給用戶B ;用戶B使用的密鑰協商裝置B從用戶A接收的信息中主要包括對方公鑰Pa、對方橢圓曲線點IV對方用戶信息4,同時獲取本地用戶信息4、橢圓曲線餘因子參數h、協商密鑰預期長度klen ;用戶B採用本地第二控制模塊11計算隨機數和橢圓曲線點,其中,第二控制模塊 11可以通過硬體方式實現,如,用戶B可以通過第二控制模塊11內的隨機數發生單元生成隨機數rB e [1,n-1],接著,通過第二控制模塊11內的ECC運算單元可以基於生成的隨機數產生橢圓曲線點[rB]G= (x2,y2),同時,第二控制模塊11將本密鑰協商裝置中密鑰存儲單元內保存的參與本次密鑰協商所用到的私_dB相對應的公鑰取出,並通過本地以軟體形式實現的通信接口將橢圓曲線點&和公鑰I3b發送給用戶A ;接著,用戶B可以採用本地第二控制模塊11內以軟體形式實現的數據類型轉換單元將獲得的域元素X1和&的數據類型轉化成整數數據類型,然後,調用第二控制單元11內以軟體形式實現的I參數運算單元,基於已獲得的參數W,採用公式7 = 2W+(χ &C2w-;i) 分別計算出參數i和g,其中,X1為橢圓曲線點&的橫坐標,X2為橢圓曲線點&橫坐標,此處便使用到了採用本發明實施例提供的方案生成的參數W。接著,用戶B通過密鑰協商裝置將對端公鑰Pa、對端橢圓曲線點I A、本地採用的橢圓曲線餘因子參數h、參數f、參數g傳輸至第二控制模塊11內的硬體實現部分,並調用其
中的大整數運算單元完成G = +iTdmod 運算,其中私鑰dB是從第二控制模塊Ii 中以硬體形式實現的密鑰存儲單元中讀取出的,相關運算主要包括,先採用大整數模乘運算計算出/ = (。Α)ηκχ1 ,再採用大整數模加運算計算出、=(dB+l)modn ;用戶B繼續調用上述大整數運算單元完成f = [h · tB]運算,相關運算主要包括大整數乘運算。然後,用戶B採用第二控制模塊11內以硬體形式實現的ECC運算單元完成&是否
滿足橢圓曲線方程的驗證,再完成「= /(尺+[^]化)=(而,凡)運算,相關運算主要包括通過ECC點乘運算計算出s = ,通過ECC點加運算計算出g = PA+s,然後再次通過ECC點乘運算計算出V = f · g = (xv, yv)。用戶B通過密鑰協商裝置中的第二控制模塊11將&是否滿足橢圓曲線方程的驗證結果及橢圓曲線點V= (xv, yv)傳輸至軟體實現部分,如果&不滿足橢圓曲線方程,或, V = (xv,yv)為橢圓曲線無窮遠點,則結束運算;否則用戶B通過第二控制模塊11中以軟體形式實現的數據類型轉換單元將橢圓曲線點V= (xv, yv)中橫坐標xv和縱坐標」的數據類型轉換為比特串數據類型,用戶B通過第二控制模塊11中以軟體形式實現的密鑰派生單元計算用戶B本地的協商密鑰Kb = KDF(xv| |yv| Za | ZB,klen),至此,用戶B可以默認密鑰協商成功。當然,可選的,用戶B還可以進一步通過第二控制模塊11中通過軟體形式實現的數據類型轉換單元將橢圓曲線點K= (Xl,yi)橫坐標X1、縱坐Sy1和橢圓曲線點U2, I2)橫坐標&、縱坐標72的數據類型轉換為比特串數據類型,然後,通過第二控制模塊11中以軟體形式實現的密碼雜湊計算單元計算出如下校驗信息Sb = Hash (0x02 yv Hash(xv Za Zb X1 yj X2 y2))S2 = Hash (0x03 yv Hash(xv Za Zb X1 yj X2 y2))用戶B將校驗信息&通過以軟體形式的傳輸接口傳輸到用戶A。發起方A所屬密鑰協商裝置接收用戶B發送的信息,獲得用戶B的公鑰IV用戶B 橢圓曲線點&、用戶B的用戶信息Zb、以及獲取本地用戶信息Za、橢圓曲線餘因子參數h、協商密鑰預期長度klen,而後採用與用戶B相同的流程計算出的Ka = KDF (xj yj Za Zb, klen)至此,發起方A也可以默認密鑰協商成功。進一步地,若用戶A接收到用戶B發送的校驗信息&,則也需要採用相同流程計算出以下驗證信息S1 = Hash(0x02 yj Hash(xJ |ZA| Zb X1 yj X2 y2))Sa = Hash(0x03 yj Hash(xJ |ZA| Zb X1 yj X2 y2))然後校驗S1是否與&相等,如果相等,則確認密鑰協商成功,若不相等,則確認密鑰協商失敗,並將Sa發送給用戶B ;用戶B驗證Sa是否等於S2,如果相等,則確認密鑰協商成功,如果不相等,則確認密鑰協商失敗。至此,SM2密鑰交換協議中制定的SM2密鑰協商流程完全結束。綜上所述,本發明實施例中,協商雙方均根據令不等式η < 2X成立的X取值中的最小正整數值,來計算參數W,並根據該參數W與協商對端進行基於SM2密鑰交換協議的密鑰協商。其中,參數W的計算過程,可以在實際協商流程啟動之前執行,或者,在實際協商流程啟動之後執行,均可實現相同效果。相較於採用先計算log2(n)對數值再向上取整的方式計算參數W的方法,有效地減少了計算量,並且降低了算法的實現複雜度,從而在很大程度上提高了基於SM2密鑰交換協議的密鑰協商流程的實現效率,進而優化了 SM2密鑰交換協議的工程化實現。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種基於SM2密鑰交換協議的密鑰協商方法,其特徵在於,包括確定本次密鑰協商所使用的橢圓曲線參數階η的取值;計算所述階η小於或等於2Χ時,X的最小正整數值,並基於獲得的X的最小正整數值獲得參數W的取值;基於所述參數W的取值與協商對端進行密鑰協商。
2.如權利要求1所述的方法,其特徵在於,計算所述階η小於或等於2Χ時,X的最小正整數值,包括獲取所述階η的有效比特數m ;判斷階η的取值是否大於2"1-1的取值,若是,則直接將m的當前取值作為所述X的最小正整數值;否則,採用設定步長值對m逐次進行減小,每減少一次,將階η的取值與2"1-1的取值進行一次比較,直到前者大於後者為止,並將m的最後取值作為所述X的最小正整數值。
3.如權利要求2所述的方法,其特徵在於,基於獲得的X的最小正整數值獲得參數W的取值,包括判斷X的最小正整數值為奇數還是偶數,若為奇數,則將X的最小正整數值除以第一預設參數並進行向下取整後的結果作為參數W的取值;若為偶數,則將X的最小正整數值除以第一預設參數並進行向下取整後再減去第二預設參數。
4.如權利要求2所述的方法,其特徵在於,基於獲得的X的最小正整數值獲得參數W的取值,包括判斷X的最小正整數值為奇數還是偶數,若為奇數,則將X的最小正整數值右移設定位數後的結果作為參數W的取值;若為偶數,則將X的最小正整數值右移設定位數後再減去第三預設參數的結果作為參數W的取值。
5.如權利要求1-4任一項所述的方法,其特徵在於,基於所述W的取值與協商對端進行密鑰協商,包括接收協商對端發送的對端公鑰pA、對端橢圓曲線點&、對端用戶信息zA,以及獲取本地用戶信息4、本地私鑰dB、本地生成的隨機數rB、本地生成的橢圓曲線點&、本地橢圓曲線餘因子參數h和協商密鑰預期長度klen ;基於已獲得的參數W,分別根據橢圓曲線點&的橫坐標X1和橢圓曲線點&的橫坐標 &,採用SM2密鑰交換協議規定的方式生成相應的參數;和根據本地橢圓曲線餘因子參數h,本地私鑰dB,所述參數;和i、對端公鑰Pa、對端橢圓曲線點I A,本地生成隨機數rB,採用SM2密鑰交換協議規定的方式生成橢圓曲線點V,其坐標值為(χν,yv);根據橢圓曲線點V的橫坐標χν和縱坐標yv,對端用戶信息ZA,本地用戶信息ZB,以及協商密鑰預期長度klen,採用SM2密鑰交換協議規定的方式生成本地協商密鑰KB。
6.如權利要求5的方法,其特徵在於,生成本地協商密鑰Kb後,包括默認與協商對端的密鑰協商成功;或者,根據所述橢圓曲線點的橫坐標χν和縱坐標yv,橢圓曲線點&的橫坐標X1和縱坐標y1; 橢圓曲線點&的橫坐標&和縱坐標y2,對端用戶信息ZA,本地用戶信息ZB,採用SM2密鑰交換協議規定的方式計算驗證信息&和驗證信息&,並將驗證信息&發送至協商對端,令協商對端接收到驗證信息&後,採用相同方式生成驗證信息\和驗證信息S1,並在確認&和 S1相等時,確定本地至協商對端的密鑰協商成功,以及接收協商對端發送的驗證信息\,並在確認\和&相等時,確定協商對端至本地的密鑰協商成功。
7.一種基於SM2密鑰交換協議的密鑰協商的裝置,其特徵在於,包括第一控制模塊,用於確定本次密鑰協商所使用的橢圓曲線參數階η的取值,並計算所述階η小於或等於2Χ時,X的最小正整數值,並基於獲得的X的最小正整數值獲得參數W的取值;第二控制模塊,用於基於所述參數W的取值與協商對端進行密鑰協商。
8.如權利要求7所述的裝置,其特徵在於,所述第一控制模塊計算所述階η小於或等於 2Χ時,X的最小正整數值時,獲取所述階η的有效比特數m,判斷階η的取值是否大於2"1.1的取值,若是,則直接將m的當前取值作為所述X的最小正整數值;否則,採用設定步長值對m 逐次進行減小,每減少一次,將階η的取值與2"1-1的取值進行一次比較,直到前者大於後者為止,並將m的最後取值作為所述X的最小正整數值。
9.如權利要求8所述的裝置,其特徵在於,所述第一控制模塊基於獲得的X的最小正整數值獲得參數W的取值時,判斷X的最小正整數值為奇數還是偶數,若為奇數,則將X的最小正整數值除以第一預設參數並進行向下取整後的結果作為參數W的取值;若為偶數,則將X的最小正整數值除以第一預設參數並進行向下取整後再減去第二預設參數後的結果作為參數W的取值。
10.如權利要求8所述的裝置,其特徵在於,所述第一控制模塊基於獲得的X的最小正整數值獲得參數W的取值時,判斷X的最小正整數值為奇數還是偶數,若為奇數,則將X的最小正整數值右移設定位數後的結果作為參數W的取值;若為偶數,則將X的最小正整數值右移設定位數後再減去第三預設參數的結果作為參數W的取值。
11.如權利要求8-10任一項所述的裝置,其特徵在於,所述第二控制模塊基於所述W的取值與協商對端進行密鑰協商時,執行以下操作接收協商對端發送的對端公鑰PA、對端橢圓曲線點I、對端用戶信息T^,以及獲取本地用戶信息4、本地私鑰dB、本地生成的隨機數rB、本地生成的橢圓曲線點&、本地橢圓曲線餘因子參數h和協商密鑰預期長度klen ;基於已獲得的參數W,分別根據橢圓曲線點&的橫坐標X1和橢圓曲線點&的橫坐標 &,採用SM2密鑰交換協議規定的方式生成相應的參數;和根據本地橢圓曲線餘因子參數h,本地私鑰dB,所述參數;和i、對端公鑰Pa、對端橢圓曲線點I A,本地生成的隨機數rB,採用SM2密鑰交換協議規定的方式生成橢圓曲線點V,其坐標值為(xv,yv);根據橢圓曲線點V的橫坐標χν和縱坐標yv,對端用戶信息ZA,本地用戶信息ZB,以及協商密鑰預期長度klen,採用SM2密鑰交換協議規定的方式生成本地協商密鑰KB。
12.如權利要求11的裝置,其特徵在於,所述第一控制模塊生成本地協商密鑰Kb後,默認與協商對端的密鑰協商成功;或者,根據所述橢圓曲線點的橫坐標xv和縱坐標yv,橢圓曲線點&的橫坐標X1和縱坐標yi,橢圓曲線點&的橫坐標&和縱坐標y2,對端用戶信息ZA, 本地用戶信息&,採用SM2密鑰交換協議規定的方式計算驗證信息&和驗證信息&,並將驗證信息&發送至協商對端,令協商對端接收到驗證信息&後,採用相同方式生成驗證信息\和驗證信息S1,並在確認&和S1相等時,確定本地至協商對端的密鑰協商成功,以及接收協商對端發送的驗證信息SA,並在確認Sa和&相等時,確定協商對端至本地的密鑰協商成功。
13.一種參數生成裝置,其特徵在於,包括確定單元,用於確定本次密鑰協商所使用的橢圓曲線參數階η的取值;計算單元,用於計算所述階η小於或等於2Χ時,X的最小正整數值,並基於獲得的X的最小正整數值獲得參數W的取值。
14.如權利要求13所述的裝置,其特徵在於,所述計算單元計算所述階η小於或等於2Χ 時,X的最小正整數值時,獲取所述階η的有效比特數m,並判斷階η的取值是否大於2"1.1的取值,若是,則直接將m的當前取值作為所述X的最小正整數值;否則,採用設定步長值對m 逐次進行減小,每減少一次,將階η的取值與2"1-1的取值進行一次比較,直到前者大於後者為止,並將m的最後取值作為所述X的最小正整數值。
15.如權利要求13所述的裝置,其特徵在於,所述計算單元基於獲得的X的最小正整數值獲得參數W的取值時,判斷X的最小正整數值為奇數還是偶數,若為奇數,則將X的最小正整數值除以第一預設參數並進行向下取整後的結果作為參數W的取值;若為偶數,則將 X的最小正整數值除以第一預設參數並進行向下取整後再減去第二預設參數的結果作為參數W的取值。
16.如權利要求13所述的裝置,其特徵在於,所述計算單元基於獲得的X的最小正整數值獲得參數W的取值時,判斷X的最小正整數值為奇數還是偶數,若為奇數,則將X的最小正整數值右移設定位數後的結果作為參數W的取值;若為偶數,則將X的最小正整數值右移設定位數後再減去第三預設參數的結果作為W的取值。
全文摘要
本發明涉及信息技術領域,公開了一種基於SM2密鑰交換協議的密鑰協商方法及裝置。該方法為協商雙方均根據令不等式n≤2x成立的X取值中的最小正整數值,來計算參數W,並根據該參數W與協商對端進行密鑰協商。相較於採用先計算log2(n)對數值再向上取整的方式計算參數W的方法,有效地減少了計算量,並且降低了算法的實現複雜度,從而在很大程度上提高了基於SM2密鑰交換協議的密鑰協商流程的實現效率,進而優化了SM2密鑰交換協議的工程化實現。
文檔編號H04L9/08GK102412971SQ20111039056
公開日2012年4月11日 申請日期2011年11月30日 優先權日2011年11月30日
發明者李志勇, 顏湘 申請人:西安西電捷通無線網絡通信股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀