一種數(shù)字簽名方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字簽名領(lǐng)域,特別是涉及一種數(shù)字簽名方法和裝置。
【背景技術(shù)】
[0002] 隨著公鑰密碼思想的提出,應(yīng)運(yùn)而生了一系列的數(shù)字簽名技術(shù)方案。數(shù)字簽名相 當(dāng)于一種電子簽章,可以用于加密數(shù)據(jù),以提高數(shù)據(jù)的安全性。目前的數(shù)字簽名方案的實(shí)現(xiàn) 主要基于數(shù)學(xué)難題,所述的數(shù)學(xué)難題例如可以是離散對(duì)數(shù)問(wèn)題(英文:Discrete Logarithm Problem,縮寫:DLP)或整數(shù)分解問(wèn)題(英文:Integer Factorization Problem,縮寫:IFP)。 若想破解一個(gè)數(shù)字簽名,需要能夠解決這個(gè)數(shù)字簽名所基于的數(shù)學(xué)難題。
[0003] 傳統(tǒng)的數(shù)字簽名方案的實(shí)現(xiàn)基本上都僅基于一個(gè)數(shù)學(xué)難題,例如大部分利用圓錐 曲線密碼體制的數(shù)字簽名方案。也就是說(shuō),一個(gè)傳統(tǒng)數(shù)字簽名方案的安全性與其所基于的 數(shù)學(xué)難題的是否能夠被解決相關(guān)。然而隨著技術(shù)的發(fā)展,僅基于一個(gè)數(shù)學(xué)難題的數(shù)字簽名 方案越來(lái)越容易被破解,導(dǎo)致數(shù)字簽名的安全性難以保證。
【發(fā)明內(nèi)容】
[0004] 為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種數(shù)字簽名方法和裝置,破解者必須同 時(shí)破解兩個(gè)數(shù)學(xué)難題才可能破解所述數(shù)字簽名,從而大大提高了數(shù)字簽名的破解難度,保 證了數(shù)字簽名的安全性。
[0005] 本發(fā)明實(shí)施例公開了如下技術(shù)方案:
[0006] -種數(shù)字簽名方法,所述方法包括:
[0007] 選定圓錐曲線Cn(a,b),其中a和b*Cn(a,b)的函數(shù)中的參數(shù), &,13三2",2"是〇1(&,13) 的模n的剩余類環(huán);
[0008] WCn(a,b)上確定一個(gè)基點(diǎn)G,其中6=(紅^),6的階仏為:
[0009] Nn=lcm{|CP(a,b)|,|Cq(a,b)|}=2r S,其中p和q為大素?cái)?shù),滿足
且p+1 = 2r,q+l = 2s,r和s為素?cái)?shù),lcm為計(jì)算最小公倍數(shù)函數(shù);
[0010] 根據(jù)Cn(a,b)和G確定出用于數(shù)字簽名的私鑰d和公鑰Q,且不公開(1和1,其中 e:,Q=dG,為不包括原點(diǎn)的&vn ;
[0011] 將消息m通過(guò)算法嵌入cn(a,b)中,得到Cn(a,b)中的一個(gè)點(diǎn)P(m),其中P(m) = (xm,
[0012] 使用d對(duì)P(m)進(jìn)行數(shù)字簽名操作,得到m的數(shù)字簽名(y,S,G〇),其中y為根據(jù)G和P (m)得到,Go和S為通過(guò)y得到。
[0013] 可選的,所述使用d對(duì)P(m)進(jìn)行數(shù)字簽名操作,具體包括:
[0014] 選擇一個(gè)整數(shù)k,其中灸;
[0015]計(jì)算戶(樹)'? 奴^ = (xi,-vi) , y 三xi(modNn),以及 y G = (xn,yn),設(shè)(xn,yn)為G。,如果 T =0,則重新選擇一個(gè)k;
[0016] 計(jì)算5三k+ y d(modNn),如果5 = 0,則重新選擇一個(gè)k,其中,y和5均取Nn的最小非 負(fù)剩余。
[0017] 可選的,在確定出G、d、Q的過(guò)程中、將m嵌入Cn(a,b)以及進(jìn)行數(shù)字簽名操作的過(guò)程 中使用標(biāo)準(zhǔn)二進(jìn)制的方式。
[0018] 可選的,所述將消息m通過(guò)算法嵌入Cn(a,b)中,包括:
[0019] 使用明文嵌入算法將m嵌入Cn(a,b)中。
[0020] 可選的,在獲?。▂,S,Go)時(shí),對(duì)(y,S,Go)進(jìn)行驗(yàn)證,具體包括:
[0021] 計(jì)算? (-;,0) ?/"(??) = (<,J〔') ' ?
[0022] 在X矣(0,0)時(shí),進(jìn)一步計(jì)算= (\,凡)當(dāng)-(Xw,_yM)時(shí)確定(Y, *) -- 5,Go)合法。
[0023] 一種數(shù)字簽名裝置,所述裝置包括:
[0024] 選定單元,用于選定圓錐曲線Cn(a,b),其中a和b為Cn(a,b)的函數(shù)中的參數(shù),a,be Z n,Zn是Cn (a,b)的模n的剩余類環(huán);
[0025] 第一確定單元,用于從Cn(a,b)上確定一個(gè)基點(diǎn)G,其中G= (xc,yc),G的階Nn為:Nn = lcm{ |CP(a,b) |,|Cq(a,b) | }=2rs,其中p和q為大素?cái)?shù),滿足
.,且p+1 = 2r,q+ 1 = 2s,r和s為素?cái)?shù),lcm為計(jì)算最小公倍數(shù)函數(shù);
[0026] 第二確定單元,用于根據(jù)Cn(a,b)和G確定出用于數(shù)字簽名的私鑰d和公鑰Q,且不 公開(1和~,其中忒€ ,Q = dG,:Z^^不包括原點(diǎn)的;
[0027] 嵌入單元,用于將消息m通過(guò)算法嵌入Cn(a,b)中,得到Cn(a,b)中的一個(gè)點(diǎn)P (m),其 中 P(m) = (xm,ym)
[0028] 簽名單元,用于使用d對(duì)P(m)進(jìn)行數(shù)字簽名操作,得到m的數(shù)字簽名(y,S,Go),其 中Y為根據(jù)G和P(m)得到,Go和S為通過(guò)y得到。
[0029]可選的,所述簽名單元,具體包括:
[0030]選擇子單元,用于選擇一個(gè)整數(shù)k,其中灸e ;
[0031 ]第一計(jì)算子單元,計(jì)算.^(明)?^7 = (.vi,.ri), y 三xi(modNn),以及 y G = (xn,yn),設(shè) (xn,yn)為Go,如果y = 0,則重新觸發(fā)所述選擇子單元選擇一個(gè)k;
[0032] 第二計(jì)算子單元,用于計(jì)算5三k+ y d(modNn),如果5 = 0,則重新觸發(fā)所述選擇子 單元選擇一個(gè)k,其中,y和5均取Nn的最小非負(fù)剩余。
[0033] 可選的,在確定出G、d、Q的過(guò)程中、將m嵌入Cn(a,b)以及進(jìn)行數(shù)字簽名操作的過(guò)程 中使用標(biāo)準(zhǔn)二進(jìn)制的方式。
[0034] 可選的,所述嵌入單元具體用于使用明文嵌入算法將m嵌入Cn(a,b)中。
[0035] 可選的,還包括:
[0036] 驗(yàn)證單元,用于在獲?。▂,S,G〇)時(shí),對(duì)(y,S,G〇)進(jìn)行驗(yàn)證,具體包括
[0037] 計(jì)算;T= 十(―70十尸(m) = ;
[0038] 在X關(guān)(0,0)時(shí),進(jìn)一步計(jì)算凡),當(dāng)時(shí)確定(y, 5,Go)合法。
[0039] 由上述技術(shù)方案可以看出,在通過(guò)選定圓錐曲線匕",)確定出公鑰和私鑰d的過(guò) 程中,不對(duì)外公開d和選定基點(diǎn)的階化,從而當(dāng)希望破解數(shù)字簽名的情況時(shí),由于化沒有能公 開,破解者不能直接通過(guò)N n與r、s之間的關(guān)系,以及r、s與p、q之間的關(guān)系計(jì)算出Cn(a,b)中的 P和q,破解者必須同時(shí)破解兩個(gè)數(shù)學(xué)難題才可能破解所述數(shù)字簽名,從而大大提高了數(shù)字 簽名的破解難度,保證了數(shù)字簽名的安全性。
【附圖說(shuō)明】
[0040] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。
[0041 ]圖1為本發(fā)明實(shí)施例提供的一種數(shù)字簽名方法的方法流程圖;
[0042] 圖2為本發(fā)明實(shí)施例提供的一種數(shù)字簽名的步驟示意圖;
[0043] 圖3為本發(fā)明實(shí)施例提供的一種數(shù)字簽名裝置的裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0044]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實(shí)施例是本發(fā)明 一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有 做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045] -個(gè)數(shù)學(xué)難題的被破解難度和基于這個(gè)數(shù)學(xué)難題構(gòu)造的數(shù)字簽名的安全性直接 相關(guān)。不過(guò)隨著技術(shù)的發(fā)展,單個(gè)數(shù)學(xué)難題被破解的可能性越來(lái)越高,也就是說(shuō),基于單個(gè) 數(shù)學(xué)難題的數(shù)字簽名方案已經(jīng)難以保證其安全性。
[0046] 發(fā)明人通過(guò)對(duì)基于圓錐曲線密碼體制的研究發(fā)現(xiàn),通過(guò)環(huán)上圓錐曲線來(lái)構(gòu)建密碼 體制,可以具有實(shí)現(xiàn)基于雙難題的數(shù)字簽名方案的實(shí)現(xiàn)基礎(chǔ)。例如可以同時(shí)基于數(shù)學(xué)難題 DLP和IFP的數(shù)字簽名方案,同時(shí)解決兩個(gè)數(shù)學(xué)難題的難度幾何倍數(shù)于解決一個(gè)數(shù)學(xué)難題的 難度,可以很好的保證數(shù)字簽名的安全性。
[0047]不過(guò)傳統(tǒng)中可能或聲稱基于雙難題的數(shù)值簽名方案中,由于為了能夠通過(guò)公鑰正 常解密數(shù)字簽名,需要公開的參數(shù)較多。發(fā)明人發(fā)現(xiàn),通過(guò)公開參數(shù)中一部分參數(shù),經(jīng)過(guò)簡(jiǎn) 單的數(shù)學(xué)計(jì)算,便可以直接獲得原本需要解決雙難題中一個(gè)數(shù)學(xué)難題才能得到的數(shù)值。