一種具有指定可驗(yàn)證性的Schnorr環(huán)簽名方案的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種數(shù)字簽名技術(shù),尤其涉及一種具備指定可驗(yàn)證性的Schnorr環(huán)簽 名方案。
【背景技術(shù)】
[0002] 越來越多的網(wǎng)絡(luò)應(yīng)用涉及隱私信息的交互,對(duì)匿名通信能力的需求日益增加。環(huán) 簽名是一種新型的匿名簽名技術(shù),由Rivest等人于2001年在"安全泄露秘密"的背景下提 出。它是一種特殊的面向群體的簽名,沒有群管理員及群的建立過程,簽名者只需任意選取 一部分成員公鑰(用于隱藏簽名者身份),再通過自己的私鑰生成一個(gè)簽名,這樣減少了很 多復(fù)雜的交互證明過程。環(huán)簽名的最大特點(diǎn)是簽名者具有無條件匿名性,即使攻擊者擁有 無限的計(jì)算能力,也無法追蹤簽名人的身份。因此,它在匿名電子選舉、電子貨幣系統(tǒng)、自組 織網(wǎng)絡(luò)通信以及安全多方計(jì)算中都有廣泛的應(yīng)用。
[0003] 環(huán)簽名是一種匿名技術(shù),然而在有些情況下需要撤銷其匿名性。比如在某些場(chǎng)合, 要給泄密者(簽名人)頒獎(jiǎng),需要真實(shí)簽名人證明其身份。鑒于此問題,較早的研究工作有: Lv等人于2003年提出的基于雙離散對(duì)數(shù)的可驗(yàn)證環(huán)簽名方案,但簽名復(fù)雜度過高。2004 年,GAN等人在閥下信道中嵌入認(rèn)證信息,也實(shí)現(xiàn)了環(huán)簽名的可驗(yàn)證,然而實(shí)現(xiàn)成本較高。 另外,還有人提出可轉(zhuǎn)換的環(huán)簽名方案。如果真實(shí)簽名人需要證實(shí)其身份,他可通過泄露有 關(guān)環(huán)簽名的秘密信息將環(huán)簽名轉(zhuǎn)換為普通簽名,但如此一來任何驗(yàn)證者都可獲得其身份信 息,身份暴露的圍將不可控。
[0004]近年來,又陸續(xù)提出了可否認(rèn)的環(huán)簽名(Komanoetal, 2006),Step-Out環(huán)簽名 (Klonowskietal,2008),擴(kuò)展的RST環(huán)簽名(Dongetal,2012),但它們都存在交互過程 繁復(fù),實(shí)現(xiàn)復(fù)雜,效率低下的問題。
【發(fā)明內(nèi)容】
[0005] 發(fā)明目的:針對(duì)上述問題,本發(fā)明提出了一種構(gòu)造簡(jiǎn)潔、高效且可驗(yàn)證的Schnorr 環(huán)簽名方案,并且其具備不可偽造性且身份的驗(yàn)證范圍可控的特性。
[0006] 技術(shù)方案:所述的一種具備指定可驗(yàn)證性的Schnorr環(huán)簽名方案,包括以下模 塊:
[0007]系統(tǒng)初始化模塊:基于相應(yīng)的安全參數(shù),選取方案所需的公開參數(shù),為每個(gè)環(huán)成員 生成公私鑰對(duì);
[0008] 簽名模塊:即概率性簽名算法,概率地生成環(huán)簽名以及用于身份確認(rèn)的關(guān)鍵參 數(shù);
[0009] 驗(yàn)證模塊:非交互式確定性證明算法,驗(yàn)證身份確認(rèn)參數(shù)及環(huán)簽名的有效性;
[0010] 確認(rèn)模塊:交互式零知識(shí)證明協(xié)議,使指定驗(yàn)證方確認(rèn)示證方的身份;
[0011] 包括具體的操作步驟為:
[0012] 1)系統(tǒng)初始化:生成環(huán)成員公私鑰對(duì)以及系統(tǒng)的公開參數(shù);
[0013] 2)簽名生成:真實(shí)簽名人生成消息簽名;
[0014] 3)簽名驗(yàn)證:對(duì)于給定的消息和相應(yīng)的簽名,驗(yàn)證者首先檢測(cè)關(guān)鍵參數(shù)是否按要 求生成,接著再驗(yàn)證簽名的有效性;
[0015] 4)身份確認(rèn):真實(shí)簽名人可通過一種交互式證明協(xié)議,使其指定的驗(yàn)證方確信他 的身份。
[0016]系統(tǒng)初始化具體步驟:首先系統(tǒng)選取大素?cái)?shù)p,q使得q|p_l,且q> 2k,其中k是方案的安全參數(shù);選取巧中的兩個(gè)q階生成元g,h,以及抗碰撞 的散列函數(shù)- ><,氏〇:{0,1}、Zp,帶加密的散列函數(shù) ): {0,氺x{0,氺4 ;令所有環(huán)成員為軋A2,…,An,每個(gè)成員~選取其私鑰x,eZ:,則 相應(yīng)的公鑰為只=f
[0017]綜合上所述,系統(tǒng)的公開參數(shù)為params= (p,q,g,h,H,氏,F(xiàn)),環(huán)成員的公私鑰集 合為{(Xdyi)1= li2,...,n};
[0018] 簽名生成具體為:為了生成消息m的簽名,真實(shí)簽名人As,sG{1,2,…,n}執(zhí)行以 下步驟:
[0019]步驟 2-1:隨機(jī)選取《,ve 并計(jì)算 a*=hamodp,b*=(a*)vmodp;
[0020] 步驟2-2 :隨機(jī)選取《e<并計(jì)算
[0021]U= (a*)umodp, 9 =u+vF(m| |a*,U)modq;
[0022] 步驟2-3 :為其余n-1個(gè)環(huán)成員Aji乒s)各選取一個(gè)隨機(jī)數(shù),并計(jì)算
[0023]步驟 2-4:計(jì)算m'=氏(m||a* | |b*):
[0024] 步驟2-5 :隨機(jī)選取化e<,并計(jì)算
[0025]步驟 2-6:計(jì);
[0026]步驟 2-7 :對(duì)消息m的簽名是(m,&,…,Rn,〇,a*,b'U,0 );
[0027] 簽名驗(yàn)證具體步驟如下:
[0028] 步驟3-1:檢查等式" 1mod/;是否成立,若成立,則執(zhí)行下一步; 反之則簽名無效;
[0029] 步驟3-2:計(jì)算m'=氏(m| |a*| |b*),對(duì)所有1彡i彡n,計(jì)算hi=H(m',R;);
[0030] 步驟3-3:檢查等式宮〃。與為....-g2…幽dp是否成立,若成立,則 簽名有效;反之則簽名無效;
[0031] 身份確認(rèn)具體步驟如下:
[0032] 步驟4-1 :簽名人隨機(jī)選擇《e&,并計(jì)算0 = (a)am〇dp。同時(shí),隨機(jī)選擇 并計(jì)算e的承諾^ 其中是指定驗(yàn)證方的公鑰, SKV是其私鑰,PKV不同于所有環(huán)成員的公鑰yi(i= 1,2,…,n)。簽名人將c發(fā)送給指定驗(yàn) 證方;
[0033] 步驟4-2 :指定驗(yàn)證方隨機(jī)選取seZt/并發(fā)送給簽名人;
[0034] 步驟4-3:收到挑戰(zhàn)信息e后,簽名人計(jì)算q=a+vemodq并發(fā)送給指定驗(yàn) 證人。接著,簽名人公開0,T,供對(duì)方驗(yàn)證承諾c;
[0035]步驟 4-4:指定驗(yàn)證方檢查兩個(gè)等式c=gp (PKV)Ymodp,(a*)n = 0(b*)Emodp 是否成立,若成立,則確信被驗(yàn)證方是關(guān)于消息m真實(shí)簽名人。
[0036] 對(duì)上述技術(shù)方案涉及的相關(guān)概念進(jìn)行說明和解釋:
[0037] 一、單向陷門函數(shù)(Trap-doorone-wayfunction)
[0038] 單向陷門函數(shù)是數(shù)字簽名的基礎(chǔ),單向陷門函數(shù)ft (x) :D-R,是一個(gè)單向函數(shù),即 對(duì)任意的xGD,容易計(jì)算匕〇〇,而對(duì)幾乎所有R中的值,求逆困難。但是,如果知道陷門 信息t,則對(duì)所有的yGR,容易計(jì)算滿足y=ft(x)的xGD;其中,單向陷門函數(shù)是公鑰密 碼的基礎(chǔ),ft(x)相當(dāng)于對(duì)x加密,而陷門信息t則相當(dāng)于私鑰,用于解密ft(x)中的X,在沒 有t的情況下,即沒有私鑰的情況下,解密(求逆)是困難的。公鑰密碼除了便于加解密, 也使得數(shù)字簽名成為可能,兩者都是基于單向陷門函數(shù)的。
[0039] 二、對(duì)于系統(tǒng)初始化中,選取大素?cái)?shù)p,q,進(jìn)而生成環(huán)成員公私鑰對(duì)(Xl,yi),其中, 涉及DL(DiscreteLogarithm)困難問題假定,其定義為:給定素?cái)?shù)q及有限域?(],8是< 的一個(gè)生成元,對(duì)于任意的,求解惟一的整數(shù)a<q,滿足h=ga。
[0040] 有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:設(shè)計(jì)了一種具有特殊性質(zhì)的環(huán) 簽名方案,該方案增加了身份確認(rèn)功能,在身份確認(rèn)過程中僅需簽名人與驗(yàn)證方2次交互, 即可完成身份確認(rèn),操作簡(jiǎn)便,構(gòu)造簡(jiǎn)潔、高效,且實(shí)現(xiàn)了身份驗(yàn)證范圍的可控性。
【附圖說明】
[0041] 圖1是普通的Schnorr環(huán)簽名方案流程圖;
[0042] 圖2是本發(fā)明的具備指定可驗(yàn)證性的Schnorr環(huán)簽名方案流程圖。
【具體實(shí)施方式】
[0043] 下面結(jié)合附圖和【具體實(shí)施方式】,進(jìn)一步闡明本發(fā)明。
[0044]如圖1所示,為普通Schnorr環(huán)簽名方案(Herranzetal, 2003),它包括系統(tǒng)初始 化、簽名生成、簽名驗(yàn)證3個(gè)步驟,本發(fā)明涉及的一種具備指定可驗(yàn)證性的Schnorr環(huán)簽名 方案是在其基礎(chǔ)上增加了身份確認(rèn)的步驟,如圖2所示,該方案包括系統(tǒng)初始化模塊、簽名 模塊、驗(yàn)證模塊和確認(rèn)模塊;該方案選擇生成簽名和驗(yàn)證簽名的系統(tǒng)參數(shù),并生成環(huán)成員 公私鑰;成員利用私鑰對(duì)消息進(jìn)行簽名;驗(yàn)證者根據(jù)系統(tǒng)公開參數(shù)和所有環(huán)成員公鑰對(duì)消 息簽名進(jìn)行驗(yàn)證;簽名人利用指定驗(yàn)證人公鑰發(fā)起交互式證明協(xié)議,通過此過程指定驗(yàn)證 人可確認(rèn)對(duì)方是否是真實(shí)簽名人。
[0045]由圖2給出本發(fā)明各個(gè)模塊執(zhí)行的具體操作步驟:
[0046] 步驟1,首先系統(tǒng)選取大素?cái)?shù)p,q使得q|p_l,且q> 2k,其中k是方案