第四章 安全性分析與效能比較
4.1 安全性分析
而在免憑證簽章系統中,破壞者可能企圖去偽造簽章,而根據Al-Riyami和K. Paterson 的文獻 [1] 將可能的破壞者分為兩種,我們在分析演算法安全性的時候,將會分兩種攻
c. 如果ID的Public Key被更改過,A1無法得到此ID的Secret-Value d. 在Challenge Phase之前,A1不能替換目標ID的Public-Key 2. Type II 攻擊者:
我們通常假設這種攻擊者為 A2,而 A2 通常有以下幾種特點 a. A2 可以取得 KGC 的 Master-Key
b. A2 沒有辦法去替換使用者的公鑰部分。
c. A2 無法得到目標 ID 的 Partial-Private-Key 和 Secret-Value
在定義出這兩種主要的攻擊者之後,現在要分析我們提出的方案,是否在攻擊者之下,
可以成功的抵禦攻擊。而我們的方案必須符合本文章節2.7中所提到的幾種代理簽章法下 的安全性法則:
1.
Unforgeability:‧
的機率,解決 Computational Diffie-Hellman Problem。
證明:
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
並且我們將用到的 Hash function 都視為 Random Oracle
4.
B 設 u 並且將( u )傳送給A
𝐇𝟎 𝐎𝐫𝐚𝐜𝐥𝐞
在任何時間,A1 都可以對H 作 Query,而H 是由 B 模擬成的一個 Random Oracle。
1.
B 會持有一份H -List,形式為(IDi H (IDi) xi ) 而這份 list 一開始是空的
2.
B 選擇亂數 xi ∈ 並且設定 H (IDi) xi 且要確定 H0-list 中沒有xi
最後 B 將H (IDi)回傳給A ,並且將(IDi H (IDi) xi )放入H list中。
Create-User
A1 在隨時都可以對 Create-User 這個 Oracle 作 query 以產生IDi 1.
Create-User 的 Input 為IDi 2.
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
(IDi H (IDi) xi )
如果沒有,便先以IDi為 input,執行H -oracle。
確定H list中有(IDi H (IDi) xi )後執行以下:
如果IDi IDπB 選擇亂數xi,並且計算 IDi xi 相對應的 secret value 為 SIDi xi xi Partial-private-key 設定為 DIDi xi
如果IDi IDπB 選擇一亂數xπ,並且計算 IDπ xπ B 設定 secret value 為SIDπ ⊥
Partial-private-key 為 DIDπ ⊥
最後 B 將(IDi xi DIDi SIDi IDi)加到 L-list 中,並且將 IDi回傳給A
Partial-Private-Key-Extract
當 B 收到一個 (IDi)的 Query 時,B 會確認 L-list:
如果IDi IDπ,B returns failure 終止模擬。
如果IDi IDπ,B returns DIDi給A Public-Key-Replace1.
input 為(IDi IDi) 2.
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
B 會將 L-list 中的(IDi xi DIDi SIDi IDi) 改寫成 (IDi xi DIDi SIDi IDi )
Secret-Value-Extract
如果SIDi ⊥,B return failure 終止模擬。
如果SIDi ⊥,B return SIDi給A𝐇𝟐-Oracle
:
在任何時刻裡,A1 可以 input ξ𝑖向H 作 query
為了回應這個 Query,B 手上持有一份H -list,型態為(ξ𝑖 H (ξ𝑖) 𝑐𝑖)。
如果ξ𝑖已經存在 H2-list 中,B 直接回應H (ξ𝑖) 若否
B 會計算H2(ξ𝑖) 𝑖 ∈𝑅 𝑧𝑞,且 H2-list 中沒有𝑖 B 回傳𝑖並且將之紀錄在 H2-List 中
𝐇𝟏-Oracle:
1.
input 為( i Ui IDi )
B 會隨機選擇𝑐𝑖 ∈ * +,其中 r,𝑐𝑖 - 𝛿
如果𝑐𝑖 B 選擇亂數βiϵ要確定H -list 中沒有βi Oi βi
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
如果𝑐𝑖B 選擇一亂數βiϵ 要確定 H1-list 中沒有βi Oi βi
最後 B 回傳Oi,並將( i Ui IDi Oi βi 𝑐𝑖)放入 H1-List 中
Proxy-Sign:
Input 為( i IDj)
如果IDj IDπ,那麼SIDπ ⊥且DIDπ ⊥ 便可以輕易地模擬出一份合法的簽章。
如果IDj IDπ,B 會先確認𝐻 -list 中是否已經有(mwi rAi IDAi IDi Ai δi Vi)如果沒 有,B 會生成以上𝐻 -list 中的這份 tuple。完成後,B 會隨機選取 c𝑖 /1.
c𝑖
B 回報錯誤,並且終止模擬。
2.
c𝑖
已知H (mwi rAi IDAi IDi Ai ) i B 產生一份簽章為
S i (SID DID x x x 𝑃 x 𝑃) A (β )
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
U 𝑘𝐵 𝑃 𝑃
完成後,B 將 (𝑟𝐴 𝑤 𝑆 𝑈)回傳給 A1,且經過驗證,這是一份合法的簽章。
FORGERY
在所有的 query 之後,A1 製作出一份 Forgery Signature (𝑀 𝑆 𝐼𝐷 )
如果這份簽章是合法的,將會通過認證,又其中:
如果𝐼𝐷 𝐼𝐷𝜋B 會終止程序,宣告失敗。
如果𝐼𝐷 𝐼𝐷𝜋 且從其中的 S d oxy V 經導算之後,可以發現DID A (S d l V ) SID A (S ( A(DID SID ) A ) V ) SID 而A 偽造簽名,成功的條件是:
ID IDπ,且c𝑖 在IDπ下
DIDπ xπ
SIDπ xπ xπ 𝑃 xπ xπ 𝑏𝑃 將三式結合可以得到
2 ( A (S ( A(DID SID ) A ) V ) xπ xπ 𝑃 xπ xπ xπ )
‧
‧
𝑃𝑃𝐾:Partial-Private-Key queries
𝑃𝐾𝑅:Public-Key-Extract queries
𝑆𝑉 :Secret-Value Queries
𝑃𝑆 :Proxy-Sign Queries
‧
的機率,解決 Computational Diffie-Hellman Problem in Polynomial Time
Setup:
並且我們將用到的 Hash Function 都視為 Random Oracle 4.
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
如果IDi IDπB 選擇一亂數xπ,並且計算 IDπ xπ B 設定 Secret Value 為SIDπ ⊥
Partial-Private-Key 為 DIDπ s H (IDπ)
最後 B 將(IDi xi DIDi SIDi IDi)加到 L-list 中,並且將 IDi回傳給A
Public-Key-Replace 1.
Input 為(IDi ID) 2.
B 會將 L-List 中的(IDi xi DIDi SIDi IDi) 改寫成 (IDi ⊥ DIDi ⊥ IDi )
Secret-Value-Extract
如果SIDi ⊥,B return failure 終止模擬。
如果SIDi ⊥,B return SIDi給AH
-Oracle:在任何時刻裡,A1 可以 input ξ𝑖向H 作 query
為了回應這個 Query,B 手上持有一份H -List,型態為(ξ𝑖 H2(ξ𝑖) 𝑐𝑖)。
如果ξ𝑖已經存在 H2-list 中,B 直接回應H (ξ𝑖) 若否
B 會計算H (ξ𝑖) 𝑖 ∈𝑅 𝑧𝑞,且H -list 中沒有𝑖
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
B 回傳𝑖並且將之紀錄在H -List 中
H
-Oracle:input 為(
iU
iIDi
)
B 選擇亂數βiϵ
要確定H -list 中沒有βi Oi βi
最後 B 將( i Ui IDi Oi βi)放入H -List 中
Proxy-Sign:
Input 為( i IDj)
如果IDj IDπ,那麼SIDπ ⊥且DIDπ s H (IDi) 便可模擬出一份合法的簽章。
如果IDj IDπ, B 回報錯誤,並且終止模擬。FORGERY
在所有的 query 之後,A1 製作出一份 Forgery Signature (𝑀 𝑆 𝐼𝐷 )
且
‧
‧
𝑃𝐾𝑅:Public-Key-Replace queries
𝑆𝑉 :Secret-Value Queries
𝑃𝑆 :Proxy-Sign Queries
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
由Original Signer所授權給proxy Signer簽訂的。而且簽章的文件,必須符合授權書裡面 規定的形式。
根據Unforgeability性質,得知我們的方案中,簽名並沒有辦法被攻擊者所偽造,因 此Verifier可以確認原始簽章者對授權書mw的簽章,進而確定此份授權書的完整性。
而根據mw便可以從中得知Original Signer、Proxy Signer的ID,以及對文件M的限制。
如此便可以確定Verifiability性質的符合。
3.
Secret Key Dependencies:Delegation只能由Original Signer利用自己的私密金鑰產生,別人無法偽造。
(rA d l mw)是對授權書mw的一份免憑證簽名。我們可以證明,其簽章是無法被 偽造的。
4.
Distinguishability:接收者可以區分Signature是由Original Signer或者是Proxy Signer所簽發,而且可以找 到Proxy Signer和Original Signer之間的關係。
接收者所收到的簽名為 (rA mw S U),從包含其中的授權書mw可以很輕易地分 辨原始簽章者和代理簽章者的ID,而且從Proxy-Signature-Verification演算法中可以發 現,原始簽章者的公開金鑰 A是H Hash Function中的一個輸入,而代理簽章者的 公開金鑰 是H Hash Function的一個輸入。從以上幾點可以證明
Distinguishability的正確性。
5.
Identifiability:接收者可以很輕易地知道Original Signer跟Proxy Signer的身分ID。
因為接收者所收到的簽名為 (rA mw S U),其中包含授權書mw,從中可以輕易
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
地查出Original Signer以及Proxy Signer的ID。
6.
Undeniability:因為授權資訊是由Original Signer簽發,而且Proxy Signature只能用Proxy Signer利用 其Secret Key生成,所以兩者皆不可以否認自己做過簽名。
因為接收者得到的簽名為 (rA mw S U),其中授權書mw中包含了Original Signer 所給予的授權條件。根據Unforgeability得知,Proxy Signature是不可偽造的,因 此可以得知此份Proxy Signature必定是由Proxy Signer所簽發,Undeniability可以直覺 地觀察出來。
7.
Non Repudiation:Proxy Signer無法生出Original Signer的簽章,反之亦如此。
從Undeniability可以知道,這安全性必定成立。
‧
Hu 所提出的方案 [13],以及由 Rongbo Lu、Dake He、Changji Wang 三位學者提出的方 案[26]。表 5.1 效能分析與比較表
Proxy-Sign Verification
Our Scheme 2M 4P+1E+3M2
我們將比較的重點放在方案中的 Proxy-Sign 以及 Verification 的演算法,其中 Proxy-Sign 演算法是由系統所執行,而 Verification 則是使用者在驗證簽章合法性時所必 須執行的演算法。