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

SM9解密方法和裝置與流程

文檔序號:11388772閱讀:492來源:國知局
SM9解密方法和裝置與流程

本發(fā)明涉及到sm9的解密領(lǐng)域,特別是涉及到一種sm9解密方法和裝置。



背景技術(shù):

sm9標識密碼算法是一種基于雙線性對的標識密碼算法,它可以把用戶的身份標識用以生成用戶的公、私密鑰對,主要用于數(shù)字簽名、數(shù)據(jù)加密、密鑰交換以及身份認證等。



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

本發(fā)明的主要目的為提供一種解密簡單安全的sm9解密方法和裝置。

為了實現(xiàn)上述發(fā)明目的,本發(fā)明提出一種sm9解密方法,包括:

s1:解密客戶端獲取其標識對應(yīng)的標識私鑰s_a的第一分片子密鑰m,其中,所述標識私鑰s_a的第二分片子密鑰n由所述解密客戶端對應(yīng)的解密服務(wù)端獲?。黄渲?,密鑰生成中心隨機選擇主密鑰,生成系統(tǒng)參數(shù)組;

s2:從解密服務(wù)端獲得密文c和n的部分數(shù)據(jù)解密密鑰種子t_s;

s3:從密文c和m獲得部分數(shù)據(jù)解密密鑰種子t_c;根據(jù)t_s和t_c恢復(fù)完整的解密密鑰種子t,并使用t對密文進行完整解密;

進一步地,所述系統(tǒng)參數(shù)組包括<e,e,p1,p2,[s]p1,g=e(p1,[s]p2),h>,其中,e為橢圓曲線,e代表二元映射e:g1·g2→gt,g1和g2為橢圓曲線e上的兩個點群,g1是一個階為q的循環(huán)群,g2是一個冪為q群,其子群階為q,q為素數(shù),p1∈g1,p2∈g2,e(p1,[s]p2)=e(p1,p2)s,主密鑰包括s,[s]p2表示s個p2相加,h為消息映射函數(shù),用于將比特串映射到[1,q-1]上;

進一步地,在s1中,所述標識私鑰s_a通過以下公式計算獲得:

s_a=[s/(h(1||id_a)+s)]p2。

進一步地,在s1中,所述第二分片子密鑰n和第一分片子密鑰m的獲取方法,包括:

所述第一分片子密鑰m和第二分片子密鑰n的獲取方法,包括:

方法1)、所述解密客戶端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送n到解密服務(wù)端;或者,

方法2)、所述解密服務(wù)端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端;或者,

方法3)、所述解密服務(wù)端生成秘密kdfs,根據(jù)派生函數(shù)f,派生a=f(kdfs,fi),計算n=[a]p1或n=[a][s]p1;其中fi包括標識id_a、請求時間t、請求次數(shù)j;f是標準的密鑰派生函數(shù)kdf、哈希函數(shù)或加密函數(shù)中的一種,計算m=s_a-n,發(fā)送m到解密客戶端;或者,

方法4)、利用不同于所述解密客戶端和解密服務(wù)端的第三方隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端;或者,

方法5)、利用不同于所述解密客戶端和解密服務(wù)端的第三方生成秘密kdft,根據(jù)派生函數(shù)f,派生a=f(kdft,fi),計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端。

進一步地,,在s2中,所述解密密鑰種子t_s的獲取方法,包括:

解密客戶端獲得密文c后將其解析為<c1,c2,c3>;

將id_a與c1發(fā)送到所述解密服務(wù)端;

通過解密服務(wù)端將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x∈g1是否成立;若否,則解密失敗,否則計算t_s=e(x,n);

進一步地,在s3,包括:

將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x∈g1是否成立;若

是,則計算t_c=e(x,m);

計算w=t_c*t_s;將w的數(shù)據(jù)類型轉(zhuǎn)換為比特串u;

k1||k2=kdf(c1||u);

計算m=c2⊕k1;

計算c'=mac(k2,m);

檢驗c'=c3是否成立,若成立,則驗證通過,輸出m;否則驗證失敗,輸出錯誤。

本發(fā)明還提供一種sm9解密裝置,包括:

第一獲取單元,用于解密客戶端獲取其標識對應(yīng)的標識私鑰s_a的第一分片子密鑰m,其中,所述標識私鑰s_a的第二分片子密鑰n由所述解密客戶端對應(yīng)的解密服務(wù)端獲?。黄渲?,密鑰生成中心隨機選擇主密鑰,生成系統(tǒng)參數(shù)組;

第二獲取單元,用于從解密服務(wù)端獲得密文c和n的部分數(shù)據(jù)解密密鑰種子t_s;

獲取解密單元,用于從密文c和m獲得部分數(shù)據(jù)解密密鑰種子t_c;根據(jù)t_s和t_c恢復(fù)完整的解密密鑰種子t,并使用t對密文進行完整解密;

進一步地,所述系統(tǒng)參數(shù)組包括<e,e,p1,p2,[s]p1,g=e(p1,[s]p2),h>,其中,e為橢圓曲線,e代表二元映射e:g1·g2→gt,g1和g2為橢圓曲線e上的兩個點群,g1是一個階為q的循環(huán)群,g2是一個冪為q群,其子群階為q,q為素數(shù),p1∈g1,p2∈g2,e(p1,[s]p2)=e(p1,p2)s,主密鑰包括s,[s]p2表示s個p2相加,h為消息映射函數(shù),用于將比特串映射到[1,q-1]上;

進一步地,在s1中,所述標識私鑰s_a通過以下公式計算獲得:

s_a=[s/(h(1||id_a)+s)]p2。

進一步地,所述第一獲取單元,包括:

分片子密鑰獲取模塊,用于所述解密客戶端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送n到解密服務(wù)端;或者,用于所述解密服務(wù)端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端;或者,用于所述解密服務(wù)端生成秘密kdfs,根據(jù)派生函數(shù)f,派生a=f(kdfs,fi),計算n=[a]p1或n=[a][s]p1;其中fi包括標識id_a、請求時間t、請求次數(shù)j;f是標準的密鑰派生函數(shù)kdf、哈希函數(shù)或加密函數(shù)中的一種,計算m=s_a-n,發(fā)送m到解密客戶端;或者,用于利用不同于所述解密客戶端和解密服務(wù)端的第三方隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端;或者,用于利用不同于所述解密客戶端和解密服務(wù)端的第三方生成秘密kdft,根據(jù)派生函數(shù)f,派生a=f(kdft,fi),計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端。

進一步地,所述第二獲取單元,包括:

解析模塊,用于解密客戶端獲得密文c后將其解析為<c1,c2,c3>;

發(fā)送模塊,用于將id_a與c1發(fā)送到所述解密服務(wù)端;

t_s獲取模塊,用于通過解密服務(wù)端將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x∈g1是否成立;若否,則解密失敗,否則計算t_s=e(x,n);

進一步地,所述獲取解密單元,包括:

第一檢驗?zāi)K,用于將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x

∈g1是否成立;若是,則計算t_c=e(x,m);

第一計算模塊,用于計算w=t_c*t_s;將w的數(shù)據(jù)類型轉(zhuǎn)換為比特串u;

第二計算模塊,用于k1||k2=kdf(c1||u);

第三計算模塊,用于計算m=c2⊕k1;

第四計算模塊,用于計算c'=mac(k2,m);

第二檢驗?zāi)K,用于檢驗c'=c3是否成立,若成立,則驗證通過,輸出m;否則驗證失敗,輸出錯誤。

本發(fā)明的sm9解密方法和裝置,在解密過程中,需要獲取到第一分片子密鑰m和第二分片子密鑰n,然后利用m和n,以及密文c恢復(fù)解密密鑰種子t,并使用t對密文進行完整解密,方法簡單、安全。

附圖說明

圖1為本發(fā)明一實施例的sm9解密方法的流程示意圖;

圖2為本發(fā)明一實施例的解密密鑰種子t_s的獲取方法的流程示意圖;

圖3為本發(fā)明一實施例的sm9解密方法的步驟s3的具體流程示意圖;

圖4為本發(fā)明一實施例的sm9解密裝置的結(jié)構(gòu)示意框圖;

圖5為本發(fā)明一實施例的第一獲取單元的結(jié)構(gòu)示意框圖;

圖6為本發(fā)明一實施例的第二獲取單元的結(jié)構(gòu)示意框圖;

圖7為本發(fā)明一實施例的獲取解密單元的結(jié)構(gòu)示意框圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。

具體實施方式

應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

參照圖1,本發(fā)明實施例提供一種sm9解密方法,包括步驟:

s1:解密客戶端獲取其標識對應(yīng)的標識私鑰s_a的第一分片子密鑰m,其中,所述標識私鑰s_a的第二分片子密鑰n由所述解密客戶端對應(yīng)的解密服務(wù)端獲??;其中,密鑰生成中心隨機選擇主密鑰,生成系統(tǒng)參數(shù)組。

本步驟中,上述所述系統(tǒng)參數(shù)組包括<e,e,p1,p2,[s]p1,g=e(p1,[s]p2),h>,其中,e為橢圓曲線,e代表二元映射e:g1·g2→gt,g1和g2為橢圓曲線e上的兩個點群,g1是一個階為q的循環(huán)群,g2是一個冪為q群,其子群階為q,q為素數(shù),p1∈g1,p2∈g2,e(p1,[s]p2)=e(p1,p2)s,主密鑰包括s,[s]p2表示s個p2相加,h為消息映射函數(shù),用于將比特串映射到[1,q-1]上。上述標識私鑰s_a通過以下公式計算獲得s_a=[s/(h(1||id_a)+s)]p2。

本步驟中,上述第一分片子密鑰m和第二分片子密鑰n的獲取方法,包括多種,如下:

方法1)、所述解密客戶端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送n到解密服務(wù)端;或者,

方法2)、所述解密服務(wù)端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端;或者,

方法3)、所述解密服務(wù)端生成秘密kdfs,根據(jù)派生函數(shù)f,派生a=f(kdfs,fi),計算n=[a]p1或n=[a][s]p1;其中fi包括標識id_a、請求時間t、請求次數(shù)j;f是標準的密鑰派生函數(shù)kdf、哈希函數(shù)或加密函數(shù)中的一種,計算m=s_a-n,發(fā)送m到解密客戶端;或者,

方法4)、利用不同于所述解密客戶端和解密服務(wù)端的第三方隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端;或者,

方法5)、利用不同于所述解密客戶端和解密服務(wù)端的第三方生成秘密kdft,根據(jù)派生函數(shù)f,派生a=f(kdft,fi),計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端。

s2:從解密服務(wù)端獲得密文c和n的部分數(shù)據(jù)解密密鑰種子t_s。

參照圖2,本步驟中,上述解密密鑰種子t_s的獲取方法,包括:

s21、解密客戶端獲得密文c后將其解析為<c1,c2,c3>;

s22、將id_a與c1發(fā)送到所述解密服務(wù)端;

s23、通過解密服務(wù)端將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x∈g1是否成立;

s24、若否,則解密失敗,否則計算t_s=e(x,n)。

s3:從密文c和m獲得部分數(shù)據(jù)解密密鑰種子t_c;根據(jù)t_s和t_c恢復(fù)完整的解密密鑰種子t,并使用t對密文進行完整解密。

參照圖3,本步驟中,具體過程為:

s31、將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x∈g1是否成立;

s32,若否,則解密失?。?/p>

s33,若是,則計算t_c=e(x,m);

s34、計算w=t_c*t_s;將w的數(shù)據(jù)類型轉(zhuǎn)換為比特串u;

s35、k1||k2=kdf(c1||u);

s36、計算m=c2⊕k1;

s37、計算c'=mac(k2,m);

s38、檢驗c'=c3是否成立,若成立,則驗證通過,輸出m;否則驗證失敗,輸出錯誤。

本發(fā)明實施例的sm9解密方法,在解密過程中,需要獲取到第一分片子密鑰m和第二分片子密鑰n,其中然后第一分片子密鑰m和第二分片子密鑰n組合成id_a對應(yīng)的標識私鑰s_a;利用m和n,以及密文c恢復(fù)解密密鑰種子t,并使用t對密文進行完整解密,方法簡單、安全。

參照圖4,本發(fā)明還提供一種sm9解密裝置,包括:

第一獲取單元10,用于解密客戶端獲取其標識對應(yīng)的標識私鑰s_a的第一分片子密鑰m,其中,所述標識私鑰s_a的第二分片子密鑰n由所述解密客戶端對應(yīng)的解密服務(wù)端獲?。黄渲?,密鑰生成中心隨機選擇主密鑰,生成系統(tǒng)參數(shù)組。

在上述第一獲取單元10中,上述系統(tǒng)參數(shù)組包括<e,e,p1,p2,[s]p1,g=e(p1,[s]p2),h>,其中,e為橢圓曲線,e代表二元映射e:g1·g2→gt,g1和g2為橢圓曲線e上的兩個點群,g1是一個階為q的循環(huán)群,g2是一個冪為q群,其子群階為q,q為素數(shù),p1∈g1,p2∈g2,e(p1,[s]p2)=e(p1,p2)s,主密鑰包括s,[s]p2表示s個p2相加,h為消息映射函數(shù),用于將比特串映射到[1,q-1]上。

參照圖5,上述第一獲取單元10,包括:s_a計算模塊11,用于計算s_a=[s/(h(1||id_a)+s)]p2。

分片子密鑰獲取模塊12,用于所述解密客戶端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送n到解密服務(wù)端;或者,用于所述解密服務(wù)端隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端;或者,用于所述解密服務(wù)端生成秘密kdfs,根據(jù)派生函數(shù)f,派生a=f(kdfs,fi),計算n=[a]p1或n=[a][s]p1;其中fi包括標識id_a、請求時間t、請求次數(shù)j;f是標準的密鑰派生函數(shù)kdf、哈希函數(shù)或加密函數(shù)中的一種,計算m=s_a-n,發(fā)送m到解密客戶端;或者,用于利用不同于所述解密客戶端和解密服務(wù)端的第三方隨機生成g1中的一個元素n,隨機生成1<a<q,計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端;或者,用于利用不同于所述解密客戶端和解密服務(wù)端的第三方生成秘密kdft,根據(jù)派生函數(shù)f,派生a=f(kdft,fi),計算n=[a]p1或n=[a][s]p1,計算m=s_a-n,發(fā)送m到解密客戶端,發(fā)送n到解密服務(wù)端。

第二獲取單元20,用于從解密服務(wù)端獲得密文c和n的部分數(shù)據(jù)解密密鑰種子t_s。

參照圖6,上述第二獲取單元20,包括:

解析模塊21,用于解密客戶端獲得密文c后將其解析為<c1,c2,c3>;

發(fā)送模塊22,用于將id_a與c1發(fā)送到所述解密服務(wù)端;

t_s獲取模塊23,用于通過解密服務(wù)端將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x∈g1是否成立;若否,則解密失敗,否則計算t_s=e(x,n)。

獲取解密單元30,用于從密文c和m獲得部分數(shù)據(jù)解密密鑰種子t_c;根據(jù)t_s和t_c恢復(fù)完整的解密密鑰種子t,并使用t對密文進行完整解密。

參照圖7,上述獲取解密單元30,包括:

第一檢驗?zāi)K31,用于將c1的數(shù)據(jù)類型轉(zhuǎn)換為橢圓曲線e上的點x,檢驗x∈g1是否成立;若是,則計算t_c=e(x,m);

第一計算模塊32,用于計算w=t_c*t_s;將w的數(shù)據(jù)類型轉(zhuǎn)換為比特串u;

第二計算模塊33,用于k1||k2=kdf(c1||u);

第三計算模塊34,用于計算m=c2⊕k1;

第四計算模塊35,用于計算c'=mac(k2,m);

第二檢驗?zāi)K36,用于檢驗c'=c3是否成立,若成立,則驗證通過,輸出m;否則驗證失敗,輸出錯誤。

本發(fā)明實施例的sm9解密裝置,在解密過程中,需要獲取到第一分片子密鑰m和第二分片子密鑰n,其中然后第一分片子密鑰m和第二分片子密鑰n組合成id_a對應(yīng)的標識私鑰s_a;利用m和n,以及密文c恢復(fù)解密密鑰種子t,并使用t對密文進行完整解密,方法簡單、安全。

以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
甘谷县| 和静县| 绥芬河市| 绥滨县| 仪征市| 永嘉县| 拉萨市| 高唐县| 徐州市| 桂阳县| 肃南| 定州市| 紫云| 繁峙县| 昌都县| 永城市| 大丰市| 永丰县| 霍州市| 舞钢市| 保定市| 大宁县| 永春县| 西城区| 娄底市| 泰顺县| 内黄县| 天门市| 西峡县| 云梦县| 宣化县| 扎囊县| 洪湖市| 密山市| 贵溪市| 峨山| 山阳县| 广安市| 会同县| 白城市| 玉溪市|