本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體為提出一種標(biāo)準(zhǔn)模型下格上基于身份的盲簽名方法。
背景技術(shù):
盲簽名的概念首先由Chaum在1982年提出,盲簽名是一種具有特殊性質(zhì)的數(shù)字簽名。消息擁有者在不公布消息真實內(nèi)容的情況下,獲得消息簽名者對真實消息的合法簽名,由于盲簽名具有保護(hù)用戶隱私的性質(zhì),使得盲簽名在電子現(xiàn)金,電子選舉,不經(jīng)意傳輸?shù)阮I(lǐng)域存在廣泛的應(yīng)用。在傳統(tǒng)的公鑰密碼系統(tǒng)中,主要采用PKI(Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施)來驗證公鑰和用戶身份的相關(guān)性,這種方式的證書管理過程需要很高的計算開銷和存儲開銷。
1985年Shamir提出了基于身份密碼學(xué)概念,并提出了第一個基于身份的簽名方案(Identity-Based Signature Scheme,IBS)。在IBS方案中使用用戶的身份信息作為公鑰,私鑰則由可信的密鑰生成中心PKG(Private Key Generator)進(jìn)行計算得到,無需使用公鑰證書,不僅降低了密碼算法的計算開銷和實現(xiàn)成本,而且去除了PKI體制中的公鑰證書管理負(fù)擔(dān)。
結(jié)合盲簽名和基于身份密碼學(xué),Zhang和Kim在2003年利用雙線性對提出了基于身份的盲簽名方案。目前,很多研究者仍在繼續(xù)對基于身份的盲簽名方案進(jìn)行研究,但是大多方案的安全性是基于數(shù)論難題的,然而在量子計算機(jī)得到應(yīng)用的前提下,基于數(shù)論假設(shè)的困難問題都可以在多項式時間內(nèi)得到解決。因此,設(shè)計能抵抗量子攻擊的簽名方案成為該領(lǐng)域需解決的問題。
基于格的公鑰密碼體制是量子計算機(jī)不能攻破的少數(shù)經(jīng)典公鑰密碼體制之一,且基于格的公鑰密碼體制還有其他優(yōu)良特性,如平均情況與最差情況一樣安全以及簡單高效等,因而近幾年引起了國內(nèi)外密碼學(xué)家的密切關(guān)注。1996年Ajtai開創(chuàng)性地證明了小整數(shù)解(SIS)問題在平均情況下的困難性與一類格困難問題在最差情況下的困難性等價。該工作為基于格的公鑰密碼體制奠定了發(fā)展的基礎(chǔ)。
2008年Gentry和Peikert等基于SIS問題提出了一個帶原像采樣的單向陷門函數(shù),并據(jù)此構(gòu)造了一個在隨機(jī)預(yù)言模型下可證明安全的基于身份的加密方案和一個在隨機(jī)預(yù)言模型下可證明安全的簽名方案。2010年Markus Ruckert利用原像采樣函數(shù)設(shè)計了第一個基于格的3輪盲簽名方案,但是該方案中存在簽名失敗的問題。Agrawal和Boneh等人在2010年美密會上提出了一個新的短格基派生算法并且不增加格的維度,并用該算法構(gòu)造了第一個標(biāo)準(zhǔn)模型下分層的格上基于身份的加密方案。Wang等人在2012年提出了一個在隨機(jī)預(yù)言模型下格上基于身份的盲簽名方案,目前還沒有一個在標(biāo)準(zhǔn)模型下可證明安全的格上基于身份的盲簽名方案。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明的目的是提供一種標(biāo)準(zhǔn)模型下可證明安全的格上基于身份盲簽名方法,該方法建立的盲簽名方案直接使用用戶身份作為公鑰,具有標(biāo)準(zhǔn)模型下的可證明安全性,并可抵抗量子計算機(jī)的攻擊。
為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案:方案主要包括:私鑰生成中心,消息擁有者,消息簽名者,消息驗證者,具體實施步驟為:
參數(shù)生成算法Setup(1n):私有密鑰生成器PKG(private key generator)以安全參數(shù)n為輸入,運行陷門生成算法TrapGen(1n),生成系統(tǒng)主密鑰MK,系統(tǒng)公共參數(shù)PP。公布公共參數(shù)PP,保存MK。
密鑰生成算法Extract(PP,id,MK):系統(tǒng)根據(jù)收到的簽名者的身份信息id,通過自己的主密鑰MK和公共參數(shù)PP,用短格基派生算法BasisDel輸出簽名者的私鑰Sid。
簽名算法Sign(PP,SKid,μ):消息盲化:消息擁有者C使用采樣算法SampleD盲化消息M,μ為盲化后的消息,把μ發(fā)給簽名者S。對盲化消息簽名:簽名者收到μ之后,用SKid并使用單向陷門求逆算法SamplePre對μ進(jìn)行簽名,輸出盲化消息的簽名e′并驗證e′是否滿足要求,如果不滿足則重新選取,并在本地存儲(μ,e′),然后將(μ,e′)發(fā)送給消息擁有者C。消息去盲:消息擁有者C收到簽名之后,做去盲操作得到M的簽名e。
驗證算法Verify(PP,id,M,e):輸入公共參數(shù)PP,和用戶身份id,任意驗證者都可通過一定計算能夠驗證(M,e)的正確性。
本發(fā)明具有以下優(yōu)點和積極效果:
(1)安全性高
本發(fā)明是一種安全性很高的盲簽名方案。不僅安全性可規(guī)約到求小整數(shù)解(SIS)困難問題,而且具有標(biāo)準(zhǔn)模型下的可證明安全性。
(2)執(zhí)行效率高
本方法主要直接使用用戶身份作為公鑰,去除了PKI體制中的公鑰證書的運算與管理負(fù)擔(dān),而且僅使用簡單地線性運算(模乘,模加),與所有數(shù)論上的基于身份的盲簽名方案相比,計算效率顯然更高。本方法使用新的格基派生算法,保證維度不變所以效率有所提升。
附圖說明
圖1是一種標(biāo)準(zhǔn)模型下格上基于身份盲簽名方法的流程圖
具體實施方式
令n為安全參數(shù)且n是大于零的整數(shù),q為素數(shù)且q≥2,m≥5n lg q,是一個抗碰撞的哈希函數(shù)。方案具體實施步驟如下:
參數(shù)生成算法Setup(1n):私有密鑰生成器PKG(private key generator)以安全參數(shù)n為輸入,運行陷門生成算法TrapGen(1n),生成矩陣和對應(yīng)的短基為系統(tǒng)主密鑰,A0為系統(tǒng)公鑰。假設(shè)消息M是由任意d比特長的比特串{0,1}d組成,那么隨機(jī)選擇d個不相關(guān)的向量公布系統(tǒng)的公共參數(shù)PP=<A0,C1,C2,…Cd>,主密鑰MK=S0。
密鑰生成算法Extract(PP,id,MK):系統(tǒng)根據(jù)收到的簽名者的身份信息id,通過自己的主密鑰S0和公共參數(shù)PP,使用格基派生算法BasisDel(A0,H(id),S0,s)輸出簽名者的私鑰Sid,其中Sid為格Λ⊥(A0H(id)-1)的一個基,s為高斯采樣參數(shù)。
簽名算法Sign(PP,SKid,μ):消息盲化,消息擁有者C隨機(jī)均勻選取t∈D={t∈R|||t||≥1/s}使用采樣算法SampleD(A0H(id)-1,s)輸出一個向量u,計算:μ為盲化后的消息,把μ發(fā)給簽名者S。簽名者S在接收到消息擁有者C發(fā)來的盲化消息μ之后使用單向陷門求逆算法SamplePre(A0H(id)-1,Sid,μ,s)對μ進(jìn)行簽名,輸出盲化消息的簽名簽名者S驗證且e′≠0,如果不滿足則重新簽名,并在本地存儲(μ,e′),然后將(μ,e′)發(fā)送給消息擁有者C。消息去盲,消息擁有者C收到簽名之后,做如下去盲操作:e=t-1(e′-u),e即為消息M的簽名。
驗證算法Verify(PP,id,M,e):任意驗證者都能驗證(M,e)的正確性,通過下面的計算:
(1)驗證e≠0且如果滿足進(jìn)行(2)驗證,不滿足則拒絕。
(2)驗證如果滿足則介紹,不滿足則拒絕。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的人員都可以理解其原理,在不脫離本發(fā)明的原理的情況下可以對實施例進(jìn)行多種變化、修改或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。