亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于國(guó)產(chǎn)公鑰密碼算法的門限簽名及解密方案

        2021-06-21 02:31:04廖會(huì)敏玄佳興李麗麗
        關(guān)鍵詞:服務(wù)端私鑰公鑰

        廖會(huì)敏 王 棟 玄佳興 楊 珂 李麗麗

        (國(guó)網(wǎng)電子商務(wù)有限公司(國(guó)網(wǎng)雄安金融科技集團(tuán)有限公司) 北京 100053)(國(guó)家電網(wǎng)有限公司電力金融與電子商務(wù)實(shí)驗(yàn)室 北京 100053)

        0 引 言

        公鑰密碼算法也稱為非對(duì)稱密碼算法,其密鑰對(duì)由公鑰和私鑰組成。已知私鑰可以推導(dǎo)出公鑰,但已知公鑰不能推導(dǎo)出私鑰,公鑰對(duì)外公開,私鑰由用戶自己秘密保存[1]。我國(guó)的公鑰密碼算法包括SM2橢圓曲線公鑰密碼算法[2](Elliptic Curve Cryptography,ECC)和SM9標(biāo)識(shí)密碼算法(Identity-Based Cryptography,IBC)[3-4]。2018年11月,SM2/SM9算法正式成為ISO/IEC國(guó)際標(biāo)準(zhǔn),納入國(guó)際標(biāo)準(zhǔn)算法并發(fā)布,標(biāo)志著我國(guó)密碼算法國(guó)際標(biāo)準(zhǔn)體系已初步成形,為有效保障網(wǎng)絡(luò)空間安全貢獻(xiàn)了中國(guó)智慧,提供了中國(guó)方案。

        基于公鑰密碼學(xué)的數(shù)字簽名和加解密技術(shù)已在移動(dòng)支付、身份認(rèn)證、電子簽名等場(chǎng)景中得到了廣泛的應(yīng)用,成為保證網(wǎng)絡(luò)信息安全的重要手段。門限密碼學(xué)的基礎(chǔ)是秘密共享,一個(gè)門限秘密共享方案可以將一段秘密信息共享于幾個(gè)參與方之間,每一次秘密計(jì)算都需要多個(gè)參與方同意,從而提高算法安全性和健壯性[7]。隨著移動(dòng)通信、物聯(lián)網(wǎng)、云計(jì)算的興起,門限密碼學(xué)的思想與智能終端對(duì)密鑰的安全存儲(chǔ)、安全計(jì)算的需求不謀而合,為了提高私鑰的安全性,現(xiàn)有方案中基于門限密碼學(xué)的思想提出了將用戶私鑰分割為幾份并分布存儲(chǔ),以避免全部私鑰直接存儲(chǔ)在智能終端內(nèi)存中極易被攻擊者破解的風(fēng)險(xiǎn)。文獻(xiàn)[11]概述性地描述了SM2門限密碼算法;文獻(xiàn)[12]給出了SM2算法門限簽名及解密的方法;文獻(xiàn)[13-14]給出了SM9算法的門限簽名及解密的方法。但以上方案若在攻擊者同時(shí)攻擊兩方的情況下,其私鑰仍存在被竊取的可能性。

        本文在前人研究基礎(chǔ)上,提出一種以密碼機(jī)為輔助設(shè)備的基于國(guó)產(chǎn)公鑰密碼算法的門限簽名及解密方案,該方案具有以下優(yōu)點(diǎn):(1) 提出了一種SM2/SM9算法門限簽名及解密的私鑰分量的生成方法,以密碼機(jī)為輔助設(shè)備,在密碼機(jī)內(nèi)部生成私鑰分量或分割私鑰,其中一份私鑰分量直接存儲(chǔ)在服務(wù)端密碼機(jī)內(nèi),外部獲得完整私鑰的可能性趨近于零;(2) 針對(duì)實(shí)際的應(yīng)用場(chǎng)景,密碼機(jī)內(nèi)存儲(chǔ)的私鑰分量可以是固定的,也可以一個(gè)應(yīng)用對(duì)應(yīng)一個(gè)固定的私鑰分量,以應(yīng)對(duì)密碼機(jī)不能存儲(chǔ)海量私鑰分量的問(wèn)題。

        1 預(yù)備知識(shí)

        1.1 基本定義

        定義1素域Fp具有如下性質(zhì):(1) 加法單位元是0,乘法單位元是1;(2) 域元素的加法是整數(shù)模p加法,即若a,b∈Fp,則a+b=(a+b)modp;(3) 域元素的乘法是整數(shù)模p乘法,即若a,b∈Fp,則a·b=(a·b)modp。

        定義3設(shè)G和GT是階為素?cái)?shù)N的循環(huán)群,g是G的生成元,e:G×G→GT是雙線性映射,滿足以下性質(zhì)[15-16]:(1) 雙線性:對(duì)任意的P1,P2,Q1,Q2∈G,有e(P1+P2,Q1)=e(P1,Q1)·e(P2,Q1),e(P1,Q1+Q2)=e(P1,Q1)·e(P1,Q2);(2) 可計(jì)算性:存在有效的算法,對(duì)于任意的P,Q∈G,均可計(jì)算e(P,Q)。

        1.2 SM2密碼算法描述

        SM2算法的公開參數(shù)包括(q,n,E,G),其中:q是大素?cái)?shù),E是定義在有限域Fq上的橢圓曲線,G=(xG,yG)是E上n階的基點(diǎn)。本文主要介紹SM2算法的密鑰生成、簽名算法和解密算法,有關(guān)SM2算法的詳細(xì)信息可參考文獻(xiàn)[17]。

        1) 密鑰生成。SM2算法的密鑰生成過(guò)程如下:(1) 隨機(jī)選取密鑰d,且d∈[1,n-2];(2) 計(jì)算P=[d]G,并將P作為公鑰公開,d作為私鑰保存。

        2) SM2簽名算法。設(shè)待簽名的消息為M,為了獲取消息M的數(shù)字簽名(r,s),簽名者應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:

        (1) 對(duì)待簽名消息M進(jìn)行簽名預(yù)處理,得到消息摘要e;

        (2) 用隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)k∈[1,n-1];

        (3) 計(jì)算橢圓曲線點(diǎn)(x1,y1)=[k]G;

        (4) 計(jì)算r=(e+x1)modn,若r=0或r+k=n,則返回(3);

        (5) 計(jì)算s=((1+d)-1·(k-r·d))modn,若s=0,則返回(3);

        (6) 消息M的簽名數(shù)據(jù)為(r,s)。

        3) SM2解密算法。設(shè)密文為C=C1‖C2‖C3,klen為密文C2的位長(zhǎng),為了對(duì)C進(jìn)行解密,解密者應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:

        (1) 將C1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線上的點(diǎn),驗(yàn)證C1是否滿足橢圓曲線方程,若滿足則進(jìn)行下一步;

        (2) 計(jì)算[d]C1=(x2,y2),將坐標(biāo)(x2,y2)的數(shù)據(jù)類型轉(zhuǎn)換為比特串;

        (3) 計(jì)算t=KDF(x2‖y2,klen),若t為0,則報(bào)錯(cuò)退出;

        (4) 計(jì)算M′=C2⊕t;

        (5) 計(jì)算u=Hash(x2‖M′‖y2),若u≠C3,則報(bào)錯(cuò)退出;

        (6) 輸出明文M′。

        1.3 SM9密碼算法描述

        SM9算法的公開參數(shù)包括(cid,N,k,P1,P2,eid),其中:cid是曲線識(shí)別符,N是循環(huán)群G1、G2和GT的階,k是曲線E(Fq)相對(duì)于N的嵌入次數(shù),P1是G1的生成元,P2是G2的生成元,eid是雙線性對(duì)e的識(shí)別符。本文主要介紹SM9算法的密鑰生成、簽名算法和解密算法,有關(guān)SM9算法的詳細(xì)信息可參考文獻(xiàn)[18]。

        1) 密鑰生成。SM9標(biāo)識(shí)算法的密鑰包含用戶的ID和私鑰,該私鑰由密鑰生成中心(Key generation center,KGC)通過(guò)主私鑰和用戶的標(biāo)識(shí)結(jié)合產(chǎn)生。

        KGC產(chǎn)生隨機(jī)數(shù)ks∈[1,N-1]作為主私鑰,計(jì)算G1中的元素Ppub=[ks]P1作為加密主公鑰,則主密鑰對(duì)為(ks,Ppub),KGC保存ks,公開Ppub。

        KGC選擇并公開用一個(gè)字節(jié)表示的私鑰生成函數(shù)識(shí)別符hid,然后KGC在有限域FN上計(jì)算t1=H1(ID‖hid,N)+ks,計(jì)算t2=ks·t1-1,計(jì)算d=[t2]P2,即用戶ID的私鑰為d。

        2) SM9簽名算法。設(shè)待簽名的消息為比特串M,為了獲取消息M的數(shù)字簽名(h,s),簽名者應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:

        (1) 計(jì)算群GT中的元素g=e(P1,Ppub);

        (2) 產(chǎn)生隨機(jī)數(shù)r∈[1,N-1];

        (3) 計(jì)算群GT中的元素w=gr,將w的數(shù)據(jù)類型轉(zhuǎn)換為比特串;

        (4) 計(jì)算整數(shù)h=H2(M‖w,N);

        (5) 計(jì)算整數(shù)l=(r-h)modN,若l=0則返回(2);

        (6) 計(jì)算群GT中的元素s=[l]d;

        (7) 將h和s的數(shù)據(jù)類型轉(zhuǎn)換為字節(jié)串,消息的簽名為(h,s)。

        3) SM9解密算法。設(shè)密文為C=C1‖C2‖C3,mlen為密文C的位長(zhǎng),K1_len為對(duì)稱密碼算法中K1的比特長(zhǎng)度,K2_len為函數(shù)MAC(K2,Z)中密鑰K2的比特長(zhǎng)度。為了對(duì)C進(jìn)行解密,解密者應(yīng)實(shí)現(xiàn)以下運(yùn)算步驟:

        (1) 將C1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線上的點(diǎn),驗(yàn)證C1∈G1是否成立,若不成立則報(bào)錯(cuò)并退出;

        (2) 計(jì)算群GT中的元素w′=e(C1,dB),將w′的數(shù)據(jù)類型轉(zhuǎn)換為比特串;

        (6) 輸出明文M′。

        2 SM2算法門限方案

        SM2算法的門限方案包括SM2門限簽名和門限解密。

        2.1 SM2門限簽名

        2) 門限簽名。設(shè)待簽名的消息為M,門限簽名的過(guò)程如下:

        (1) 客戶端對(duì)待簽名消息M進(jìn)行簽名預(yù)處理,得到消息摘要e,產(chǎn)生隨機(jī)數(shù)k1∈[1,n-1],計(jì)算w1=[k1]G;

        (2) 客戶端把e、w1發(fā)送給服務(wù)端;

        (3) 服務(wù)端密碼機(jī)產(chǎn)生隨機(jī)數(shù)k2∈[1,n-1],計(jì)算w2=[k2]G;

        (4) 服務(wù)端密碼機(jī)產(chǎn)生隨機(jī)數(shù)k3∈[1,n-1],計(jì)算(a1,b1)=[k3]w1+w2,計(jì)算r′=a1+emodn;

        (5) 服務(wù)端判斷若r′不等于0,則計(jì)算s2=d2·k3,計(jì)算s22=d2·(r′+k2);

        (6) 服務(wù)端將r′、s2和s22發(fā)送給客戶端;

        (7) 客戶端計(jì)算s′=((d1·k1)·s2+d1·s22-r′)modn;

        (8) 若s′不等于0且不等于n-r′,客戶端將(r′,s′)作為完整的簽名結(jié)果輸出。

        2.2 SM2門限解密

        1) 密鑰生成??蛻舳撕头?wù)端密碼機(jī)分別生成隨機(jī)數(shù)d1和d2,且有d1,d2∈[1,n-1],客戶端計(jì)算P1=[d1]G,將P1發(fā)送給服務(wù)端。服務(wù)端密碼機(jī)接收服務(wù)端傳送的P1,并計(jì)算計(jì)算P=P1+[d2]G,將P作為公鑰公開。

        2) 門限解密。設(shè)待簽名的消息為M,門限解密的過(guò)程如下(這里只對(duì)1.2節(jié)中SM2算法解密過(guò)程的步驟(1)-步驟(2)進(jìn)行擴(kuò)展,其他步驟未用到門限解密的操作):

        (1) 客戶端計(jì)算v1=[d1]C1;

        (2) 服務(wù)端密碼機(jī)計(jì)算v2=[d2]C1,并將v2的值發(fā)送給客戶端;

        3 SM9算法門限方案

        SM9算法的門限方案包括SM9算法的門限簽名和門限解密。

        3.1 SM9門限簽名

        1) 密鑰生成。服務(wù)端密鑰生成中心KGC(本文方案中KGC指服務(wù)端密碼機(jī))生成隨機(jī)數(shù)a,計(jì)算私鑰分量d1=[a·t2]P1并發(fā)送給客戶端,計(jì)算私鑰分量d2=a-1modN并直接存儲(chǔ)在密碼機(jī)內(nèi)作為服務(wù)端私鑰分量,銷毀d1。

        2) 門限簽名。設(shè)待簽名的消息為M,門限簽名的過(guò)程如下:

        (1) 服務(wù)端密碼機(jī)計(jì)算群GT中的元素g=e(P1,Ppub);

        (2) 密碼機(jī)產(chǎn)生隨機(jī)數(shù)r∈[1,N-1];

        (3) 密碼機(jī)計(jì)算群GT中的元素w=gr;

        (4) 密碼機(jī)計(jì)算整數(shù)h′=H2(M‖w,N);

        (5) 密碼機(jī)計(jì)算整數(shù)L=(r-h′)modN,若L=0則返回(2);

        (6) 密碼機(jī)計(jì)算群GT中的元素s2=[L]d2,并通過(guò)服務(wù)端將h′和s2發(fā)送給客戶端;

        (7) 客戶端計(jì)算s=d1·s2;

        (8) 客戶端得到消息的簽名為(h′,s′)。

        3.2 SM9門限解密

        1) 密鑰生成。服務(wù)端密鑰生成中心KGC根據(jù)用戶的標(biāo)識(shí)ID、主私鑰產(chǎn)生用戶的私鑰d,密碼機(jī)隨機(jī)生成d1∈[1,d-1],計(jì)算d2=d-d1,密碼機(jī)通過(guò)服務(wù)端將d1發(fā)送給客戶端作為客戶端私鑰分量,同時(shí)密碼機(jī)直接保存d2作為服務(wù)端的私鑰分量,然后銷毀d1。

        2) 門限解密。為了對(duì)密文C進(jìn)行解密,客戶端和服務(wù)端需實(shí)現(xiàn)以下運(yùn)算步驟(這里只對(duì)1.3節(jié)中SM9算法解密過(guò)程的步驟(1)-步驟(2)進(jìn)行擴(kuò)展,其他步驟未用到門限解密的操作):

        (1) 客戶端將C1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線上的點(diǎn),驗(yàn)證C1∈G1是否成立,若不成立則報(bào)錯(cuò)并退出;

        4 方案安全性分析及應(yīng)用

        4.1 私鑰安全性分析

        本文方案中一份私鑰分量存儲(chǔ)在客戶端,一份私鑰分量存儲(chǔ)在服務(wù)端密碼機(jī)中。存儲(chǔ)在客戶端的私鑰分量由于采用軟件的存儲(chǔ)方式,存在被攻擊者竊取的可能。由于密碼機(jī)的特性,密碼機(jī)中的服務(wù)端私鑰分量被攻擊者竊取的可能性趨近于零,這樣即使客戶端的私鑰分量被竊取,攻擊者也無(wú)法獲得完整的私鑰,私鑰的安全性有保障。

        4.2 抗隨機(jī)數(shù)攻擊

        隨機(jī)數(shù)的生成和使用對(duì)SM2/SM9的簽名算法和解密算法的安全性起著關(guān)鍵性的作用,比如在標(biāo)準(zhǔn)SM2簽名算法中,在已知隨機(jī)數(shù)k和簽名(r,s)的情況下,則可通過(guò)如下操作推導(dǎo)(破解)私鑰d:

        由s=((1+d)-1·(k-r·d))modn,得(1+d)·s=(k-r·d)modn,進(jìn)而(k+s)·d=(k-s)modn,因此d=(k+s)-1·(k-s)modn,私鑰d被破解。

        本文方案中客戶端和服務(wù)端分別產(chǎn)生隨機(jī)數(shù)k1、k2、k3,即便攻擊者在已知k1和簽名(r,s)的情況下(k2和k3由密碼機(jī)產(chǎn)生,攻擊者不可能破解),攻擊者也不能推導(dǎo)出(破解)私鑰d。

        4.3 方案的應(yīng)用

        本文方案中公鑰密碼算法的私鑰分割成兩份后,分別存儲(chǔ)在智能終端客戶端和服務(wù)端密碼機(jī)中,由于密碼機(jī)的特性,服務(wù)端的私鑰分量不可能被破解,攻擊者不能獲得完整的私鑰,保證了私鑰的安全性。通過(guò)本方案開發(fā)的產(chǎn)品可以將軟件密碼模塊的形態(tài)應(yīng)用于智能終端,用于各種應(yīng)用場(chǎng)景的身份認(rèn)證、數(shù)字簽名、數(shù)據(jù)加解密等。

        結(jié)合實(shí)際的應(yīng)用場(chǎng)景,為了保證客戶端私鑰分量和門限簽名或門限解密過(guò)程的安全,采用下列方式對(duì)其進(jìn)行安全加固:

        (1) 客戶端私鑰分量采用PIN碼、手勢(shì)驗(yàn)證碼等保護(hù);

        (2) 客戶端私鑰分量可以和智能終端硬件信息、ID等綁定;

        (3) 服務(wù)端存儲(chǔ)客戶端私鑰分量的Hash值,在簽名或解密請(qǐng)求前,客戶端需先向服務(wù)端提交私鑰分量Hash值一致性驗(yàn)證,服務(wù)端對(duì)比客戶端私鑰分量的Hash值,待Hash值一致后再執(zhí)行簽名操作,這樣可以防止客戶端的私鑰分量被破壞仿冒;

        (4) 門限簽名或門限解密的請(qǐng)求由服務(wù)端發(fā)起,防止客戶端攻擊。

        在本文方案中,服務(wù)端私鑰分量存儲(chǔ)在服務(wù)端密碼機(jī)中,在實(shí)際應(yīng)用場(chǎng)景中服務(wù)端密碼機(jī)可能需要存儲(chǔ)大量用戶的服務(wù)端私鑰分量,由于密碼機(jī)的存儲(chǔ)空間有限,在本方案的基礎(chǔ)上,可以進(jìn)一步將密碼機(jī)中的服務(wù)端私鑰分量固定,解決密碼機(jī)存儲(chǔ)限制和用戶海量私鑰分量的存儲(chǔ)。

        5 結(jié) 語(yǔ)

        公鑰密碼算法是現(xiàn)代密碼學(xué)的重要組成部分,SM2算法和SM9算法是我國(guó)自主知識(shí)產(chǎn)權(quán)的公鑰密碼算法。本文在門限密碼學(xué)的基礎(chǔ)上,以密碼機(jī)為輔助設(shè)備,提出了一種國(guó)產(chǎn)公鑰密碼算法的門限簽名及解密方案。該方案中,密碼算法私鑰的安全系數(shù)更高,更貼合實(shí)際的應(yīng)用場(chǎng)景。依據(jù)該方案開發(fā)的密碼模塊可以軟件的形態(tài)在移動(dòng)終端、物聯(lián)網(wǎng)智能終端中得到廣泛的應(yīng)用,用于解決網(wǎng)絡(luò)安全中的身份認(rèn)證、數(shù)字簽名、數(shù)據(jù)傳輸安全、隱私保護(hù)等問(wèn)題。

        猜你喜歡
        服務(wù)端私鑰公鑰
        比特幣的安全性到底有多高
        基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
        一種基于混沌的公鑰加密方案
        云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        一種基于虛擬私鑰的OpenSSL與CSP交互方案
        新時(shí)期《移動(dòng)Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
        在Windows Server 2008上創(chuàng)建應(yīng)用
        HES:一種更小公鑰的同態(tài)加密算法
        SM2橢圓曲線公鑰密碼算法綜述
        基于格的公鑰加密與證書基加密
        91久久精品无码人妻系列 | 中文字幕有码在线亚洲| 欧美xxxxx高潮喷水| 强行无套内谢大学生初次| 免费一级毛片麻豆精品| 亚洲精品一区二区三区国产| 丝袜美腿高清在线观看| 午夜福利av无码一区二区| 亚洲人成影院在线无码观看| 加勒比熟女精品一区二区av| 91视色国内揄拍国内精品人妻 | 少妇无码av无码一区| 国产一区a| 日韩十八禁在线观看视频| 丰满人妻久久中文字幕| 国产成人av片在线观看| 亚洲AV无码久久精品成人| 国产视频一区二区三区久久亚洲| 风韵少妇性饥渴推油按摩视频| 久久久久99精品成人片试看| 伊在人亚洲香蕉精品区麻豆| 亚洲av高清不卡免费在线| 国产精品三级av及在线观看| 国内少妇人妻丰满av| 日韩人妻系列在线视频| 亚洲av久播在线一区二区| 人妻av乱片av出轨| 精品国产品欧美日产在线| 亚洲精品中文字幕乱码3| 小说区激情另类春色| 99re久久精品国产| 免费在线观看亚洲视频| 美女很黄很色国产av| 日躁夜躁狠狠躁2001| 免费一级a毛片在线播出| 国产中文字幕免费视频一区| 一区二区三区av波多野结衣| 一级做a爰片久久毛片| 国产精品自拍网站在线| 看久久久久久a级毛片| 另类免费视频在线视频二区 |