Halo:適用於同儕網路中機會性合作的階層式身份基礎公鑰系統
76
0
0
全文
(2) Halo:適用於同儕網路中機會性合作的 階層式身份基礎公鑰系統 Halo: A Hierarchical Identity-Based Public Key Infrastructure for Peer-to-Peer Opportunistic Collaboration. 研 究 生:曾輔國. Student:Fu-Kuo Tseng. 指導教授:邵家健 博士 陳榮傑 博士. Advisor:Dr. John Kar-Kin Zao Dr. Rong-Jaye Chen. 國 立 交 通 大 學 資 訊 科 學 與 工 程 研 究 所 碩 士 論 文 A Thesis Submitted to Institute of Computer Science and Engineering College of Computer Science National Chiao Tung University in partial Fulfillment of the Requirements for the Degree of Master in Computer Science June 2008 Hsinchu, Taiwan, Republic of China. 中華民國九十七年六月.
(3) Halo:適用於同儕網路中機會性合作的 階層式身份基礎公鑰系統. 學生:曾輔國. 指導教授:邵家健 博士. 指導教授. :陳榮傑 博士. 國立交通大學資訊科學與工程研究所. 碩士班. 摘要 同儕網路系統中,因缺乏資訊安全保護,所以無法使其中的服務常常缺乏安全性 與強健性。這個問題來自無伺服器 (server-less) 的架構和 ad-hoc 方式操作情境 的需求。同時也造成同儕網路無法使用傳統的對稱/不對稱的密碼學技術。我們 發現:階層式的身份基礎密碼系統和分散式金鑰產生機制提供了可行的解決之 道。在本論文中,我們將提出 Halo 我們設計的一個階層式的身份基礎公開基礎 架構。它用到一些新穎的技術來達到遞迴式的 private key generators ( PKG ) 和 建立一個無限層數 (unlimited number) 限制的信任階層。因此,這個公開金鑰基 礎架構不僅能部屬階層式身份基礎加密、簽章、簽密 (signcryption) ,再加上成 對的 (pair-wise) 認證式金鑰協定 (authenticated key agreement) 來保護同儕網路 中的應用。. I.
(4) Halo: A Hierarchical Identity-Based Public Key Infrastructure for Peer-to-Peer Opportunistic Collaboration Student: Fu-Kuo Tseng. Advisor: Dr. John Kar-Kin Zao Dr. Rong-Jaye Chen. Institute of Computer Science and Engineering National Chiao Tung University ABSTRACT. In peer-to-peer network system, services usually fail to provide security and robustness due to the absence of information security. The security weakness is rooted in the server-less architecture and demand for ad-hoc operation scenario. Besides, they also stop us from using scalable key management by traditional symmetric/ asymmetric cryptographic techniques.. We have found that hierarchical identity-based cryptography and distributed key generation scheme provide us possible solution to this problem. In this paper, we present the design of Halo, a hierarchical identity-based public key infrastructure that uses these novel technologies to perform recursive instantiation of private key generators and establish a trust hierarchy with unlimited number of levels. Therefore, The PKI thus enables the employment of hierarchical identity-based public key encryption, signature, and signcryption operation. In addition, pair-wise authenticated key agreement also provided for the protection of peer-to-peer applications.. II.
(5) 誌 謝 本論文能順利的完成,首先要先感謝. 邵家健老師和 陳榮傑老師的指導,. 不論是在為學或是做人處事方面,兩位老師都給予我莫大協助與啟發。另外,感 謝張仁俊教授、曹孝櫟教授及胡鈞祥博士擔任畢業口試委員,給予我許多寶貴的 意見,讓本論文更加完備。 此外,特別感謝時常協助我的兩位同學:芳伯與用翔,芳伯在邵老師的指導 下,對於同儕網路的相關知識非常的熟稔,在系統方面的知識與實作能力更是令 我欽佩。用翔在陳老師的指導下,對於橢圓曲線密碼系統及其背的數學理論學有 專精,兩位對於輔國的研究助益良多,在此致上誠摯的謝意。 接著感謝 Cryptanalysis Lab 的成員:志賢學長、定宇學長、順隆學長、佩娟 與用翔與 Pervasive Embedded Technology Lab 的成員:國晉學長、芳伯、哲民, 學弟們:星閔、嘉錡、彥霖、博政、勝焜與學妹梅瑛,大家一起運動、吃飯、聊 天及討論想法,是我研究生活中,不可或缺的的一環,謝謝你(妳)們。 此外,感謝系上的桌球隊,校圓網路策進會成員與諮商中心志工團的眾多伙 伴,有你(妳)們的陪伴,讓我的研究生活更加的健康與充實。另外還有系上的學 弟妹,讓我的研究生活增添活力與色彩。在此,我想特別感謝敬達、藝睿、逸朴、 宗霖、宜君與書平。 最後,感謝永遠支持我的家人,有你們做為我的後盾,讓我研究的路更加的 平順與穩健。感謝我的女友郁欣,陪伴我渡過許多重要的時刻,與我分享種種的 心情。謝謝在研究過程中協助我的人,也許是一句鼓勵的話、一個特別的啟發或 是一個及時的幫助,你(妳)們都是這篇論文重要的推手,感謝你(妳)們。 謹以本論文獻給所有關心我的家人、師長及朋友,謝謝你(妳)們。. III.
(6) 目錄 中文摘要.................................................................................................. Ⅰ Abstract............................................................................................ Ⅱ 誌謝............................................................................................. Ⅲ 目錄............................................................................................. Ⅳ 圖目錄............................................................................................. Ⅵ 表格目錄.............................................................................................Ⅶ 第 1 章 綜論................................................................................................................1 1.1 1.2 1.3. 問題陳述........................................................................................................1 研究方法........................................................................................................2 論文大綱........................................................................................................2. 第 2 章 背景知識........................................................................................................4 2.1 橢圓曲線密碼學............................................................................................4 2.1.1 雙線性對................................................................................................9 2.2 身份基礎公開金鑰密碼學..........................................................................10 2.2.1 身份基礎加密系統設計...................................................................... 11 2.2.2 階層式身份基礎加密系統設計..........................................................12 2.3 秘密分享與門檻密碼學..............................................................................18 2.3.1 Shamir 秘密分享 ................................................................................19 2.3.2 分散式金鑰產生法..............................................................................20 2.3.2.1 Tang’s 分散式金鑰產生法 ............................................................20 第 3 章 系統概論......................................................................................................24 3.1 3.2. 設計原則......................................................................................................25 操作原則......................................................................................................26. 第 4 章 系統機制......................................................................................................27 4.1 4.2 4.3. 密碼學加密法..............................................................................................28 門檻式私鑰產生..........................................................................................32 分散式秘密分享函式產生..........................................................................35. 第 5 章 系統運作......................................................................................................38 5.1 產生新同儕領域..........................................................................................40 5.1.2 產生 Halo 中第一個同儕領域............................................................41 5.2 產生分散式 SFG/PKGS 和 PKGS ...............................................................42 5.3 同儕的認證及允許控制..............................................................................44 5.3.1 家域的允許控制..................................................................................44 5.3.2 外域的允許控制..................................................................................45 IV.
(7) 第 6 章 系統比較......................................................................................................47 6.1 分散式 RSA 設計........................................................................................47 6.2 分散式 RSA 設計與 HALO 系統的比較.....................................................49 6.3 HALO 系統運作複雜度分析 .......................................................................51 6.3.2 通訊複雜度..........................................................................................52 6.3.2 運算複雜度..........................................................................................53 第 7 章 實作議題......................................................................................................55 7.1 密碼學方面的考量......................................................................................55 7.1.1 密碼系統參數選擇..............................................................................55 7.1.2 橢圓曲線及雙線性對選擇..................................................................55 7.1.3 HIBE 軟體實作結果 ...........................................................................56 7.2 同儕網路部屬方面的考量..........................................................................58 7.2.1 補強 JXTA 安全支援...........................................................................58 7.2.2 JXTA 通訊上的機制 ............................................................................59 7.2.3 7.2.4. JXTA 中的身份與密碼學中身份的連結 ............................................59 JXTA 服務搜尋的機制 .......................................................................61. 第 8 章 結語..............................................................................................................62 8.1 8.2. 研究成果......................................................................................................62 未來方向......................................................................................................63. 參考文獻......................................................................................................................64. V.
(8) 圖目錄 圖 1:橢圓曲線加法運算.............................................................................................4 圖 2:橢圓曲線的加法律.............................................................................................8 圖 3:IBE 運作圖 .......................................................................................................11 圖 4:IBE 私鑰抽取的示意圖 ...................................................................................12 圖 5:HIBE 私鑰抽取的示意圖 ................................................................................13 圖 6:HIBE 中,直接版本與雙版本的對照 ............................................................16 圖 7:HALO 系統同儕身份轉換的過程 ....................................................................25 圖 8:HALO 系統同儕提供或訂閱服務的過程 ........................................................26 圖 9:直接版本 HIBE/HIBS 運算摘要 ....................................................................29 圖 10:直接版本 HIBSE 運算摘要 ...........................................................................29 圖 11:雙重版本 HIBE/HIBS 運算摘要 ...................................................................30 圖 12:雙重版本 HIBSE 運算摘要 ...........................................................................31 圖 13:HIBE 金鑰與階層的關係圖 ..........................................................................33 圖 14:HIBE 在假設 TD 下的金鑰抽取...................................................................34 圖 15:HIBE 在沒有假設 TD 的金鑰抽取方式.......................................................36 圖 16:HALO 系統同儕領域、同儕群組與分隊的設計 ..........................................38 圖 17:HALO 系統中網路節點各種身份的演進 ......................................................39 圖 18:HALO 系統中產生新同儕領域的示意圖 ......................................................40 圖 19:HALO 中產生第一個同儕領域的示意圖 ......................................................41 圖 20:HALO 中的 PKG 升格為 SFG/PKG 的示意圖..............................................43 圖 21:HALO 系統中,同儕升格為 PKG 的示意圖 ................................................43 圖 22:網路節點進入 HALO 系統中的示意圖 .........................................................44 圖 23:HALO 系統中,家域中的領域進入外域的示意圖 ......................................45 圖 24:TRSA 用於多階層系統的示意圖 .................................................................48 圖 25:NIST 建議 ECC 與 RSA 金鑰長度的換算 ...................................................55 圖 26:常用的超橢圓曲線及其上的 PAIRING 運算 ..................................................56 圖 27:直接版本 HIBE 實作校能測試 .....................................................................58 圖 28:直接版本 HIBS 實作校能測試 .....................................................................58 圖 29:雙重版本 HIBE 實作效能測試 .....................................................................58 圖 30:雙重版本 HIBS 實作效能測試 .....................................................................58. VI.
(9) 表格目錄 表格 表格 表格 表格 表格 表格 表格 表格 表格 表格. 1:直接版本的運算分析 ..................................................................................18 2:雙重版本的運算分析 ..................................................................................18 3:TC-DKG 運算複雜度分析..........................................................................22 4:TC-DKG 通訊複雜度分析..........................................................................23 5:HALO 與 TRSA 的比較表............................................................................51 6:HALO 中各試動作所需的通道複雜度........................................................53 7:HALO 系統各項動作所需運算量................................................................54 8:PAIRING 在不同金鑰長度密碼系統的效能測試 ........................................58 9:同儕群組廣告的範例 ..................................................................................60 10:同儕廣告的範例 ........................................................................................61. VII.
(10) 第 1 章 綜論 同儕網路應用已超越其最初檔案分享的用途,變成一個分散式計算的典型。除了 廣受歡迎的同儕式 VoIP 服務:Skype[16]外,交通監控服務[17][26]、永久儲存系 統[8][10]和視訊串流程式[13][20][21]等,都已證明有顯著的市場潛力。其中許多 的程式採用了機會性合作 (opportunistic collaboration) 的操作模式:網路中的節 點因擁有部分的機能或是資源,而被招募並組成 ad-hoc 社群,結合大家手邊的 資源與服務,合力完成某項工作。通常這些被招募的同儕,先前都沒有接觸過, 所以很難有協議的秘密。但是,在合作的過程,這些同儕或許會需要交換一些敏 感的資訊,因而得到更好的合作效果,所以,這些在同儕間的機會性合作中,應 當存在適當的安全保護機制。然而,同儕網路應用中缺乏安全的基礎架構,如固 定存在的伺服器,以及同儕經常移動、變換領域的特性,都讓安全通訊所必要的 服務,如:同儕認證、訊息完整、訊息祕密…等,更加的難以達成。. 1.1 一、. 問題陳述 在同儕網路環境裡,使用公開金鑰系統時,我們想要增強系統金鑰的安 全性,避免單一同儕掌握完整系統金鑰,也不希望有可信任莊家的存在, 希望能夠將信任分散給多個實體來實現。. 二、. 在同儕網路環境裡,使用公開金鑰系統時,我們想要增強系統權威的的 可利用性,避免因權威的移動或是離開,造成同儕無法進行認證,希望 能夠將資訊複製多份,儲存於網路系統中。. 三、. 在同儕網路環境裡,使用公開金鑰系統時,在不增加太多計算複雜度的 前提下,我們想要降低系統的管理複雜度。希望能夠避免複雜的分散式 憑證產生與困難的憑證管理。 1.
(11) 1.2. 研究方法. 本 論 文 將 提 出 Halo , 一 個 階 層 式 的 身 份 基 礎 公 開 金 鑰 架 構 (Hierarchical IDentity-based Public Key Infrastructure, IDPKI) ,用來支援網路上同儕間的機會 性合作。Halo將會發給每個使用者一把私鑰,而對應私鑰的公鑰則對應於使用者 的身份和使用者被授權提供或使用的服務。這些公/私鑰對能夠用在 Gentry-Silverberg [3] 的 階 層 式 的 身 份 基 礎 公 鑰 系 統 加 密 法 (hierarchical identity-based encryption scheme, HIBE) 、簽章法 (hierarchical identity- based signature scheme, HIBS) 和 Sherman Chow 的 簽 密 (hierarchical identity-based signcryption scheme, HIBES) [15]。這些密碼學的運算法為實作安全通訊服務中, 最基本的機制。 Halo 特別設計用於無伺服器的環境。允許新的同儕加入和管理行政領域 (peer administrative domains) 的工作是由一群同儕,而非特別指定的同儕來管理。它 們能夠執行分散式金鑰產生的動作。Halo 同時也具備漸近式的階層成長和自我 管理的能力。從數個兩兩互相相信的可信任同儕 (trusted peer) 開始,Halo 能夠 允許新的同儕加入,產生新的同儕領域和產生更多可相信的同儕,而這些同儕能 夠做為 private key generators ( PKG ) 。行政領域的管理者執行安全政策 (security policy) ,同儕需向他們提出足夠的證明,而被允許新的身份或使用新的服務。 我們將設計的系統命名為 Halo,是期望連結同儕的身份與他們被授與服務的公 鑰,能夠用來認證使用者,一旦加入了 Halo 同儕領域,即能夠使用其提供的安 全服務,就如同榮耀的光環能夠分辨聖者與凡人。. 1.3. 論文大綱. 接下來的文章將分成八章節:第二章說明最基本的知識背景,包括橢圓曲線密碼 系統、同儕網路系統、身份基礎公開金鑰系統及其變形、階層式身候基礎公開金 2.
(12) 鑰系統及其變形、門檻式加密法及分散式金鑰產生協議。第三章說明系統設計的 原則,與操作設計的原則。第四章開始回顧在 Halo 上使用的密碼學技術:Gentry、 Silverberg 的階層式身份基礎加密(HIBE)/簽章演算法(HIBS)、改良式的 Shamir 秘密分享方式(Shamir secret sharing, SSS)以及 Tang 的分散式金鑰產生方式 (Tang’s distributed key generation, TC-DKG)。這個章節主要展示如何將密碼學上 的技術,整合進 Gentry-Silverberg 的設計中,第五章將討論 Halo 系統初始過程 及自我增長與維護的方式,另外也討論一個合法的同儕,在 Halo 系統中的生命 史。第六章將討論另一密碼系統:門檻式 RSA (threshold RSA or TRSA) ,我們 將 TRSA 原先兩層的設計,延伸應用於多層次的同儕網路系統,並與我們設計的 系統比較。第七章將討論如何實作 Halo 成為 JXTA 的服務模組,分成密碼學方 面與系統設計方面。最後一章總結我們的貢獻和未來可行的方向。. 3.
(13) 第 2 章 背景知識 2.1. 橢圓曲線密碼學. 橢圓曲線密碼系統是一種公開金鑰系統,利用基礎於有限場 (finite field) 的橢圓 曲 線 , 其 通 用 格 式 為 y 2 + a1xy + a 3y = x 3 + a2x 2 + a 4x + a 6 , 也 稱 為 通 用 Weierstrass 方程式 ﹙generalized Weierstrass equation﹚ ,滿足曲線方程的所有點 及一個無窮遠點 (point at infinity) 所成的集合,形成一個加法群 (additive group) 。橢圓曲線上的點能夠進行兩點間的加法,以幾合的角度來看,我們想 算出通過這兩點的直線,並與橢圓曲線相交於第三點,再將此點對 x 鏡射,即可 得到結果。顯示各種可能的加法,P+Q=R,若 P 不等於 Q,,P=Q 及 P=-Q 三種 情形,若橢圓曲線上的三點共線,則三點相加的和即為無窮遠點。. Q. -R=R'. P=Q. -R. P=(x,y). P. R=2P. R. -P=(x,-y). 圖 1:橢圓曲線加法運算. 假設 p > 3 是一個質數,基礎於大小為 p 的有限體之橢圓曲線可以記為GF (p) , 其方程式寫做 y 2 = x 3 + ax + b ,其中 a, b ∈ GF (p) 且 4a 3 + 27b 2 ≠ 0 (mod p) , 則存在一群 (x , y ) 的有序對,其 x , y 皆屬於GF (p) 且滿足曲線方程式,加上定義 的無窮遠點,這些點形成可交換群(abelian group)。假設欲相加在曲線四的兩點: P = (x p , y p ) 和Q = (xQ , yQ ) ,首先我們先計算通過 P 、Q 兩點直線的斜率 λ ,則 P + Q = (x P +Q , yP +Q ) 為:. 4.
(14) 2. x P +Q = λ − x p − xQ yP +Q = λ(x P − x P +Q ) − yP. yQ − yP ⎧⎪ ⎪⎪P ≠ Q, λ = xQ − x P ⎪ ,其中: ⎪⎨ ⎪⎪ 2x P2 + a P Q = , λ = ⎪⎪ 2yP ⎪⎩. 在群中的無窮遠點 O 扮演加法單位元素的角色,對於任意在群中的點 P , P + O = O + P = P , 每 個 任 意 點 P 也 有 一 個 唯 一 的 反 元 素 −P , 使 得. P + (−P ) = O , 在 基 礎 於 GF (p) 之 橢 圓 曲 線 上 的 點 P , 而 反 元 素 記 為. −P = (x P , −yP ) 。 另一種基礎於大小為 2n 的有限體之橢圓曲線可以記為GF (2n ) ,其方程式寫做 n y 2 + xy = x 3 + ax 2 + b ,其中 a, b ∈ GF (2 ) 且 b ≠ 0 。則存在一群 (x , y ) 的有序. 對,其 x , y 皆屬於GF (2n ) 且滿足曲線方程式,加上定義的無窮遠點,這些點形 成可交換群。假設欲相加在曲線四的兩點: P = (x p , y p ) 和Q = (xQ , yQ ) ,首先我 們先計算通過 P 、Q 兩點直線的斜率 λ ,則 P + Q = (x P +Q , yP +Q ) 為: y + yP ⎧⎪ ⎪⎪P ≠ Q, λ = Q xQ + x P ⎪ ,其中: ⎪⎨ yP ⎪⎪ ⎪⎪P = Q, λ = x P + xP ⎪⎩. 2. x P +Q = λ + λ + x P + xQ + a yP +Q = λ(x P + x P +Q ) + x P +Q + yP. 對於任意在群中的點 P ,都有一個唯一的反元素 −P ,使得 P + (−P ) = O ,在 基礎於GF (2n ) 之橢圓曲線上的點 P ,而反元素記為 −P = (x P , x P + yP ) 。不論是 基礎於何種有限體,在運算時﹙加法、減、乘法、除法、反元素計算﹚,需在相 關的有限體進行。 在橢圓曲線中,群中的運算為加法而不存在乘法,所以在乘法群中的指數運算能 夠對應到橢圓曲線加法群中的純量乘法(scalar multiplication),我們將自加 k 次的 點 P 記為 k ⋅ P ,若 k ⋅ P = O ,則 k 稱之為 P 的級數﹙order﹚ ,我們會找一個級數 大於 2160 的基點﹙base point﹚並利用純量乘法的運算來建構橢圓曲線密碼系統的 基礎。. 5.
(15) 橢圓曲線密碼系統基礎於一些難題:假設 G 是一個橢圓曲線加法群,是由 P ∈ E (Fq ) 產生出來並且 P 的 order 為 q ,Q 為曲線上除了 P 以外的點。 橢圓曲線離對數問題 (ECDLP) : 鐺定 P 、Q ∈ G ,求得一個整數 a ∈ Ζq* 滿足 Q=aP 計算 Diffie-Hellman 問題 (CDHP) : 給定 P , aP , bP ∈ G , a, b ∈ Ζq* ,求得 abP 決定 Diffie-Hellman 問題 (DDHP) : 給定 P , aP , bP , cP ∈ G , a, b, c ∈ Ζq* , 決定是否 c = ab. 2.1.1 Divisor 理論[27][28] 假設 f 是一個非零的有理函數﹙rational function﹚ ,而且點 P ∈ E ,若 f (P ) = 0 則 說 f 在 P 點有個 zero;若 f (P ) = ∞ 則說 f 在 P 點有個 pole,而 divisor 就是用來 了解有理函數的 zeros 和 poles,同時也能提供在橢圓曲線上的有理函數,其上發 生 zero 或是 pole 的點和這些點的次數﹙order﹚ ,divisor D 可以定義為橢圓曲線 E 上點的 formal sum: D = ∑ n p (P ) ,其中 n p 皮表點 P 的 zero 或 pole 的特性與其 p ∈E. 對應的次數。若 n p > 0 則代表點 P 為 zero,若 n p < 0 ,則代表點 P 為 pole。例 如:若 P ,Q , R ∈ E , D1 = 1(P ) + 2(Q ) − 5(R) 代表 divisor 在 P ,Q 有 zero,且在 R 有 pole, P ,Q , R 的次數分別為 1 , 2 , 5 。 D2 = 7(P ) + 2(−2P ) − 2(O ) 則是代表. 在 P , −2P 有 zero,且在O 有 pole, P , −2P ,O 的次數分別為 7 , 2 , 2 。要注意的 是,括號是用來分開次數與特定點,例如 2(P ) 指的是在點 P 有個 zero 且次數為 2,而 (2P ) 指的是在點 2P 有個 zero 且次數為 1 6.
(16) 在 E 上的一群divisors組成可交換群,記為 Div(E ) ,並有下列的加法特性:若. D1 , D2 ∈ Div(E ) ,且 D1 = ∑ n p (P ) , D2 = ∑ m p (P ) ,則 D1 + D2 = p ∈E. ∑ n (P ) + ∑ m (P ) = ∑ (n p. p ∈E. p. p ∈E. p ∈E. p. p ∈E. + m p )(P ) 。對於一個divisor D = ∑ n p (P ) ,我 p ∈E. 們定義 supp(D ) = {P ∈ E | n p ≠ 0} 為divisor D 的support, deg(D ) = ∑ n p 為 p ∈E. divisor D 的次數。例如:D1 = 1(P ) + 2(Q ) − 5(R)、D2 = 7(P ) + 2(−2P ) − 2(O ) 則. supp(D1 ) = {P,Q, R} , supp(D1 ) = {P, −2P,O} 且 deg(D1 ) = 1 + (−2) + 5 = 4 、 deg(D2 ) = 7 + 2 + (−2) = 7 。 接下來我們討論次數為 0 的 divisor 集合,記為 Div 0 (E ),假設 f 是一圈有理函數, 從 K × K → K ,其中 K 為有限場。例如: f (x , y ) =. 5y − 2x − 4 ,我們定義在點 7y + 2x − 2. P 時,有理函式值的算法為 f (P ) = f (x P , yP ) ,在 divisor D 時,有理函式值的算 法為 f (D ) =. ∏. P ∈supp (D ). f (P )nP 。定義有理函式 f 的 divisor 為 div( f ) = ∑ nP , f (P ),其 P ∈E. 中 nP , f 為點 P 在 f 上的 zero 或是 pole 的 order。定理證明[27]有理函式 f 的 divisor , 其 次 數 必 需 要 為 0 。 換 周 話 說 , 對 任 意 的 有 理 函 式 而 言 , div( f ) ∈ Div 0 (E ) 。 所 以 對 於 兩 個 有 理 函 式 f1 , f2 而 言 , 有 列 的 特 性 :. div( f1 ) + div( f2 ) = div( f1 f2 ) 且 div(f1 ) − div(f2 ) = div( f1 / f2 ) 。 一個 divisor D ∈ Div 0 (E ) 若存在有理函式 f ,使得 D = Div(f ),稱之為 principal。 一個 principal divisor D = ∑ n p (P ) 有著 ∑ n p P = O 的特性。其中 ∑ n p P 代表 p ∈E. p ∈E. p ∈E. 橢圓曲上點的加法。例如,若 D3 = P + (−P ) − 2(O ) ,因 D3 滿足 deg(D3 ) = O , 且 P + (−P ) − 2O = P − P = O ,所以 D3 是 principal。 假設有兩個 divisor D1 和 D2 ∈ Div 0 (E ),若 D1 − D2 是 principal,則稱 D1 , D2 等價, 記為 D1 ∼ D2 ,對任意的 divisor 而言, D = ∑ n p (P ) ∈ Div 0 (E ) ,存在唯一的一 p ∈E. 7.
(17) 點 P = ∑ n p P ∈ E 使得 D ∼ (P ) − (O ) 。換句話說, D 永遠可以寫成 canonical p ∈E. 形式: D = (P ) − (O ) + div( f ) ,其中 f 為有理函式。 最後要介紹的是如何相加兩個 canonical 形式的 divisor,使得結果任為 canonical 形式。這個過程提供了一個在給定 divisor D 的悄況下,找尋有理函數 f 的方法, 使 得 div( f ) = D 。 假 設 D1 , D2 ∈ Div(E ) , 且 D1 = (P1 ) − (O ) + div(f1 ) 、. D2 = (P2 ) − (O ) + div( f2 ),P1 + P2 = P3,假設 hP1 ,P2 (x , y ) = ay + bx + c 為通過 P1 或 P2 的 直 線 , hP3 (x , y ) = x + d 為 垂 直 通 過 P3 的 直 線 。 接 著 我 們 有 div(hP1 ,P2 ) = (P1 ) + (P2 ) + (−P3 ) − 3(O ),因為 P1 , P2 , −P3 在直線 hP1 ,P2 (x , y ) 上,所以 為 zeros , 而 div(hP3 ) = (P3 ) + (−P3 ) − 2(O ) , 因 為 P3 和 −P3 在 直 線 hP3 。 所 以 divisor D1 , D2 的加法寫做:. D1 + D2 = (P1 ) + (P2 ) − 2(O ) + div( f1 f2 ) = (P3 ) − (O ) + div( f1 f2 ) + div(hP1 ,P2 ) − div(hP3 ) = (P3 ) − (O ) + div( f1 f2hP1 ,P2 / hP3 ) 上式將用於 Weil pairing 的計算。. 圖 2:橢圓曲線的加法律. 8.
(18) 2.1.2 Weil Pairing 和 Miller 演算法 Weil 對為一線性映射函數,由一個群對應到另一群,而定義域 (G1 ) 通常為定義 在大質數上的加法群,群上的點都符合橢圓曲線方程式,我們假設其生成元素 (generator) 為 P ,而對應域 (G2 ) 通常為定義在大質數上的乘法群。我們假設在 這G1 和G2 的離散對數問題是困難的。 給 定 一 個 基 礎 於 有 限 體 K 的 橢 圓 曲 線 E , 假 設 m 和 k 的 characteristic. char (K ) [29]互質。例如:char (GF (p)) = p 、char (GF (2n )) = 2 。Weil pairing 為 一個函數對應關係:. e : E [m ] × E [m ] → U m 其中 E [m ] = {P | mP = O, P ∈ E } ,稱為 m-torsion 群,U m 是在 K 中 1 的 m 次方 根,而 K 為 K 的 algebraic closure[29]。Weil pairing e(P,Q ) 的計算定義如下:給 定兩個 m-torsion 的點 P , Q ∈ E [m ] ,存在 divisor DP , DQ ∈ Div 0 (E ) ,使得. DP ∼ (P ) − (O ) , DQ ∼ (Q ) − (O ) , 任 意 選 擇 兩 點 T 和 U , 並 指 定 DP = (P + T ) − (T ) 、DQ ∼ (Q ) − (O )。因為 mP = mQ = O ,概據定理,mDP 及 mDQ 為 principal divisor , 且 存 在 有 理 函 數 fP 和 fQ , 其 中 div(fP ) = mDP , div(fQ ) = mDQ , 假 設 DP 和 DQ 有 完 全 不 一 樣 的 support , 也 就 是 說 supp(DP ) ∩ supp(DQ ) = φ ,則 e(P,Q ) =. fP (DQ ) fQ (DP ). 。■. 第一個計算 e (P,Q ) 的演算法為 Miller 演算法[30],我們將步驟說明如下: 輸入: P ,Q ∈ E [m ] 輸出: e(P,Q ) 步 驟 一 : 任 意 選 擇 兩 點 T 和 U , 滿 足 P + T ,T ,Q + U ,U 皆 不 同 , 並 指 定. 9.
(19) DP = (P + T ) − (T ) 、 DQ ∼ (Q ) − (O ) 步驟二:計算 fP (Q + U ), fP (U ), fQ (P + T ), fQ (T ),其中 fP , fQ 滿足 div(fP ) = mDP ,. div(fQ ) = mDQ 步驟三:計算 e(P,Q ) =. fP (DQ ) fQ (DP ). =. fP (Q + U )fQ (T ) fQ (P + T )fP (U ). ■. 我們列舉 Weil 雙線性映射函數 e : G1 ×G1 → G2 ,滿足下列特性: 一、. 雙線性 (Bilinearity) : ∀P,Q, R ∈ G1 , e (P + R,Q ) = e (P,Q )e (R,Q ) 且. e (P + Q, R) = e (P, R)e (Q, R) 二、. 不退化性 (Non-degeneracy) : ∃P,Q ∈ G1 , e (P,Q ) ≠ 1. 三、. 可計算性 (Computability) : ∀P,Q ∈ G1 ,計算 e (P,Q )ab 是多項式時間 (Polynomial Time) 可完成。. 以下說明雙線性密碼系統所基硬的難題: 雙線性 Diffie-Hellman 問題 (BDHP) : 給定 P, aP,bP, cP , a, b, c ∈ Ζ*p , 計算出 d ∈ G2 ,使得 d = e (P, P )abc ∈ G2. 2.2. 身份基礎公開金鑰密碼學. Identity Based Encryption (IBE) 密碼系統的構想最初是由 Shamir[1]提出。它利用 使用者的身份作為公鑰,而非傳統以無意義的字串。因此,公鑰能夠由使用者的 身分資訊來導出,所以不需要公鑰憑證驗證。請見圖 3。使用者先向私鑰產生中 心 (Private Key Generator, PKG ) 認證自己,過程中可能會需要現身在註冊櫃台 或是提出相關的證明文件,一但認證通過,私鑰產生中心即會產生對應於使用者. 10.
(20) 身份的私鑰。我們假設寄送著是 Alice,收件者是 Bob,Alice 藉由 Bob 公開的 資訊 (圖中例子為電子郵件信箱或是手機號碼) 導出 Bob 的公鑰,Alice 藉由此 公鑰加密文件給 Bob,而 Bob 可以事先或是收到密文後,向 PKG 認證並取得對 應於自己身份的私鑰,如此就能夠解開密文。而簽章的過程也是類似,只是過程 中使用的的是簽章和認證。. ID-based Cryptosystem. IDBob is arbitrary and meaningful ex: [email protected] or 0912345678. Setup generate params and master key. Private Key Generator (PKG). Extract generate PriKeyIDBob by IDBob and master key. Alice. Authentication IDBob. PriKeyIDBob. Bob. (params, IDBob). PriKeyBob. Encrypt. Decrypt. or. or. Verify. Sign. 圖 3:IBE 運作圖. 2.2.1 身份基礎加密系統設計 直到 2001 年,Cock[22]提出了基礎於 quadratic residuosity 難題的 IBE,但其最 大的問題在於一次僅能加密一個位元,若使用長度為 l 的模數,則密文會是明文 的 l 倍,所以僅適合小量的資料或是 session key 的保護。同年 Boneh 和 Franklin[5] 個提出更有效率的 IBE 設計,此設計基礎於 BDH 和 CDH 問題上,他們設計的 關鍵在於:寄送者和收件者能夠利用雙線性對的運算性質,和雙方各自擁有的資 訊算出同樣的 session key,而這把即可用來保護之間的通訊。接下來詳述 Boneh 和 Franklin 的設計: 系統初始: PKG 選擇系統參數 G1,G2 , H 1, H 2 , E , P,Q0 , e 並選擇系統的金鑰. s9 ,將系統參數公開,但系統金鑰咻持祕密。其中 P 為G1 中的一個次數為 q 的生 11.
(21) 成元 ﹙generator﹚ ,G1 為橢圓曲線 E 上的點,H 1 : {0,1}* → G1、H 2 : G2 → {0,1}* , s 0 ∈ Fq* ,並設定Q0 = s 0P 。. 金鑰抽取: PKG 認證使用者,其密碼系統中的公鑰為 PID = H 1(ID ) ,對應的 私鑰為 S ID = so PID 。如圖 4 中 Bob 的公鑰為 PBob ,對應的私鑰為 S Bob = s 0PBob 。. PRoot. s0. s 0 PA lice. s 0PBob. PAlice. PBob. s 0 PA lice. s 0PBob. 圖 4:IBE 私鑰抽取的示意圖. 加密算法:假設 Alice 要加密文件 M 給 Bob,Alice 任選一個亂數 r ∈ Fq* 並計 算使用者 Bob 的公鑰 PBob = H 1(Bob) ,則C = rP, M ⊕ H 2 (e(PBob ,Q0 )r ) 解密算法:假設 Bob 收到密文C ′ = U ,V ,則計算 M ′ = V ⊕ H 2 (e(S Bob ,U )) 。. 2.2.2 階層式身份基礎加密系統設計 Hierarchical Identity-based Encryption (HIBE) ,最初由 Horwitz 和 Lynn[9]提出, 他們設計出二層的架構,主要是要解決單一 PKG 設計中,root PKG 工作量太 大,容易成為系統的瓶頸,但這個設計有安全上的瑕疵。Gentry 和 Silverberg[3] 修改他們設計,並提出可以更多階層的身份基礎密碼系統,系統中的每個實體位 於某個階層中,並且讓 root PKG 在第 0 層。有別於非階層式的 IBE,這個系統 中實體的身份表示為 ID-tuple,由 root 追蹤到該實體所在的階層。也就是說,如 果一個實體的 ID-tuple 為 〈 ID1 ,..., IDt 〉 ,那他的組先 (位於第 i 階層,除去 Root) 的. 12.
(22) ID-tuple 為 〈 ID1 ,..., IDi 〉 , 1 ≤ i < t 。每一個內節點 (internal node) 的點會選擇該層的 祕密點 (secret point) ,並用它來產生下一層使用者的私鑰。在這樣的設計下, 所有的運算只需要 root PKG 的公開資訊。 此外,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。. PRoot. s0 s 0PBob. PNCTU s 0 PN C T U. s1. PBob. s0PNCTU + s1PAlice. s 0PBob. PAlice s 0PNCTU + s1PAlice 圖 5:HIBE 私鑰抽取的示意圖. 13.
(23) 系統參數初始:root PKG 選擇系統參數 〈G1 , G2 , e, n, P0 , Q0 , H1 , H 2 〉 及系統金鑰 s 0 。 其中 P0 代表 G1 中的生成元素,Q0 = s0 P0 代表系統的公鑰,系統參數必需公開給所有 系統使用者知道,但系統金鑰必須保持秘密。 低階層參數初始:低階層 PKG (位於階層 t ) ,選擇此層的秘密點 si 並發給 下層使用者 (位於階層 t + 1 ) 使用者金鑰 使用者私鑰金鑰抽取:.位於 t − 1 階層的 PKG ,其身份識別為 ( ID1 ,..., IDt −1 ) , 能夠產生位於 t 階層的使用者金鑰,其身份識別為 ( ID1 ,..., IDt −1 , IDt ) 。 PKG 利用系 統 參 數 , 自 己 的 私 鑰 S t −1 和 秘 密 點 st −1 進 行 這 個 運 算 。 . PKG 先 計 算 Pt = H1 ( ID1 ,.., IDt ) ∈ G1 並設定使用者私鑰為 St = St −1 + st −1Pt ∈ G1 (t =1, S0 =1G1 )。此外,PKG. 也計算Q 值: Qi = si P0 , for 1 ≤ i ≤ t − 1 並安全的傳送使用者私鑰及Q 值。. 基本運算 (Direct Version of Operations) 直接版本 HIBE. 加密法:要將訊息 M 加密給使用者,其階層中的身份識別為 ( ID1 ,..., IDt ) ,加 密者先計算 Pi = H1 ( ID1 ,.., IDi ) ∈ G1 , 1 ≤ i ≤ t ,並且隨機選擇亂數 r ∈ Zq* 。則密 文為 C = 〈 rP0 , rP2 ,..., rPt , M ⊕ H 2 (e( P1 , Q0 ) r )〉. 解密法:當使用者收到密文 C ' ,其格式為 C ' = 〈U 0 ,U 2 ,...,U t ,V 〉 ,則解密者使 用自己的私鑰 St 以及在金鑰抽取時得到的Q 值: Qi = si P0 , 1 ≤ i ≤ t ,將可以 t. 得回明文 M ' = V ⊕ H 2 (e( St ,U 0 )∏ e(U i , Qi −1 ) −1 ) ■ i =2. 直接版本 HIBS. 簽章法:要將訊息 M 簽發給使用者,簽章者在階層中的身份識別為 ( ID1 ,..., IDt ) ,簽章者先計算 PM = H1 ( M ) ∈ G1 並且隨機選擇亂數 r ∈ Zq* 。最後利. 14.
(24) 用 自 己 的 私 鑰 St 設 定 簽 文 Sig = St + rPM 。 將 Sig 和 驗 證 所 需 Q 值 Qi = si P0 ,. 1 ≤ i ≤ t 傳遞給使用者。. 驗證法:當使用者收到簽文 Sig ,且要驗證是否真的從簽章者而來,假設簽章 t. 者的身份識別為 ( ID1 ,..., IDt −1 ) ,若 e( P0 , Sig ) = e(Q0 , P1 )e(Qt , PM )∏ e(Qi −1 , Pi ) 則驗 i =2. 證通過。■ 直接版本 HIBSE. 簽章加密法: 簽密者 Aice (身份識別為 ( ID1 ,..., IDt ) ) 想簽章加密訊息 M 給使 用者 Bob,他先計算 PM = H1 ( M ) ∈ G1 並且隨機選擇亂數 r ∈ Zq* 。接著利用自己的 私鑰 St 設定簽文為 Sig = St + rPM 。接著要將 Sig 加密給使用者 ( 身份識別為. ( ID1 ,..., IDt −1 ) ) ,簽密者 Alice 先計算使用者的 Pi = H1 ( ID1 ,.., IDi ) ∈ G1 , 1 ≤ i ≤ t 並 且 隨 機 選 擇 亂 數 r ∈ Zq* 。 接 著 計 算 QM = st P0 和 C = 〈 rP2 ,..., rPt ,. ( M & Sig & IDAlice ) ⊕ H 2 (e( P1 , Q0 ) r ), Q1 ,...QM 〉 其中 Qi = si P0 ,. 1 ≤ i ≤ t −1。. 解密驗證法: 當 Bob 收到密文 C ',其格式為 C ' = 〈U 2 ,...,U t ,V , Q1 ,...QM 〉 ,Bob 使用自己的私鑰 St 和金鑰抽取時得到的Q 值: Qi = si P0 , 1 ≤ i ≤ t 來得回明文 t. M & Sig & ID Alice = V ⊕ H 2 ( e ( S t , U 0 )∏ e (U i , Qi −1 ) −1 ) 。接著 Bob 驗證簽章,利用式子 i=2. t. e( P0 , Sig ) = e(Q0 , P1 )e(Qt , H 3 ( M ))∏ e(Qi −1 , Pi ) ,若等號成立,則驗證通過。 ■ i=2. 雙重運算 (Dual Version of Operations) 不同於直接版本 HIBE/HIBS/HIBES,雙重版本 HIBE/HIBS/HIBES 能夠平衡通 訊雙方的計算量 (直接版本中,加密/簽章較解密/驗證容易) 。此外,密文的長 度也能大大的縮減。加密方現在僅需準備 m − l 個 Q 值以便解密,簽章方也僅需 同數量的 Q 值以供驗證。如圖 6:HIBE 中,直接版本與雙版本的對照所示,寄. 15.
(25) 送者階層為 m ,收件者階層為 n ,他們共同的祖先位於 l 階層。由圖 6 可以清楚 的發現 (比較下半圖中,兩虛線的長度) ,只要寄送者和共同先的距離小於共同 祖先的階層,雙重版本表現較直接版本好。 Level 0 m. n. Level m. Level 0 L+1 Level L m - L+ 1 Level m. n-L+1. y. Level n z If m - L + 1 < L + 1, Dual wins. 圖 6:HIBE 中,直接版本與雙版本的對照. 雙重版本 HIBE 假設有兩個實體 Alice 和 Bob,在階層中的身份識別分別是 ( IDy1 ,..., IDyl ,..., IDym ) 和 ( IDz1 ,..., IDzl ,..., IDzm ) ,也就是說 Alice 位於階層 m 而 Bob 位於階層 n ,他們 共享從 root (階層 0) 到階層 l 相同的祖先。. 加密法: 加密者 Alice 想要加密文件 M 給使用者 Bob 。 Alice 先計算 Pi ( z ) = H1 ( ID1 ,.., IDi ) ∈ G1 ,l + 1 ≤ i ≤ n 並且隨機選擇亂數 r ∈ Zq* ,接著設定密文 m. 為 C = 〈 rP0 , rPl +!( z ) ,..., rPt ( z ) , M ⊕ H 2 ( glr( y ) )〉 ,其中 gl ( y ) = e( P0 , Sm ( y ) ) ∏ e(Qi −1( y ) , Pi ( y ) ) −1 i =l +1. 解密法:當 Bob 收到密文 C ' 並假設其格式為 C ' = 〈U 0 ,U l +1 ,...,U n ,V 〉 ,Bob 使 用自己的私鑰 St 以及在私鑰抽取時得到的Q 值: Qi = si P0 , l + 1 ≤ i ≤ n 來回復 n. 明文 M ' = V ⊕ H 2 (e(U 0 , S z )∏ e(Qz ( i −1) ,U i ) −1 ) ■ i =l +!. 16.
(26) 雙重版本 HIBS. 簽章法 : 簽 章 者 Alice 想 要 簽 章 訊 息 M 給 使 用 者 Bob 。 Alice 先 計 算 PM = H1 ( M ) ∈ G1 並且隨機選擇亂數 r ∈ Zq* 。接著 Alice 使用自己私鑰 St 設定 l. Sig = St + rPM 和 簽 章 Sig ' = e( P0 , Sig )∏ e(Q0 , Pi ) −1 , 將 Sig ' 和 驗 證 用 Q 值 : i =1. Qi = si P0 , l + 1 ≤ i ≤ m 傳給 Bob。. 驗 證 法 : Bob. 收 到 來 自 於. Alice. 的 簽 章 , 驗 證 是 否. m. e( P0 , Sig ') = e(Qt , PM ) ∏ e(Qi −1 , Pi ) ,若等號成立,表示驗證通過。 ■ i =l +1. 雙重版本 HIBSE. 簽章加密法: Alice 想要簽章加密訊息 M 給 Bob,她先計算 PM = H1 ( M ) ∈ G1 並 且 隨 機 選 擇 亂 數 r ∈ Zq* 。 接 著 Alice 使 用 自 己 的 私 鑰 St 並 設 定 簽 章 為. Sig = St + rPM 。 接 著 用 Bob 公 鑰 加 密 訊 息 , Alice 先 計 算 Bob 的 Pi = H1 ( ID1 ,.., IDi ) ∈ G1 , 1 ≤ i ≤ t 並且隨機選擇亂數 r ∈ Zq* ,計算 QM = st P0 並設 定 密 文 C = 〈 rP2 ,..., rPt , ( M & Sig & IDAlice ) ⊕ H 2 ( gl ( y ) r ),. Q1( y ) ,...QM ( y ) 〉 , 其 中. m. Qi ( y ) = si P0 1 ≤ i ≤ t − 1 , gl ( y ) = e( P0 , Sm ( y ) ) ∏ e(Qi −1( y ) , Pi ( y ) ) −1 。 i =l +1. 解 密 驗 證 法 : 當 Bob 收 到 來 自 Alice 的 密 文 C ' , 密 文 格 式 為 C ' = 〈U 2 ,...,U t , V , Q1( y ) ,...QM ( y ) 〉 ,Bob 使用自己的私鑰和在私鑰抽取過程中得到的. Q 值 :. Qi ( z ) = si P0 ,. 1 ≤ i ≤ t 來 得 回 明 文 M & Sig & IDAlice = V ⊕. n. H 2 (e(U 0 , S z ) ∏ e(Qz ( i −1) , U i ) −1 ). 。 Bob. i = l +1 t. 接 著 驗 證 是 否. e( P0 , Sig ) =. e(Qt , H 3 ( M ))∏ e(Qi −1 , Pi ) ,若等號成立,表示訊息完整且是從 Alice 傳來的。 ■ i =2. 17.
(27) 直接版本的運算分析如表格 1,傳送者位於階層 m ,接收者位於階層 n :. Scalar multi. in Addition in. Setup. Extract. Encrypt. 1. 2. n. (G1 ). (G1 ). Decrypt. Verify. 2. 1. 1 n. 1. Pairing Exponent in. Sign. (G2 ). n +2. 1 n +1. Hash operation XOR operation. 2. 1. 1. 1. 2. 表格 1:直接版本的運算分析. 雙重版本的運算分析如表格 2,傳送者位於階層 m ,接收者位於階層 n ,共 同祖先位於階層 l :. Scalar multi. Addition in. (G1 ) (G1 ). Setup. Extract. Encrypt. 1. 2. n −l + 1. Verify. 1 m −l + 1. (G2 ). Hash operation. Sign. 2. 1. Pairing Exponent in. Decrypt. n −l + 1. n +2. 1 n +1. XOR operation. 2. 1. 1. 1. n +1. 表格 2:雙重版本的運算分析. 2.3. 秘密分享與門檻密碼學. 秘密分享 (secret sharing) 和門檻密碼學 (threshold cryptography) 都是讓一群人 共享祕密的方式,但其中最大的不同就是:在秘密分享中,祕密是先確定的,也 就是會有一個可信任的莊家握有祕密,並利用秘密分享函式來分給使用者部分祕 18.
(28) 密。而門檻密碼學則是讓使用者藉由訊息的交換,共享一個祕密,但沒有但何一 個人知道最終的祕密,通常也不允許他們重建,若加強門檻加密法的安全性,移 除 可 信 任 莊 家 的 需 求 , 我 們 稱 此 設 計 為 分 散 式 金 鑰 產 生 (distributed key. generation, DKG) 。接下來的章節,我們會先介紹秘密分享,並說明門檻法的概 念並介紹我們使用的分散式金鑰產生。以下說明門檻法密碼系統的設計需求:. t-安全 (t-secure) 門檻法系統 若至多 t 個實體合作,是無法重建分享的秘密,也無法得知任何關於秘密的資訊。. t-強健 (t-robustness) 門檻法系統 若至多 t 個惡意或是被麥解的實體參與,其餘實體仍可有效率的重建分享秘密。 給定 P, aP,bP, cP , a, b, c ∈ Ζ*p , 計算出 d ∈ G2 ,使得 d = e (P, P )abc ∈ G2. 2.3.1 Shamir 秘密分享 Shamir[3] 祕密分享的設計,主要的構想是利用多項式的內插法 (polynomial interpolation) 。此設計中假說了一個可信任的莊家 TD ,他會發給不同的實體部 分祕密,讓他們能夠共享一個祕密。這個設計我們說明如下: 1.. i TD 選擇在 Ζq 上,次數為 t − 1 的多項式 f ( z ) = ∑ i =0 ai z (mod q) 令 t 是設定的門檻 t −1. 值,並設定 f (0) 為欲分享的祕密 x 。 2.. TD 幫每一個實體 IDi 計算他們該有的部分祕密 xi = f ( IDi ). 任何包涵t個實體的群組能利用Lagrange內插法,回復分享的祕密 x 。方法如右: t. f ( z ) = ∑ xi λi ( z ) ,其中 λi = ∏ j =1 xi λi (0) (mod q) 。任何小於 t 個實體的群組將無法得知 t. i =1. 任何有關 x 的資訊。 19.
(29) 2.3.2 分散式金鑰產生法 在利用 Shamir 的設計時,我們不想讓某個實體能夠獨自選定並擁有這個祕密分 享函式,也就是說,我們在設計中不想假設有一個可信任的莊家 ( TD ) ,而是會 利用某種機制,能讓決定和擁有這兩個動作,能夠由多個實體來執行。第一個設 計出此種分享設計的人為 Peterson[18],他的設計讓參與者自選部分秘密及部分 秘密分享函式,藉由交換手中函式的資訊,他們能夠共享一個秘密,但最終被證 明有安全上的漏洞。經過修改,Gennaro[1]提出安全的合作產生秘密的方式,稱 為分散式金鑰產生 (distributed key generation, DKG) ,我們記為 GJKR-DKG,在. GJKR-DKG 中,不再需要假設有一個可信任的莊家,取而代之的是一群玩家 ( P ) 來決定祕密分享函式。我們要強調的是,在 DKG 的設計中的玩家 ( P ) 不再需要 是可信的,因為在玩家互相交換訊息的過程,他們就能共同決定一個可信任的群 組,並且能偵測並移除掉不誠實之玩家對於最後祕密的影響。. 2.3.2.1 Tang’s 分散式金鑰產生法 Tang 等人設計出 TC-DKG[4],其運作的原理和 GJKR-DKG[1]是一致的,只是前 者應用於基礎在加法群上的密碼系統,而後者應用於基礎在乘法群上的密碼系 統,在這兩種設計中,分成四個步驟,完成這四個階段,每個玩家擁有部分的祕 密分享函式,和部分的祕密。而所有玩家共同分享的祕密不會被任何一個玩家所 算出。這個設計在惡意玩家出現時,仍可以藉由其後驗證階段 (KV) 找出,並 消除惡意玩家帶來的影響。我們說明 TC-DKG 如下:. T 為各個同儕領域的公鑰 Pi ,而T ' 是系統公開的參數,即為HIBE中的 P0 ,Q0 則 為root 同儕領域,執行完TC-DKG後即可得到,HIBE系統中其餘的系統參數, 如Hash function H 1 、 H 2 、 q 、 E (Fq ) 、 eˆ 都可以事前先決定,成為系統公開的資 訊。此外, IDi (Identifier,身份識別) 代表身份基礎公開金鑰系統中,同儕實體 20.
(30) 或是領域實體在系統中的相關資訊,用於導出實體的公鑰。而 Pi 侉表同儕實體或 是領域實體所擁有的公鑰,此公鑰是由身份識別衍生而來。. Key Distribution (KD) phase: 所有 SFG / PKG 成為一個集合 S 。 使用者 IDi 選擇 2t + 1 個數: aik ∈ GF (q ) 和 bik ∈ GF (q ) , 0 ≤ k ≤ t ,利用他們產 t. t. 0. 0. k k ' 生兩個次數 (degree) 為 t 的多項式: fi (z ) = ∑ aik z , fi (z ) = ∑ aik z 。 IDi 幫. ID j ∈ S 計算 sij = fi (c) 和 sij' = fi (c) ,其中 c 代表 Pj 所對應到的隊伍,利用秘密通 道將 sij 和 sij' 傳送給 IDj 。. Key Generation (KG) phase: 使用者 IDi 計算並廣播 Ai 0 = ai 0T 。並從 Pj ∈ S 得到 Aj 0 = a j 0T ,計算出此層的Q ⊕. 值 Ql = y = ∑ Aj 0 。 j ∈S. 上述的分散式金鑰產生方式運作於全為誠實的同儕,若要增加強健性. (robustness) ,TC-DKG 也提供了方法,不僅能找出說謊的人,並能移除他們對 金鑰的影響,在過程中會定義一個 QUAL 集合,包括所有合法的分散金鑰參與 者,根據文獻中的證明,所有的合法參與者會算出相同的 QUAL 集合,或利用. Key Verification (KV) 階段與 Key Check (KC) 階段中,我們將過程說明如下。 Key Distribution (KD) 階段: 除了利用秘密通道將 sij 和 sij' 傳送給 Pj ,且利用廣播通道公開關於手中多項式的 資訊 Pik = (aikT ) ⊕ (bikT ' ) , 0 ≤ k ≤ t 。. Key Verification (KV) 階段: 當使用者 Pi 收到從 Pj ∈ S 來的 s ji 和 s ji' ,利用式子 (1) 驗證正確性:. 21.
(31) t. (aikT ) ⊕ (bikT ' ) = ∑ (IDi )k Pjk. (1). k =0. 其中其中 IDi 代表 Pi 所對應到的身份識別。. 1). 若 對 於 ID j 的 s ji 或 s ji' 驗 證 (1) 不 通 過 , 則 廣 播 一 個 對 IDj 的 抱 怨. (complaint) 。 ' 2) 若 ID j 收到從 IDi 來的抱怨,則廣播滿足 (1) 的 s ji 和 s ji 。. Key Check (KC) 階段: 若滿足下列兩種情況,使用者 ID j 將被移出Q ,而且 Pi 更新其秘密為. ∑s. ji. j ∈Q. 1) 收到多於 t + 1 個來自不同使用者的抱怨 ID j ' 2) 收到 ID j 廣播的辯駁 s ji 或 s ji ,但仍然不能滿足 (1). Key Generation (KG) 階段: 和先前版本相同 ■ TC-DKG 的運算複雜度如表格 3,詳細分析請參考[4]: 乘法運算. 加法運算. 最差情況記憶體使用. KD. (2t + 2,2cU (t + 1)). (t + 1,2ct ). 2(t + 1)log2 (p) + K. KV. (c(t + 3), cU (t + 1)). ((c − 1)(t − 1), 0). (2c + t + 1)log2 (p) + K. KC. (2t, 0). (t, c − 1). (n − 1)log2 (p) + K. KG. (1, 0). (n − 1, 0). 常數. 表格 3:TC-DKG 運算複雜度分析. 若參與實體皆為誠實的同儕,則僅需要 KD 和 KG 兩步驟,若有說謊的同儕,則 要再加入 KV 和 KC 兩個步驟,表格中的 (x , y ) 分別代表在橢圓曲線主子群 (main. subgroup) 的運算及在GF (q ) 的運算。其中U (t ) 代表 t log2 t ,C 代表參與的人數, p 代表 E /GF (q ) order 中的大質數。而最差情況記憶體使用的表格中,K 是最差 情況時,乘法的記憶體需求,此外,TC-DKG 通訊的複雜度如表格 4: 22.
(32) 接收訊息次數. 傳送通道. KD. 0. (n − 1,1). KV. c −1. (0, t + 1). KC. t(c − 2t − 1) + t. (0, 0). KG. c −1. (0,1). 表格 4:TC-DKG 通訊複雜度分析. 其中傳送通道中的 (x , y ) 分別代表秘密通道與廣播通道。. 23.
(33) 第 3 章 系統概論 Halo 的設計是為了解決二個在實作同儕網路安全時遇到的困難: 1.. 缺乏伺服器的架構:同儕網路因缺乏伺服器的本質,讓它很容易的被部屬. (deploy) 和調整規模 (scale) ,但也讓同儕間的通訊很難被保護。由於缺乏安 全的節點來作為信任關係的開端,當然也就無法簽發必要的安全標記 (secure. credential) 。先前已有文獻記載在mobile ad-hoc網路中使用門檻式的憑證權威 (threshold certificate authority,TCA) [6],這樣的機制同樣能夠保護同儕網路 系統,然而TCA需要做到門檻式的計算RSA的公/私鑰和憑證簽章[19][14],藉 由門檻式的計算RSA模數 (Moduli) [5] 來達到。到目前為止,沒有一個可擴 充的方法,在沒有可信任的莊家協盼助下或是不用麻煩的信息交換來支援門 檻式的憑證簽章。目前所用的信息交換技術相當於安全的多方運算,這是個 很煩雜的運算。在信任關係階層需維持的情況下,簽發公鑰憑證和憑證廢除 列表 (revocation list) 的計算和通訊的複雜度,對於同儕網路系統中實際的應 用,都會是個沉重的負擔。 對於機會性合作的需求:不像主從式 (client-server) 的交易,在同儕網路中的服 務提供者 (service provider) 通常是根據操作的需求,以 ad-hoc 的方式選出。候 選的服務者通常由分散式的搜尋或是 routing 的方式,如透過 distributed hash. tables (DHT) 被發現。真實的服務提供者通常由一些操作上的需求選出,像是網 路的連線、同儕的聲望 (reputation) ,甚至是同儕身上的工作量。因為服務提供 者通常也是個普通的節點,所以在同儕網路交易中,沒有辦法預先得知或是限制 參與者的行為。在缺乏操作控制和安全的基礎架構下,同儕網路中,若要提供同 儕 認 證 (peer authentication) 、 信 息 完 整 (message integrity) 和 信 息 祕 密. (confidentiality) 這些基本的安全服務,面臨相當多的固難。. 24.
(34) 3.1 設計原則 此 系 統 將 發 給 每 個 合 法 使 用 者 一 對 金 鑰 , 而 公 鑰 是 從 同 儕 的 身 份 (peer. identity) 、能提供的服務 (service) 以及授權的角色 (提供者或是需求者) 導出。 由於在同儕網路中缺乏安全伺服器 (security server) ,所以此系統使用多個同儕 作為 PKG ,這些 PKG 將使用 (t, n). 門檻式祕密分享運算來產生私鑰。所以同. 儕若想取得私鑰,甚至是成為某個服務的提供者或需求者,就必需要尋求至少 t 個 PKG 的授權認可。 圖 7 顯示的是我們設計的系統 Halo。為了要管理同儕,Halo 將他們安排成階層 式的同儕群組 (peer group) 。每個同儕群組被賦與可以提供或是訂閱某種特定的 服務。就如同我們設計的 PKG 和 SFG / PKG 是分屬不同的同儕群組。而一個同 儕群組若同時包涵 PKG 群組和 SFG / PKG 群組,且這個同儕群組就成為了同儕 領域 (peer domain) 。一個同儕領域擁有 Halo 最基本的管理元件,因為它擁有 自 治 的 能 力 : 簽 發 私 鑰 給 同 儕 並 能 夠 再 提 升 同 儕 為 PKG , 之 後 再 成 為. SFG / PKG 。一個網路節點需要得到某個同儕領域中 PKG 所簽發的私鑰,才能 夠被允許加了該同儕領域。一個同儕領域可以藉由簽發和新的服務相關的私鑰, 而產生多個同儕群組。一個同儕領域也可以讓自身的 SFG 產生新領域的 SFG, 因而產生新的子同儕領域。. 圖 7:Halo 系統同儕身份轉換的過程 25.
(35) 3.2. 操作原則. Halo 能夠用下面的兩種方式保護機會性合作中的同儕: (1) 它建立一基本階層 式 的 同 儕 群 組 架 構 , 用 來 管 理 並 授 權 服 務 的 提 供 (provision) 或 是 訂 閱. (subscription) ; (2) 它 藉 由 身 份 基 礎 公 / 私 鑰 來 來 保 護 同 儕 間 的 交 易 (transaction) ,而此私鑰是和同儕的身份、服務的型態和同儕在合作中的角色 (提 供者或是訂閱者 ) 有關。圖 8 中顯示典型 Halo 對於授權服務發動 (service. invocation) 的程序。為了能夠取得足夠的授權來參與機會性合作和發起授權的服 務,同儕必需先被至少一個或多個同儕領域所認證,而每個領域需要至少 t t PKG 來參與認證的過程。這個允許程序允許同儕成為同儕領域的成員並且得到能夠得 到身份基礎的公鑰和私鑰,而這對金鑰將能夠提供或是使用該同儕領域或是該領 域之子領域的服務。 一旦被允許進入同儕領域,提供者將允許提供特定的服務,訂閱者也將能由同儕 領域提供的搜尋服務 (discovery service) 來找尋欲使用的服務。搜尋服務將提供 訂閱者有關一群被授權的提供者之身份與位置。. 圖 8:Halo 系統同儕提供或訂閱服務的過程 26.
(36) 第 4 章 系統機制 本章節將描述 Halo 系統所基硬的 PKI 架構及同儕網路結構,並提出系統中在結 構上 (structural) 、功能上 (functional) 及惡意者 (adversary) 的假設,最後詳細 說明滿足各項假設所需要的數學方法。以密碼算法而言,Boneh 和 Franklin 設計 了身份基礎的加密算法 (IBE) ,對於系統設計而言,支持這樣的算法需要的系 統基礎架構,我們稱之為身份基礎公開金鑰基礎架構 (IDPKI) 。在階層式的身 份基礎加密算法,Gentry、Silverberg 提出了他們的加密算法,而支持的系統基 礎架構,則因系統初始化的方式而分成 centralized 和 distributed (server-less) 的架 構,Halo 系統即是提供了分散式的初始化方式,並且利用門檻法來達成,所以. Halo 系統可以稱為一種門檻式 HIBE (threshold HIBE, THIBE) 。 因 Halo 系統將會部屬在同儕網路中,所以我們在設計的過程也做了下列的假設: 功能上的假設: 無伺服器 (server-less) 環境: 在同儕網路環境中,無法事前安排永遠在線上的伺服器,且能被所有人信任。 沒有可信任莊家 (trusted dealer) 存在: 在同儕網路中,無法假設存在一個可信任的莊家,由他來發放系統部分秘密。 結構上假設: 管理的階層沒有限制: 在 Halo 的設計中,管理的層次是不受限制的,只要有需要,都能夠產 生出下一個層次,以符合實際應用。 通訊上假設: 訊息傳送:在訊息傳送時,要求有順序性,先傳送的訊息要先到達。並 假設在過程中沒有訊息會遺失,所以訊息一旦被送出,會在均一 (uniformly bounded) 的時間範圍內傳達。 廣播通道:假設廣播通道的訊息,能夠傳達到所有的人,不然就是沒有 人能夠收到。若能夠收到,則收到訊息的先後順序是隨機的。 27.
(37) 秘密通道:假設秘密通道的訊息,不會被非預期接收者攔截或是監聽。 惡意者假設: 停止惡意者:在系統運作過程,不小心或是遭到問題而無法回應訊息。 監聽惡意者:能夠被動的監聽並攔截所有在公開通道的資訊。 靜態惡意者:在系統運作前即還定要攻破(corrupt)的使用者,在系統運 作中無法視情況改變這個選擇。 重送惡意者:能夠儲存監聽到的訊息,並在假扮成某使用者時使用。 以下的符號將在接下來的論文中使用: IDi (Identifier,身份識別) :身份基礎公開金鑰系統中,同儕實體或是領域 實體在 系統中的相關資訊,用於導出實體的公鑰。 Pi :身份基礎公開金鑰系統中,同儕實體或是領域實體所擁有的公鑰,此公 鑰是由身份識別衍生而來。 Si :身份基礎公開金鑰系統中,同儕實體或是領域實體所擁有的私鑰,此私 鑰對應於公鑰 Pi 。 Credential (標示) :身份基礎公開金鑰系統中,和同儕實體或是領域實體有關 的資訊,於註冊或是認證時出示。 Secret Sharing Function Generator (SFG) :身份基礎公開金鑰系統中,擁有系 統金鑰,金鑰分享函式的實體,用於新領域的產生,一旦完成初始,即可離 開。每個SFG也會是個 PKG ,我們也會將他們記作 SFG / PKG 。 Private Key Generator ( PKG ) :身份基礎公開金鑰系統中,擁有系統金鑰, 並以此產生同儕私鑰的實體。 Registration Authority (RA) :身份基礎公開金鑰系統中,將實體資格 (physical credential) 轉為數位資格 (digital credential) 的實體。 其餘未提及的符號與 Boneh-Franklin 的論文[5]相同。. 4.1. 密碼學加密法. Halo 將發給系統合法使用者公、私鑰對,其中公鑰是從同儕的身份識別、能提 供的服務以及授權的角色 (提供者或是需求者) 導出。利用這個公私鑰對,合法 28.
(38) 使用者能夠使用階層式身份基礎金鑰系統中的服務,如加密/解密,簽章/驗證、 簽密 (sign-cryption) 、金鑰協議等。使用者也能根據其需求,使用不同版本的運 算服務,如直接版本和雙重版本。下面將總結使用者如何利用 Halo 授權的金鑰 對,執行身份基礎金鑰系統中各種運算,詳細的步驟與符號說明請見第二章。 直接版本 HIBE/HIBS/HIBSE. Operation. HIBE. Encrypt. C = 〈 rP0 , rP2 ,..., rPt , M ⊕ H 2 (e( P1 , Q0 ) r )〉. Decrypt. C ' = 〈U 0 , U 2 ,...,U t , V 〉 t. M ' = V ⊕ H 2 (e( St , U 0 )∏ e(U i , Qi −1 ) −1 ) i =2. Operation. HIBS. Sign. Sig = St + st PM. Verify. Output verified t. if e( P0 , Sig ) = e(Q0 , P1 )e(Qt , PM )∏ e(Qi −1 , Pi ) i =2. 圖 9:直接版本 HIBE/HIBS 運算摘要. Operation Sign + Encrypt. HIBES. Sig = St + rPM C = 〈 rP2 ,..., rPt , ( M & Sig & IDsender ) ⊕ H 2 (e( P1 , Q0 ) r ), Q1 ,...QM 〉. C ' = 〈U 2 ,..., U t , V , Q1 ,...QM 〉 Decrypt + Verify. t. M & Sig & ID sender = V ⊕ H 2 ( e ( S t , U 0 )∏ e (U i , Qi −1 ) −1 ) i=2. Output verified t. if e( P0 , Sig ) = e(Q0 , P1 )e(Qt , H 3 ( M ))∏ e(Qi −1 , Pi ) i=2. 圖 10:直接版本 HIBSE 運算摘要. 29.
(39) 雙重版本的運算在同儕網路中有著很高的利用價值,由於通訊的雙方,通常處於 同一個同儕群組或是分屬一個同儕群組中的子群組,所以有很高的機會會有低於. root 的祖先,而且寄送者越靠近共同組先,利用雙版本的運算效果就更好。我們 將雙重版本的通訊稱為本地通訊 (local communication) ,而牽涉到較遠,且共同 祖先離寄送者較遠的通訊稱作國際通訊 (global communication) ,在同儕網路中 視情況使用直接版本或雙重版本的運算,將大大的減少密文的長度,並且能夠保 證,在大部分的情況下,密文長度會落在某個限度之中 (比較寄送者和接收者的 距離和接收者到 root 的距離) 。接下來我們繼續介紹雙重版本的運算服務。 雙重版本 HIBE/HIBS/HIBSE 假設有兩個實體 Alice 和 Bob,在階層中的身份識別分別是 ( IDy1 ,..., IDyl ,..., IDym ) 和 ( IDz1 ,..., IDzl ,..., IDzm ) ,也就是說 Alice 位於階層 m 而 Bob 位於階層 n ,他們 共享從 root (階層 0) 到階層 l 相同的祖先。圖 11、圖 12 摘要 HIBE、HIBS 及 HIBES 之運算。 Operation Encrypt. Dual-HIBE. C = 〈 rP0 , rPl +1( z ) ,..., rPn ( z ) , M ⊕ H 2 ( gl ( y ) r )〉 m. Where gl ( y ) = e( P0 , Sm ( y ) ) ∏ e(Qi −1( y ) , Pi ( y ) ) −1 i =l +1. Decrypt. C ' = 〈U 0 , U l +1 ,..., U n , V 〉 n. M ' = V ⊕ H 2 (e(U 0 , S z )∏ e(Qz ( i −1) , U i ) −1 ) i =l +!. Operation Sign. Dual-HIBS. Sig = St + st PM l. Sig ' = e( P0 , Sig )∏ e(Q0 , Pi )−1 i =1. Verify. Output verified m. if e( P0 , Sig ') = e(Qt , PM ) ∏ e(Qi −1 , Pi ) i =l +1. 圖 11:雙重版本 HIBE/HIBS 運算摘要 30.
(40) Operation Sign +. Dual-HIBES. Sig = St + rPM C = 〈 rP2 ,..., rPt , ( M & Sig & IDsender ) ⊕ H 2 ( g l ( y ) r ), Q1 ,...QM 〉. Encrypt. m. where gl ( y ) = e( P0 , S m ( y ) ) ∏ e(Qi −1( y ) , Pi ( y ) )−1 i =l +1. C ' = 〈U 0 , U l +1 ,..., U n , V , Q1 ,...QM 〉 Decrypt + Verify. n. M & Sig & IDsender = V ⊕ H 2 (e(U 0 , S z )∏ e(Qz ( i −1) , U i ) −1 ) i = l +!. Output verified t. if e( P0 , Sig ) = e(Qt , H 3 ( M ))∏ e(Qi −1 , Pi ) i =2. 圖 12:雙重版本 HIBSE 運算摘要. Ephemeral Diffie-Hellman Key Agreement with HIBE/HIBS Protection 在同儕網路的機會性合作中,或許需要往來多個訊息,若每個訊息皆使用加密方 式保護安全性,則系統運作的效率將的大大的降低,我們可以考慮金鑰協議 (key. agrement) ,並利用上述的加密法或是簽章法來達成,做法如下:Alice 和 Bob 事先協議一個橢圓曲線加法群 P ,其 group order 為 r ,Alice 隨機選擇 rA ∈ Zq* 並計算 rAP ,Bob 也選擇一個亂數 rB ∈ Zq* 並計算 rB P ,他們將計算出來的 rAP 、. rB P 利用加密或是簽密傳給對方,以確保訊息是被認證過的 (authenticated) ,防 止中間人 (man-in-the-middle) 攻擊,交換訊息後 Alice 計算 rA (rB P ) ,Bob 計算. rB (rAP ),則 Alice 和 Bob 協議出一把金鑰為 rArB P ,能夠用於需要保護的 session。 保護 ephemeral key 的方法通常以加密或是簽章來達成。一般來說,簽章/驗證所 需的運算較少,其處理過的密文長度也較短,但先決條件就是使用者必需先取得 自己的私鑰,才能夠進行簽章保護的 Diffie-Hellman 金鑰協議。而加密保護. ephemeral key 的好處在於:使用者只需要知道對方的身份,即可導出對方的公 鑰,接著就可以做加密保護的 Diffie-Hellman 金鑰協議。此外,加密保護的 31.
(41) Diffie-Hellman 金鑰協議也能減緩 DoS 的攻擊,因為在這個情境中,拿私鑰和解 密文兩個步驟是最耗資源的,當使用者發覺密文可能是從可疑的地方傳送,或是 不 停 的 發 送 同 樣 的 需 求 (request) , 使 用 者 判 斷 , 並 決 定 是 否 要 參 與 交 易. (transaction),如此能夠過濾不合法的訊息,避免受到攻擊。 ■. 4.2. 門檻式私鑰產生. 由於在同儕網路中缺乏集中式且被信任的驗證機構,所以 Halo 採用多個同儕作 為 PKG ,為了提高 PKG 的安全性,避免單點失敗 (single point failure) 和增加 使用者的可利用性,這些 PKG 將使用 (n, t ) 門檻式秘密分享運算來產生私鑰,此 外,我們將 PKG 根據同儕的身份識別分組,簡單的說,如果要將 PKG 要分成 八個隊伍 (cohort) ,我們將依照同儕身份最後三個位元來決定,若以 001 結尾 的為第一組,002 為第二組,以此類推。此外,根據 Gentry- Silverberg 的設計, 各階層的秘密和上層有密切的關係,為了讓 Halo 中各個階層的部分秘密能夠累 加,組成階層中合法的部分秘密, PKG 手中的秘密不再是無意義的序號,而是 對應於自己身份識別的隊伍,如此在同一個隊伍的 PKG 拿到的為同一塊部分秘 密,也因為分組的政策 (policy) 固定,在驗證進入某個群組時,對應到的隊伍 皆相同,不論進行幾次的認證,取得的部分秘密皆相同,如此能避免惡意的重複 認證,拿到多個合法的金鑰對,而破壞系統整體的安全。所以同儕若想取得私鑰 以成為某個服務的提供者或需求者,就必需在 c 個隊伍中,尋求至少 t 個 PKG 的 授權認可 (一個隊伍找一個 PKG 認證,共找 t 個 PKG ) ,取得部分使用者私鑰, 所以我們的門檻系統也稱作 (c, t ) 秘密分享,因為我們把 n 個管理權威分成 c 個隊 伍,每個隊伍中的 PKG 擁有相同部分的秘密。若拿到 t 個隊伍所產生的使用者 部分私鑰,即能回復完整的使用者私鑰。而一般使用者能夠自己隊伍的 PKG 申 請,並取得對應於該隊伍的部分秘密,成為該隊伍新的 PKG 。 在 Halo 系統中,金鑰是採取 Gentry-Silverberg 的設計,如圖 13 所示,虛線方框 32.
(42) 代表某個同儕領域管理的範圍,箭頭及上方的文字分別代表訊息流動的方向與欲 傳送的訊息,圓形代表 PKG ,而橢圓形代表一般的同儕。最上層 (第零層) 為. Root PKG ,第一層的使用者,其公鑰為 PU 3 ,其私鑰 ( SU 3 = 1G1 + s 0PU 3 ) 為上層 的領域私鑰 (系統設計中,第零層的領域私鑰為G1 中的加法單位元素) 加上直接 祖先的秘密點 s 0 乘上公鑰 PU 3 。若新的 PKG 階層要產生,則下層選出一個使用者. PUlk ,其私鑰如同上所述,為 S = s 0PUlk 。此外,上層領域權威還賦予他新領域權 威 的 職 責 , 假 設 新 領 域 的 公 鑰 為 PD1 , 則 上 層 領 域 權 威 交 給 他 領 域 的 私 鑰. S D1 = s 0PD1 , 用 於 發 行 次 層 使 用 者 的 私 鑰 。 如 圖 中 的 使 用 者 PU 4 , 其 私 鑰. ( SU 4 = s 0PD1 + s1PU 4 ) 為上層領域的私鑰,加上祖先的秘密點 s1 乘上公鑰 PU 4 。. PD0. s0 s 0PU 3. s 0PD1. PD1. PU 3. s1 s 0PD1 + s1PU 4. s 0PU 3. 訊息流向 領域範圍. PU 4. PKG. s 0PD1 + s1PU 4. Peer. 圖 13:HIBE 金鑰與階層的關係圖. 為了聚焦在我們加強 Gentry-Silverberg 的設計上,我們先將 PKG 如何共享秘密 的方式當作黑盒子,先假設同一個階層的 PKG 能夠利用門檻法的方式共享一個 秘密,之後用專門的章節說明這個方法。圖 14 說明 Halo 系統中, PKG 的產生 與安排,虛線方框代表某個同儕領域管理的範圍,箭頭及上方的文字分別代表訊 息流動的方向與欲傳送的訊息,圓形代表某一隊的 PKG ,而橢圓形代表一般的 33.
(43) 同儕。其中 s12 的符號,上標代表隊伍索引 (cohort index) ,下標代表階層索引. (level index) ,所以 s12 表示第一個階層的秘密點 s1 ,依門檻法拆開時,屬於第二 個隊伍。Halo 系統中,為了要能夠維持 HIBE 的設計,一方面能利用門檻法的方 式分散系統金鑰風險,所以每個同儕領域的 PKG 拿到的不再是完整的同儕領域 的私鑰,而是與自己身份對應的隊伍,其保存的部分同儕領域金鑰。此外,我們 也需讓每一層的分類法都是一樣,如此同分類不同階層的部分同儕領域金鑰才能 疊加,如圖中不同同儕領域 PKG 的階層,關於某個隊伍的資訊,一條鞭的往下 傳,所以同一個身份的使用者,一旦經過驗證身份,確定分發的隊伍後,是無法 得到其他隊伍的資訊,所以我們每層將會有 c 隊個隊伍。使用者必須向 t 個 PKG. (一個隊伍找一個 PKG ,共 t 個) 認證,並取得使用者部分私鑰,也就是說,拿 到 t 種使用者部分私鑰。如圖中的使用者 PU 3 ,在 (c, t ) = (3,2) 的設計中,必需取 得 s 01PU 3 和 s 02PU 3 後,才能重建出自己的使用者私鑰。■. PD0. s 01. PD1 s 01PD 1 s11. s 02. s 0c. s 02PD1. s12. s 0c PD1. s 01PU 3. s1c. s 02PU 3. PU 3 2 0 D1. 2 1 U4. s P +s P. s 01PD1 + s11PU 4. s 0PU 3. 訊息流向 領域範圍 TD. PU 4. PKG. s 0P1 + s1PU 4. Peer. 圖 14:HIBE 在假設 TD 下的金鑰抽取. 34.
(44) 4.3. 分散式秘密分享函式產生. 由於在門檻式秘密分享時,需要秘密分享函式來計算部分秘密,在同儕網路中的 應用,甚至不能假設有可信任莊家的存在,選擇並持有該函式。在這樣的情況在, 使用者必需能夠初始化整個密碼系統,並且產生系統所需的 PKG ,以及 PKG 手 中的部分秘密。也就是說,我們將分散式的初始化系統,因此,我們在 PKG 同 儕群組中,獨立出一個新的同儕群組: SFG / PKG 同儕群組,群組中的所有的. SFG / PKG 協力決定秘密分享函式,一旦初始化,這此 SFG / PKG 的成員即可 開。此外,如同 PKG 的做法,我們也將此 SFG / PKG 同儕群組根據同儕的身份 識別分隊,每個隊伍只有一個 SFG / PKG ,所有 SFG / PKG (有 c 隊就會有 c 個. SFG / PKG ) 參與決定秘密分享函式的過程,並持有對應於該隊公鑰的部分 PKG 同儕領域金鑰,和部分同儕領域金鑰秘密分享函式。因此,一般使用者也 可以藉由向對應於自己公鑰隊伍的的 PKG 申請,取得該群組的部分 PKG 同儕 領域金鑰,成為該群組新的 PKG 。 在 Halo 系統中,採用分散式金鑰產生方式:TC-DKG 初始化 HIBE,讓 SFG / PKG 共 同 決 定 PKG 同 儕 領 域 秘 密 分 享 函 式 及 PKG 同 儕 領 域 部 分 秘 密 , 因 此. SFG / PKG 亦有 PKG 的功能,所以我們讓 SFG / PKG 同儕群組和 PKG 同儕群 組分隊伍的方式相同,用公鑰來分出隊伍。如圖 15 所示,在 PKG 產生時所假設 的可信任莊家 c 個不同隊的 SFG / PKG 所取代 (圖中以雙線三角形代表) ,他們 合作參與 TC-DKG 的過程。假設被推舉出的使用者為 P (屬於第 l 階層、第 c 隊) ,則在 TC-DKG 之後,他將得到第 l 階層、第 c 隊所使用的 PKG 同儕群組部 分私鑰分享函式 fl c (x ) 和 PKG 同儕群組部分私鑰 slc 。. 35.
(45) PD0. PD1. f01. f02. f0c. s 01. s 02. s 0c. s 01PD1. s 02PD1. s 0c PD1. f11. f12. f1c s12. s11. s 01P3. s1c. s 02P3. PU 3 s 02PD1 + s12PU 4. 訊息流向 領域範圍. s 0PU 3. SFG/PKG. s 01PD1 + s11PU 4. PU 4. PKG. s 0P1 + s1PU 4. Peer. 圖 15:HIBE 在沒有假設 TD 的金鑰抽取方式. Halo 中 SFG / PKG 共享秘密的方式詳述如下:. T 為各個同儕領域的公鑰 Pi ,而T ' 是系統公開的參數,即為 HIBE 中的 P0 ,Q0 則 為 root 同儕領域,執行完 TC-DKG 後即可得到,HIBE 系統中其餘的系統參數, 如 Hash 函式 H 1 、 H 2 、q 、 E (Fq )、eˆ 都可以事前先決定,成為系統公開的資訊。. Key Distribution (KD) 步驟: 所有 SFG / PKG 成為一個集合 S 。 使用者 IDi 選擇 2t+1 個數: aik ∈ GF (q ) 和 bik ∈ GF (q ) , 0 ≤ k ≤ t ,利用他們產 t. t. 0. 0. k k ' 生兩個次數 (degree) 為 t 的多項式: fi (z ) = ∑ aik z , fi (z ) = ∑ aik z 。 IDi 幫. ID j ∈ S 計算 sij = fi (c) 和 sij' = fi (c) ,其中 c 代表 Pj 所對應到的隊伍,利用秘密通 道將 sij 和 sij' 傳送給 IDj 。. Key Generation (KG) 步驟: 使用者 IDi 計算並廣播 Ai 0 = ai 0T 。並從 Pj ∈ S 得到 Aj 0 = a j 0T ,計算出此層的Q ⊕. 值 Ql = y = ∑ Aj 0 。 j ∈S. 36.
相關文件
第四章: 中學報稅的設計 第五章: 初中諒程主建議 第六章: 高中諒我建議,..
微算機原理與應用 第6
應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).
以已有的計劃為基礎, 不加新計劃及不加重
住友商事株式會社與挪威的 Tomra 系統公司所屬的合資子公司 Tomra(日本)公 司啟動了一個回收中心系統,用於回收 PET 瓶和廢紙,該系統安裝在東京 Machida-shi 福得旺超市的
溫度轉換 自行設計 溫度轉換 自行設計 統計程式 簡單 簡單 統計程式.
相較於把作業系統核心置於 Ring 0 權限層級的作法,全虛擬化的方式是以 hypervisor 作為替代方案,被虛擬化的客作業系統 (guest operating system, Guest OS) 核心對
由於 Android 作業系統的開放性和可移植性,它可以被用在大部分電子產品 上,Android 作業系統大多搭載在使用了 ARM 架構的硬體設備上使裝置更加省電