欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于SM2算法的密鑰分量托管方法和系統(tǒng)與流程

文檔序號:11709958閱讀:603來源:國知局
一種基于SM2算法的密鑰分量托管方法和系統(tǒng)與流程

本發(fā)明涉及基于sm2公鑰密碼算法和密鑰分割存儲機制的密鑰分量托管方法和系統(tǒng),屬于信息安全領(lǐng)域。



背景技術(shù):

在互聯(lián)網(wǎng)和云計算環(huán)境下,出現(xiàn)了大量與網(wǎng)絡相關(guān)的應用,如網(wǎng)上銀行、網(wǎng)上支付、網(wǎng)上購物和互聯(lián)網(wǎng)醫(yī)療等,需要進行網(wǎng)上用戶身份認證、網(wǎng)上操作確認和用戶隱私保護,以保證網(wǎng)絡應用的安全性。解決這種安全需求的最佳手段是使用公鑰密碼技術(shù)來實現(xiàn)數(shù)字簽名和公鑰加密。在使用公鑰密碼技術(shù)時,保證所使用私鑰的安全則是關(guān)鍵所在。在通常情況下,為了保證私鑰的存儲安全和使用安全,用于簽名和解密的私鑰都要求保存在密碼設備內(nèi),相應的密碼運算也在密碼設備內(nèi)執(zhí)行。所采用的密碼設備在服務器端通常為密碼機,在客戶端為帶cpu的usbkey和ic卡等。但在網(wǎng)絡環(huán)境和手機移動終端等環(huán)境下,使用這些密碼設備來保存密鑰和執(zhí)行密碼運算就很不方便,因而出現(xiàn)了將密鑰保存在手機文件中并在手機上執(zhí)行密碼運算的應用需求。這種軟環(huán)境給密鑰的存儲安全和使用安全帶來很大隱患。為了提高密鑰存儲和密碼運算的安全性,可以采用密鑰分割存儲和多方聯(lián)合計算的方式,將用戶的私鑰分割為幾個分量,各個私鑰分量分散保存在不同的密鑰托管系統(tǒng)中,在需要使用私鑰對一個消息作數(shù)字簽名時,由多個密鑰托管系統(tǒng)聯(lián)合完成簽名計算,最后形成的簽名可使用用戶端的公鑰進行驗證。同樣地,在需要對用戶端公鑰加密后的密文進行解密時,由多個密鑰托管系統(tǒng)聯(lián)合完成對密文的解密計算,實現(xiàn)對加密消息的完整解密。針對國密sm2公鑰密碼算法,已經(jīng)有了相應的密鑰分割方法和聯(lián)合簽名算法(參見申請?zhí)枮?01710157604.0的專利),現(xiàn)在的需求是要建立安全高效的密鑰托管系統(tǒng),為廣大用戶提供私鑰分量的托管服務。當需要密鑰分量托管的用戶量很大(例如達到億級或十億級水平)時,密鑰托管系統(tǒng)必須耗費大量的存儲資源和密碼設備來保存用戶的密鑰和與用戶相關(guān)的信息,必將大大降低系統(tǒng)的運行效率和服務水平。



技術(shù)實現(xiàn)要素:

本發(fā)明針對密鑰分割與聯(lián)合計算需要對大量私鑰分量進行托管的應用需求,提出一種基于標識的私鑰分量托管方法,并由此構(gòu)造一種相應的密鑰分量托管系統(tǒng)(partialkeyescrow,簡稱pke),解決大用戶量場景下的用戶私鑰分量托管問題。采用的技術(shù)方案是,建立n(n≥1)個密鑰分量托管系統(tǒng),在每個密鑰分量托管系統(tǒng)中生成一個主密鑰,通過一種標識映射算法,在用戶密鑰生成階段,密鑰分量托管系統(tǒng)采用系統(tǒng)主密鑰對用戶提供的識別信息進行一種分散映射,生成對應的私鑰分量,但不實際保存這個私鑰分量;在用戶需使用自已的私鑰分量時,按同樣的算法恢復用戶的私鑰分量后,再進行相關(guān)密碼運算。這里所指的用戶識別信息可以是用戶標識、用戶設置的pin碼和用戶端設備信息的一種組合或疊加。采用這種方案的有益效果是密鑰分量托管系統(tǒng)不需要數(shù)據(jù)庫軟件系統(tǒng)和大量的密鑰存儲設備,對管理的用戶數(shù)量沒有限制,可以大大提高系統(tǒng)的運行效率和服務水平,并且安全性沒有任何降低。

本發(fā)明所述基于sm2算法的密鑰分量托管方法和系統(tǒng)所依托的密碼算法為國密sm2公鑰密碼算法和sm3雜湊算法,與sm2相關(guān)的橢圓曲線參數(shù)按國密sm2算法標準設置。有限域上的橢圓曲線記為e(fq),其基點記為g,g的階記為n,sm3雜湊函數(shù)記作h(x)。

本發(fā)明所述基于sm2算法的密鑰分量托管方法和系統(tǒng)涉及到的實體包括用戶和n(n≥1)個密鑰分量托管系統(tǒng),n個密鑰分量托管系統(tǒng)分別記為pke[1],pke[2],…,pke[n]。在系統(tǒng)運行初期,密鑰分量托管系統(tǒng)pke[i]隨機生成1個系統(tǒng)主密鑰mk[i]和1對sm2非對稱密鑰,系統(tǒng)主密鑰mk[i]也可以用非對稱密鑰的私鑰充當。每個用戶面對n個密鑰分量托管系統(tǒng),針對每個密鑰分量托管系統(tǒng),用戶需要提供不同的用戶識別信息,一個用戶的n個識別信息分別記為uid[1],uid[2],…,uid[n]。

所述密鑰分量托管系統(tǒng)pke[i]使用一個密鑰分量映射生成函數(shù)g(x,y),對于每個用戶,通過對系統(tǒng)主密鑰mk[i]和用戶識別信息uid[i]的映射可生成一個私鑰分量di=g(mk[i],uid[i]),且di∈[1,n-1]。

用戶密鑰分量托管的具體實現(xiàn)過程分為密鑰生成和密鑰使用兩個階段,而密鑰生成又包含簽名密鑰生成和加密密鑰生成,密鑰使用又包含聯(lián)合簽名和聯(lián)合解密。

一、簽名密鑰生成

簽名密鑰生成由所述用戶和所述n個密鑰分量托管系統(tǒng)協(xié)同完成,生成步驟如下:

第1步:所述用戶以自已的標識、輸入的pin碼和硬件設備信息等構(gòu)造n個用戶識別信息uid[1],uid[2],…,uid[n],再設置初始值qn+1=g。

第2步:對于i=n,n-1,…,1,所述用戶依次與pke[i]交互執(zhí)行:

(2a)所述用戶以pke[i]的公鑰對uid[i]加密生成一個密文c[i],發(fā)送c[i]和qi+1到pke[i]。

(2b)所述pke[i]使用私鑰對c[i]解密獲取所述用戶uid[i],計算di=g(mk[i],uid[i]),qi=(di)-1qi+1,回送qi到用戶端,將di作為用戶的第i個簽名私鑰分量,但不需保存。

(2c)所述用戶保存qi。

第3步:所述用戶隨機選取d0∈[1,n-1],計算q0=(d0)-1q1,q=q0-g,將d0作為用戶端的簽名私鑰分量保存,將q作為用戶的實際簽名公鑰保存,同時保存q0。

通過上述步驟生成的用戶實際簽名私鑰d=(d0d1d2…dn)-1-1,實際簽名公鑰q=dg。實際簽名私鑰在生成過程中并未出現(xiàn),且對用戶和n個密鑰分量托管系統(tǒng)都不可知。用戶和n個密鑰分量托管系統(tǒng)對各自生成的簽名私鑰分量具有完全自主權(quán),其他用戶或任何第三方都不能獲取其簽名私鑰分量的信息。

二、加密密鑰生成

所述加密密鑰主要用于對消息作公鑰加密和私鑰解密,由所述用戶和所述n個密鑰分量托管系統(tǒng)協(xié)同完成,生成步驟如下:

第1步:所述用戶以自已的標識、輸入的pin碼和硬件設備信息等構(gòu)造n個用戶識別信息uid’[1],uid’[2],…,uid’[n],再設置初始值q’n+1=g。

第2步:所述用戶設置初始值q’n+1=g,對于i=n,n-1,…,1,依次與pke[i]交互執(zhí)行:

(2a)所述用戶以pke[i]的公鑰對uid’[i]加密生成一個密文c[i],發(fā)送c[i]和q’i+1到pke[i]。

(2b)所述pke[i]使用私鑰對c[i]解密獲取所述用戶uid’[i],計算d’i=g(mk[i],uid’[i]),q’i=d’iq’i+1,回送q’i到用戶端,將d’i作為用戶的第i個加密私鑰分量,但不需保存。

第3步:所述用戶隨機選取d’0∈[1,n-1],計算q’0=d’0q1,q’=q’0,將d’0作為用戶端的加密私鑰分量保存,將q’作為用戶的實際加密公鑰保存。

通過上述步驟生成的用戶實際加密私鑰d’=d’0d’1d’2…d’n,實際加密公鑰q’=d’g。實際加密私鑰在生成過程中并未出現(xiàn),且對用戶和n個密鑰分量托管系統(tǒng)都不可知。用戶和n個密鑰分量托管系統(tǒng)對各自生成的私鑰分量具有完全自主權(quán),其他用戶不能獲取其私鑰分量的信息。

三、聯(lián)合簽名

本發(fā)明所述聯(lián)合簽名是指用戶需要對消息作數(shù)字簽名時,由用戶和n個密鑰分量托管系統(tǒng)聯(lián)合按序完成對消息的簽名,且簽名結(jié)果為符合sm2標準的普通簽名,簽名接收方可以使用用戶的實際簽名公鑰進行驗證。

所述簽名方法涉及到用戶和n個密鑰分量托管系統(tǒng)。所述用戶具有簽名私鑰分量d0,所述密鑰分量托管系統(tǒng)pke[i]具有簽名私鑰分量di,所述用戶的實際簽名公鑰為q=((d0d1…dn)-1–1)g。

設待簽名的消息為m,e=h(z||m)是對消息m的摘要值,其中z是與用戶公鑰和用戶標識有關(guān)的信息。首先由用戶和n個密鑰分量托管系統(tǒng)按次序聯(lián)合生成一對隨機密鑰對,再按相反的次序聯(lián)合完成對摘要值e的sm2簽名。所述多方聯(lián)合簽名步驟如下。

第1步:所述用戶以自已的標識、輸入的pin碼和硬件設備信息等重新構(gòu)造n個用戶的識別信息uid[1],uid[2],…,uid[n],再選擇隨機數(shù)k0,計算r0=k0q0。

第2步:對于i=1,2,…,n,所述用戶依次與pke[i]交互執(zhí)行:

(2a)用戶發(fā)送ri-1和qi到pke[i];

(2b)pke[i]隨機選取ki∈[1,n-1],計算ri=ri-1+kiqi,回送ri到用戶;

第3步:設rn=(x1,y1),所述用戶計算r=(e+x1)(modn),并記sn+1=r。

第4步:對于i=n,n-1,…,1,所述用戶依次與pke[i]交互執(zhí)行:

(4a)所述用戶以所述pke[i]的公鑰對uid[i]|ri加密生成一個密文c[i],發(fā)送c[i]和si+1到pke[i];

(4b)所述pke[i]對c[i]作私鑰解密獲取uid[i]和ri’,驗證ri’=ri是否成立,若成立,再計算簽名私鑰分量di=g(mk[i],uid[i])和部分簽名si=ki+si+1di(modn),回送所述部分簽名si到用戶端;

(4c)所述用戶在收到所述pke[i]的部分簽名si后,計算r’=ri-1+siqi–rg,檢驗r’=rn是否成立,若成立,則接受pke[i]的部分簽名si。

第5步:所述用戶計算s=k0+s1d0–r(modn),生成最終簽名(r,s)。

按此步驟生成的簽名(r,s)可以使用公鑰q按sm2簽名的驗證算法進行驗證,具體的證明過程可參見申請?zhí)枮?01710157604.0的專利。

四、聯(lián)合解密

當用戶需要對使用用戶的加密公鑰加密的密文解密時,可由用戶和n個密鑰分量托管系統(tǒng)聯(lián)合完成對密文的解密。

所述解密方法涉及到用戶和n個密鑰分量托管系統(tǒng)。用戶具有加密私鑰分量d’0,密鑰分量托管系統(tǒng)pke[i]具有加密私鑰分量d’i,用戶的實際加密私鑰為d’=d’0d’1…d’n(modn),實際加密公鑰為q’=(d’0d’1…d’n)g。

設待解密的密文為c1||c2||c3,其中c1是一個橢圓曲線點。按照sm2解密算法,用戶需要首先計算d=d’c1,然后再進行其它解密步驟。由用戶和n個密鑰分量托管系統(tǒng)聯(lián)合完成解密的關(guān)鍵點就是聯(lián)合計算d=d’c1。所述多方聯(lián)合解密方案的步驟如下。

第1步:所述用戶以自已的標識、輸入的pin碼和硬件設備信息等重新構(gòu)造用戶的識別信息uid’[1],uid’[2],…,uid’[n],再隨機選取k0∈[1,n-1],且k0≠(d’0)-1,計算dn+1=k0c1。

第2步:對于i=n,n-1,…,1,所述用戶依次與所述pke[i]交互執(zhí)行:

(2a)所述用戶從所述pke[i]獲取一個隨機數(shù)r[i]。

(2b)所述用戶以所述pke[i]的公鑰對uid’[i]||r[i]加密生成一個密文c[i],發(fā)送di+1和c[i]到pke[i]。

(2c)所述pke[i]對c[i]作私鑰解密獲取uid’[i]和r’[i],驗證r’[i]=r[i]是否成立,若成立,計算d’i=g(mk[i],uid’[i])(modn)和di=d’idi+1,回送di到用戶端。

第3步:所述用戶計算d=(k0)-1d’0d1。

第4步:由于(k0)-1d’0d1=(k0)-1(d’0d’1…d’n)k0c1=d’c1,所以通過聯(lián)合計算得出的d正是私鑰解密所需要的計算結(jié)果,再按sm2解密算法的后續(xù)步驟即可解出明文。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明所述密鑰分量托管系統(tǒng)與用戶端關(guān)系結(jié)構(gòu)圖。

圖2為本發(fā)明所述密鑰分量托管系統(tǒng)內(nèi)部結(jié)構(gòu)圖。

圖3為本發(fā)明所述簽名密鑰生成流程圖。

圖4為本發(fā)明所述加密密鑰生成流程圖。

圖5為本發(fā)明所述聯(lián)合簽名流程圖。

圖6為本發(fā)明所述聯(lián)合解密流程圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

本發(fā)明提出了一種基于sm2算法的密鑰分量托管方法和系統(tǒng),下面根據(jù)附圖詳細說明本發(fā)明的具體實施方式。

本發(fā)明所述基于sm2算法的密鑰分量托管方法和系統(tǒng)所依托的密碼算法為國密sm2公鑰密碼算法和sm3雜湊算法,與sm2相關(guān)的橢圓曲線參數(shù)按國密sm2算法標準設置。有限域上的橢圓曲線記為e(fq),其基點記為g,g的階記為n,sm3雜湊函數(shù)記作h(x)。

圖1所示為基于sm2算法的密鑰分量托管系統(tǒng)的整體結(jié)構(gòu)圖。整個系統(tǒng)由n(n≥1)個密鑰分量托管系統(tǒng)和眾多用戶端組成,用戶端個數(shù)不受限制。每個用戶端面對n個密鑰托管系統(tǒng),用戶端私鑰在生成時即被分割成n+1個分量,分別由用戶端和n個密鑰分量托管系統(tǒng)管理。密鑰分量托管系統(tǒng)所管理的用戶端私鑰分量并不實際保存,而是通過一種映射算法,由密鑰分量托管系統(tǒng)的系統(tǒng)主密鑰和用戶端的識別信息計算得出,在密鑰生成階段確定,在密鑰使用階段重新計算后恢復,使用完成后自動銷毀。這種密鑰分量托管方式的有益效果是不需要實際存儲用戶端私鑰分量,節(jié)省大量的存儲資源和密碼設備,對用戶端數(shù)量沒有限制,大大提高系統(tǒng)的運行效率和服務水平。

圖2所示是密鑰分量托管系統(tǒng)的內(nèi)部結(jié)構(gòu)。所述密鑰分量托管系統(tǒng)由服務單元、密鑰生成單元、簽名運算單元、解密運算單元構(gòu)成。服務單元接受用戶端請求,與用戶端之間進行安全通信,對用戶端身份進行確認,為用戶端提供密鑰生成、聯(lián)合簽名和聯(lián)合解密服務。密鑰生成單元采用系統(tǒng)主密鑰對用戶端提供的識別信息進行一種分散映射,在用戶端密鑰生成階段和用戶端密鑰使用階段,為用戶端生成或恢復私鑰分量。簽名運算單元執(zhí)行聯(lián)合簽名運算,以用戶端的私鑰分量對所述消息摘要值進行部分簽名運算。解密運算單元執(zhí)行聯(lián)合解密運算,以用戶端的私鑰分量對所述數(shù)據(jù)進行部分解密運算。

為幫助理解本發(fā)明的實質(zhì)內(nèi)容,圖3到圖6給出了具體的密鑰生成和密鑰使用的實施步驟,并給出一個具體的映射函數(shù)g(mk,uid)=h(mk||uid)(modn),其中h(x)為sm3雜湊函數(shù)。

圖3所示為本發(fā)明所述簽名密鑰生成流程,包括以下幾個步驟:

步驟(1):所述用戶端設置用戶端識別信息uid[i],再設置初始公鑰參數(shù)qn+1=g。

步驟(2):所述用戶端以pke[n]的公鑰對uid[n]加密,發(fā)送加密的uid[n]和qn+1到pke[n]。pke[n]使用私鑰解密獲取所述用戶端uid[n],計算dn=h(mk[n]||uid[n])(modn),qn=(dn)-1qn+1,回送qn到用戶端,將dn作為用戶端的第n個簽名私鑰分量,但不需要保存。

步驟(3):對于i=n-1,…,2,所述用戶端以pke[i]的公鑰對uid[i]加密,發(fā)送加密的uid[i]和qi+1到pke[i]。pke[i]使用私鑰解密獲取所述用戶端uid[i],計算di=h(mk[i]||uid[i])(modn),qi=(di)-1qi+1,回送qi到用戶端,將di作為用戶端的第i個簽名私鑰分量,但不需要保存。

步驟(4):所述用戶端以pke[1]的公鑰對uid[1]加密,發(fā)送加密的uid[1]和q2到pke[1]。pke[1]使用私鑰解密獲取所述用戶端uid[1],計算d1=h(mk[1]||uid[1])(modn),q1=(d1)-1q2,回送q1到用戶端,將d1作為用戶端的第1個簽名私鑰分量,但不需要保存。

步驟(5):所述用戶端隨機選取d0∈[1,n-1],計算q0=(d0)-1q1,q=q0-g,將d0作為用戶端的簽名私鑰分量保存,將q作為用戶端的實際簽名公鑰保存,同時保存{q0,q1,…,qn}。

圖4所示為本發(fā)明所述加密密鑰生成流程,包括以下幾個步驟:

步驟(6):所述用戶端以自已的標識、輸入的pin碼和硬件設備信息等構(gòu)造一組用戶端識別信息,并將所述用戶端識別信息記為uid’[i],再設置初始值q’n+1=g。

步驟(7):所述用戶端以pke[n]的公鑰對uid’[n]加密,發(fā)送加密的uid’[n]和q’n+1到pke[n]。pke[n]使用私鑰解密獲取所述用戶端uid’[n],計算d’n=h(mk[n]||uid’[n])(modn),q’n=d’nqn+1,回送q’n到用戶端,將d’n作為用戶端的第n個加密私鑰分量,但不需要保存。

步驟(8):對于i=n-1,…,2,所述用戶端以pke[i]的公鑰對uid’[i]加密,發(fā)送加密的uid’[i]和q’i+1到pke[i]。pke[i]使用私鑰解密獲取所述用戶端uid’[i],計算d’i=h(mk[i]||uid’[i])(modn),q’i=d’iqi+1,回送q’i到用戶端,將d’i作為用戶端的第i個加密私鑰分量,但不需要保存。

步驟(9):所述用戶端以pke[1]的公鑰對uid’[1]加密,發(fā)送加密的uid’[1]和q’2到pke[1]。pke[1]使用私鑰解密獲取所述用戶端uid’[1],計算d’1=h(mk[1]||uid’[1])(modn),q’1=d’1q2,回送q’1到用戶端,將d’1作為用戶的第1個加密私鑰分量,但不需要保存。

步驟(10):所述用戶端隨機選取d’0∈[1,n-1],計算q’0=d’0q1,q’=q’0,將d’0作為用戶端的加密私鑰分量保存,將q’作為用戶端的實際加密公鑰保存。

圖5所示為本發(fā)明所述聯(lián)合簽名流程,包括以下幾個步驟:

步驟(11):所述用戶端以自已的標識、輸入的pin碼和硬件設備信息等重新構(gòu)造用戶端的識別信息uid[i],再隨機選取k0∈[1,n-1],計算r0=k0q0。設待簽名的消息為m,所述用戶端計算摘要值e=h(z||m),其中z為所述用戶端的標識信息和公鑰信息。

步驟(12):所述用戶端發(fā)送r0和q1到pke[1],pke[1]隨機選取k1∈[1,n-1],計算r1=r0+k1q1,回送r1到用戶端。

步驟(13):對于i=2,…,n-1,所述用戶端發(fā)送ri-1和qi到pke[i],pke[i]隨機選取ki∈[1,n-1],計算ri=ri-1+kiqi,回送ri到用戶端。

步驟(14):所述用戶端發(fā)送rn-1和qn到pke[n],pke[n]隨機選取kn∈[1,n-1],計算rn=rn-1+knqn,回送rn到用戶端。

步驟(15):設rn=(x1,y1),所述用戶端計算r=(e+x1)(modn)。

步驟(16):所述用戶端以所述pke[n]的公鑰對uid[n]||rn加密,連同r發(fā)送到pke[n]。所述pke[n]用私鑰解密獲取uid[n]和ri’,驗證r’n=rn是否成立,若成立,再計算簽名私鑰分量dn=h(mk[n]||uid[n])(modn)和部分簽名sn=kn+rdi(modn),回送所述部分簽名sn到用戶端。

步驟(17):所述用戶端在收到所述pke[n]的部分簽名sn后,計算r’=rn-1+snqn–rg,檢驗r’=rn是否成立,若成立,則接受所述pke[n]的部分簽名sn。

步驟(18):對于i=n-1,…,2,所述用戶端以所述pke[i]的公鑰對uid[i]||ri加密,連同si+1發(fā)送到pke[i]。所述pke[i]用私鑰解密獲取uid[i]和ri’,驗證ri’=ri是否成立,若成立,再計算簽名私鑰分量di=h(mk[i]||uid[i])(modn)和部分簽名si=ki+si+1di(modn),回送所述部分簽名si到用戶端。所述用戶端在收到所述pke[i]的部分簽名si后,計算r’=ri-1+siqi–rg,檢驗r’=rn是否成立,若成立,則接受pke[i]的部分簽名si。

步驟(19):所述用戶端以所述pke[1]的公鑰對uid[1]||r1加密,連同s2發(fā)送到pke[1]。所述pke[1]用私鑰解密獲取uid[1]和r1’,驗證r1’=r1是否成立,若成立,再計算簽名私鑰分量d1=h(mk[1]||uid[1])(modn)和部分簽名s1=k1+s2d1(modn),回送所述部分簽名s1到用戶端。

步驟(20):所述用戶端在收到所述pke[1]的部分簽名s1后,計算r’=r0+s1qi–rg,檢驗r’=rn是否成立,若成立,則接受pke[1]的部分簽名s1。所述用戶端再計算s=k0+s1d0–r(modn),生成最終簽名(r,s)。

圖6所示為本發(fā)明所述聯(lián)合解密流程,包括以下幾個步驟:

步驟(21):所述用戶端以自已的標識、輸入的pin碼和硬件設備信息等重新構(gòu)造用戶端的識別信息uid’[i],再隨機選取k0∈[1,n-1],且k0≠(d’0)-1,計算dn+1=k0c1。

步驟(22):所述用戶端以所述pke[n]的公鑰對uid’[n]加密,連同dn+1發(fā)送到pke[n]。所述pke[n]用私鑰解密獲取uid’[n],計算d’n=h(mk[n]||uid’[n])(modn)和dn=d’ndn+1,回送dn到用戶端。

步驟(23):對于i=n-1,…,2,所述用戶端以所述pke[i]的公鑰對uid’[i]加密,連同di+1發(fā)送到pke[i]。所述pke[i]用私鑰解密獲取uid’[i],計算d’i=h(mk[i]||uid’[i])(modn)和di=d’idi+1,回送di到用戶端。

步驟(24):所述用戶端以所述pke[1]的公鑰對uid’[1]加密,連同d2發(fā)送到pke[1]。所述pke[1]用私鑰解密獲取uid’[1],計算d’1=h(mk[1]||uid’[1])(modn)和d1=d’1d2,回送d1到用戶端。

步驟(25):所述用戶端計算d=(k0)-1d’0d1。

步驟(26):所述用戶端按sm2解密算法的后續(xù)步驟解出明文。

上述實施例僅從原理上描述了本發(fā)明的內(nèi)容,應理解,此處給出的實施例和映射函數(shù)僅用于說明本發(fā)明的基本思想,并不能限制本發(fā)明所具有的一般性。任何對本發(fā)明實質(zhì)內(nèi)容所作的數(shù)學上的變形和修飾都包含在本發(fā)明專利的保護范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1