專利名稱:數(shù)字簽名方法、驗(yàn)證方法、數(shù)字簽名裝置及數(shù)字簽名系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤其涉及一種數(shù)字簽名方法、驗(yàn)證方法、數(shù)字簽名
裝置及數(shù)字簽名系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)和信息安全對(duì)經(jīng)濟(jì)發(fā)展、國(guó)家社會(huì)穩(wěn)定起著重要的作用。如怎樣確保用戶開
出的電子支票不被人破譯、修改和偽造等就屬于網(wǎng)絡(luò)和信息安全中的重要內(nèi)容。 數(shù)字簽名是當(dāng)今網(wǎng)絡(luò)和信息安全中最基本的技術(shù),也是提供認(rèn)證性、完整性和不
可否認(rèn)性的重要技術(shù)。數(shù)字簽名利用非對(duì)稱算法,來達(dá)到其他人可以驗(yàn)證該簽名但卻無法
假冒該簽名的目的,是信息安全的核心技術(shù)之一。數(shù)字簽名首先是網(wǎng)絡(luò)通信與交互的保證,
可以保證通信對(duì)方是真實(shí)的,還可以作為簽署電子文檔時(shí)的工具,以保護(hù)自己的文檔與簽
名。數(shù)字簽名還可以用于需要保密的場(chǎng)所、需要身份認(rèn)證的場(chǎng)所及其他需要不可否認(rèn)服務(wù)
的場(chǎng)所。 傳統(tǒng)數(shù)字簽名方法基于RSA或橢圓曲線(ECC)等公鑰,簽名驗(yàn)證方為了驗(yàn)證簽名, 必須訪問認(rèn)證(CA)中心以獲取簽名方的公鑰。這種簽名方法通常都需要借助于公鑰證書 才能實(shí)現(xiàn),適用于用戶群較少的簡(jiǎn)單系統(tǒng)。 隨著信息化的不斷發(fā)展,用戶群的規(guī)模不斷擴(kuò)大,公鑰證書的管理、獲取變得日益 復(fù)雜,這種基于公鑰證書的傳統(tǒng)簽名方法已難以滿足信息化社會(huì)的發(fā)展對(duì)數(shù)字簽名的需 求,成為實(shí)現(xiàn)信息化社會(huì)信息的防偽和防篡改的一大障礙。 為了滿足規(guī)模不斷擴(kuò)大的用戶群對(duì)數(shù)字簽名的需求,2001年,Boneh和Franklin 首次利用橢圓曲線上的Weil配對(duì)構(gòu)造了一種新的基于身份的數(shù)字簽名方法。當(dāng)前各種基 于身份的數(shù)字簽名方法,如Hess數(shù)字簽名方法等都是基于Weil配對(duì)。換句話說,現(xiàn)有技術(shù) 中,基于身份的數(shù)字簽名方法在簽名的生成與驗(yàn)證過程中,均通過Weil配對(duì)e的雙線性特 性進(jìn)行雙線性配對(duì)的計(jì)算得以實(shí)現(xiàn)。配對(duì)計(jì)算是整個(gè)數(shù)字簽名系統(tǒng)的核心。其中,身份信息 可以是姓名、地址、電子郵箱地址、手機(jī)號(hào)等個(gè)人信息,也可以是計(jì)算機(jī)信息如IP地址等。
基于身份的數(shù)字簽名方法包括系統(tǒng)參數(shù)選取、系統(tǒng)初始化、私鑰提取、簽名生成、 驗(yàn)證簽名。 以消息m為例,消息m的簽名生成由簽名裝置任意地選取一個(gè)隨機(jī)數(shù)k g Zq及
P丄e G丄進(jìn)行如下計(jì)算: y = e(Pp P)k (1) v = H2(m, y) (2) U = vSm+kP丄 (3) 其中,公式(1)為weil配對(duì)運(yùn)算;公式(2)為對(duì)消息m的映射運(yùn)算,消息m通過公 式(2)變換為一個(gè)整數(shù)v,得到消息m簽名的一部分;通過公式(3)得到信息m簽名的另一 部分,從而得到簽名裝置對(duì)消息m的簽名o = (U,v)。
簽名生成后,被發(fā)送給簽名驗(yàn)證裝置進(jìn)行驗(yàn)證。
3
在基于ID的數(shù)字簽名方法中,接收方收到消息及其簽名后,與傳統(tǒng)的基于公鑰的 數(shù)字簽名不同,接收方不需要訪問CA中心來獲取發(fā)送方的公鑰,而只需根據(jù)發(fā)送方的身份 就可在本地直接計(jì)算出發(fā)送方的公鑰,從而實(shí)現(xiàn)對(duì)簽名的驗(yàn)證。具體地,簽名驗(yàn)證裝置收到 消息m和簽名裝置對(duì)消息m的簽名o = (U,v)后,執(zhí)行以下操作
由簽名裝置的身份字符串ID計(jì)算簽名裝置的公鑰QID = HJID);
計(jì)算Y , = e (U, P) e (QID, Ppub) v ; 判斷H2(m, Y ' ) = v是否成立;如果成立,則驗(yàn)證通過,否則驗(yàn)證不通過。這是因 為 Y = e (U, P) e (QID, Ppub)v = e (vSm+kP丄,P) e (QID, _SP)v = e(vSID, P)e(kPp P)e(QID, _P)SV = e (vSID, P) e (vsQID, _P) e (kPn P) = e (vSID, P) e (vSID, _P) e (kP" P) = e(vSID, P)e(vSID, P)—'e(kP" P) =e(kP"P) =e(P丄,P)k = y 。 采用基于身份的密碼體制實(shí)現(xiàn)數(shù)字簽名,無須通過公鑰證書捆綁用戶的公鑰和用 戶的身份信息,簡(jiǎn)化了公鑰的管理。并且,使用用戶的身份信息直接在本地生成用戶的公 鑰,不需要通過公鑰證書獲取公鑰,簡(jiǎn)化了公鑰的分發(fā),避免了建立認(rèn)證中心CA的公共密
鑰數(shù)據(jù)庫(kù),減少了金融成本,解決了由此而引發(fā)的安全問題。 然而,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺陷在簽名的生成與驗(yàn)證過程中,均需 要進(jìn)行配對(duì)計(jì)算,降低了數(shù)字簽名的效率。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提出一種數(shù)字簽名方法、驗(yàn)證方法、數(shù)字簽名裝置及數(shù)字簽名系統(tǒng), 以簡(jiǎn)化數(shù)字簽名處理過程。 本發(fā)明實(shí)施例提供了一種數(shù)字簽名方法,包括
接收系統(tǒng)參數(shù);所述系統(tǒng)參數(shù)包括P及哈希函數(shù)H2 ;
選取隨機(jī)數(shù)k ;k G Zq, Zq為剩余類集{0, 1,2, , q-1};
通過公式r = kP得到消息m簽名二元組的一部分; 通過得到的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將所述消息m映射為一 個(gè)整數(shù)v ; 通過公式u = (v/k)Sm得到所述消息m簽名二元組的另一部分;其中,SID為用戶 私鑰。 本發(fā)明實(shí)施例還提供了一種數(shù)字簽名的驗(yàn)證方法,包括 接收系統(tǒng)參數(shù)及消息m簽名二元組u,r ;所述系統(tǒng)參數(shù)包括哈希函數(shù)Hy哈希函數(shù) &及配對(duì)函數(shù)t ; 通過消息m簽名二元組中的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將消息 m映射為一個(gè)整數(shù)v ; 通過系統(tǒng)參數(shù)中的哈希函數(shù)HJ十算HJID)計(jì)算發(fā)送所述消息m的用戶的公鑰Qm ;
4其中,ID為對(duì)所述消息m進(jìn)行簽名的用戶身份信息; 通過系統(tǒng)參數(shù)中的配對(duì)函數(shù)t計(jì)算t (u,r) 、t(Qm,Qjv,對(duì)所述消息m的簽名二元
組(u, r)進(jìn)行驗(yàn)證;其中,QTA為系統(tǒng)公開密鑰。 本發(fā)明實(shí)施例還提供了一種數(shù)字簽名裝置,包括 接收模塊,用于接收系統(tǒng)參數(shù);所述系統(tǒng)參數(shù)包括P及哈希函數(shù)H2 ; 參數(shù)選取模塊,用于選取隨機(jī)數(shù)k;kG Z,,Z,為剩余類集{0,l,2,...,q-l}; 第一簽名生成模塊,用于通過公式r = kP得到消息m簽名二元組的一部分; 映射模塊,用于通過得到的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將所述消
息m映射為一個(gè)整數(shù)v ; 第二簽名生成模塊,用于通過公式u = (v/k)Sm得到所述消息m簽名二元組的另 一部分;其中,Sm為用戶私鑰。 本發(fā)明實(shí)施例還提供了一種數(shù)字簽名的驗(yàn)證裝置,包括 接收模塊,用于接收系統(tǒng)參數(shù)及消息m簽名二元組u,r ;所述系統(tǒng)參數(shù)包括哈希函 數(shù)H^哈希函數(shù)&及配對(duì)函數(shù)t ; 映射模塊,用于通過消息m簽名二元組中的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算 H2 (m, r),將消息m映射為一個(gè)整數(shù)v ; 公鑰計(jì)算模塊,用于通過系統(tǒng)參數(shù)中的哈希函數(shù)HJ十算HJID)計(jì)算發(fā)送所述消息 m的用戶的公鑰QID ;其中,ID為對(duì)所述消息m進(jìn)行簽名的用戶身份信息;
驗(yàn)證模塊,用于通過系統(tǒng)參數(shù)中的配對(duì)函數(shù)t計(jì)算t(u, r) 、 t(QID, Qjv,對(duì)所述消 息m的簽名二元組(u, r)進(jìn)行驗(yàn)證;其中,QTA為系統(tǒng)公開密鑰。 本發(fā)明實(shí)施例還提供了 一種數(shù)字簽名系統(tǒng),包括上述數(shù)字簽名裝置及上述數(shù)字簽 名的驗(yàn)證裝置。 上述實(shí)施例提供的技術(shù)方案通過選取系統(tǒng)參數(shù)P及隨機(jī)數(shù)k生成r,并將r作為消 息的簽名二元組中的一個(gè)元素,生成消息的簽名,避免了在簽名的生成過程中計(jì)算配對(duì),簡(jiǎn) 化了簽名生成過程,提高了簽名的生成效率。并且,能夠保證數(shù)字簽名系統(tǒng)的安全性。
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明實(shí)施例提供的數(shù)字簽名方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的數(shù)字簽名的驗(yàn)證方法的流程圖; 圖3為本發(fā)明實(shí)施例提供的數(shù)字簽名方法與驗(yàn)證方法所應(yīng)用的數(shù)字簽名系統(tǒng)的 結(jié)構(gòu)示意圖; 圖4為圖3所示系統(tǒng)的數(shù)字簽名的流程圖;
圖5為本發(fā)明實(shí)施例提供的數(shù)字簽名裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的數(shù)字簽名的驗(yàn)證裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例提供的數(shù)字簽名系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖1為本發(fā)明實(shí)施例提供的數(shù)字簽名方法的流程圖。該方法包括
5
步驟11、接收系統(tǒng)參數(shù);所述系統(tǒng)參數(shù)包括P及哈希函數(shù)4 ; 步驟12、選取隨機(jī)數(shù)k ;k G Zq, Zq為剩余類集{0, 1,2, . . . , q_l} , q為素?cái)?shù),詳見下述步驟13中的說明; 步驟13、通過公式r = kP得到消息m簽名二元組的一部分;其中,P為系統(tǒng)參數(shù);作為消息m簽名二元組的一部分,r既是基點(diǎn)P做k倍乘運(yùn)算以后的結(jié)果,又是橢圓曲線E上的一個(gè)點(diǎn)。 步驟14、通過得到的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將所述消息m映射為一個(gè)整數(shù)v, v = H2(m,r); 步驟15、通過公式u = (v/k) SID得到所述消息m簽名二元組的另一部分u ;其中,Sm為用戶私鑰。u是簽名的一部分,是通過運(yùn)算得到的橢圓曲線上的一個(gè)點(diǎn)。
上述步驟11 步驟15可由簽名裝置執(zhí)行。 上述步驟12中,簽名裝置只需任意地選取一個(gè)隨機(jī)數(shù)k G Z,,便可執(zhí)行步驟13。
上述步驟13中,系統(tǒng)參數(shù)P由私鑰生成中心選取并發(fā)送給簽名裝置。私鑰生成中心選取系統(tǒng)參數(shù)包括選取橢圓曲線E :y2 = f+ax+b、選取群Gi和群62、選取Tate配對(duì)函數(shù)t、選取哈希函數(shù)Hi與哈希函數(shù)H2。橢圓曲線E :y2 = x3+ax+b中,a,b G F,,F(xiàn),表示有限域,q是素?cái)?shù)。私鑰生成中心選擇一個(gè)公開的基點(diǎn)PGE(F,),其階為q二ord(P)。群&是階為q的加法群,群^是階為q的乘法群。在群^和群G2中離散對(duì)數(shù)問題都是難解的。設(shè)配對(duì)函數(shù)t是G^G2到G2的一個(gè)雙線性映射。私鑰生成中心取&為有限域Fq上橢圓曲線有理點(diǎn)群的一個(gè)加法子群,私鑰生成中心取62為這個(gè)有限域的一個(gè)乘法子群,私鑰生成中心由橢圓曲線上的Tate配對(duì)派生得到雙線性映射函數(shù)t。對(duì)于群^中的任意給定元素a,b G G15 t(a, b)能被容易計(jì)算,而當(dāng)給定任意的b G ^和c G 62,計(jì)算a G ^以致于t(a,b) 二c是不可行的。私鑰生成中心選取哈希函數(shù)&與哈希函數(shù)4。其中,& :{0,1}*_>{0},哈希函數(shù)&用來實(shí)現(xiàn)將簽名裝置的身份ID通過映射變換到橢圓曲線上的一個(gè)點(diǎn),即生成簽名裝置的公鑰,并由私鑰生成中心使用系統(tǒng)私鑰和簽名裝置的公鑰,生成與簽名裝置的身份相關(guān)的私鑰;H2 : {0, 1} **Gr > Zq,哈希函數(shù)H2用來實(shí)現(xiàn)將需要簽名的消息m通過映射變換成一個(gè)整數(shù),哈希函數(shù)^與哈希函數(shù)^均公開。簽名裝置利用私鑰生成中心公開的系統(tǒng)參數(shù)P以及上述步驟12選取的隨機(jī)數(shù)k計(jì)算得到r。 上述步驟14中,簽名裝置通過私鑰生成中心公開的哈希函數(shù)^,用上述步驟13得到的r將消息m映射為一個(gè)整數(shù)v,避免了將消息m通過明文嵌入映射到橢圓曲線上一個(gè)點(diǎn)的復(fù)雜運(yùn)算。 上述步驟15中,簽名裝置利用用戶私鑰Sm及上述步驟12選取的隨機(jī)數(shù)k、上述步驟14得到的整數(shù)v得到u。其中,用戶私鑰Sm由簽名裝置向私鑰生成中心請(qǐng)求獲得。當(dāng)簽名裝置請(qǐng)求與所屬用戶的身份相對(duì)應(yīng)的私鑰時(shí),私鑰生成中心執(zhí)行私鑰提取算法。假設(shè)簽名裝置所屬用戶的身份由字符串ID表示,則簽名裝置的用戶公鑰QID為QID = HJID)。相應(yīng)地,簽名裝置的用戶私鑰SID由私鑰生成中心通過公式SID = sQID計(jì)算得到。簽名裝置的用戶私鑰SID在簽名裝置第一次加入系統(tǒng)時(shí),由私鑰生成中心計(jì)算出來并通過安全渠道發(fā)送給簽名裝置。任何其它用戶的用戶私鑰的生成過程均與簽名裝置的私鑰生成過程相同。
上述步驟15執(zhí)行完畢后,得到消息m的簽名二元組(u,r),簽名裝置完成對(duì)消息m的簽名。
6
本實(shí)施例提供的技術(shù)方案通過選取系統(tǒng)參數(shù)P及隨機(jī)數(shù)k生成r,并將r作為消息的簽名二元組中的一個(gè)元素,生成消息的簽名,不用隨機(jī)生成群^中的點(diǎn)Pp避免了在簽名的生成過程中計(jì)算配對(duì),簡(jiǎn)化了簽名生成過程,提高了簽名的生成效率。并且,在簽名的生成過程中,消息m的二元組簽名(u,r)中的u和r均是橢圓曲線中倍乘運(yùn)算的結(jié)果,基于橢圓曲線上離散對(duì)數(shù)問題(ECDLP)的困難性(即由k和P求r 二kP是容易的,但由橢圓曲線中倍乘結(jié)果r和P求k使得r = kP是困難的),從而能夠保證數(shù)字簽名系統(tǒng)的安全性。
圖2為本發(fā)明實(shí)施例提供的數(shù)字簽名的驗(yàn)證方法的流程圖。該方法包括
步驟21、接收系統(tǒng)參數(shù)及消息m簽名二元組u,r ;所述系統(tǒng)參數(shù)包括哈希函數(shù)H2、哈希函數(shù)^及配對(duì)函數(shù)t ; 步驟22、利用消息m的簽名二元組中的r以及系統(tǒng)參數(shù)中的哈希函數(shù)112計(jì)算112(111,r),將所述消息m映射為一個(gè)整數(shù)v ; S卩,通過公式v = H2 (m, r)得到v。哈希函數(shù)H2詳見上述步驟13的說明。 步驟23、利用發(fā)送所述消息m的用戶的身份ID以及系統(tǒng)參數(shù)中的哈希函數(shù)&計(jì)算& (ID),得到所述用戶的用戶公鑰QID ;即,通過公式QID = & (ID)計(jì)算得到所述用戶的用戶公鑰Qm。其中,ID為對(duì)所述消息m進(jìn)行簽名的用戶身份信息。哈希函數(shù)&詳見上述步驟13的說明。 步驟24、通過系統(tǒng)參數(shù)中的配對(duì)函數(shù)t計(jì)算t (u, r) 、 t (QID, QTA) v,對(duì)所述消息m的簽名二元組(u,r)進(jìn)行驗(yàn)證;其中,QM為系統(tǒng)公開密鑰。Tate配對(duì)函數(shù)t詳見上述步驟13的說明。 上述步驟21 步驟24可由驗(yàn)證裝置執(zhí)行。 上述步驟24中,系統(tǒng)公開密鑰QTA由私鑰生成中心隨機(jī)選取一元素P G GA {0}和一個(gè)秘密隨機(jī)數(shù)s G Zq,并通過公式QTA = sP計(jì)算得到。其中,s的值僅被私鑰生成中心存儲(chǔ)。私鑰生成中心得到系統(tǒng)公開密鑰(^后發(fā)布(P,QTA)。驗(yàn)證裝置從而獲得系統(tǒng)公開密鑰QTA,并進(jìn)行tate配對(duì)運(yùn)算,從而實(shí)現(xiàn)對(duì)簽名的驗(yàn)證。當(dāng)t (u, r) = t (QID, QTA)v時(shí),驗(yàn)證通過,即所述消息m的簽名二元組通過驗(yàn)證;否則驗(yàn)證失敗。 本實(shí)施例提供的技術(shù)方案通過兩次tate配對(duì)運(yùn)算實(shí)現(xiàn)了簽名的驗(yàn)證,有效地降低了數(shù)字簽名的驗(yàn)證復(fù)雜度,提高了驗(yàn)證簽名的速度。 圖3為本發(fā)明實(shí)施例提供的數(shù)字簽名方法與驗(yàn)證方法所應(yīng)用的數(shù)字簽名系統(tǒng)的結(jié)構(gòu)示意圖。 在基于ID的簽名體制中,整個(gè)系統(tǒng)由私鑰生成中心、簽名裝置和驗(yàn)證裝置構(gòu)成。私鑰生成中心相當(dāng)于傳統(tǒng)的公鑰密碼體制中的CA,是整個(gè)系統(tǒng)的安全基礎(chǔ),主要負(fù)責(zé)選取系統(tǒng)的各公開參數(shù)和系統(tǒng)的私鑰,為系統(tǒng)中的各用戶生成用戶私鑰,并在用戶初次加入系統(tǒng)時(shí)分發(fā)用戶私鑰。簽名裝置使用系統(tǒng)的公開參數(shù)和各自的用戶私鑰對(duì)消息m進(jìn)行簽名。驗(yàn)證裝置使用系統(tǒng)的公開參數(shù)和簽名裝置所屬用戶的身份ID計(jì)算該用戶的用戶公鑰,并使用簽名裝置的公鑰驗(yàn)證簽名裝置對(duì)消息m的簽名。但私鑰生成中心不用承擔(dān)復(fù)雜的證書管理、分發(fā)等功能,也不用參與簽名過程,私鑰生成中心在以后的簽名過程中私鑰生成中心不再參與簽名過程。 圖4為圖3所示系統(tǒng)的數(shù)字簽名的流程圖。整個(gè)數(shù)字簽名過程主要包括系統(tǒng)初始化(Setup)、用戶私鑰生成(Extract)、簽名生成(Sign)、驗(yàn)證簽名(Verify)四部分。具體
7包括以下步驟 步驟41、選取系統(tǒng)參數(shù)。詳見上述步驟13的說明,該系統(tǒng)參數(shù)可以直接利用消息的明文進(jìn)行簽名的相關(guān)運(yùn)算,而不需要對(duì)消息進(jìn)行明文映射,變換到橢圓曲線上的點(diǎn),簡(jiǎn)化了簽名的實(shí)現(xiàn)。 步驟42、私鑰生成中心生成系統(tǒng)的公開密鑰(P, QTA)和系統(tǒng)私鑰s。 該步驟由私鑰生成中心在系統(tǒng)初始化階段完成。在私鑰生成中心輸入系統(tǒng)參
數(shù),輸出系統(tǒng)公開密鑰(P, QTA)和系統(tǒng)私鑰s。具體地,私鑰生成中心隨機(jī)地選取一元素
P G GA{0}及一秘密隨機(jī)數(shù)s G Z,,計(jì)算QTA = sP得到系統(tǒng)公開密鑰QTA ;然后向系統(tǒng)的所
有用戶公開發(fā)布系統(tǒng)的公開密鑰(P, QJ,并保存系統(tǒng)私鑰S ;所有用戶包括簽名裝置所屬
用戶和驗(yàn)證裝置所屬用戶。最后,私鑰生成中心公布系統(tǒng)公開密鑰(P, QJ,并保存系統(tǒng)私鑰s。 步驟43、私鑰生成中心為簽名裝置生成用戶私鑰SID。 具體地,當(dāng)簽名裝置首次加入系統(tǒng)時(shí),私鑰生成中心計(jì)算用戶公鑰QID = HJID),即可由簽名裝置所屬用戶的身份字符串ID生成簽名裝置的用戶公鑰Qm,并計(jì)算用戶私鑰SID = sQm,在簽名裝置首次加入系統(tǒng)時(shí)將簽名裝置的用戶私鑰SID通過安全渠道發(fā)送給簽
名裝置。換句話說,該算法由私鑰生成中心完成,在私鑰生成中心輸入系統(tǒng)公開密鑰(p,
QJ、系統(tǒng)私鑰s和用戶的身份ID,輸出用戶私鑰S^之后私鑰生成中心用安全的信道將用
戶私鑰sID返回給簽名裝置和驗(yàn)證裝置。 步驟44、簽名裝置生成消息m的簽名(u, r)。 生成簽名的算法由簽名裝置實(shí)現(xiàn)。在簽名裝置輸入安全參數(shù)r、系統(tǒng)公開密鑰(P,QTA)、用戶私鑰Sm以及消息m,輸出對(duì)消息m的簽名o(u,r)。具體地,簽名裝置任意地選取一個(gè)隨機(jī)數(shù)k G Zq,計(jì)算r = kP、 v = H2 (m, r) 、 u = (v/k) SID,生成消息m的簽名(u, r),并發(fā)送給驗(yàn)證裝置。簽名的生成過程具體詳見上述圖l所示實(shí)施例。
步驟45、驗(yàn)證裝置驗(yàn)證簽名裝置對(duì)消息m的簽名(u, r)。 該驗(yàn)證算法由簽名的驗(yàn)證裝置完成。在驗(yàn)證裝置輸入系統(tǒng)公開密鑰(P,QJ、簽名裝置的用戶身份ID、消息m和簽名o (u,r),輸出簽名驗(yàn)證結(jié)果l或O,代表真和偽。具體地,簽名驗(yàn)證裝置收到消息m和簽名裝置對(duì)消息m的簽名(u,r)后,計(jì)算v = H2 (m, r) 、t (u,
r);通過簽名裝置的身份字符串ID計(jì)算簽名裝置的用戶公鑰Qm,即計(jì)算Qm = 1^(10);并
計(jì)算t說D, QTA)V。當(dāng)且僅當(dāng)t(u, r) = t(QID, Qtt)v成立時(shí)驗(yàn)證裝置接受簽名裝置對(duì)消息m的簽名(u,r),否則拒絕接受簽名。容易驗(yàn)證,如果協(xié)議雙方都按照本數(shù)字簽名方法的操作步驟進(jìn)行,則簽名裝置的簽名能通過下式被其他人驗(yàn)證 t (u, r) = t ((v/k) SID, kP) = t (SID, P)v = t (sQID, P)v = t (QID, QTA) v。
圖5為本發(fā)明實(shí)施例提供的數(shù)字簽名裝置的結(jié)構(gòu)示意圖。該生成裝置包括接收模塊51、參數(shù)選取模塊52、第一簽名生成模塊53、映射模塊54及第二簽名生成模塊55。接收模塊51用于接收系統(tǒng)參數(shù);所述系統(tǒng)參數(shù)包括P及哈希函數(shù)H2。參數(shù)選取模塊52用于選取隨機(jī)數(shù)k ;k G Zq, Zq為剩余類集{0, 1 , 2,. . . , q-1}。第一簽名生成模塊53用于通過公式r = kP得到消息m簽名二元組的一部分;所述系統(tǒng)參數(shù)P為公開的基點(diǎn),具體詳見上述步驟13的說明。映射模塊54用于通過第一簽名生成模塊53得到的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將所述消息m映射為一個(gè)整數(shù)v,詳見上述步驟14的說明。第二簽
8名生成模塊55用于通過公式u = (v/k)Sm得到所述消息m簽名二元組的另一部分;其中,Sm為用戶私鑰。詳見上述步驟15的說明。 本實(shí)施例提供數(shù)字簽名裝置通過選取隨機(jī)數(shù)k生成r,并將r作為消息的簽名二元組中的一個(gè)元素,生成消息的簽名,不用隨機(jī)生成群^中的點(diǎn)Pp避免了在簽名的生成過程中計(jì)算配對(duì),簡(jiǎn)化了簽名生成過程,提高了簽名的生成效率。 圖6為本發(fā)明實(shí)施例提供的數(shù)字簽名的驗(yàn)證裝置的結(jié)構(gòu)示意圖。該驗(yàn)證裝置包括接收模塊61、映射模塊62、公鑰計(jì)算模塊63及驗(yàn)證模塊64。接收模塊6l用于接收系統(tǒng)參數(shù)及消息m簽名二元組u, r ;所述系統(tǒng)參數(shù)包括哈希函數(shù)!12、哈希函數(shù)&及配對(duì)函數(shù)t。映射模塊62用于通過消息m簽名二元組中的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將消息m映射為一個(gè)整數(shù)v,具體操作詳見上述步驟22的說明。公鑰計(jì)算模塊63用于通過系統(tǒng)參數(shù)中的哈希函數(shù)&計(jì)算& (ID)計(jì)算發(fā)送所述消息m的用戶的公鑰QID,其中,ID為對(duì)所述消息m進(jìn)行簽名的用戶身份信息;具體操作詳見上述步驟23的說明。驗(yàn)證模塊64用于通過系統(tǒng)參數(shù)中的配對(duì)函數(shù)t計(jì)算t(u, r) 、t(QID, QTA)v,對(duì)所述消息m的簽名二元組(u,r)進(jìn)行驗(yàn)證;其中,QTA為系統(tǒng)公開密鑰,具體操作詳見上述步驟24的說明。
所述驗(yàn)證模塊64當(dāng)t (u, r) = t (QID, QTA)v時(shí),驗(yàn)證所述消息m的簽名二元組通過驗(yàn)證;否則驗(yàn)證失敗。 本實(shí)施例提供的技術(shù)方案通過兩次tate配對(duì)運(yùn)算實(shí)現(xiàn)了簽名的驗(yàn)證,有效地降低了數(shù)字簽名的驗(yàn)證復(fù)雜度,提高了驗(yàn)證簽名的速度。 圖7為本發(fā)明實(shí)施例提供的數(shù)字簽名系統(tǒng)結(jié)構(gòu)示意圖。該系統(tǒng)包括簽名裝置71及驗(yàn)證裝置72。簽名裝置71用于對(duì)消息進(jìn)行運(yùn)算生成簽名,驗(yàn)證裝置72通過兩次Tate配對(duì)運(yùn)算對(duì)簽名進(jìn)行驗(yàn)證。簽名裝置71為上述裝置實(shí)施例中提供的數(shù)字簽名裝置,驗(yàn)證裝置72上述裝置實(shí)施例中提供的任一種數(shù)字簽名的驗(yàn)證裝置。 本實(shí)施例提供的數(shù)字簽名系統(tǒng)通過數(shù)字簽名裝置生成簽名,避免了在簽名時(shí)進(jìn)行配對(duì)運(yùn)算,簡(jiǎn)化了簽名生成過程,提高了簽名生成效率;并且通過數(shù)字簽名的驗(yàn)證裝置對(duì)簽名進(jìn)行驗(yàn)證,僅進(jìn)行了兩次配對(duì)運(yùn)算便實(shí)現(xiàn)了驗(yàn)證,簡(jiǎn)化了簽名驗(yàn)證過程,提高了簽名驗(yàn)證效率,從而整體提高了數(shù)字簽名的處理效率。 上述方法及裝置實(shí)施例提供的技術(shù)方案中,在簽名的生成過程中不計(jì)算配對(duì),僅在驗(yàn)證的過程中才計(jì)算配對(duì),并且簽名驗(yàn)證采用Tate配對(duì)而不是Weil配對(duì)實(shí)現(xiàn)算法,而且只需比較兩個(gè)Tate配對(duì)的結(jié)果是否相等,不用對(duì)兩個(gè)配對(duì)運(yùn)算的結(jié)果再做乘運(yùn)算,有效地提高了基于身份密碼體制簽名算法實(shí)施過程中的速度。 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、 RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。 最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
9
權(quán)利要求
一種數(shù)字簽名方法,其特征在于,包括接收系統(tǒng)參數(shù);所述系統(tǒng)參數(shù)包括P及哈希函數(shù)H2;選取隨機(jī)數(shù)k;k∈Zq,Zq為剩余類集{0,1,2,...,q-1};通過公式r=kP得到消息m簽名二元組的一部分;通過得到的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2(m,r),將所述消息m映射為一個(gè)整數(shù)v;通過公式u=(v/k)SID得到所述消息m簽名二元組的另一部分;其中,SID為用戶私鑰。
2. —種數(shù)字簽名的驗(yàn)證方法,其特征在于,包括接收系統(tǒng)參數(shù)及消息m簽名二元組u,r ;所述系統(tǒng)參數(shù)包括哈希函數(shù)H2、哈希函數(shù)&及配對(duì)函數(shù)t ;通過消息m簽名二元組中的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將消息m映 射為一個(gè)整數(shù)v;通過系統(tǒng)參數(shù)中的哈希函數(shù)^計(jì)算HJID)計(jì)算發(fā)送所述消息m的用戶的公鑰QID ;其 中,ID為對(duì)所述消息m進(jìn)行簽名的用戶身份信息;通過系統(tǒng)參數(shù)中的配對(duì)函數(shù)t計(jì)算t(u, r)、 t(QID, QTA)v,對(duì)所述消息m的簽名二元組 (u, r)進(jìn)行驗(yàn)證;其中,QTA為系統(tǒng)公開密鑰。
3. 根據(jù)權(quán)利要求2所述的數(shù)字簽名的驗(yàn)證方法,其特征在于,當(dāng)t(u,r) =t(QID,QTA)v 時(shí),所述消息m的簽名二元組通過驗(yàn)證。
4. 一種數(shù)字簽名裝置,其特征在于,包括接收模塊,用于接收系統(tǒng)參數(shù);所述系統(tǒng)參數(shù)包括P及哈希函數(shù)^ ; 參數(shù)選取模塊,用于選取隨機(jī)數(shù)k;k G Z,,Z,為剩余類集{0,1,2,... ,q_l}; 第一簽名生成模塊,用于通過公式r = kP得到消息m簽名二元組的一部分; 映射模塊,用于通過得到的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2 (m, r),將所述消息m 映射為一個(gè)整數(shù)v ;第二簽名生成模塊,用于通過公式u = (v/k)Sm得到所述消息m簽名二元組的另一部 分;其中,Sm為用戶私鑰。
5. —種數(shù)字簽名的驗(yàn)證裝置,其特征在于,包括接收模塊,用于接收系統(tǒng)參數(shù)及消息m簽名二元組u, r ;所述系統(tǒng)參數(shù)包括哈希函數(shù) H^哈希函數(shù)&及配對(duì)函數(shù)t ;映射模塊,用于通過消息m簽名二元組中的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2(m, r),將消息m映射為一個(gè)整數(shù)v ;公鑰計(jì)算模塊,用于通過系統(tǒng)參數(shù)中的哈希函數(shù)&計(jì)算& (ID)計(jì)算發(fā)送所述消息m的 用戶的公鑰QID ;其中,ID為對(duì)所述消息m進(jìn)行簽名的用戶身份信息;驗(yàn)證模塊,用于通過系統(tǒng)參數(shù)中的配對(duì)函數(shù)t計(jì)算t(u, r)、 t(QID, Qtt)v,對(duì)所述消息m 的簽名二元組(u, r)進(jìn)行驗(yàn)證;其中,QTA為系統(tǒng)公開密鑰。
6. 根據(jù)權(quán)利要求5所述的數(shù)字簽名的驗(yàn)證裝置,其特征在于,所述驗(yàn)證模塊當(dāng)t(u, r) =t(QID, QTA)V時(shí),驗(yàn)證所述消息m的簽名二元組通過驗(yàn)證。
7. —種數(shù)字簽名系統(tǒng),其特征在于,包括上述權(quán)利要求4所述的數(shù)字簽名裝置及上述 權(quán)利要求5或6所述的數(shù)字簽名的驗(yàn)證裝置。
全文摘要
本發(fā)明涉及一種數(shù)字簽名方法、驗(yàn)證方法、數(shù)字簽名裝置及數(shù)字簽名系統(tǒng),簽名方法包括接收系統(tǒng)參數(shù);所述系統(tǒng)參數(shù)包括P及哈希函數(shù)H2;選取隨機(jī)數(shù)k;k∈Zq,Zq為剩余類集{0,1,2,...,q-1};通過公式r=kP得到消息m簽名二元組的一部分;通過得到的r及系統(tǒng)參數(shù)中的哈希函數(shù)H2計(jì)算H2(m,r),將所述消息m映射為一個(gè)整數(shù)v;通過公式u=(v/k)SID得到所述消息m簽名二元組的另一部分;其中,SID為用戶私鑰。通過選取系統(tǒng)參數(shù)P及隨機(jī)數(shù)k生成r,并將r作為消息的簽名二元組中的一個(gè)元素,生成消息的簽名,避免了在簽名的生成過程中計(jì)算配對(duì),簡(jiǎn)化了簽名生成過程,提高了簽名的生成效率。
文檔編號(hào)H04L9/28GK101697513SQ20091017964
公開日2010年4月21日 申請(qǐng)日期2009年10月26日 優(yōu)先權(quán)日2009年10月26日
發(fā)明者王茂才, 羅耀平, 胡漢平, 陳國(guó)喬 申請(qǐng)人:深圳華為通信技術(shù)有限公司;華中科技大學(xué);