代理盲簽名
出自 MBA智库百科(https://wiki.mbalib.com/)
代理盲簽名(Proxy Blind Signature)
目錄 |
代理盲簽名是指代理簽名和盲簽名的結合,既具有代理簽名的特性,又具有盲簽名的特性。因而,一個好的代理盲簽名方案應具有如下安全特性:
1、不可偽造性:只有指定的代理簽名人能夠產生有效代理盲簽名,任何其他人包括原始簽名人在內都不能產生有效的代理盲簽名。
2、可驗證性:簽名接收者能夠從代理盲簽名中驗證代理簽名是否有效,並根據有效的代理簽名相信原始簽名人對所簽消息的認同。
3、可鑒別性:任何人都可區分代理盲簽名和正常的原始簽名人的簽名。
4、不可否認性:一旦代理簽名人代替原始簽名人產生了有效的代理盲簽名,他就不能向任何人否認他的行為。
5、防止濫用:代理簽名人的責任應當被具體確定,以確保代理密鑰對只能用於創建代理盲簽名。
6、盲性:所簽消息對代理簽名者來說是不可見的,並且簽名公佈後,代理人不能追蹤簽名。
代理盲簽名的構造方法[1]
代理盲簽名是建立在代理簽名理論和盲簽名理論的基礎上的,因此代理盲簽名的構造一般要用到普通數字簽名、代理簽名或盲簽名。代理盲簽名的構造主要是以代理簽名為基礎,對代理簽名體制進行自化,構造出代理盲簽名體制,或者以己經存在的盲簽名為基礎,增加代理授權機制構造出代理盲簽名體制。
一個完整的代理盲簽名方案,一般包括密鑰生成演算法、授權代理演算法、代理盲簽名演算法和簽名驗證演算法四個演算法,可設為:BPS=(BPKg, BPGr, BPSig, BPVf)、一個普通的數字簽名方案一般包括三個演算法:密鑰生成演算法、簽名演算法和驗證演算法,可表示為DS=(Ks,Sig, Vf)下麵以一個普通的數字簽名演算法為例說明代理盲簽名方案構造的一般方法,並指出構造代理盲簽名應註意的問題:
假設方案的參與者有原始簽名人A、代理簽名人B和消息擁有者R;Xu,Yu,分別為用戶U的私鑰和公鑰;消息的自化演算法為Bli()。
1、密鑰生成過程(由演算法BPKg實現)
密鑰生成演算法BPKg同普通數字簽名的密鑰生成演算法Ks完全一樣,方案的各個參與方(原始簽名人、代理簽名人和消息擁有者)都按照密鑰生成演算法生成自己的密鑰對,私鑰秘密保存,公鑰在系統內公佈。
2、授權代理過程(由演算法BPGr實現)
(l)原始簽名人A選擇隨機數 r,利用其私鑰XA、和隨機數r計算出SA,並對授權書MW和SA執行簽名,即S=Sig(MW ,SA),然後把簽名結果S發送給代理簽名人B。
(2)B收到簽名消息S後,利用簽名驗證演算法Vf驗證簽名的正確性,若正確,接受代理,否則,要求原始簽名人重新授權或者拒絕代理。授權代理一旦成功,代理人B就通過S計算出自己的代理密鑰S,並秘密保存,計算代理公鑰YP併在系統內公開。
3、代理盲簽名過程(由演算法BPSig實現)
(1)消息擁有者R選擇隨機數r1,r2……rn作為自因數,並通過自化演算法對要簽名的消息m進行自化,即:m'=Bli(m,r1,r2……rn,r),然後把m'發送給B。
(2) B收到m’後,利用其代理私鑰SP產生自消息m’的簽名,即s=Sig(S_P,m' ),最後把s發送給R.
(3)消息擁有者R收到s後,利用s計算出盲簽名s'。(m, m', s')就是消息m的代理盲簽名。
(4)簽名驗證過程(由演算法BPVf實現)
要證明消息m的代理盲簽名的有效性,首先要驗證代理是通過正確授權的,然後再通過簽名驗證演算法BPVf驗證簽名的正確性。
利用普通的數字簽名演算法構造代理盲簽名方案時要以代理簽名和盲簽名理論為基礎,構造時要保證方案的嚴謹性,否則構造的代理盲簽名就可能存在各種安全問題,沒有實際應用的價值。因此,在設計一個代理盲簽名方案時要註意以下幾個問題:
(1)演算法要力求簡潔、高效、易實現。
(2)演算法的設計要能避免各種可能的攻擊,如原始簽名人的攻擊、簽名接收者的攻擊和一般性偽造攻擊等。
(3)要滿足簽名的不可追蹤性。
- ↑ 蘇靖楓;李忠.《代理盲簽名研究綜述》[J].電腦知識與技術.2011年24期