本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體為提出了一種格上基于身份的部分盲簽名方法。
背景技術(shù):
目前,基于格的公鑰密碼體制是量子計算機不能攻破的少數(shù)經(jīng)典公鑰密碼體制之一,且基于格的公鑰密碼體制還有其他優(yōu)良特性,如平均情況與最差情況一樣安全以及簡單高效等,因而基于格的密碼體制可以成為在量子時代保證信息安全的重要工具。
盲簽名(bs,blindsignature)是簽名者和請求者之間的一個交互協(xié)議,能夠讓簽名者在不知道待簽消息的具體內(nèi)容的情況下對消息進(jìn)行簽名,當(dāng)盲簽名公布后簽名者也無法將簽名過程與最終公布的簽名聯(lián)系起來。由于盲簽名能夠有效地保護(hù)簽名請求者的隱私,因此盲簽名在匿名投票選舉系統(tǒng)、匿名電子現(xiàn)金系統(tǒng)等領(lǐng)域有著廣泛的應(yīng)用。但是在電子現(xiàn)金系統(tǒng)中,盲簽名有比較嚴(yán)重的缺陷,例如,銀行的數(shù)據(jù)庫必須保存每個使用過的電子貨幣以防止貨幣被重復(fù)使用,這一點使得盲簽名的簽名數(shù)量成幾何級數(shù)增加。另外,由于盲簽名的匿名性容易造成惡意的請求者非法使用,使得一些違法行為如偷稅漏稅、黑市交易洗錢等難以監(jiān)管。
為了解決盲簽名的這些問題,1996年abe和fujisaki提出了部分盲簽名(pbs,partiallyblindsignature)的概念,部分盲簽名是盲簽名的一種擴展,允許為用戶產(chǎn)生關(guān)于某個消息m的盲簽名,但是簽名中需嵌入一個由用戶和簽名者協(xié)商的聲明信息c,c在整個簽名過程中都是可見的。尤其在電子現(xiàn)金系統(tǒng)中,部分盲簽名既可以保護(hù)簽名請求者的隱私又能使得簽名者對簽名內(nèi)容的部分可控性,很好地解決了盲簽名在實際應(yīng)用中的問題,并且部分盲簽名在應(yīng)用中比盲簽名的效率更高,但目前還沒有一個可證明安全的格上基于身份的部分盲簽名方案。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明的目的是提供一種可證明安全的格上基于身份的部分盲簽名方法,該方法建立的部分盲簽名方案直接使用用戶身份作為公鑰,在選擇消息和選擇身份攻擊下滿足安全性,并且可抵抗量子計算機的攻擊。
為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案,方案主要包括私鑰生成中心pkg(privatekeygenerator),消息擁有者c,消息簽名者s,消息驗證者v,具體實施步驟為:
setup:私有密鑰生成器pkg以安全參數(shù)λ作為輸入,使用陷門生成算法trapgen(1λ)生成系統(tǒng)主密鑰s0和相應(yīng)的系統(tǒng)參數(shù)param。公布系統(tǒng)參數(shù)param,主密鑰s0保密。
keygen:pkg輸入自己的私鑰s0,收到的簽名者的身份信息id,系統(tǒng)公共參數(shù)param,使用矩陣采樣算法samplemat輸出簽名者身份id對應(yīng)的私鑰sid。
issue:msg為待簽名消息,info為簽名者s和消息擁有者c共同協(xié)商的聲明信息。s和c之間的簽名交互如下:
(1)sign(partⅰ):s在分布
(2)blind:c在收到s發(fā)來的(c1,c2)之后,對待簽消息msg進(jìn)行盲化。c計算盲化后的消息ε*,發(fā)送給s。
(3)sign(partⅱ):s收到ε*之后,使用自己的私鑰sid,和拒絕采樣定理計算盲化后的消息的簽名,s輸出盲化后消息ε*的簽名
(4)unblind:c在收到s發(fā)來的消息簽名之后,做去盲計算,輸出消息(msg,info)的簽名(z1,z2,ε1,ε2)。
verify:驗證者v收到消息和簽名之后,使用公共參數(shù)param和s的公鑰,都可以通過一定的計算來驗證,消息(msg,info)和簽名(z1,z2,ε1,ε2)的正確性。
本發(fā)明具有以下優(yōu)點和積極效果:
(1)安全性高
本發(fā)明是一種安全性很高的部分盲簽名方法。其安全性可規(guī)約到格上的小整數(shù)解(sis)困難問題,能夠抵抗量子計算機的攻擊,并且能夠在選擇消息攻擊和選擇身份攻擊下滿足不可偽造性。
(2)運算效率高
本方法使用矩陣采樣算法計算用戶身份信息對應(yīng)的私鑰,可以保證私鑰的維度不變,在計算簽名時能夠有效的提高運算效率。本方法在計算簽名時采用無陷門的簽名算法,僅使用簡單地線性運算(模乘,模加),與其他有陷門的簽名方案相比明顯運算效率有所提高。
附圖說明
圖1是一種格上基于身份的部分盲簽名方法的流程圖。
具體實施方式
以下結(jié)合實施例和附圖對本發(fā)明作進(jìn)一步描述。
本發(fā)明分為四個階段:setup(建立)階段、keygen(密鑰建立)階段、issue(發(fā)布)階段、verify(驗證)階段。方法中的包括3個密碼學(xué)哈希函數(shù):hmsg:{0,1}*→{-1,0,1}k,
setup:私有密鑰生成器pkg(privatekeygenerator),以安全參數(shù)λ作為輸入,使用陷門生成算法trapgen(1λ)生成矩陣
keygen:pkg使用自己的私鑰s0,和收到的身份信息id,還有系統(tǒng)公共參數(shù)param={n,m,a,q,s,k,hid,hmsg,hinfo},其中s為采樣標(biāo)準(zhǔn)差,使用矩陣采樣算法samplemat(a,s0,s,hid(id))輸出用戶id對應(yīng)的私鑰
issue:msg為待簽名消息,info為簽名者s和消息擁有者c共同協(xié)商的聲明信息。s和c之間的簽名交互如下:
(1)sign(partⅰ):s在分布
c1=aymodq
把(c1,c2)發(fā)送給c。
(2)blind:c在收到s發(fā)來的(c1,c2)之后,對待簽消息msg進(jìn)行盲化。c在分布
c′1=c1+aα1-hid(id)β1modq
c′2=c2+aα2-hinfo(info)β2modq
ε=hmsg(c′1,c′2,hinfo(info),msg)
ε*=(ε-β1-β2)mod3
最后把ε*發(fā)送給s。
(3)sign(partⅱ):s收到ε*之后做如下計算:
s把
(4)unblind:c在收到s發(fā)來的消息之后做如下計算:
并且驗證:
verify:驗證者v收到消息和簽名之后,使用公共參數(shù)param和s的公鑰hid(id),進(jìn)行如下驗證:
(ε1+ε2)mod3=hmsg(az1-hid(id)ε1,az2-hinfo(info)ε2,hinfo(info),msg)
如果成立則接受,不成立則拒絕。
本發(fā)明提出一種格上基于身份的部分盲簽名方法,所提方法的優(yōu)點在于:在安全性上,本方法的安全性基于格上sis困難問題的難解性,可以抵抗量子計算機的攻擊;效率方面,該方法采用矩陣采樣算法計算用戶身份信息對應(yīng)的私鑰,在計算簽名時采用無陷門的簽名算法,僅使用簡單地線性運算(模乘,模加),因而生成的用戶私鑰更短,簽名速度更快。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的人員都可以理解其原理,在不脫離本發(fā)明的原理的情況下可以對實施例進(jìn)行多種變化、修改或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。