• 沒有找到結果。

相關的定義與假設

第二章 基本技術與原理

第三節 相關的定義與假設

強 RSA 假設是一個比 RSA 更強的假設,RSA 假設是說在一個模數 (Modulus) 之下,要找某數的 次方根是很難的,其中 是一個固 定的公開值;而強 RSA 假設則是說要找出任意 次方根都是困難的。此假 設最早是由[4][14]提出來的。

n e eZ>1

e

定義3.

強 RSA 問題( Strong-RSA problem ):令 n= pq 其中 為一般

RSA

個元素的子循環群,令

n

問題中的模數 n,即 pQ 為強質數,且令 GZ*n 的一個含

#G G = ⎢log2

( )

#G 。給定 n 和某一個 zG,強 RSA 問 題 就 是 要 找 到 一 組 ( u , e ) 其 中 uGeZ>1 滿 足

(mod ) zue n

.

強 假設 :令 為安全參數。任

意一個滿足定義 要求的 ,對任何機率的多項式時間演算法

假設1

RSA (Strong-RSA Assumption) 3.

G

n AA

RSA

間演算法 ,所有的 ,和所有足夠大的安全參數 ,都會滿足下方這 能解 強 問題的機率皆可忽略。正規一點的寫法如下:對所有機率的多項式時

樣的式子

Α c>0 G

Przue(mod )n gcd( , ( ))eφ n = ∧ < <1 1 e n z: R G u e; ( , )← Α( , )n z Gc

ro-knowledge interactive prove system) (Interactive proof system)

roof of knowledge of predicates)

來向驗證者證明他知道某些秘密的實際值能滿足判斷式。而我們

(

,

)

1

能造出來的資訊分佈為不可分辨的話,則代表 VP 的互動並不會造成

Check if

Check if

gt = g ys c discrete logarithm lying in a given interval )[10]:令 、 為 中的元 素。一個數對

Check if

( )

t s cX c

g =g yG

( )

s= −t c xX s

c cR

{ }

0,1 k

{ }

0,1 ( G k)

t∈ ±R ε +

( ) gtG

Verifier Prover

圖表 3. 離散對數值落在給定區間的知識簽章

另一類是有關表示方式的知識簽章。其實定義 5 的離散對數也可以看成 是某數對單一基底的表示方式。我們舉較單純的兩基底模式來作介紹,更多 基底的模式可類推。

定義8.

表 示 方 式 的 知 識 簽 章 (Signature of knowledge of a representation) 令 、 、 為 中 的 元 素 。 一 值 組

是一個證明者知道 相對

於基底 、 的表示方式,對一訊息

y g h G

(

c s s, ,1 2

) { }

∈ 0,1 k× ±

{ }

0,1ε(G+ +k) 1× ±

{ }

0,1ε(G+ +k) 1 y=g hx r

g h m

{ }

0,1 造出的知識簽章。驗證者可 由是否 c=H y g h y g h

(

|| || || c s1 s2 ||m

)

來驗證。此簽章造法為由一知道 x 者,

任選一兩個隨機的 t1t2∈ ±

{ }

0,1ε( G+k) 再算出 c=H y g h g h

(

|| || || t1 t2 ||m

)

、 。下圖即為此證明系統的原始的互動式版本。

x r

1 1

s = −t c s2 = −t2 c

Check if

1 2 1 2( )

t t s s

g h = yg h G

s

1 1

s = −t cx

,

s2 = − rt2 c

c cR

{ }

0,1 k

t

1

t2∈ ±R

{ }

0,1 ε( G+k) g ht1 t2(∈G)

Verifier Prover

圖表 4.表示方式的知識簽章

第三章 一個具層級性的動態群體簽章系統

本文中底層所採用的群體簽章系統和[2]中曾提到,應用兩種不同的簽章 系統,來結合出群體簽章系統的作法是一樣的。第一個簽章系統的目的在於 管理者需簽署一個憑證給要加入群體的使用者,而第二個簽章系統才真正用 來簽出群體簽章。在第二個簽章系統中運用了知識簽章的技巧,以使群體簽 章的大小不用再與群體成員個數相關[10]。廢止成員的觀念,採用的是[15]中 的新作法,在系統中加入時間的觀念,讓成員可以自行更新群體簽章金鑰,

來達成一個廢止機制。大致來說:我們的系統是以[15]中所提的群體簽章系 統為基礎,導入層級的觀念並作相關修改。新增了一開始的層級初始步驟以 決定層級間的關係。並在參與程序中增加可限定使用者合法時限的功能。

第一節 參數定義

本系統主要是以[15]中的群體簽章系統加以演變,大部分參數將繼續沿 用,但仍有為了避免混淆而作的修改與新增部分,因此還是將所有系統所需 參數介紹如下。

a. ε >1hp 為系統的安全參數, λ1、λ2、γ1、γ2 的取法需滿足 以下的關係:

(1) λ ε λ1>

(

2+h

)

+2

(2) λ2 >4 p

(3) γ1 >ε γ

(

2+h

)

+2

(4) γ2 > +λ1 2

b. 定義如下的區間 Λ =⎡⎣2λ1 −2 , 2λ2 λ1+2λ2⎤⎦、Γ =⎡⎣2γ1 −2 , 2γ2 γ1+2γ2⎤⎦,

1 2

( )

1 2 1 2

1. 層級初始 (Hierarchy initialization)

1.1. 決定各群體的階級高低及權力領域之關係,繪出類似如下之似樹狀圖,

1

(mod ) 近均勻分布(Uniform distribution)。步驟 2.3、2.4 仍依[15]中設定。

'

送給 GMi 且證明下列事實:

C2

4. 更新 (Update) (使用者 Ui j, 由時間 k 至 時間 k+1)

在時間 k 時,使用者 Ui j, 所擁有的私密金鑰為 ski j k, , =(xi j, ,si j k, , ,ti j k, , +1), 在 進 入 時 間 k+1 後 , 將 所 持 金 鑰 更 新 為 ski j k, , +1=(xi j, ,si j k, , +1,ti j k, , +2) 其 中

( )

, 2 , 3 ,

, , 1 , , 1 ei k ei k ei d(mod )

i j k i j k i

s + = t + + +⋅⋅⋅⋅⋅⋅ n ti j k, , +2 =

(

ti j k, , +1

)

ei k,+1(modni)

這是一個要達成前進式安全 (Forward secure) 必需的作法,讓每個時段 使用者的成員憑證不同,可以往後更新但無法往前回溯出之前的憑證,所以 簽章金鑰推導的過程必須是一個不可逆的程序,在更新過後即將舊的金鑰和 更新元件丟棄,如此便能保證在時段 k 入侵的攻擊者無法得到時段 k 之前 的簽章金鑰來偽造時段 k 之前的簽章,這樣才能達到前進式安全的特性。這 種觀念和更新方法主要是由[16]中來的。而我們又在參與程序根據欲給定使 用者的時限有技巧的給予憑證,可以讓一個在時段 c~d 間為合法的成員,到 達時段 d 之後,即無法繼續更新出合法的簽章金鑰,因此可達到使用者時限 (Time-bounded) 的設定。

5. 廢止 (Revoke) (在時段 k 時廢止使用者 Ui j, ,其合法時段為 c ~ d )

5.1. 管理者 GMi 利用更新的演算法算出 si j k, ,si j k, , +1、…、 (即 在時段 k 之後到時段 d 之間所有時期之憑證,亦為簽章之私密金鑰),

並依其對應時間將其分別公佈在廢止憑證列表

, , i j d

s Ui j,

,

RLi kRLi k, +1 、……、

,

RLi d 中。

5.2. 管理者發出訊號指示系統行進到下一個時間。

在時段 k 時,若需對一成員,撤除其可合法代替群體簽章的權力,也就 是在給定某使用者合法時限後,時限未到即需將某使用者當時與之後的憑證

廢止的話,就必須執行此廢止程序。實際作法是系統需維護一組憑證廢止列

簽名程序中,主要是以 ElGamal 的加密方法來加密簽章者所持的憑證,

ii. 算出 ,並隨機選取 ,

示,傳送此簽章中的 部分,讓群體管理者用解開簽章用的私密金

體管理者 有權限能解開群體 的簽章的話,那麼 就會被 所

整除,因此步驟 8.1 中

GMI Gi Ti TI

0 0

( ) ( ) ( ) (mod

i i

I

i

I I

T T

T T

T T

KI K K K

= = = i M) 可求得 ,再用 相同於群體設定時的抗碰撞雜湊函數 將 對應至一個 中的值,

此值即為群體 的私密金鑰

Ki

'

H Ki

ni

Z

Gi xi。然後經過驗證程序確定此簽章為正確的形 式且非被廢止的憑證所簽出,因為在驗證程序的後半部需用到 xi,因此步驟 8.1 必須先作。步驟 8.3 則是用 xi 來作 ElGamal 解密,算出的 即為此簽 章的憑證。最後在步驟 8.4 再附上一個知識簽章,證明前一步驟中用來解密 的

s

xi 確實為群體 Gi 的私密金鑰 xi

第四章 安全性證明

要證明我們系統的安全性,大約可分為幾部分:(1)各群體的群體簽章架 構是安全的。(2)層級架構中用來解開群體簽章的私密金鑰,確實只能由上層 的管理者往下層推導。(3)若下層的成員兼為上層的管理者,本文架構之安全 也不會受到影響。(4)對[15]群體簽章架構中的改變,使用者加入群體時可決 定其合法時限之設計,可以證明是安全的。第一節介紹的是第(1)部分,由於 我們的層級架構是以[15]為基礎,因此我們會介紹此架構中滿足的安全性與 相關證明步驟,並加以適當的修改,以符合本文中之架構,原始版本詳細步 驟可參閱[15]。第二節介紹(2)、(3)、(4),是將基礎架構運用在我們的系統中 所需考慮的其他相關證明。

第一節 基礎架構的安全性

有關[15]中群體簽章架構的安全性,在該篇文中已有詳細證明,本節會 簡介其證明過程並重新考慮在本系統中之安全性。

定理1.

在強 RSA 的假設條件之下,[15]中的群體簽章系統是建立在對於 成員憑證和成員私密值的統計性零知識互動式證明。

證明:

根據之前關於零知識互動式證明系統的介紹,一個零知識的互 動式證明系統,必須滿足完整性、完美性、和零知識。

1. 完整性:若證明者確實知道秘密值,則一定能通過證明。這部分可顯 而易見地透過簽章與驗證程序來確定:若簽章者確實知道當時間的憑 證和成員的私密值,則必可簽出能驗證通過的正確簽章。

2. 完美性:若有一證明者 P 有很大的機率能說服驗證者 V ,則須存

在一個知識擷取者 E, 可利用 E P 與回轉 (rewind) 的技巧來擷

iii. 故 可 知 c− =c δ , 且 s2 s2

{ }

( 2

m>dmax

證明:

因為各個時期的憑證值 s,皆是由更新值 t 得來,因此我們考慮 簽章時所需的金鑰時,可考慮私密值 x 和更新值 t [15]。我們要將強 RSA 的問題轉化到產生新合理值組

(

xi j, ,ti j k, ,

)

的問題。方式是若有一個攻擊者能 由 K 個(x , t)值組得到一個私密值 ˆx 與對應此值而在某個大於時段 或小於時段 的合法 t 值,則我們能利用此攻擊者來解強 RSA 問題,

違背強 RSA 假設,所以此攻擊者不存在。

dmax

kmin

假設 M 是一個攻擊者,它被允許參加 次參與程序來獲得這 個 合理值組 ,然後會輸出一組合法值組

K K

(

xi j, ,ti j k, ,

) (

x tˆ, i h m, ,

)

。則我們可用一個演

算法 AA 可呼叫 M ,其輸入為強 RSA 問題的輸入

( )

n z, ,輸出為滿足

的值組 。 (mod )

zue n

(

u e,

)

A的步驟如下:

lgorithm1

( )

n z,

1. 隨機選取(1) xi,1xi,2、……、xi K, ∈ ΛR ,當作 組合法的私密 值,與(2) 個時段 、 、……、

K

K k1 k2 kK,當作 組 t 值的時 段,與(3) 個時段 、 、……、

K

K d1 d2 dK,當作此 組 (x , t) 值組的最末合法時限,即截止時段,其中

K

j j

kd∀ ∈j

{

1,...,K

}

並亂數選取所有時段滿足 ei k, ∈Γk 的 e 值。

2. 令 azei k,minei k,min+1⋅⋅⋅⋅⋅⋅ei d,max(mod )n

3. 隨機選取 r∈ ΛR ,再令 a0iair(mod )n

(1) 若 m<kmin,則

Î z

(

zα(ti h m, , )β

)

(ei m, δ⋅⋅⋅ei d, )(modni),所以值組

( )

u e, = ⎜zα(ti h m, , ) ,β

(

ei m, ⋅⋅⋅δ ei d,

)

(

, ,min 1 ,max 1 , ˆ

抗性、有追溯效力的公開廢止性與向後式無連結性。

們可以設計一演算法利用 A 來解決延伸的 Diffie-Hellman 判決假設

9. 向後式無連結性:此群體架構滿足無連結性,這裡要說的是即使因憑

不含,則 g c d T. .

{ }

j 不整除 Ti )2

6. 輸出 HbF H

(

r1,Hr2,...Hrn

)

a

證明:

因為此群體簽章具有完美性,所以若能在時間

[ ]

c d, 之外造出

第五章 結論

本章將討論本架構中可獨立出來之一個角色,即解章者 (Opener),其功 能只在於解開簽章,取出簽出此章的憑證。最後則是結論與未來研究方向。

第一節 解章者

我們所使用的階層性 (Hierarchy),主要是著重在解開簽章的功能。因為 在此種階層性架構中,通常層級的設定與成員的加入較易控制,層級為較大 的架構,可在一開始即設定好。而成員的加入可指定需與欲加入群體之群體 管理者執行參與程序。所以在後來的使用上,反而解開簽章會變成一個可以 有階級觀念的常用功能。所以本篇論文中真正的階層性是指在解開簽章的功 能中,擁有較上層解章功能的管理者,除了可解開所屬群體的簽章外,還可 以解開其下方所轄群體的簽章。這樣的解章 (Open) 功能,我們可以把它獨 立出來,成為一個解章者的身份。

其實我們群體簽章的匿名性,主要是因為我們用了 ElGamal 加密法將憑 證給加密起來,因此若需要解開簽章的話,需要的金鑰便是 ElGamal 的解密 金鑰,即我們架構中的各群體 Gixi 值。所以如果有一個使用者,他擁 有某一群體 Gixi 值,就能擁有該群體解章者的功能。

在我們的架構中,如果我們要讓解章者跟群體管理者一樣能解開其下方 所轄階層的簽章的話,那就要再額外讓解章者知道自己所屬群體的 值。

有了 值後,假設群體 是群體 可管轄的一個群體,那群體 的 解章者要開啟群體 的簽章的話,因為 會整除 ,所以只需利用

有了 值後,假設群體 是群體 可管轄的一個群體,那群體 的 解章者要開啟群體 的簽章的話,因為 會整除 ,所以只需利用

相關文件