本發(fā)明屬于信息安全技術(shù)領(lǐng)域,尤其涉及一種基于身份的部分盲簽名方法和裝置。
背景技術(shù):
盲簽名是簽名者在不知道簽名請求者所請求消息內(nèi)容情況下完成的一種簽名,這種特性稱為盲性。盲簽名不僅具有數(shù)字簽名所具有的內(nèi)容完整性、交易的不可抵賴性和雙方身份的真實(shí)性等性質(zhì),還可以利用盲性很好地保護(hù)用戶隱私。在盲簽名中簽名者對簽名消息一無所知,易造成簽名被惡意的請求者非法使用。隨后,部分盲簽名的概念被提出,其將消息分為盲化部分和公共部分,因此部分盲簽名在保證用戶隱私的同時(shí)又對簽名內(nèi)容部分可控。2004年至今,已經(jīng)有很多有關(guān)盲簽名及部分盲簽名的文獻(xiàn)發(fā)布,如:
1、Chow S S M,Hui L C K,Yiu S M,et al.Two improved partially blind signature schemes frombilinear pairings[M].Springer Berlin Heidelberg,2004:316-328.以下簡稱Chow方案;
2、何俊杰,孫芳,祁傳達(dá).基于身份部分盲簽名方案的分析與改進(jìn)[J].計(jì)算機(jī)應(yīng)用,2013,33(3):762-765.以下簡稱何方案;
3、李明祥,趙秀明,王洪濤.對一種部分盲簽名方案的安全性分析與改進(jìn)[J].計(jì)算機(jī)應(yīng)用,2010,30(10):2687-2690.以下簡稱李方案;
4、閆東升.一個(gè)新的高效的基于身份的部分盲簽名方案[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(2):137-139.以下簡稱閆方案;
5、何俊杰,王娟,祁傳達(dá).安全高效的基于身份的部分盲簽名方案[J].計(jì)算機(jī)應(yīng)用,2012,32(5):1388-1391.以下簡稱王方案;
6、湯鵬志,劉啟文,左黎明.一種基于身份的部分盲簽名改進(jìn)方案[J].計(jì)算機(jī)工程,2015,41(10):139-143.以下簡稱湯方案;
7、張瑞.基于橢圓曲線密碼的無證書公鑰密碼研究[D].湖北:武漢大學(xué),2011.以下簡稱張方案。
何方案是對李方案提出的一個(gè)ID-PBS方案存在簽名請求者可以非法篡改協(xié)商公共信息而提出的改進(jìn)方案。但在分析何方案時(shí)發(fā)現(xiàn)依然存在簽名請求者可以非法篡改協(xié)商公共信息安全性問題,因此在基于身份的部分盲簽名的領(lǐng)域中,保護(hù)協(xié)商公共信息的安全性顯得尤為重要。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種基于身份的部分盲簽名方法,旨在解決現(xiàn)有的基于身份的部分盲簽名中協(xié)商公共信息安全性低的問題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種基于身份的部分盲簽名方法,包括:
建立一個(gè)公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub};其中,l為安全參數(shù),且滿足素?cái)?shù)q>2l,{G1,+}是階為q的循環(huán)加法群,P為群G1中的任意生成元;{G2,·}是階為q的循環(huán)乘法群,g為生成元;雙線性對映射e:G1×G1→G2,g=e(P,P)∈G2;hash函數(shù):PKG選取s為主密鑰,Ppub=sP為公鑰;
簽名者提取其私鑰為提取公鑰為Ppub;
簽名者隨機(jī)選擇兩個(gè)整數(shù)并計(jì)算r=gx和v=gy,并把計(jì)算結(jié)果(r,v)發(fā)送給簽名請求者;
簽名請求者接收到(r,v)后,隨機(jī)選擇兩個(gè)盲化因子并計(jì)算h=α-1[H2(m,c,r′)+β],把h發(fā)送給簽名者;
簽名者接收到h后,對盲化后的消息使用其私鑰進(jìn)行盲簽名,計(jì)算把S發(fā)送給簽名請求者;
簽名請求者進(jìn)行脫盲工作,計(jì)算S′=αS,得到消息m和協(xié)商消息c的簽名為σ=(r′,S′);
驗(yàn)證者進(jìn)行簽名驗(yàn)證。
優(yōu)選地,所述建立一個(gè)公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub}的具體步驟為;
根據(jù)安全需要,確定安全系數(shù)l和素?cái)?shù)q的大小,利用橢圓曲線構(gòu)造階為q的循環(huán)加法群{G1,+}和循環(huán)乘法群{G2,·},定義雙線性映射e:G1×G1→G2;
選擇無碰撞雜湊函數(shù)
從mod q的整數(shù)乘法群中隨機(jī)選取一個(gè)整數(shù)s作為私鑰生成中心PKG的主密鑰,并計(jì)算Ppub=sP作為其對應(yīng)的公鑰;
公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并將s作為主密鑰值保存。
優(yōu)選地,所述簽名者提取其私鑰為提取公鑰為Ppub的具體步驟為:
簽名者向PKG發(fā)送身份信息IDB∈{0,1}*;
PKG驗(yàn)證簽名者的身份信息與實(shí)體無誤后,計(jì)算PKG將發(fā)送給簽名者B;
簽名者B接受到后,驗(yàn)證等式的正確性,如果等式成立,簽名者B就把作為其私鑰,Ppub為其公鑰,否則重新執(zhí)行密鑰生成算法。
優(yōu)選地,所述驗(yàn)證者進(jìn)行簽名驗(yàn)證的具體步驟包括:
驗(yàn)證者收到簽名請求者發(fā)送的消息-簽名對(m,c,σ=(r′,S′));
驗(yàn)證等式是否成立,如果是,驗(yàn)證者就相信(m,c,σ=(r′,S′))是由簽名者進(jìn)行有效的盲簽名;
否則無效。
本發(fā)明的實(shí)施例還提供一種基于身份的部分盲簽名裝置,包括:
系統(tǒng)參數(shù)建立單元,用于建立公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub};
提取單元,用于簽名者提取私鑰及公鑰;
承諾單元,用于隨機(jī)選擇兩個(gè)整數(shù)并計(jì)算r=gx和v=gy,并把計(jì)算結(jié)果(r,v)發(fā)送給簽名請求者;
盲化單元,用于接收到(r,v)后,隨機(jī)選擇兩個(gè)盲化因子并計(jì)算h=α-1[H2(m,c,r′)+β],把h發(fā)送給簽名者;
部分盲簽名單元,用于接收到h后,對盲化后的消息使用其私鑰進(jìn)行盲簽名,計(jì)算把S發(fā)送給簽名請求者;
脫盲單元,用于進(jìn)行脫盲工作,計(jì)算S′=αS,得到消息m和協(xié)商消息c的簽名為σ=(r′,S′);
驗(yàn)證單元,用于進(jìn)行簽名驗(yàn)證。
優(yōu)選地,所述系統(tǒng)參數(shù)建立單元包括:
構(gòu)建模塊,用于確定安全系數(shù)l和素?cái)?shù)q的大小,利用橢圓曲線構(gòu)造階為q的循環(huán)加法群{G1,+}和循環(huán)乘法群{G2,·},定義雙線性映射e:G1×G1→G2;;
函數(shù)選擇模塊,用于選擇選擇無碰撞雜湊函數(shù)
密鑰模塊,用于從mod q的整數(shù)乘法群中隨機(jī)選取一個(gè)整數(shù)s作為私鑰生成中心PKG的主密鑰,并計(jì)算Ppub=sP作為其對應(yīng)的公鑰,并公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并將s作為主密鑰值保存。
優(yōu)選地,所述提取單元包括:
發(fā)送模塊,用于簽名者向PKG發(fā)送身份信息IDB∈{0,1}*;
計(jì)算模塊,用于PKG驗(yàn)證簽名者的身份信息與實(shí)體無誤后,計(jì)算PKG將發(fā)送給簽名者B;
校對模塊,用于簽名者B接受到后,驗(yàn)證等式的正確性,如果等式成立,簽名者B就把作為其私鑰,Ppub為其公鑰,否則重新執(zhí)行密鑰生成算法。
優(yōu)選地,所述驗(yàn)證單元包括:
接收模塊,用于接收簽名請求者發(fā)送的消息-簽名對(m,c,σ=(r′,S′));
驗(yàn)證模塊,用于驗(yàn)證等式是否成立,如果是,驗(yàn)證者就相信(m,c,σ=(r′,S′))是由簽名者進(jìn)行有效的盲簽名,否則無效。
本發(fā)明的技術(shù)方案,由于簽名者B在中插入的協(xié)商信息H3(c)不僅與簽名請求者C在盲化簽名中使用的協(xié)商信息H3(c)保持一致,同時(shí)也與驗(yàn)證等式中協(xié)商信息H3(c)保證一致,因此,本發(fā)明的方案在協(xié)商信息篡改攻擊下是安全的,有效解決了基于身份的部分盲簽名中因協(xié)商公共信息篡改而帶來的安全性問題。
附圖說明
圖1是本發(fā)明實(shí)施例提供的一種基于身份的部分盲簽名方法流程示意圖;
圖2是本發(fā)明實(shí)施例提供的一種基于身份的部分盲簽名方法流程簡圖;
圖3是本發(fā)明實(shí)施例提供的一種基于身份的部分盲簽名裝置結(jié)構(gòu)框圖;
圖4是本發(fā)明的系統(tǒng)參數(shù)建立單元的結(jié)構(gòu)框圖;
圖5是本發(fā)明的提取單元的結(jié)構(gòu)框圖;
圖6是本發(fā)明的驗(yàn)證單元的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
為了更有效的理解本發(fā)明的技術(shù)方案,我們簡單描述一下何方案中的部分盲簽名的過程:
首先建立一個(gè)建立一個(gè)公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub}。
給定安全參數(shù)l,且滿足素?cái)?shù)q>2l,{G1,+}是階為q的循環(huán)加法群,P為群G1中的任意生成元;{G2,·}是階為q的循環(huán)乘法群,g為生成元;雙線性對映射e:G1×G1→G2,g=e(P,P)∈G2;hash函數(shù):PKG選取s為主密鑰,Ppub=sP為公鑰,系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub}。
然后進(jìn)行密鑰提取算法:簽名者B向PKG發(fā)送身份信息IDB∈{0,1}*,PKG驗(yàn)證簽名者B的身份信息與實(shí)體無誤后,計(jì)算PKG將發(fā)送給簽名者B,簽名者B接受到后,驗(yàn)證等式的正確性,如果等式成立,簽名者B就把作為其私鑰,Ppub為其私鑰。否則重新執(zhí)行密鑰生成算法。
然后再進(jìn)行部分盲簽名生成算法:
假設(shè)m為簽名請求者請求簽名的信息,c為簽名者與簽名請求者協(xié)商的公共信息,簽名過程如下:
a)承諾。簽名者B隨機(jī)選擇兩個(gè)整數(shù)并計(jì)算r=gx和v=gy,并把計(jì)算結(jié)果(r,v)發(fā)送給簽名請求者C。
b)盲化。簽名請求者C接收到(r,v)后,隨機(jī)選擇盲化因子并計(jì)算h=α-1H2(m,c,r′)+βH3(c),把h發(fā)送給簽名者B。
c)部分盲簽名。簽名者B接受到h后,對盲化后的消息使用其私鑰進(jìn)行盲簽名,計(jì)算把S發(fā)送給簽名請求者C。
d)脫盲。簽名請求者C進(jìn)行脫盲工作,計(jì)算S′=αS。
最后簽名請求者C得到消息m和協(xié)商消息c的簽名為σ=(r′,S′)。
最后進(jìn)行簽名驗(yàn)證算法:
驗(yàn)證者收到簽名請求者C發(fā)送的消息-簽名對(m,c,σ=(r′,S′))后,驗(yàn)證等式是否成立,如成立,驗(yàn)證者就相信(m,c,σ=(r′,S′))是由簽名者B進(jìn)行有效的盲簽名。否則無效。
以上方案也會(huì)產(chǎn)生安全攻擊,具體攻擊分析如下:
因?yàn)槭菍Ψ桨高M(jìn)行將協(xié)商信息c篡改為c′攻擊,所以方案中除了部分盲簽名生成算法外,其他算法無需任何改變,盲簽名生成算法如下:
a)承諾。簽名者B隨機(jī)選擇兩個(gè)整數(shù)并計(jì)算r=gx和v=gy,并把計(jì)算結(jié)果(r,v)發(fā)送給簽名請求者C。
b)盲化。簽名請求者C接收到(r,v)后,未經(jīng)簽名者同意將協(xié)商信息c篡改為c′,后選擇兩個(gè)隨機(jī)盲化因子并計(jì)算h=α-1H2(m,c′,r″)+β,把h發(fā)送給簽名者B。
c)部分盲簽名。簽名者B接受到h后,對盲化后的消息使用其私鑰進(jìn)行部分盲簽名,計(jì)算把S發(fā)送給簽名請求者C。
d)脫盲。簽名請求者C進(jìn)行脫盲工作,計(jì)算S′=αS。
最后簽名請求者C得到消息m和協(xié)商消息c′的簽名為σ=(r″,S′)。
簽名驗(yàn)證方程為:現(xiàn)對簽名(m,c′,r″,S′)進(jìn)行簽名驗(yàn)證等式運(yùn)算:
即在未經(jīng)簽名者同意的前提下,簽名請求者篡改公共信息后所形成的簽名也能通過驗(yàn)證等式驗(yàn)證,故驗(yàn)證者相信σ=(r″,S′)是簽名者B對消息m和協(xié)商消息c′的有效簽名。
結(jié)合圖1及圖2所示,本發(fā)明的實(shí)施例提供一種基于身份的部分盲簽名方法,包括以下步驟:
步驟S100,建立一個(gè)公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub};
其中,l為安全參數(shù),且滿足素?cái)?shù)q>2l,{G1,+}是階為q的循環(huán)加法群,P為群G1中的任意生成元;{G2,·}是階為q的循環(huán)乘法群,g為生成元;雙線性對映射e:G1×G1→G2,g=e(P,P)∈G2;hash函數(shù):PKG選取s為主密鑰,Ppub=sP為公鑰;
步驟S200,簽名者提取其私鑰為提取公鑰為Ppub;
步驟S300,簽名者隨機(jī)選擇兩個(gè)整數(shù)并計(jì)算r=gx和v=gy,并把計(jì)算結(jié)果(r,v)發(fā)送給簽名請求者;
步驟S400,簽名請求者接收到(r,v)后,隨機(jī)選擇兩個(gè)盲化因子并計(jì)算h=α-1[H2(m,c,r′)+β],把h發(fā)送給簽名者;
步驟S500,簽名者接收到h后,對盲化后的消息使用其私鑰進(jìn)行盲簽名,計(jì)算把S發(fā)送給簽名請求者;
步驟S600,簽名請求者進(jìn)行脫盲工作,計(jì)算S′=αS,得到消息m和協(xié)商消息c的簽名為σ=(r′,S′);
步驟S700,驗(yàn)證者進(jìn)行簽名驗(yàn)證。
優(yōu)選地,在所述步驟S100中,所述建立一個(gè)公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub}的具體步驟為:
步驟S110,根據(jù)安全需要,確定安全系數(shù)l和素?cái)?shù)q的大小,利用橢圓曲線構(gòu)造階為q的循環(huán)加法群{G1,+}和循環(huán)乘法群{G2,·},定義雙線性映射
e:G1×G1→G2;
步驟S120,選擇無碰撞雜湊函數(shù)
步驟S130,從mod q的整數(shù)乘法群中隨機(jī)選取一個(gè)整數(shù)s作為私鑰生成中心PKG的主密鑰,并計(jì)算Ppub=sP作為其對應(yīng)的公鑰;
步驟S140,公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并將s作為主密鑰值保存。
進(jìn)一步地,所述步驟S200具體包括:
步驟S210,簽名者向PKG發(fā)送身份信息IDB∈{0,1}*;
步驟S220,PKG驗(yàn)證簽名者的身份信息與實(shí)體無誤后,計(jì)算PKG將發(fā)送給簽名者B;
步驟S230,簽名者B接受到后,驗(yàn)證等式的正確性,如果等式成立,簽名者B就把作為其私鑰,Ppub為其公鑰,否則重新執(zhí)行密鑰生成算法。
進(jìn)一步地,所述步驟S700中,具體包括:
步驟S710,驗(yàn)證者收到簽名請求者發(fā)送的消息-簽名對(m,c,σ=(r′,S′));
步驟S720,驗(yàn)證等式是否成立,如果是,驗(yàn)證者就相信(m,c,σ=(r′,S′))是由簽名者進(jìn)行有效的盲簽名;
否則無效。
由于簽名者在中插入的協(xié)商信息H3(c)不僅與簽名請求者在盲化簽名中使用的協(xié)商信息H3(c)保持一致,同時(shí)也與驗(yàn)證等式中協(xié)商信息H3(c)保證一致。故本方案在協(xié)商信息篡改攻擊下是安全的。
如圖3所示,本發(fā)明的實(shí)施例還提供一種基于身份的部分盲簽名裝置,包括:
系統(tǒng)參數(shù)建立單元100,用于建立公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub};
提取單元200,用于簽名者提取私鑰及公鑰;
承諾單元300,用于隨機(jī)選擇兩個(gè)整數(shù)并計(jì)算r=gx和r=gx,并把計(jì)算結(jié)果(r,v)發(fā)送給簽名請求者;
盲化單元400,用于接收到(r,v)后,隨機(jī)選擇兩個(gè)盲化因子并計(jì)算h=α-1[H2(m,c,r′)+β],把h發(fā)送給簽名者;
部分盲簽名單元500,用于接收到h后,對盲化后的消息使用其私鑰進(jìn)行盲簽名,計(jì)算把S發(fā)送給簽名請求者;
脫盲單元600,用于進(jìn)行脫盲工作,計(jì)算S′=αS,得到消息m和協(xié)商消息c的簽名為σ=(r′,S′);
驗(yàn)證單元700,用于進(jìn)行簽名驗(yàn)證。
進(jìn)一步地,所述系統(tǒng)參數(shù)建立單元100包括:
構(gòu)建模塊101,用于確定安全系數(shù)l和素?cái)?shù)q的大小,利用橢圓曲線構(gòu)造階為q的循環(huán)加法群{G1,+}和循環(huán)乘法群{G2,·},定義雙線性映射e:G1×G1→G2;
函數(shù)選擇模塊102,用于選擇選擇無碰撞雜湊函數(shù)
密鑰模塊103,用于從mod q的整數(shù)乘法群中隨機(jī)選取一個(gè)整數(shù)s作為私鑰生成中心PKG的主密鑰,并計(jì)算Ppub=sP作為其對應(yīng)的公鑰,并公開系統(tǒng)參數(shù)params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并將s作為主密鑰值保存。
進(jìn)一步地,所述提取單元200進(jìn)一步包括:
發(fā)送模塊201,用于簽名者向PKG發(fā)送身份信息IDB∈{0,1}*;
計(jì)算模塊202,用于PKG驗(yàn)證簽名者的身份信息與實(shí)體無誤后,計(jì)算PKG將發(fā)送給簽名者B;
校對模塊203,用于簽名者接受到后,驗(yàn)證等式的正確性,如果等式成立,簽名者就把作為其私鑰,Ppub為其公鑰,否則重新執(zhí)行密鑰生成算法。
更進(jìn)一步地,所述驗(yàn)證單元700包括:
接收模塊701,用于接收簽名請求者發(fā)送的消息-簽名對(m,c,σ=(r′,S′));
驗(yàn)證模塊702,用于驗(yàn)證等式是否成立,如果是,驗(yàn)證者就相信(m,c,σ=(r′,S′))是由簽名者進(jìn)行有效的盲簽名,否則無效。
下面,將本發(fā)明中的技術(shù)方案與上述已存在的ID-PBS方案進(jìn)行計(jì)算效率的比較,其中包括Chow方案,王方案,閆方案,何方案,湯方案。采用張方案中的性能比較方法,使用嵌入度為2的超奇異橢圓曲線E(FP):y2=x3+x,其中q=2159+217+1為160比特素?cái)?shù),p為滿足條件p+1=12qr的512比特素?cái)?shù)。硬件平臺(tái):CPU為CPIV 3-GHZ,512MB內(nèi)存和Windows XP操作系統(tǒng)。表1列出密碼方案中耗時(shí)大的基本單元運(yùn)算效率。
表1方案中基本單元運(yùn)算效率(單位為:毫秒)
表2列出了各方案中具體耗時(shí)運(yùn)算的計(jì)算數(shù)量。
表2各種方案的計(jì)算性能比較(單位:毫秒)
綜上,可以明顯得到本發(fā)明所構(gòu)造的方案具有更高的效率。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。