• 沒有找到結果。

2.2 身份基礎公開金鑰密碼學

2.2.2 階層式身份基礎加密系統設計

Hierarchical Identity-based Encryption (HIBE) ,最初由 Horwitz 和 Lynn[9]提出,

他們設計出二層的架構,主要是要解決單一PKG 設計中,root PKG 工作量太 大,容易成為系統的瓶頸,但這個設計有安全上的瑕疵。Gentry 和 Silverberg[3]

修改他們設計,並提出可以更多階層的身份基礎密碼系統,系統中的每個實體位 於某個階層中,並且讓 rootPKG 在第 0 層。有別於非階層式的 IBE,這個系統 中實體的身份表示為ID-tuple,由 root 追蹤到該實體所在的階層。也就是說,如 果一個實體的ID-tuple 為ID1,...,IDt,那他的組先 (位於第i階層,除去Root) 的

ID-tuple 為 ID1,...,IDi,1 i t≤ < 。每一個內節點 (internal node) 的點會選擇該層的 祕密點 (secret point) ,並用它來產生下一層使用者的私鑰。在這樣的設計下,

所有的運算只需要rootPKG 的公開資訊。

此外,Gentry 和 Silverberg 也提出了雙重 (dual) 版本 HIBE[3],有別於前者的直 接 (direct) 版本,能夠節省計算和通訊上的花費,其中的技巧在於,在雙重版本 中,藉由雙線性對的運算和Q 值的應用,雙方算出的共同秘密,此秘密和他們最 低層次祖先有關,一方面平均雙方的計算量,一方面也縮短密文的長度。

最後,Chow[15]巧妙的結合 Gentry 和 Silverberg 提出的 HIBE/HIBS,將他們合 併,產生階層式簽密 (Hierarchical Identity-based Signcryption, HIBSE) ,經過仔 細的分析,能夠比單獨先做HIBS 再做 HIBE 的情況節省一些密文長度,若有簽 密的需求,Chow 的設計也是一種選擇。

有關HIBE/HIBS/HIBSE 的運算將總結如下,符號與 Boneh-Franklin 的論文[6]相 同,每個運算的系統初始與金鑰抽取的步驟皆相同,所以獨立出來說明,請參考 圖5。

0 Bob

s P

0 NCTU 1 Alice

s P +s P

Alice

P

s

0

0 N C T U

s P

s

1

P

Root

P

NCTU

P

Bob

0 Bob

s P

0 NCTU 1 Alice

s P +s P

5:HIBE 私鑰抽取的示意圖

系統參數初始:root PKG 選擇系統參數G G e n P Q H H1, 2, , , ,0 0, 1, 2及系統金鑰s0。 其中P0代表G1中的生成元素,Q0=s P0 0代表系統的公鑰,系統參數必需公開給所有 系統使用者知道,但系統金鑰必須保持秘密。

低階層參數初始:低階層PKG (位於階層t ) ,選擇此層的秘密點 si 並發給 下層使用者 (位於階層t+1) 使用者金鑰

使用者私鑰金鑰抽取:.位於t− 階層的PKG ,其身份識別為1 (ID1,...,IDt1), 能夠產生位於t 階層的使用者金鑰,其身份識別為(ID1,...,IDt1,IDt)PKG 利用系 統 參 數 , 自 己 的 私 鑰 St1 和 秘 密 點 st1 進 行 這 個 運 算 。. PKG 先 計 算

1( 1,.., ) 1

t t

P =H ID ID G並設定使用者私鑰為St =St1+s P Gt1 t 1 ( 1,t= S0=1 )G1。此外,PKG 也計算Q 值:Qi =s Pi 0, for 1≤ ≤ −i t 1並安全的傳送使用者私鑰及Q 值。

基本運算 (Direct Version of Operations)

直接版本HIBE

加密法:要將訊息M 加密給使用者,其階層中的身份識別為(ID1,...,ID ,加t) 密者先計算Pi =H ID1( 1,..,IDi)∈ ,1 iG1 ≤ ≤ ,並且隨機選擇亂數t rZq*。則密 文為 C= 〈rP rP0, 2,...,rP Mt, ⊕H e P Q2( ( ,1 0) )r

解密法:當使用者收到密文C',其格式為C'= 〈U U0, 2,..., ,U Vt 〉 ,則解密者使 用自己的私鑰S 以及在金鑰抽取時得到的Q 值:t Qi =s Pi 0, 1≤ ≤ ,將可以i t

得回明文 2 0 1 1

2

' ( ( ,t ) t ( ,i i ) )

i

M V H e S U e U Q

=

= ⊕

直接版本 HIBS

簽 章 法 :要 將 訊 息M 簽 發 給 使 用 者 , 簽 章 者 在 階 層 中 的 身 份 識 別 為

(ID1,...,ID ,簽章者先計算t) PM =H M1( )∈ 並且隨機選擇亂數G1 rZq*。最後利

用 自 己 的 私 鑰 S 設定簽文t Sig S= t+rPM 。 將 Sig 和 驗 證 所 需 Q 值Qi =s Pi 0

不同於直接版本 HIBE/HIBS/HIBES,雙重版本 HIBE/HIBS/HIBES 能夠平衡通 訊雙方的計算量 (直接版本中,加密/簽章較解密/驗證容易) 。此外,密文的長 度也能大大的縮減。加密方現在僅需準備m− 個l Q值以便解密,簽章方也僅需 同數量的Q值以供驗證。如圖 6:HIBE 中,直接版本與雙版本的對照所示,寄

送者階層為m ,收件者階層為n ,他們共同的祖先位於l 階層。由圖 6 可以清楚

雙重版本 HIBS

直接版本的運算分析如表格 1,傳送者位於階層m ,接收者位於階層n :

Setup Extract Encrypt Decrypt Sign Verify Scalar multi. in ( )G1 1 2 n 2

Addition in ( )G1 1 1

Pairing 1 n n+2

Exponent in ( )G2 1

Hash operation n +1 2 1 2

XOR operation 1 1

表格 1:直接版本的運算分析

雙重版本的運算分析如表格 2,傳送者位於階層m ,接收者位於階層n ,共 同祖先位於階層l :

Setup Extract Encrypt Decrypt Sign Verify Scalar multi. ( )G1 1 2 n− +l 1 2

Addition in ( )G1 1 1

Pairing m− +l 1 n− +l 1 n +2

Exponent in ( )G2 1

Hash operation n +1 2 1 n +1

XOR operation 1 1

表格 2:雙重版本的運算分析