專利名稱:一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)互聯(lián)網(wǎng)安全領(lǐng)域,具體涉及移動(dòng)Widget的一種數(shù)字簽名認(rèn)證方法。
背景技術(shù):
微技(Widget)業(yè)務(wù)源于2003年在蘋果Mac OS X操作系統(tǒng)上最早研發(fā)的一種可以添加Java Script小程序的平臺(tái),這個(gè)平臺(tái)上的小程序后來逐漸被擴(kuò)展到以桌面和互聯(lián)網(wǎng)為主要特征的各種更加豐富的應(yīng)用。由于Widget的發(fā)展帶有明顯的互聯(lián)網(wǎng)特征,W3C的文檔也把微技稱為客戶端互聯(lián)網(wǎng)應(yīng)用(Client-Side Web Applications), W3C組織對(duì)互聯(lián)網(wǎng)微技(Web Widget)給出了定義微技是一類能夠顯示和更新本地?cái)?shù)據(jù)或Web數(shù)據(jù)的客戶端應(yīng)用程序,并能夠打包成單一的下載包安裝到客戶端設(shè)備上。W3C關(guān)于微技的定義突出了客戶端應(yīng)用程序、能夠顯示和更新數(shù)據(jù)、能夠打包成單一的下載包進(jìn)行安裝等。移動(dòng)微技(Mobile Widget)是指運(yùn)行于移動(dòng)終端上的微技。由于手機(jī)終端屏幕相對(duì)較小,可呈現(xiàn)的信息量相對(duì)較少,輸入網(wǎng)址不方便,交互操作慢等原因,微技的應(yīng)用框架非常適合手機(jī)終端使用互聯(lián)網(wǎng)應(yīng)用。很多情況下,移動(dòng)用戶在用瀏覽器上網(wǎng)時(shí)很多無用信息占用了稀缺的屏幕資源,導(dǎo)致手機(jī)上網(wǎng)用戶體驗(yàn)較差,而移動(dòng)微技不僅可以獨(dú)立于瀏覽器運(yùn)行以有效地利用手機(jī)屏幕,而且可以更加快速、方便地訪問移動(dòng)互聯(lián)網(wǎng)的特定數(shù)據(jù)。移動(dòng)微技業(yè)務(wù)具備更有效利用屏幕和更方便訪問互聯(lián)網(wǎng)的特點(diǎn),因此能夠給手機(jī)用戶帶來良好的呈現(xiàn)方式和互聯(lián)網(wǎng)體驗(yàn)。隨著手機(jī)數(shù)據(jù)帶寬的不斷增長,手機(jī)屏幕的不斷增大,移動(dòng)微技業(yè)務(wù)的應(yīng)用會(huì)越來越廣泛。手機(jī)、個(gè)人計(jì)算機(jī)、互聯(lián)網(wǎng)的軟件服務(wù)共享將是未來互聯(lián)網(wǎng)發(fā)展的趨勢(shì),移動(dòng)微技可以看作是互聯(lián)網(wǎng)軟件服務(wù)在手機(jī)終端上的縮影。移動(dòng)微技具有小巧輕便、開發(fā)成本低、基于標(biāo)準(zhǔn)Web技術(shù),開發(fā)門檻低,潛在開發(fā)者眾多、與操作系統(tǒng)耦合度低和功能完整等特點(diǎn),用戶可以通過移動(dòng)微技實(shí)現(xiàn)個(gè)性化的用戶界面,是手機(jī)應(yīng)用個(gè)性化的突破口。另外,移動(dòng)微技區(qū)別于互聯(lián)網(wǎng)微技最大的不同在于可以充分的應(yīng)用移動(dòng)增值業(yè)務(wù),例如基于短信、位置服務(wù)等通信能力或運(yùn)營商應(yīng)用平臺(tái)提供的信息開發(fā)的應(yīng)用,因此移動(dòng)微技業(yè)務(wù)已經(jīng)逐漸得到越來越多運(yùn)營商、手機(jī)制造商和軟件開發(fā)商的關(guān)注和重視。數(shù)字簽名是一種電子簽名技術(shù),發(fā)送者根據(jù)消息產(chǎn)生摘要,并對(duì)摘要用自身的簽名私鑰進(jìn)行加密。消息和用自身簽名私鑰加密的數(shù)字摘要組合成為數(shù)字簽名。缺少數(shù)字簽名的移動(dòng)Widget包可能被未經(jīng)授權(quán)修改,且最終用戶無法得知移動(dòng)Widget的來源是其所信任的可靠來源,這些都可能導(dǎo)致用戶的信息泄露或其他安全問題。因此對(duì)移動(dòng)widget包進(jìn)行數(shù)字簽名,驗(yàn)證簽名者的身份,確保信息來源的可靠性是非常有必要的。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供移動(dòng)Widget的一種數(shù)字簽名認(rèn)證方法,以驗(yàn)證消息發(fā)送方的身份,并保證消息內(nèi)容的完整性、正確性以及可靠性。為了解決現(xiàn)有技術(shù)中問題,本發(fā)明提供了一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,包括以下步驟產(chǎn)生證書開發(fā)者向認(rèn)證機(jī)構(gòu)中的注冊(cè)機(jī)構(gòu)RA提交開發(fā)者證書申請(qǐng),由RA對(duì)相關(guān)內(nèi)容進(jìn)行審核并決定是否審批通過該證書申請(qǐng)的請(qǐng)求,通過后RA將申請(qǐng)請(qǐng)求及審批通過的信息提交給認(rèn)證中心CA,由CA進(jìn)行證書的簽發(fā);簽名證書申請(qǐng)被批準(zhǔn)注冊(cè)之后,RA端的應(yīng)用程序初始化申請(qǐng)者的信息,給開發(fā)者頒發(fā)證書,發(fā)送私鑰,CA在LDAP目錄服務(wù)器中添加證書申請(qǐng)人的有關(guān)信息,開發(fā)者收到私鑰之后,在開發(fā)平臺(tái)上對(duì)編譯通過的程序進(jìn)行簽名,上傳至Web服務(wù)器;驗(yàn)證普通用戶從Web服務(wù)器上下載應(yīng)用程序之后,再從LADP下載相應(yīng)開發(fā)者的公鑰證書,對(duì)下載后的程序進(jìn)行驗(yàn)證。作為本發(fā)明的進(jìn)一步改進(jìn),認(rèn)證機(jī)構(gòu)的密鑰管理系統(tǒng)包括負(fù)責(zé)生成密鑰的密鑰生成子系統(tǒng),負(fù)責(zé)存放密鑰的密鑰庫子系統(tǒng),為用戶提供密鑰恢復(fù)功能的密鑰恢復(fù)子系統(tǒng),負(fù)責(zé)對(duì)整個(gè)密鑰系統(tǒng)提供配置管理的密鑰管理子系統(tǒng),包含KM ADMIN終端和AUDIT審計(jì)終 端的終端系統(tǒng)。作為本發(fā)明的進(jìn)一步改進(jìn),開發(fā)者利用私鑰對(duì)代碼m進(jìn)行簽名,橢圓曲線數(shù)字簽名方案簽名的生成過程如下I)隨機(jī)或偽隨機(jī)地選擇一個(gè)整數(shù)k e EZn* ;2)計(jì)算公鑰Q和X1除以η的余數(shù)rQ=IiG=(X1J1)式中X1, Y1——橢圓曲線上的橫坐標(biāo)和縱坐標(biāo);Γ=χ^ο η如果r=0,則返回到I);3)計(jì)算k_l對(duì)η的余數(shù)s’s’ = k^modn4)計(jì)算信息摘要e=SHA-l (m)5)計(jì)算s=kTl (e+dr)modn如果s=0,則返回到I), (r, s)是A對(duì)消息m的簽名。作為本發(fā)明的進(jìn)一步改進(jìn),在客戶端對(duì)下載程序進(jìn)行驗(yàn)證客戶端驗(yàn)證(r,s)是A對(duì)消息m的簽名的驗(yàn)證方法流程如下11)驗(yàn)證r,s是[l,n-l]中的整數(shù);12)計(jì)算信息摘要ee=SHA-l (m)13)計(jì)算s_l對(duì)η的余數(shù)w = s_1modn14)分別計(jì)算ew和rw對(duì)η的余數(shù)U1=Gwmodnu2=rwmodn15)計(jì)算驗(yàn)證信息
X=U1G+!^= (X1, y)。作為本發(fā)明的進(jìn)一步改進(jìn),安全橢圓曲線選取包括以下四種方法第一有限域GF(q)上隨機(jī)生成一橢圓曲線,直接計(jì)算其階,判斷階是否為大素?cái)?shù)或含大素?cái)?shù)因子,若是取出確定,否則繼續(xù)選取曲線,直至符合條件;第二 取具有一定特殊性橢圓曲線的系數(shù),計(jì)算該橢圓曲線的階,對(duì)該階進(jìn)行判斷,直至找到所需要的安全曲線;第三如果q=2m,其中m能被一個(gè)比較小的整數(shù)d整除,我們首先在有限域GF (Ql)(qi=2d)上選擇橢圓曲線E'并計(jì)算其階,根據(jù)此值,利用Weil定理計(jì)算該曲線在其擴(kuò)域GF(q)上的階,若此階符合安全標(biāo)準(zhǔn),我們?cè)僬仪€E'在域GF(q)上的嵌入E,則E即為所需的安全橢圓曲線;第四首先給出具有安全條件的曲線階,然后構(gòu)造具有此階的橢圓曲線。 作為本發(fā)明的進(jìn)一步改進(jìn),橢圓曲線的生成方法如下A.隨機(jī)產(chǎn)生一個(gè)長度為g的比特串seedE,g>160 ;B.計(jì)算H=SHAl (seedE),然后把H的最右邊V比特賦給C。;C.把Ctl的最左邊位(即第V比特)設(shè)置為0,把變化后的Ctl賦給W0 ;該捕捉確保了r〈p ;D.把g比特的seedE轉(zhuǎn)換為整數(shù),記做z ;E.循環(huán)處理,i從I到s, SiMz+iJmoc^g,把Si作為比特串看待,計(jì)算Wi=SHAl (Si);F.將所有的Wi以如下形式合并成wff=ff0 Iw1I |... I IWsI I代表連接;G.將W比特串轉(zhuǎn)化為整數(shù)r ;H.如果r=0,或者4r+27=0modp ;那么回到步驟I);I.隨機(jī)產(chǎn)生 a、b, a, b e Fp。如a=r, b=r ;J.到此,求基于Fp的橢圓曲線方程E y2=x3+ax+b ;K.輸出(seedE, a, b)。作為本發(fā)明的進(jìn)一步改進(jìn),橢圓密碼算法如下給出直接計(jì)算2SP,1 ( s<m的公式,先推導(dǎo)出2SP,1 ( s<m的表達(dá)式,記
2kP= (xk, yk),則
fΛ2 (ΛXk 二 ^-i+— + +—+ *
I) I f \V2^1 = X2^1 + + ^ Xk + Xk
IXk-l)把(xk,yk)直接表示A = — + axVk形式,其中ak,bk, ck都是關(guān)于x,y的整式,
Ck Vk
將七=—+aJ\ 帶入遞推式,就得到了 ak,bk, ck的遞推公式如下
Ck CkCk= δ 2, ak= Y 2+ δ γ , bk=a\—彳 δ γ xk其中δ =8^0^!, Y =a2k_1+bk_1+ck_1,而 a0=x, b0=y, C0=I由此計(jì)算公式,來估計(jì)改進(jìn)過的方法計(jì)算量,在改進(jìn)的方法中計(jì)算2SP, I < s < m的運(yùn)算量為4s次乘法,4s次平方,I次求逆,而逐次計(jì)算2SP,l^s^m則需要2s次乘方,S次求逆。本發(fā)明將公鑰基礎(chǔ)設(shè)施PKI與橢圓曲線加密機(jī)制相結(jié)合,實(shí)現(xiàn)了移動(dòng)widget開發(fā)者的證書申請(qǐng)、證書頒發(fā)、證書獲取、widget簽名以及widget驗(yàn)證。在此基礎(chǔ)上,通過對(duì)橢圓曲線算法中傳統(tǒng)的標(biāo)量乘運(yùn)算改進(jìn),加快了 widget的簽名與驗(yàn)證的速度。鑒權(quán)根據(jù)第三方權(quán)威機(jī)構(gòu)CA頒發(fā)的開發(fā)者證書,使得開發(fā)者身份具有可信性。完整性傳送移動(dòng)Widget的雙方都總希望確認(rèn)Widget在傳輸過程中未被修改,數(shù)字簽名技術(shù)可以驗(yàn)證消息傳送過程中的完整性。不可抵賴性移動(dòng)Widget的安裝者可以通過數(shù)字簽名來防止后續(xù)的抵賴行為,因?yàn)樗梢猿鍪鹃_發(fā)者的簽名文件給別人看,來證明該移動(dòng)Widget的來源。
圖I是本發(fā)明系統(tǒng)總體架構(gòu)圖; 圖2是本發(fā)明密鑰管理系統(tǒng)邏輯結(jié)構(gòu)圖;圖3是本發(fā)明開發(fā)者系統(tǒng)模塊圖;圖4是本發(fā)明數(shù)據(jù)簽名處理流程圖;圖5是本發(fā)明驗(yàn)證數(shù)據(jù)簽名處理流程圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步說明。系統(tǒng)將公鑰基礎(chǔ)設(shè)施PKI與橢圓曲線加密機(jī)制相結(jié)合,實(shí)現(xiàn)了移動(dòng)widget開發(fā)者的證書申請(qǐng)、證書頒發(fā)、證書獲取、widget簽名以及widget驗(yàn)證。在此基礎(chǔ)上,通過對(duì)橢圓曲線算法中傳統(tǒng)的標(biāo)量乘運(yùn)算改進(jìn),加快了 widget的簽名與驗(yàn)證的速度。系統(tǒng)的整體結(jié)構(gòu)如圖I所示整個(gè)系統(tǒng)分為3個(gè)模塊,開發(fā)者模塊、認(rèn)證機(jī)構(gòu)模塊、客戶端模塊。系統(tǒng)總體流程如下I)產(chǎn)生證書開發(fā)者需要首先向注冊(cè)機(jī)構(gòu)RA提交開發(fā)者證書申請(qǐng),由RA對(duì)相關(guān)內(nèi)容進(jìn)行審核并決定是否審批通過該證書申請(qǐng)的請(qǐng)求。通過后RA將申請(qǐng)請(qǐng)求及審批通過的信息提交給相應(yīng)的認(rèn)證中心CA,由CA進(jìn)行證書的簽發(fā)。2)簽名證書申請(qǐng)被批準(zhǔn)注冊(cè)之后,RA端的應(yīng)用程序初始化申請(qǐng)者的信息,給開發(fā)者頒發(fā)證書,發(fā)送私鑰,CA在目錄服務(wù)器(LDAP)中添加證書申請(qǐng)人的有關(guān)信息,開發(fā)者收到私鑰之后,就能在開發(fā)平臺(tái)上對(duì)編譯通過的程序進(jìn)行簽名,上傳至Web服務(wù)器。3)驗(yàn)證普通用戶從Web服務(wù)器上下載應(yīng)用程序之后,再從LADP下載相應(yīng)開發(fā)者的公鑰證書,對(duì)下載后的程序進(jìn)行驗(yàn)證。I、下面將對(duì)系統(tǒng)的各個(gè)主要模塊進(jìn)行介紹I. I認(rèn)證機(jī)構(gòu)模塊核心功能設(shè)計(jì),如圖2所示認(rèn)證機(jī)構(gòu)是公鑰基礎(chǔ)設(shè)施(PKI)的核心機(jī)構(gòu)。它是數(shù)字證書的簽發(fā)機(jī)構(gòu)。它的關(guān)鍵問題是如何實(shí)現(xiàn)密鑰管理。圖2即為密鑰管理系統(tǒng)邏輯結(jié)構(gòu)圖。它主要由以下5個(gè)部分組成負(fù)責(zé)生成密鑰的密鑰生成子系統(tǒng),負(fù)責(zé)存放密鑰的密鑰庫子系統(tǒng),為用戶提供密鑰恢復(fù)功能的密鑰恢復(fù)子系統(tǒng),負(fù)責(zé)對(duì)整個(gè)密鑰系統(tǒng)提供配置管理的密鑰管理子系統(tǒng),包含密鑰管理終端(KM ADMIN)和審計(jì)終端(AUDIT)的終端系統(tǒng)。I. 2開發(fā)者模塊核心功能設(shè)計(jì),如圖3所示這是開發(fā)者系統(tǒng)的主要模塊圖。開發(fā)者開發(fā)完成的代碼,經(jīng)GNU編譯器(Linux下的C語言編譯器,GCC)編譯和跨平臺(tái)編譯引擎之后,經(jīng)過Widget的安全模塊才能轉(zhuǎn)換到各自移動(dòng)平臺(tái)的執(zhí)行程序;這里主要介紹在圖中虛線框的部分,根據(jù)開發(fā)者的開發(fā)等級(jí)匹配相應(yīng)的數(shù)字簽名證書,對(duì)編譯完成的程序進(jìn)行數(shù)字簽名。橢圓曲線數(shù)字簽名方案(EOTSA)是數(shù)字簽名算法(DSA)體制在橢圓曲線上的移植。由于系統(tǒng)還沒有集成,所以目前是針對(duì)每個(gè)模塊分別做的一些事例。橢圓曲線的主要參數(shù)包括定義在有限域GF(q)上的橢圓曲線E,GF(q)的特征是 P,E上的GF (q)-有理點(diǎn)的個(gè)數(shù)#E (GF (q))可被一個(gè)大素?cái)?shù)η整除,一個(gè)基點(diǎn)G e E (GF (q))。我們可記D= {q, FR, a, b, G, n, h}和密鑰對(duì){d, Q}, SHA_1。各參數(shù)的含義如下所示I) q-有限域的元素個(gè)數(shù),這里q=p或者q=2m ;2)FR—有限域中元素的表示方法(例如多項(xiàng)式表示或正規(guī)基表示等);3) a、b-GF (q)上的橢圓曲線 y2=x3+ax+b 的參數(shù);4) G——E (GF (q))中的一個(gè)點(diǎn);5) η-一個(gè)素?cái)?shù),n ^ 2圃且《 ^ 4^/g ;6)h—余因子,h遠(yuǎn)小于n,利用h可以較快找到滿足上面條件的基點(diǎn)G :隨機(jī)取G’ e E(GF(q)),計(jì)算 hG,如果 hG 關(guān) 0,則令 G=hG'; 7) d——簽名私鑰,d e EZn* ;8) Q——簽名驗(yàn)證公鑰,Q=dG ;9) SHA-I——美國NIST和NSA設(shè)計(jì)的一種安全hash算法,輸入信息長度一般都小于 264bit。開發(fā)者A利用該私鑰對(duì)代碼m進(jìn)行簽名,E⑶SA簽名的生成過程如圖4所示6)隨機(jī)或偽隨機(jī)地選擇一個(gè)整數(shù)k e EZn* ;7)計(jì)算公鑰Q和X1除以η的余數(shù)rQ=IiG=(X1J1) (2-1)式中X1, Y1——橢圓曲線上的橫坐標(biāo)和縱坐標(biāo);Γ=χ^ο η (2-2)如果r=0,則返回到I);8)計(jì)算k_l對(duì)η的余數(shù)s’s' =k_1modn (2-3)9)計(jì)算信息摘要e=SHA-l (m) (2-4)10)計(jì)算s=kTl (e+dr)modn (2-5)如果s=0,則返回至Ij I), (r, s)是A對(duì)消息m的簽名。三、客戶端模塊核心功能設(shè)計(jì)
客戶端模塊主要完成的工作有兩個(gè)I)從服務(wù)器上下載開發(fā)者開發(fā)的程序;2)對(duì)下載的程序進(jìn)行開發(fā)者認(rèn)證,以便安全使用。在客戶端需要完成的工作,主要是對(duì)下載程序進(jìn)行驗(yàn)證。用戶B驗(yàn)證(r,s)是A 對(duì)消息m的簽名的驗(yàn)證算法流程如下所示I)驗(yàn)證r,s是[l,n-l]中的整數(shù);2)計(jì)算信息摘要ee = SHA-I (m)(2-6)3)計(jì)算s_l對(duì)η的余數(shù)W=S-Imodn (2-7)4)分別計(jì)算ew和rw對(duì)η的余數(shù)U1 = ewmodn(2-8)u2 = rwmodn(2-9)5)計(jì)算驗(yàn)證信息X = u1G+u2Q=(x1, Y1)(2-10)程序?qū)崿F(xiàn)的流程如圖5所示。2、關(guān)鍵技術(shù)介紹2. 2橢圓密碼算法的實(shí)現(xiàn)與改進(jìn)2. 2. I橢圓曲線的選取曲線的選取對(duì)系統(tǒng)的安全性有很大的影響,選擇的曲線如果不具有很強(qiáng)的密碼安全特性,則在此基礎(chǔ)上建立起來的密碼系統(tǒng)將會(huì)很脆弱。為了抵抗所有已知的對(duì)ECDLP的攻擊,密碼方案中使用的橢圓曲線的參數(shù)應(yīng)該謹(jǐn)慎選擇。首先異常曲線是極不適合用來構(gòu)建密碼系統(tǒng)的曲線,因此一定要避免,只要保證#E(FP)關(guān)P即可排除異常曲線。其次,最好的通用攻擊方法是將Pohlig-Hellman算法和Pollard’ srho算法相結(jié)合,該方法的運(yùn)行時(shí)間為完全指數(shù)時(shí)間Of#),其中P是η的最大素因子。為了抵抗該種攻擊,所選的曲線的階中必須包含一個(gè)足夠大的因子η,橢圓曲線參數(shù)的選擇要求η含有大素?cái)?shù)因子P,P應(yīng)該足夠大,以使得P的計(jì)算量不可實(shí)際實(shí)現(xiàn)(如p>2im\安全橢圓曲線選取主要有以下四種方法I)有限域GF(q)上隨機(jī)生成一橢圓曲線,直接計(jì)算其階,判斷階是否為大素?cái)?shù)或含大素?cái)?shù)因子,若是取出確定,否則繼續(xù)選取曲線,直至符合條件。2)取具有一定特殊性橢圓曲線的系數(shù),計(jì)算該橢圓曲線的階,對(duì)該階進(jìn)行判斷,直至找到所需要的安全曲線。3)如果q = 2m,其中m能被一個(gè)比較小的整數(shù)d整除,我們首先在有限域GF(Q1)(Q1 = 2d)上選擇橢圓曲線E’并計(jì)算其階,根據(jù)此值,利用Weil定理計(jì)算該曲線在其擴(kuò)域GF(q)上的階,若此階符合安全標(biāo)準(zhǔn),我們?cè)僬仪€E'在域GF(q)上的嵌入E,則E即為所需的安全橢圓曲線。4)首先給出具有安全條件的曲線階,然后構(gòu)造具有此階的橢圓曲線。
2. 2. 2隨機(jī)曲線的生成2. 2. 2. I單向散列函數(shù)散列(Hash)函數(shù)(又稱為哈希函數(shù)、雜湊函數(shù)),是被設(shè)計(jì)為基于通過特定壓縮函數(shù)的不斷重復(fù)“壓縮”輸入的分組和前一次壓縮處理結(jié)果的過程,直到整個(gè)消息都被壓縮完畢,最后的輸出作為整個(gè)消息的散列值。換句話說,就是輸入一個(gè)長度不固定的字符串,返回一串定長度的字符串,又稱Hash值。2. 2. 2. 2曲線的生成基于Fp 的捕圓曲線 E :y2=x3+ax+b ;a, b e Fp,4a3+27b2 幸 O (modp)。其中,ANSIX9. 62推薦P至少為160bit,下面的算法使用單向散列函數(shù)SHA-1。為了驗(yàn)證曲線方程是隨機(jī)產(chǎn)生的,使用了一個(gè)隨機(jī)的比特串(seedE),其也作為隨機(jī)產(chǎn)生的證據(jù)。
下面的算法輸入是P,P為一個(gè)大的素?cái)?shù)。輸出是一個(gè)至少160bit的比特串seedE、a、b, a, b e Fp。另外,算法中使用如下幾個(gè)變量t = [log2p ]s=[(t_l)/160]v=t-160s可以理解為t表示P的二進(jìn)制長度或長度減一,s表示P有多少個(gè)整160比特長度,V為P的串除以160之后的余量。算法如下L.隨機(jī)產(chǎn)生一個(gè)長度為g的比特串seedE,g>160 ;Μ.計(jì)算H=SHAl (seedE),然后把H的最右邊V比特賦給C。;N.把Ctl的最左邊位(即第V比特)設(shè)置為0,把變化后的Ctl賦給Wtl ;該捕捉確保了r〈p ;O.把g比特的seedE轉(zhuǎn)換為整數(shù),記做z ;P.循環(huán)處理,i從I到s, SiKz+Dmoc^g,把Si作為比特串看待,計(jì)算Wi=SHAl (Si);Q.將所有的Wi以如下形式合并成w:w=wQ| Iw1I ... |WS| I代表連接R.將W比特串轉(zhuǎn)化為整數(shù)r ;S.如果r=0,或者4r+27=0modp ;那么回到步驟I);T.隨機(jī)產(chǎn)生 a、b, a, b e Fp。如a=r, b=r。U.到此,求基于Fp的橢圓曲線方程E y2=x3+ax+b ;V.輸出(seedE, a, b)。2. 2. 2. 3將明文消息嵌入到橢圓曲線上使用橢圓曲線構(gòu)造密碼體制前,需要將明文消息鑲嵌到橢圓曲線上,作為橢圓曲線上的點(diǎn)。設(shè)明文消息是,k是一個(gè)足夠大的整數(shù),使得將明文消息鑲嵌到橢圓曲線上時(shí),錯(cuò)誤的概率是2_k。實(shí)際情況中,k可以在3(Γ50之間取值。不防取k=30,對(duì)明文消息m,如下計(jì)算一系列X X= {m k+j, j=0, I, 2, . . . } = {30m, 30m+1, 30m+2, . . . }直到x3+ax+b (modp)是平方根,即得到捕圓曲線上的點(diǎn)+ ax + 5 j。因?yàn)樵贠
到P的整數(shù)中,有一半是模P的平方剩余,一半是模P的非平方剩余。所以k次找到X,使得x3+ax+b (modp)是一平方根不小于1-2'
反過來,為了從橢圓曲線上的點(diǎn)(x,y)得到明文消息m,只須求w = |x/30|。2. 2. 3橢圓密碼算法的改進(jìn)2. 2. 3. I前人工作分析根據(jù)橢圓曲線倍點(diǎn)公式,設(shè)P= (X,y), E(F2m), 2P= (X1, Y1),其中
權(quán)利要求
1.一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,其特征在于 產(chǎn)生證書開發(fā)者向認(rèn)證機(jī)構(gòu)中的注冊(cè)機(jī)構(gòu)RA提交開發(fā)者證書申請(qǐng),由RA對(duì)相關(guān)內(nèi)容進(jìn)行審核并決定是否審批通過該證書申請(qǐng)的請(qǐng)求,通過后RA將申請(qǐng)請(qǐng)求及審批通過的信息提交給認(rèn)證中心CA,由CA進(jìn)行證書的簽發(fā); 簽名證書申請(qǐng)被批準(zhǔn)注冊(cè)之后,RA端的應(yīng)用程序初始化申請(qǐng)者的信息,給開發(fā)者頒發(fā)證書,發(fā)送私鑰,CA在LDAP目錄服務(wù)器中添加證書申請(qǐng)人的有關(guān)信息,開發(fā)者收到私鑰之后,在開發(fā)平臺(tái)上對(duì)編譯通過的程序進(jìn)行簽名,上傳至Web服務(wù)器; 驗(yàn)證普通用戶從Web服務(wù)器上下載應(yīng)用程序之后,再從LADP下載相應(yīng)開發(fā)者的公鑰證書,對(duì)下載后的程序進(jìn)行驗(yàn)證。
2.根據(jù)權(quán)利要求I所述的一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,其特征在于認(rèn)證機(jī)構(gòu)的密鑰管理系統(tǒng)包括負(fù)責(zé)生成密鑰的密鑰生成子系統(tǒng),負(fù)責(zé)存放密鑰的密鑰庫子系統(tǒng),為用戶提供密鑰恢復(fù)功能的密鑰恢復(fù)子系統(tǒng),負(fù)責(zé)對(duì)整個(gè)密鑰系統(tǒng)提供配置管理的密鑰管理子系統(tǒng),包含KMADMIN終端和AUDIT審計(jì)終端的終端系統(tǒng)。
3.根據(jù)權(quán)利要求I或2所述的一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,其特征在于所述開發(fā)者利用私鑰對(duì)代碼m進(jìn)行簽名,橢圓曲線數(shù)字簽名方案簽名的生成過程如下 .1)隨機(jī)或偽隨機(jī)地選擇一個(gè)整數(shù)ke EZn* ; . 2)計(jì)算公鑰Q和X1除以η的余數(shù)r Q=kG= (X1, Y1) 式中X1, Yi——橢圓曲線上的橫坐標(biāo)和縱坐標(biāo);T=X1Inodn 如果r=0,則返回到I); .3)計(jì)算k_l對(duì)η的余數(shù)S, s’ = k 1Hiodn .4)計(jì)算信息摘要 e=SHA-l(m) .5)計(jì)算s=kTl (e+dr)modn 如果s=0,則返回到I), (r, s)是A對(duì)消息m的簽名。
4.根據(jù)權(quán)利要求3所述的一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,其特征在于 在客戶端對(duì)下載程序進(jìn)行驗(yàn)證 客戶端驗(yàn)證(r,s)是A對(duì)消息m的簽名的驗(yàn)證方法流程如下 .11)驗(yàn)證r,s是[1,η-I]中的整數(shù); . 12)計(jì)算信息摘要e e=SHA-l(m) .13)計(jì)算si對(duì)η的余數(shù) w = s 1Iiiodn .14)分別計(jì)算ew和rw對(duì)η的余數(shù) U1=Gwmodnu2=rwmodn15)計(jì)算驗(yàn)證信息 X=UpU2Q=U1, Yi)。
5.根據(jù)權(quán)利要求4所述的一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,其特征在于 安全橢圓曲線選取包括以下四種方法 第一有限域GF(q)上隨機(jī)生成一橢圓曲線,直接計(jì)算其階,判斷階是否為大素?cái)?shù)或含大素?cái)?shù)因子,若是取出確定,否則繼續(xù)選取曲線,直至符合條件; 第二 取具有一定特殊性橢圓曲線的系數(shù),計(jì)算該橢圓曲線的階,對(duì)該階進(jìn)行判斷,直至找到所需要的安全曲線; 第三如果q=2m,其中m能被一個(gè)比較小的整數(shù)d整除,我們首先在有限域GF(qi)(qi=2d)上選擇橢圓曲線E'并計(jì)算其階,根據(jù)此值,利用Weil定理計(jì)算該曲線在其擴(kuò)域GF(q)上的階,若此階符合安全標(biāo)準(zhǔn),我們?cè)僬仪€E'在域GF(q)上的嵌入E,則E即為所需的安全橢圓曲線; 第四首先給出具有安全條件的曲線階,然后構(gòu)造具有此階的橢圓曲線。
6.根據(jù)權(quán)利要求5所述的一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,其特征在于 橢圓曲線的生成方法如下 A.隨機(jī)產(chǎn)生一個(gè)長度為g的比特串seedE,g>160; B.計(jì)算H=SHAl(seedE),然后把H的最右邊v比特賦給C。; C.把Ctl的最左邊位(即第V比特)設(shè)置為O,把變化后的Ctl賦給W0;該捕捉確保了 r〈p ; D.把g比特的seedE轉(zhuǎn)換為整數(shù),記做z; E.循環(huán)處理,i從I到s,SiMz+Dmoc^g,把Si作為比特串看待,計(jì)算Wi=SHAl (Si); F.將所有的Wi以如下形式合并成W=W=W0 IwJ |... I Iffs I I代表連接; G.將W比特串轉(zhuǎn)化為整數(shù)r; H.如果r=0,或者4r+27=0modp;那么回到步驟I); I.隨機(jī)產(chǎn)生a、b, a, b e Fp。如a=r, b=r ; J.到此,求基于Fp的橢圓曲線方程E y2=x3+ax+b ; K.輸出(seedE, a, b)。
7.根據(jù)權(quán)利要求6所述的一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,其特征在于橢圓密碼算法如下 給出直接計(jì)算2SP, I ( s Sm的公式,先推導(dǎo)出2SP, I ( s Sm的表達(dá)式,記2kP= (xk, yk),則
全文摘要
本發(fā)明提供了一種面向移動(dòng)微技的數(shù)字簽名認(rèn)證方法,包括以下步驟產(chǎn)生證書開發(fā)者向認(rèn)證機(jī)構(gòu)中的注冊(cè)機(jī)構(gòu)RA提交開發(fā)者證書申請(qǐng),由RA對(duì)相關(guān)內(nèi)容進(jìn)行審核并決定是否審批通過該證書申請(qǐng)的請(qǐng)求,通過后RA將申請(qǐng)請(qǐng)求及審批通過的信息提交給認(rèn)證中心CA,由CA進(jìn)行證書的簽發(fā);簽名證書申請(qǐng)被批準(zhǔn)注冊(cè)之后,RA端的應(yīng)用程序初始化申請(qǐng)者的信息,給開發(fā)者頒發(fā)證書,發(fā)送私鑰,CA在LDAP目錄服務(wù)器中添加證書申請(qǐng)人的有關(guān)信息,開發(fā)者收到私鑰之后,在開發(fā)平臺(tái)上對(duì)編譯通過的程序進(jìn)行簽名,上傳至Web服務(wù)器;驗(yàn)證。本發(fā)明將公鑰基礎(chǔ)設(shè)施PKI與橢圓曲線加密機(jī)制相結(jié)合,實(shí)現(xiàn)了移動(dòng)widget開發(fā)者的證書申請(qǐng)、證書頒發(fā)、證書獲取、widget簽名以及widget驗(yàn)證。
文檔編號(hào)H04W12/06GK102883321SQ20121035529
公開日2013年1月16日 申請(qǐng)日期2012年9月21日 優(yōu)先權(quán)日2012年9月21日
發(fā)明者王軒, 張加佳, 趙海楠, 蒲成燕 申請(qǐng)人:哈爾濱工業(yè)大學(xué)深圳研究生院