一次性代理簽章方法
One Time Proxy Signature
吳宗杉 台灣海洋大學 [email protected] 鍾國文 佛光大學 [email protected] 丁培毅 台灣海洋大學 [email protected] 陳益森 台灣海洋大學 [email protected]
摘要
數位簽章是可用以滿足不可否認性及確認 資料來源性的安全技術,但當 原始簽署者如因某 些因素無法親自簽署文件,則可將其簽署權利授 與代理人,此即所謂的代理簽章。在本論文中, 我們考慮一次性的特性在代理簽章環境下的應 用需求,即,某些特定環境下,此代理權利只能 使用一次的解決方案。如果代理簽章者重覆簽 署,則可利用兩份代理簽章揭露其私鑰。 關鍵詞:數位簽章、代理簽章、一次性簽章、離 散對數問題Abstract
Digital signatures meet the requirements of non-repudiation and data origin. In case that the original signer cannot perform some signing tasks, he can delegate his signing ability to the proxy signer, which is so called proxy signatures. In this paper, we elaborate on the environments of one time property to propose a solution for one time proxy signature. That is, the proxy signer can only produce one proxy signature. If there are two proxy signatures are made, the private key of the proxy signer will be exposed.
Keywords: Digital signature, Proxy signature, One time signature, Discrete logarithm problem
一、緒論
1996 年,Mambo 等人提出一個新的代理簽 章 (Proxy signature) 概念 [5],代理簽章是原簽 署者因某些因素無法親自簽署文件,而將簽署權 力授與代理人,但是其效力如同原始簽章者簽署 一樣。原始簽章者授予代理簽章者簽章的能力, 代理簽章者簽署後,送給驗證者檢驗,驗證者可 確認此簽章的合法性及正確性。他們所提出的方 法,代理簽章者可以否認其所簽署過的代理簽 章,並不具有不可否認的特性。因此,為改進這 個缺點,Mambo 等人於同年又提出具有不可否 認性的方法 [6]。一般而言,代理簽章滿足數位 簽章的兩個特性,一為不可偽造性,另一為可驗 證性。所謂的不可偽造性是指除原始簽章者或代 理簽章者外,沒有任何人可以產生有效代理簽 章。可驗證性是指當驗證者驗證代理簽章無誤 時,就可以相信此簽章是合法的代理簽章。其代 理授權種類如下: 完全授權 (Full delegation):原始簽章者將 其所擁有之秘密金鑰交付予代理簽章者,代理簽 章者可依此秘密金鑰簽章簽署文件。因為代 理簽 章者得知原始簽章者之秘密金鑰後,便可任意簽 署文件,且所產生之簽章則無法分辨是由原始簽 章者亦或是代理簽章者所簽署。 部份授權 (Partial delegation):基於上述授 權方式之缺點,原始簽章者授予代 理者簽署權力時,並 不是直接傳送其秘密金鑰給代理者,而是 利用此秘密金鑰計算出代理金鑰,將此代理金鑰 傳 送 給 代理 者 。 可 分 為 非 保 護 代 理 (Proxy unprotected) [9],保護代理(Proxy protected),說 明如下,代理者則可用代理金鑰簽署文件產生代 理簽章。其所產生的代理簽章與原始簽章者利用 秘密金鑰所產生的簽章是不同的,因此驗證者可 分辨出簽章是否為代理簽章。此外此種授權方式 可依「代理的保護」細分為兩類。一為非保護代 理之代理簽章,即除了代理者可產生代理簽章 外,原始簽章者亦握有代理金鑰來產生代理簽 章。因此所產生出之代 理簽章無法分辨是否真正 由代理者所產生之簽章。這對代理者而言是不公 平的,倘 若原始簽章者產生代理簽章,此行為若 是惡意的話,代 理簽章者就被認定為是此簽章的 簽署者,因而必須對此簽章負責。為解決這個問 題,讓原始簽章者與代 理簽章者保有獨立的簽署 權力,另一種授權方式則為保護代理之代理簽 章。當原始簽章者欲授予代理簽章者簽署權力 時,首先,依據其秘密 金鑰產生數值,將此數值 秘密傳送給代理簽章者,代理簽章者再利用自己 所擁有之秘密金鑰與所接收的數值計算之後,產 生出的代理金鑰。此代理金鑰才可產生代理簽 章。由於代 理金鑰是由代理簽章者的秘密金鑰所 計算出的,唯此擁有此 金鑰的人方可得知代理金 鑰之後產生的代理簽章。因此,除了代理簽章 者,沒有任何人 (包括原始簽章者) 可以產生代 理簽章。這種方式所產生的代理簽章使得簽章具 有可追蹤性及不可否認性,讓簽署者必須為其所 簽署的文件負責。 授權書授權 (Delegation by warrant):原始 簽章者產生授權書給代理簽章者,此授權書是利 用原始簽章者的秘密金鑰所簽署產生,除了宣告 某代理簽章者可代理其行使簽署的權力外,尚可 包含一些特殊的宣告,如代理的權限、可簽署文 件的類型等皆可包括在此授權書中。代理簽章者 得到此授權書後,即可 利用自己的秘密金鑰簽署 所代簽的文件,並將此授權書包含於簽章之中 [7]。 結合授權書之部份授權 (Partial delegation with warrant):在 1997 年,Kim 等人提出新的 代理簽章方法 [3],即結合部分授權及授權書授 權的授權類型。原始簽章者先設定好該代理簽章 者之簽署權力,如簽署期限、簽署文件類型等, 之後利用其秘密金鑰連同所規範的簽署權力計 算之後所得的結果,將之交付給代 理簽章者,代 理簽章者再依據所接收到的訊息,利用自己的秘 密金鑰,計算而得到代理金鑰。之後,代理簽章 者即 可利用 此代理金鑰 簽署文 件產生 代 理 簽 章。而所產生的代 理簽章亦包含原始簽章者所規 定的簽署權力,唯有完全符合此簽署權力的代理 簽章方可認定為合法的代理簽章 [10]。 門檻式授權 (Threshold delegation):原始簽 章者授權給一個包含 n 人的代理群體簽章,只 有當此代理簽章群體中任 t 人以上共同合作,才 能產生有效的代理簽章,但是門檻式授權另外有 它一個特性 [11],那就是驗證者並不知道有那些 成員參與簽署。由於門檻值數位簽章並不需要群 體內的所有成員皆參與,且驗證者並不知道有那 些成員參與簽署,因此造成發生爭議時,無法得 知是群體中那些成員實際參與簽署文件。為提供 不同之應用,故有所謂可追蹤簽署者 (Traceable signer) 之門檻式數位簽章法 [3]。也就是說,驗 證者在驗證門檻值群體簽章時,亦可同時知道有 那些成員實際參與簽署文件。 本文主要探討的是 Kim 與 Chang 所提出 一次代理簽章方法 [2],其研究內容提出代理者 所欲代理原始簽章者簽署的能力,僅是將其量 化,透過簽署過程傳達欲簽署一次或多次的量來 當代理簽章次數,與其傳統代理簽章方法並無明 顯不同之處。本論文提出如何讓代理者僅能代理 簽章一次的方法,來改善 Kim 與 Chang 所提 出一次代理簽章方法,不能滿足不可否認性的缺 點。
二、Kim 與 Chang 一次代理簽章方法
Kim 與 Chang 使用授權書的一次代理簽 章方法,是當原始簽章者 Alice 與代理簽章者 Bob 共同地產生代理簽章的金鑰對 (xp, yp) ,而 驗證簽章者可以還原代理簽章金鑰對應之公鑰 yp 來驗證其真實性及確認合法性。其方法可分以 下五個階段,詳述如下: 系統初始階段:系統選取大質數 p 與 q, 滿足 q | p − 1,以及序 (Order) 為 q 的生成子 (Generator)。(xu, yu) 為參與者 U 的私鑰與公鑰 對,IDu 則為其身分識別,另外定義單向雜湊函數 (One-way hash function) H(.)及原始簽章者簽 章函數 Sig (.)。 代理授權階段:首先,Alice 與 Bob 共同 執行如下的步驟: 1. Alice 挑選兩個數 kA, k1,計算下列各式: p g r kA A = mod (1) p g r k1 mod 1= (2) c = H (rA) (3) 然後將 c 傳送給 Bob。 2. Bob 也挑選 kB,並且計算 p g r kB B = mod (4) 回傳 (c, rB) 給 Alice。 3. Alice 收到 (c, rB) 後,檢查 rBq =1modp 等 式是否為真,倘若為真,則計算下列各式: rP = rA rB mod p (5) sA = kA+ xA H(mw || rP) mod q (6) 其中 || 為連結符號,而這裡所稱的授權書是: mo = [授權期限,IDA 與 IDB,訊息, r1 ], mw = (mo, Sig[mo])。 最後,將 (rA, sA, k1, mw) 安全的傳送給 Bob。 4. Bob 接收到 (rA, sA, k1, mw),首先計算下列兩 式: rP = rA rB mod p (7) c = H (rA) (8) 然後驗證下列等式 p rAq?1mod (9) p r y gsA? HA(mw||rP) Amod (10) 倘若 (10) 式為真,則 Bob 將計算下列式子 sB = kB+ xB H(mw|| rP) mod q (11) 最後則產生出代理簽章金鑰對 (xp, yp),如下兩 式: xp = sA + sB mod q (12) p g y xP P = mod (13) 簽章階段:因為 Bob 僅能使用 r1 去簽署 文件一次,所以 Bob 計算下列兩式: p g r k1 mod 1= (14) q r m m H x k s= 1+ P ( || w|| 1)mod (15) 最後將產生的代理簽章 σ = (m, rP, mw, r1, s) 傳給驗證者。 驗證階段:驗證者接到訊息後,首先檢查 Alice 與 Bob 的身分別與其授權書,接著還原 Bob 的代理簽章金鑰對應之公鑰 yp,且驗證 Bob 所簽署的簽章是否為一次,步驟如下: 1. 檢查 IDA 與 IDB。 2. 檢查 m 與 mw。 3. 還原 Bob 的代理簽章金鑰對應之公鑰如下: p r y y yP =( A B)H(mw||rP) Pmod (16) 4. 最後驗證者驗證其代理簽章的合法性? p r y g H m mw rP P s? mod 1 ) || || ( (17) 當驗證者從授權書檢核與簽章驗證式中,得到相 同且僅有的 r1 參數值時,即可證明 Bob 僅能 代理簽章一次。 擴張簽章次數: Kim 與 Chang 方法中, 倘若 Alice 允許 Bob 可以簽署多次文件,擴大
其簽章的次數,首先授權書定義如下: mo = [ 授權期限,IDA 與 IDB,訊息描述, r1, r2, r3,…], mw = (mo, SigAlice[mo]). 也就是 Alice 得將 r1, r2, r3,…, rn 等參數放於 授權書中後,經過指數運算後獲得其相對應之值 k1, k2, k3, …, kn ,並透過安全的方式傳給 Bob, 讓 Bob 得以簽署過程時加入此參數值,最後, 驗證者從授權書檢核中與簽章驗證式確認後,可 以得知 Alice 授與 Bob 所可以代理簽章的次 數。 在 Kim 與 Chang 的 方法中,我們發現 Alice 可 以 偽 造 Bob 的 代 理 簽 章 σ = (m, rp, mw, r1, s),因為在 (5) 與 (7) 中, Alice 與 Bob 在代理授權階段利用金鑰交換方 法,產生代理簽章金鑰 rp ,因此 Alice 與 Bob 兩者都可使用此一簽章金鑰來做代理簽章時使 用,這樣一來 Alice 若要偽裝 Bob 行使代理簽 章任務,驗證者並無法確定是哪位所簽署之簽 章,無法滿足不可否認性。
三、一次性代理簽章
我們的方法中,授權方式過程為保護代理之 代理簽章,也就是當原始簽章者 Alice 欲授予代 理者 Bob 簽署權力時,Bob 可依據此方法,來 向 Alice 證明,依據其私鑰產生數值,再將此數 值透過此方法秘密傳送給 Alice,在整個求證過 程中,Alice 不知道 Bob 的私鑰,Bob 利用自己 所擁有之私鑰與所接收到 Alice 私鑰所產生的數 值,共同產生代理金鑰,唯此擁有此金鑰的人方 可得知代理金鑰產生的代理簽章。Bob 產生有效 代理簽章後,送指定或無指定驗證者來驗證其簽 章的合法性。當發生糾紛或被簽署文件超過一次 時,驗證者可以從代理簽章中揭露 Alice 所授予 Bob 的代理簽章金鑰,以證明 Bob 越權。本文 可分為系統初始階段、授權代理階段、代理簽章 階段 (指定或無指定第三者驗證) 、簽章驗證階 段等四個階段。敘述如下: 系統初始階段:我們的方法分四個階段,系 統初始階段與 Kim 與 Chang 的方法相同 授權代理階段:首先,Alice 與 Bob 利用 零知識證明法共同執行如下程序 [1]: 1. Bob 擁有公開數值組合 (g1, g2, x, y),其中 g1, g2 ∈ Zp,p 與 q 是大質數且滿足 q|(p- 1),kB∈R Z*P 則下列關係式為: x=g1kB(modp) (18) ) (mod 2 p g y= kB (19) 2. Bob 計算下列三式: r gkB p B = mod (20) p g a rB mod 1 = (21) p g b rB mod 2 = (22) 然後將 (a, b) 傳給 Alice。 3. Alice 收到 (a, b) 後,任選 kA∈R Z*P 並計算 p g r kA A = mod (23) 然後將 rA 傳給 Bob。 4. Bob收到rA後,計算下列式子: w = rB + kB · rA mod q (24) 再回傳 w 給 Alice。 5. Alice 收到 w 後,透過下列兩驗證式: 1w? rA g a x⋅ (25) A r w b y g2 ? ⋅ (26) 得知 Bob 真的擁有 kB 。 6. Alice 確認無誤後,則計算下列算式: sA = kA + xA H(mw || rP) mod q (27) 再將 (sA, mw) 傳送給 Bob,其中授權書於指 定或無指定驗證者時,分述如下: Ι. 無指定驗證者 mo = [授權期限,IDA 與 IDB,訊息],mw = ( mo,Sig [mo] )。 ΙΙ. 指定驗證者 mo = [授權期限,IDA、 IDB與 IDc,訊息], mw = ( mo,Sig [mo] )。 7. Bob 接收到 (rA, sA, mw),首先 驗證下列等式: p r y gsA? HA(mw||rA) Amod (28) 驗證完 sA 的合法性,倘若為真,則計算下列 兩式: rP = rA rB mod p (29) sB = kB + xB H(mw|| rP) mod q (30) 最後,由兩人共同產生出 Bob 的代理簽章金 鑰對 (xp, yp) 如下 : xp= sA + sB mod q (31) p g y xP P = mod (32) 代理簽章階段:Bob產生代理簽章傳給驗證 者時,我們的方法可分指定或無指定驗證者,分 述如下: Ι. 無指定驗證者 當無指定驗證者時,直接執行計算式產生 q r m m H x k s = B + P ( || w|| B)mod (33) 最後得到代理簽章 σ =(m,rP,mw,rB,s),並將 這代理簽章 σ 傳給任一驗證者。 ΙΙ. 指定驗證者 這個方法是指 Bob 產生完有效的簽章後, 簽章僅能傳給指定的驗證者做驗證,Bob 執行以 下列兩個計算式: p y c kB c mod = (34) q c m m H x k s = B + p ( || w || )mod (35) 最後,得到代理簽章 σ =(m,rP,mw,c,s),並將 這代理簽章 σ 傳給指定之驗證者。 驗證階段:當驗證者 (指定或無指定) 收到 Bob 產生的代理簽章 σ 時,首先檢查 Alice 與 Bob 的身分及其授權書,接著還原 Bob 的 代理簽章金鑰對應之公鑰 yp,並且驗證 Bob 所 簽署文件的合法性,分述如下: Ι. 無指定驗證者 驗證者收到簽章後檢查 mw ,還原 yp (36) 式,並驗證 (37) 式: B A r m H B A p y y r r y =( ) ( w|| P) (36) B r m m H P s y r g ? ( || w|| B)⋅ (37) 倘若 (37) 式為真,則簽章 σ =(m,rP,mw,rB,s) 為有效的。 我們提出一次性代理簽章方法,也就是 Bob 僅能代理簽章一次的情況下,如何驗證出 Bob 有無越權產生第二次簽章,說明如下: 當 Bob 代理第一次簽章時,則代理簽章為 ) , , , , ( 1 1 1= m rP mw rB s σ ,其中 ) || || ( 1 1 kB xPH m mw rB s = + (38) 倘 若 Bob 欲 再 代 理 簽 章 時 , 則 代 理 簽 章 為 ) , , , , ( 2 2 2 = m rP mw rB s σ ,其中 ) || || ( 2 2 kB xPH m mw rB s = + (39) Bob 於每次代理簽章後,傳送給驗證者,驗證者 可從 (38) 及 (39) 兩式算出 xp,即揭露 Bob 的代理簽章金鑰 xP,也就是說,驗證者確認此 代理簽章的合法性外,也可以驗證 Bob 在代理 期間有無超過簽章一次,讓 Bob 無法否認自己 越權。 ΙΙ. 指定驗證者 被指定的驗證者收到簽章後檢查 mw,並計 算下列驗證式: 同 (36) 還原 yp,
) ( ? ) ( ( || w|| ) c kB C x c m m H P sy c y g − = (40) 倘若為真,則可證明指定驗證者,且為 Cindy。 在這,我們提出一次性代理簽章方法,也就是 Bob 僅能代理簽章一次的情況下,如何驗證出 Bob 有無越權產生第二次簽章,說明如下: 當 Bob 代理第一次簽章時,則代理簽章為 ) , , , , ( 1 1 1= m rP mw c s σ ,其中 ) || || ( 1 1 k x H m m c s = B + P w (41) 倘 若 Bob 欲 再 代 理 簽 章 時 , 則 代 理 簽 章 為 ) , , , , ( 2 2 2 = m rP mw c s σ ,其中 ) || || ( 2 2 k x H m m c s = B + P w (42) Bob 於每次代理簽章後,傳送給驗證者,可從(41) 及(42)兩式算出 xp,即揭露 Bob 的代理簽章金 鑰 xP,也就是說驗證者確認此代理簽章的合法 性外,也可以驗證 Bob 在代理期間有無超過簽 章一次,讓 Bob 無法否認自己越權。
四、安全性分析
我們所提出的一次性代理簽章方法,是植基 於 DLP (Discrete logarithm problem) 與 CDH (Computational Diffie-Hellman assumption) 的 密 碼假設。為證明一次性代理簽章方法可以滿足鑑 別可區別性、不可偽造性、可驗證性、可識別性 與不可否認性等五項安全需求。我們將從被簽章 的訊息、原始簽章者之私鑰、代理者私錀、代理 原始簽章者之私鑰以及驗證者之私鑰來一一探 討。 可區別性 (Distinguishability):由代理者所 代理的簽章 σ = (m, rp, mw, rB, s),與原始簽章 者所產生的簽章中 (rA) 是可區別的,不僅是原 始簽章者,連代理簽章者的身分別與公鑰都在驗 證式子裡被引用來做驗證,因此滿足可區別性。 不可偽造性 (Unforgeability):唯有原始簽 章者及代理簽章者可產生有效之簽章,除此之 外,沒有任何人能夠偽造出合法的代理簽章。 我們的方法,具有代理保護特性,在產生代 理簽章金鑰時,利用零知識證明法產生代理簽章 金鑰,在不需要透露任何密秘訊息下,亦可達到 訊息交換的效果,來保護代理簽章者,因此原始 簽章者無法偽裝任何代理的簽章,因為原始簽章 者 偽 造 的 代 理 簽 章 無 法 通 過 以 下 的 驗 證 式 B r m m H P r m m H x k s g y r g = B+ P ( || w|| B) = ( || w|| B) , 因 此滿足不可偽造性。 可驗證性 (Verifiability):從代理簽章中, 驗證者可以相信原始簽章者同意此份簽章,從授 權書 mw,驗證者可以得知誰是原始簽章者,誰 是代理簽章者;甚至當代理簽章 σ = (m, rp, mw, rB, s) 產生後,不僅是原始簽章者,連代理簽章 者的身分別與公鑰都在驗證式子裡被引用來做 驗證。因此原始簽章者不能否認有授權簽章的能 力給指定的代理者,滿足可驗證性。 可識別性 (Identifiability):從代理簽章中, 原始簽章者可知道代理簽章者的身分,從當初所 簽的授權書 mw 中即可容易的確定代理者的身 分別,因此滿足可識別性。 不可否認性 (Non-repudiation):代理簽章者 不可否認自己的代理簽章,當代理者產生代理簽 章 σ = (m, rp, mw, rB, s) 可被驗證時,這裡的授 權書 mw 是會被檢核的且原始簽章者與代理簽 章者的公鑰在驗證式還原回來,代表原始簽章者 與代理簽章者都不能否認此事,因此滿足不可否 認性。五、結論
數位簽章經常被用於簽署各式各樣的電子 文件。簽署者必須利用自己所擁有的私鑰簽署文 件,驗證則利用簽署者之公鑰以決定簽章的合法性,達到簽署文件之數位簽章具有效性及不可否 認性。 我們所提一次性代理簽章,代理簽章金鑰的 產生需要原始簽章者的簽章,與本身的私鑰計 算,以用來產生屬於代理簽章者本身的代理簽 章,於驗證階段,驗證者可以對代理簽章進行驗 證其正確性,並可以分辨出原始簽章簽署者與代 理簽章簽署者的身分。 Kim 與 Chang 所提方法,必須事先決定代 理者欲簽章的次數及參數,如要擴大簽章次數, 原始簽章者需將欲簽署的次數放在證書中,與一 般代理簽章種類無不同之處,僅是量化而已,卻 無法有效的避免被代理者濫用。因此我們提出改 進的方法,除運用零知識證明方法來保護代理者 的私鑰,滿足安全性需求;並運用簡易數學方程 式的方法運算求證,僅限於代理一次簽章來限制 代理者,更有效率,也更明確來限定代理簽章者 僅能利用代理簽章來簽署一次文件。 我們運用簡易數學方程式的方法,運算求證 來建構一次性代理簽章。於未來研究上,希望能 以更精簡的計算方法來建構門檻式一次性不可 否認代理簽章方法,並與其他門檻式代理簽章方 法做進一步的探討。
參考文獻
[1] S. Glodwasser, S. Micali and C. Rackoff, “The knowledge complexity of interactive proof systems,” Proceedings of the 17th Annual ACM Symposium on Theory of Computing, pp. 291-304, 1985.
[2] Y.S Kim and H.H Chang, “New one-time proxy signature scheme based on DLP using the warrant,” International Journal of Compu- ter Science and Network Security, Vol. 7, No. 2, pp. 215-230, February 2007.
[3] S. Kim, S. Park and D. Won, “Proxy signature, Revisited,” International Conference and In- formation Communication Security, Beijing, China, pp. 223-232, 1997.
[4] L. Lamport, “Password authentication with insecure communication,” Communications of the ACM, Vol. 24 No. 11, 1981, pp. 770- 772.
[5] M. Mambo, K. Usuda and E. Okamoto, “Proxy signatures for delegating signing operation,” Proceedings of 3rd ACM Conference on Computer and Communication Security, New Delhi, pp. 48-57, 1996.
[6] M. Mambo, K. Usuda and E. Okamoto, “Proxy signatures: Delegating of the power to sign messages,” IEICE Transactions on Fun- damentals, Vol. E-79-A, No. 9, pp. 1338-1354, 1996.
[7] B.C. Neuman, “Proxy-based authorization and accounting for distributed system”, Proceedings of the 13th International Con- ference on Distributed System, pp. 283-291, 1993.
[8] M.O. Rabin, “Digitalized signatures,” Foun- dations of Secure Communication, Academic Press, 1978, 155-168.
[9] Z. Shao, “Proxy signature schemes based on factoring,” Information Processing Letters, Vol. 85, No. 3, pp. 137-143, 2003.
[10] T.S. Wu and C.L. Hsu, “Cryptanalysis of group-oriented (t, n) threshold digital signa- ture schemes with traceable signers,” Compu- ter Standards and Interfaces, Vol. 26, pp. 477- 481, 2004.
[11] T.C. Wu, T.S. Wu and C.L. Hsu, “New nonrepudiable threshold proxy signature sch- eme with known signer”, Journal of Systems and Software, Vol. 58, No. 6, pp. 119-124, 2001.