息Μ,輸 出簽密密文σ.
[0085] 解簽密算法Unsigncrypt (σ; PKs; SKR):該算法由接收方運(yùn)行。輸入σ; PKs和SKR,輸 出發(fā)消息Μ或者輸出丄表示密文不合法。
[0086] 證據(jù)生成算法EvidenceGen(〇;PKs;SKR):該算法由接收方運(yùn)行。輸入〇;PKs和SKr, 輸出發(fā)證據(jù)d或者輸出丄表不密文不合法。
[0087] 仲裁驗(yàn)證算法JudgeVer (σ; Μ; d; PKs; PKr):該算法由接收方運(yùn)行。輸入σ,Μ,d,PKs和 PKR,輸出T表示該證據(jù)d證明了消息M是密文〇對(duì)應(yīng)的消息,否則輸出丄。
[0088]下面對(duì)具體構(gòu)造方法進(jìn)行說(shuō)明,包括如下步驟:
[0089]步驟一:執(zhí)行參數(shù)建立算法;
[0090] 參數(shù)建立算法公式為:PubSetup( lk);
[0091] 詳細(xì)步驟為:
[0092] (1)計(jì)算 Pub-lk;
[0093] (2)返回 Pub;
[0094]其中,lk為輸入安全參數(shù),Pub為輸出公開(kāi)參數(shù);
[0095]步驟二:發(fā)送方運(yùn)行發(fā)送方密鑰生成算法,輸入Pub和發(fā)送方身份IDs,輸出發(fā)送方 公私鑰對(duì)(PKs;SKs);
[0096] 發(fā)送方的密鑰生成算法公式為:KeyGens(Pub;IDs):
[0097] 詳細(xì)步驟為:
[0098] (1)計(jì)算(SKsig;PKsig)-SigKeyGen(Pub);
[0099] (2)計(jì)算(SKs; PKs) - (SKsig; PKsig);
[0100] (3)返回(SKs;PKs);
[0101] 步驟三:接收方運(yùn)行密鑰生成算法,輸入Pub和接收方身份IDR,輸出接受公私鑰對(duì) (SKR;PK R).接收方保密自己的私鑰SKR,并公開(kāi)自己的公鑰PKR;
[0102] 接收方的密鑰生成算法公式為:KeyGenR(Pub;IDR):
[0103] 詳細(xì)步驟為:
[0104] (1)計(jì)算(SKenc; PKenc) -EncKeyGen(Pub);
[0105] (2)計(jì)算(SKr; PKr) - (SKenc;PKenc);
[0106] (3)返回(SKR;PKR).
[0107] 步驟四:發(fā)送方運(yùn)行簽密算法,輸入SKs;PKR和消息M,輸出簽密密文σ;
[0108] 簽密算法公式為:Signcrypt(M;SKs;PKR);
[0109] 詳細(xì)步驟為:
[0110] (1)將SKs 表示為 SKsig;
[0111] (2)將PKR表示為 PKenc;
[0112] (3)計(jì)算C-Encrypt(PKs| |M;PKenc);
[0113] (4)計(jì)算〇sig-Sign(C| |PKR;SKsig);
[0114] (5)設(shè)置 (C;〇sig);
[0115] (6)返回簽密密文〇;
[0116] 步驟五:接收方運(yùn)行解簽密算法,輸入〇;PKs和SKR,輸出消息M或者輸出丄表示密文 不合法;
[0117]解簽密算法公式為:11]18丨811(^7口1:(。;?1(5;31([0;
[0118] 詳細(xì)步驟為:
[0119] (1)將PKs表示為PKsig、將SKR表示為SK en。、將σ表示為(C; 〇sig);
[0120] (2)計(jì)算SigVer(〇sig;C| |PKR;PKsig),如果SigVer(〇sig;C| |PKR;PKsig) =丄,則返回 丄,否則返回T;
[0121] (3)計(jì)算 Menc-DeCrypt(C;SKenc);如果 Menc=丄,則返回丄,否則將 Menc 表示成 PK's Μ;
[0122] (4)判斷PK's是否與PKs相等,如是則返回Μ;否則返回丄;
[0123] 步驟六:接收方運(yùn)行證據(jù)生成算法,輸入〇;PKs和SKR,輸出發(fā)證據(jù)d或者輸出丄表示 密文不合法;
[0124] 證據(jù)生成算法公式為4¥丨(1611066611(〇;?1(5;31([0;
[0125] 詳細(xì)步驟為:
[0126] (1)將PKs表示為PKsig、將SKR表示為SK en。、將σ表示為(C; 〇sig);
[0127] (2)如果SigVer(〇sig;C| |PKR;PKsig) =丄,則返回丄,否則返回T;
[0128] (3)計(jì)算π-EncEvidenceGen(C;SKenc);
[0129] (4)返回 d-π;
[0130] 步驟七:接收方運(yùn)行仲裁驗(yàn)證算法,輸入〇,M,d,PKs和PKR,輸出T表示該證據(jù)d證明 了消息Μ是密文σ對(duì)應(yīng)的消息,否則輸出丄;
[0131] 仲裁驗(yàn)證算法公式為:JudgeVer(σ ;M; d;PKs; PKR);
[0132] 詳細(xì)步驟為:
[0133] (1)將PKs表示為PKsig、將SKR表示為SK enc、將〇表示為(C; 〇sig)、將d表示為π或丄;
[0134] ⑵判斷:
[0135] 如果M=丄,d=丄,并且SigVer(C;〇slg)=丄,則返回T ;
[0136] 如果Μ=丄,d = Ji,SigVer(C| |PKR;〇sig;PKsig)= Τ,并且EncVer(C;丄;3i;PKenc) = T,則返回T ·
[0137] 如男 貝lj返回 T ;
[0138] 否則返回丄;
[0139] 其中,MPk為明文空間。
[0140]本發(fā)明的有益效果為:
[0141] 本發(fā)明的構(gòu)造方法屬于一般性構(gòu)造方法,先加密后簽名,簽密方案的效率依賴于 所選取的ΡΚΕΝ0方案和數(shù)字簽名方案的效率。特別地,如果接收方在執(zhí)行證據(jù)生成算法之 前,已經(jīng)執(zhí)行過(guò)解簽密算法(一般情況下也都是這樣的情況),則簽密中證據(jù)生成算法的效 率與ΡΚΕΝ0算法中證據(jù)生成算法的效率相當(dāng)。本發(fā)明的運(yùn)行效率高,且保密性可以在標(biāo)準(zhǔn)模 型下進(jìn)行證明,極具優(yōu)勢(shì)。
[0142] 由于本發(fā)明中的方法具有一般性,因此效率具有可持續(xù)發(fā)展性,可以隨著ΡΚΕΝ0方 案和數(shù)字簽名方案的效率提高而得到提高。由于ΡΚΕΝ0方案可以通過(guò)基于身份加密(IBE)方 案來(lái)構(gòu)造,因此,本發(fā)明的方法效率還可以隨著IBE方案的發(fā)展進(jìn)一步提高。
【主權(quán)項(xiàng)】
1. 一種非交互式不可否認(rèn)性質(zhì)的簽密構(gòu)造方法,其特征在于,包括如下步驟: 步驟一:執(zhí)行參數(shù)建立算法; 參數(shù)建立算法公式為:PubSetup( lk); 詳細(xì)步驟為: (2)返回Pub; 其中,lk為輸入安全參數(shù),Pub為輸出公開(kāi)參數(shù); 步驟二:發(fā)送方運(yùn)行發(fā)送方密鑰生成算法,輸入Pub和發(fā)送方身份 IDs,輸出發(fā)送方公私鑰對(duì)(PKs; SKs); 發(fā)送方的密鑰生成算法公式為:KeyGens(Pub; IDs); 詳細(xì)步驟為: (1) 計(jì)算(31(咖;?1(咖)-5181(676611(?1113); (2) 計(jì)算(SKs;PKs) -(SKsig;PKsig); (3) 返回(SKs;PKs); 步驟三:接收方運(yùn)行密鑰生成算法,輸入Pub和接收方身份IDr,輸出接受公私鑰對(duì)(SKR; PKr).接收方保密自己的私鑰SKR,并公開(kāi)自己的公鑰PKR; 接收方的密鑰生成算法公式為:KeyGenR(Pub;IDR); 詳細(xì)步驟為: (1) 計(jì)算(SKenc; PKenc) -EncKeyGen (Pub); (2) 計(jì)算(SKR;PKR) -(SKenc;PKenc); (3) 返回(SKR;PKR); 步驟四:發(fā)送方運(yùn)行簽密算法,輸入SKs;PKr和消息M,輸出簽密密文〇; 簽密算法公式為:3丨811(^7口1:(1;31(5;?1([〇; 詳細(xì)步驟為: (1) 將SKs表示為SKsig; (2) 將PKr表示為PKene; (3) 計(jì)算C-Encrypt(PKs| |M;PKenc); (4) 計(jì)算。sig-Sign(C| |PKR;SKsig); (5) 設(shè)置 (C;〇slg); (6) 返回簽密密文σ; 步驟五:接收方運(yùn)行解簽密算法,輸入σ; PKs和SKR,輸出消息Μ或者輸出丄表示密文不合 法; 解簽密算法公式為:Unsigncrypt (σ; PKs; SKr); 詳細(xì)步驟為: (1) 將PKs表示為PKsig、將SKR表示為SKen。、將σ表示為(C; 〇sig); (2) 計(jì)算SigVer(〇sig;C| |PKR;PKsig),如果SigVer(〇sig;C| |PKR;PKsig) =丄,則返回丄,否 則繼續(xù)執(zhí)行以下步驟; (3) 計(jì)算Menc-Decrypt (C; SKenc);如果Menc =丄,則返回丄,否則將Menc表示成PK ' s | | Μ; (4) 判斷PK's是否與PKs相等,如是則返回Μ;否則返回丄; 步驟六:接收方運(yùn)行證據(jù)生成算法,輸入σ ;PKs和SKr,輸出發(fā)證據(jù)d或者輸出丄表不密文 不合法; 證據(jù)生成算法公式為£¥丨(1611066611(〇;?1(5;31([〇; 詳細(xì)步驟為: (1) 將PKs表示為PKsig、將SKR表示為SKen。、將σ表示為(c; 〇sig); (2) 如果SigVer(〇slg;C| |PKR;PKslg) =丄,則返回丄,否則繼續(xù)執(zhí)行以下步驟; (3) 計(jì)算EncEvidenceGen(C; SKenc); (4) 返回 d-π; 步驟七:接收方運(yùn)行仲裁驗(yàn)證算法,輸入〇,M,d,PKs和PKR,輸出Τ表示該證據(jù)d證明了消 息Μ是密文σ對(duì)應(yīng)的消息,否則輸出丄; 仲裁驗(yàn)證算法公式為JudgeVer (σ; Μ; d; PKs; PKr); 詳細(xì)步驟為: (1) 將PKs表示為PKsig、將SKR表示為SKenc、將σ表示為(C; σ_)、將d表示為π或丄; (2) 判斷: 如果M=丄,d=丄,并且SigVer(C;〇slg) =丄,貝1J返回T ; 如果M=丄,d = Ji,SigVer(C| |PKR;〇sig;PKsig)= T,并且EncVer(C;丄;3i;PKenc)= T,則 返回T; 如果MOMPk,EncVer(C;PKs| |M;Ji;PKenc)= T,并且SigVer(C;〇sig); = T,則返回 T ; 否則返回丄; 其中,MPk為明文空間。
【專利摘要】本發(fā)明提供了一種具有非交互式不可否認(rèn)性質(zhì)的簽密方法,該簽密方法利用一種具有特殊的性質(zhì)的公鑰加密方案,稱為具有非交互式打開(kāi)性質(zhì)的加密來(lái)代替普通的公鑰加密方案,使之和數(shù)字簽名相結(jié)合,從而構(gòu)造非交互式不可否認(rèn)性質(zhì)的簽密。本發(fā)明的構(gòu)造方法屬于一般性構(gòu)造方法,先加密后簽名,簽密方案的效率依賴于所選取的PKENO方案和數(shù)字簽名方案的效率。特別地,如果接收方在執(zhí)行證據(jù)生成算法之前,已經(jīng)執(zhí)行過(guò)解簽密算法,則簽密中證據(jù)生成算法的效率與PKENO算法中證據(jù)生成算法的效率相當(dāng)。本發(fā)明的運(yùn)行效率高,且保密性可以在標(biāo)準(zhǔn)模型下進(jìn)行證明,極具優(yōu)勢(shì)。
【IPC分類】H04L9/30
【公開(kāi)號(hào)】CN105530093
【申請(qǐng)?zhí)枴緾N201510915573
【發(fā)明人】范佳, 曹云飛, 趙偉, 周宇, 王林, 湯殿華, 穆道光
【申請(qǐng)人】中國(guó)電子科技集團(tuán)公司第三十研究所
【公開(kāi)日】2016年4月27日
【申請(qǐng)日】2015年12月10日