一個具層級性的動態群體簽章系統
全文
(2) 一 個 具 層 級 性 的 動 態 群 體 簽 章 系 統 A Hierarchical Dynamic Group Signature Scheme. 研 究 生:張兆儀. Student:Chao-Yi Chang. 指導教授:曾文貴. Advisor:Wen-Guey Tzeng. 國 立 交 通 大 學 資 訊 科 學 系 碩 士 論 文. A Thesis Submitted to Department of Computer and Information Science College of Electrical Engineering and Computer Science National Chiao Tung University in partial Fulfillment of the Requirements for the Degree of Master in. Computer and Information Science June 2004 Hsinchu, Taiwan, Republic of China. 中華民國九十三年六月.
(3) 一個具層級性的動態群體簽章系統 學生:張兆儀. 指導教授:曾文貴 博士. 國立交通大學資訊科學系. 摘要 群體簽章的概念,是指在一個群體中,任何一個成員皆可匿名地代 表此群體作簽章的動作。當遇到有爭議之時,才由系統指定的群體管理 者來解開(open)簽章,公佈簽章者的身份。對群體管理者之外的人而 言,此種簽章除了滿足原本簽章該有的安全性外,還須達到匿名性的要 求。 本篇論文是基於[15]的群體簽章架構,加上層級性的構想:即處在 較高層級的群體管理者,除了可打開該群體的群體簽章外,還可打開此 群體之下所轄群體的群體簽章。另外,也加入了群體成員加入時可給定 合法時限的作法,以減輕[15]中憑證廢止列表的負擔。. 關鍵詞:群體簽章、層級性、時限 i.
(4) A Hierarchical Dynamic Group Signature Scheme Student:Chao-Yi Chang. Advisor:Dr. Wen-Guey Tzeng. Department of Computer and Information Science National Chiao-Tung University. Abstract The concept of “group signature” means that, in a group, any member can sign on behalf of the group anonymously. While there is a dispute, a group manager assigned by the system will “open” the signature and make the signer public. For any one except the group manager, this kind of signatures satisfies not only the security properties but also “anonymity”. This thesis is based on the construction of group signature in [15], and adds the idea of “Hierarchy”. A manager of a higher group, can open not only the group signatures of this group, but also the group signatures of lower affiliated groups. Additionally, we also add the method of assigning valid time-bound when a user joins the group, in order to reduce the loads of the certificate revocation lists in [15].. Keywords:Group signature, Hierarchy, Time-bounded. ii.
(5) 誌謝 在此感謝我的指導老師曾文貴教授,在我碩士班兩年的學習過程 中,不只讓我在學業上受益良多,更在生活上以及言行上給我許多教 導。此外,我要感謝口試委員,交大資工系蔡錫鈞教授和清大資工系孫 宏民教授,在論文上給予我許多良好的建議和指導,讓我的論文更加完 善。除此之外我要感謝實驗室同學,尚宸、坤杉、振魁和佩琳的幫忙, 實驗室學長成康、惠龍、學姊季穎的指導,以及最可愛的女朋友和實驗 室學弟妹們在精神方面的鼓勵。 最後,我要感謝我的家人,不論在精神或物質上都給予我極大的支 持,讓我在無後顧之憂的情況下可以順利完成學業。在此,謹以此文獻 給我所有我想要感謝的人。. iii.
(6) 目錄 摘要 .......................................... i Abstract ..................................... ii 誌謝 ........................................ iii 目錄 ......................................... iv 第一章 引言 .................................. 1 第一節 研究動機 ............................. 1 第二節 研究重點 ............................. 3 第三節 各章節簡介 ........................... 3 第二章 基本技術與原理 ........................ 4 第一節 相關研究 ............................. 4 第二節 群體簽章的系統模型與特性 ............. 6 第三節 相關的定義與假設 .................... 10 第四節 零知識互動式證明系統及知識簽章 ...... 11 第三章 一個具層級性的動態群體簽章系統 ....... 18 第一節 參數定義 ............................ 18 第二節 一個具層級性的動態群體簽章系統 ...... 19 第四章 安全性證明 ........................... 30 第一節 基礎架構的安全性 .................... 30. iv.
(7) 第二節 其他安全性證明 ...................... 41 第五章 結論 ................................. 45 第一節 解章者 .............................. 45 第二節 結論與未來研究方向 .................. 47 參考文獻 ..................................... 49. v.
(8) 第一章 引言 在現今的科技時代中,數位化資訊的傳送非常地多元且普遍,尤其是在 網際網路普及的情形下,傳送資料除了是否能傳達之外,也衍生出許多不同 的需要。無可避免地,並非所有資訊皆可不加處理而直接讓人擷取並利用, 因此許多相關的保護機制便被人們提出來:例如加密 (Encryption)、數位簽 章 (Digital signature)、身份認證 (Authentication)……等等。 數位簽章的基本觀念,便是要提供某方與自己所發文件之間的關係與責 任。例如對自己所發出之文件不可否認,或讓其他人相信此文件為某方所簽 且未被竄改的正確文件。其基本精神為簽章者在簽章中藏入一些與文件和個 人有關的秘密資訊,而驗證者可透過一些與上述秘密資訊有關的公開資訊來 驗證。實現的方法需架構在公開金鑰密碼系統 (Public key cryptography) 中 , 簽 名 者 (Signer) 需 有 自 己 的 公 開 金 鑰 (Public key) 和 私 密 金 鑰 (Secret key),簽名時利用後者透過簽章演算法 (Signing algorithm) 來對 文件造出簽章 (Signature),前者需公開以供驗證者 (Verifier) 索取並透 過驗證演算法 (Verifying algorithm) 驗證之用。 群體簽章 (Group signature) 為數位簽章的一種運用,目的即是在於讓 一個群體中的任一成員,可代替群體作簽章動作而不洩漏身份,當有爭執或 疑義時,才由群體中的管理者出面從簽章中擷取出使用者身份。. 第一節. 研究動機. 群體簽章的應用狀況,我們可以想像如下情況:有一金融機構可發行電 子錢,方式為若有一份紀錄金額的文件,則此機構中的部門可對此文件進行 簽章,經簽章後即成為合法之電子錢。在外流通時,收費者可透過公開資訊 驗證此電子錢為該金融機構發行且為合法之電子錢,但並不需知道此電子錢 1.
(9) 由該金融機構何部門所發出。只有當發生弊案或不合理狀況時,才需由此金 融機構之管理者打開電子錢內部資訊,查明此金額是由何人發出。 還有一種情況:某公司欲對其發行之產品加上版權宣告,於是各部門所 賣出的產品都會先經過簽章步驟。這樣發行的產品,可讓一般人輕易驗證此 產品為此公司所製造,而不會知道是由何部門售出或使用者由何行銷管道得 來,當有需要調查時,才由管理者對產品之簽章進行擷取身份的動作。 如上的情形皆可透過群體簽章的機制來實現。因為群體簽章的目的即是 讓群體成員可代替群體作簽章且不洩漏身份,簽出的章具有其安全性。遇有 爭議時,系統之管理者可公開簽章之簽章者以解決爭議。 目前群體簽章可適用的對象,除了以上基本的功能外,還可以滿足成員 剔除的功能。也就是說可以讓某一個成員喪失代替群體簽章的能力。較方便 的作法是加入時間與廢止憑證列表的機制:在每個時期,成員簽章金鑰中的 憑證都不同,當成員被剔除時,系統會將此成員自現在以後的憑證公開,以 讓驗證者能對照廢止憑證列表,確定此簽章非由遭剔除的成員所簽出。 我們想要滿足的是以下額外的狀況, (1) 在之前群體簽章應用的兩個狀況中,可以讓公司或銀行有等級高低之 分,即等級較高的銀行或公司可以在特殊的狀況下,解開其子公司或子銀 行的簽章,公開簽章者身份。而較高等級的機構也可以是政府的行政單位 或治安單位,以供法律用途。 (2) 在一般的廢止機制中,驗證過程常需對照廢止憑證列表一一檢驗,若能 增加成員加入群體即指定其合法時限的功能,如此盡可能減少廢止憑證列 表的資料量,與驗證時的運算量,系統效率也會有所提升。. 2.
(10) 第二節. 研究重點. 本篇論文的研究方向主要有兩點,第一點是結合階層 (Hierarchy)[1] 和群體簽章系統[15]的方法,發展出一個可具有階層式架構的群體簽章系 統;第二點是在簽章系統中加入使用者合法時限的概念,以分擔廢止憑證列 表所需儲存的資料量及驗證時對照廢止憑證列表的計算量。 成果方面,我們如同上述將[15]中提出的群體簽章系統以[1]的階層架構 技巧連結在一起,於是較高階層的群體管理者可以在需要時解開較低階層群 體的簽章,此部分功能甚至可視需要,加以授權給某個專職解開簽章的角 色。而在使用者加入群體即給定合法時限的作法,也證明是安全的。整個架 構也仍然滿足[15]中群體簽章所有的安全性。. 第三節. 各章節簡介. 本文各章節配置如下:第二章介紹基本知識,包括群體簽章架構、各項 安全性、證明安全性時需用到的數論假設、與群體簽章常用到的元件-知識簽 章。第三章正式介紹我們的整個系統。第四章為安全性證明,包括原本底層 的群體簽章架構安全性與改為層級性架構後需考慮的安全狀況。第五章則介 紹一個可獨立的功能-解章 (open),與未來研究方向及結論。. 3.
(11) 第二章 基本技術與原理 群體簽章還是不脫簽章的基本需求,也就是有人簽章,有人驗證。只是 改成一個團體中的成員都能簽出代表此團體的章。由這個觀念出發,衍生出 許多安全性的需求和改良,也可能與其他簽章系統的某些觀念相結合而發展 出新的群體簽章。本章將首先將介紹群體簽章的相關研究發展、模型與安全 性。再介紹有關我們系統安全所需要用到的數論假設,最後介紹近年來群體 簽章最常需要用到的元件—知識簽章。. 第一節. 相關研究. 群體簽章的概念最早是由 D.Chaum 和 E. van Heyst 在 1991 年首先提 出來的[12]。架構中包含了群體成員、成員管理者 (Membership manager) 和撤銷管理者 (Revocation manager)。群體的成員被允許能匿名地代替群體 來作簽章,簽章可由群體的公開金鑰驗證而不洩漏簽章者的身份。成員管理 者負責系統設定與成員加入;撤銷管理者的能力是撤除簽章的匿名性 (Anonymity),也就是解開簽章求出簽章者的身份。其中兩管理者通常為同一 單位,簡稱為群體管理者 (Group manager)。此架構中最基本的安全要求就 是簽章的成員身份不會由所簽出的章洩漏(匿名性),除非能夠擁有一把用來 解開簽章的私密金鑰(可追蹤性 Traceability)。隨著時間過去,有越來越多 的 安 全 性 被 考 慮 。 例 如 : 不 可 連 結 性 (Unlinkability) 、 不 可 偽 造 性 (Unforgeability) 、 聯 合 抵 抗 性 (Collusion Resistance)[3] 、 脫 罪 性 (Exculpability)[3]、抵抗誣陷性 (Framing resistance)[13]。 L. Chen 和 T. P. Petersen 將 [12] 作 了 改 進 [13] , 裡 面 使 用 了 Schoenmaker 的協定來隱藏簽章者的身份,也允許新成員動態 (dynamically) 4.
(12) 加入,並提出了將群體簽章運用在電子拍賣的構想。後來 H.Petersen 提出 了一個的方法能將一般數位簽章轉換成群體簽章的架構[21],所使用的方法 是結合 Stadler 的離散對數可驗證加密法和 Schoenmaker 的協定,證明知 道離散對數且不洩漏其值。在[6][12][13][21]這些研究中,群體的公開金鑰 和簽章的長度,都會和群體的大小,也就是成員個數,呈線性 (linear) 成長 的關係,因此便很不適合用於成員個數較多的大群體。到了 1997 年,J. Camenisch 和 M. Stadler 聯合提出了第一篇公開金鑰和簽章的長度可以不 需和成員個數成線性關係的群體簽章架構[10],所用到的主要技巧就是知識 簽章 (Signature of knowledge)。這樣的構想對後來群體簽章的發展影響很 大 , 有 很 多 的 研 究 都 是 以 知 識 簽 章 的 基 礎 加 以 改 進 。 Camenisch 和 M. Michels 在強 RSA 假設[4][14]的基礎上,提出了一個有效率的架構[7][8], 隨後 H.J. Kim 等人改進他們的架構並提供了有效率的成員撤銷機制[17]。G. Ateniese 和 G. Tsudik 在[3]中討論了群體簽章在現實生活中的應用可能需 要考慮的問題,例如聯合攻擊 (Coalition attacks) 和成員刪除 (Member deletion)。Ateniese 等人後來發表了一個可證安全 (provably secure) 的群 體簽章架構[2]。D.X. Song 在[23]中提出了兩個問題:(1)考慮成員簽章金 鑰洩漏和(2)如何有效率地撤銷群體成員。事實上,一個成員的群體的簽章金 鑰中應該包括了成員的秘密值. (Membership secret) 和 成 員 憑 證. (Membership secret)[2][10] 。 於 是 Song 根 據 前 進 式 安 全 (Forward secure)[5][16]的觀念,發展出第一個前進式安全的群體簽章架構。在他的 架構中,將系統的生存時間 (Life-time) 整個分成 T 個時段,在時段 j + 1 開始時,群體成員會利用一個公開的單向函數 (One-way function) 將自己 前一時期的簽章金鑰 sk j 更新為此時期的簽章金鑰 sk j +1 ,再將 sk j 之值由 系統中刪去,這樣一來,若時段 j + 1 時系統被攻破了,攻擊者也無法由 sk j +1 往回推出時段 j + 1 之前的簽章金鑰,達到了前進式安全的特性。Song 5.
(13) 也將自己的架構延伸出支援成員刪除的功能,在他的群體簽章架構裡,群體 的公開金鑰並不會受成員加入、撤銷,或是更新金鑰所影響。2003 年的 J. Zhang、Q. Wu、Y. Wang 等人曾提出一個有效率的新群體簽章架構[26],因 為並非使用知識簽章,因此在計算和通訊上比起一般的架構都更有效率,同 時並宣稱滿足所有需要的安全性。但在[24]中卻證明了 Zhang-Wu-Wang 的群 體 簽 章 架 構 是 可 連 結 (linkable) 、 不 可 追 蹤 (untraceable) 且 可 偽 造 (forgeable) 的。 在[18]中曾經介紹了一個群體簽章的系統,各群體之間有層級性的關 係。其層級性主要是著重在身處比較高階群體的成員,可以代替比較低階的 群體作簽章。這篇論文中的系統是以許多數論中的性質來實作的,因此成員 簽出的章與群體的公開金鑰皆會與成員所加入群體中的成員數呈線性關係。 此篇論文的研究方向也提過可以嘗試在此系統中用知識簽章來改進這些缺 點。而我們的論文則是直接用了知識簽章的作法,因此不會有[18]中所提的 缺點,但我們的方向是著重在群體管理者解開簽章的部分,所以並沒有討論 到[18]中高階群體成員可代替低階群體簽章的功能。 群體簽章的特性之一-無連結性 (Unlinkability) 可應用在某些需要隱 藏身份的情況,例如電子投票. (Electronic voting) 、 電 子 拍 賣. (Electronic Auction)等。也可被用在電子錢 (Electronic cash) 系統中來 隱藏發錢的機構[9][11][19][20][22]。. 第二節. 群體簽章的系統模型與特性. 組成群體簽章系統的基本元件一共有五個[2]。除此之外,[15]中再加入 了金鑰更新程序 (Key update procedure) [16]與廢止程序 (Revoke procedure)。. 6.
(14) 本文所提的群體簽章系統還加入了層級初始程序 (Hierarchy initialization),所 以我們將完整架構定義如下。. 定義1. 一個有層級性的動態群體簽章系統可分為下列八大部分: 層級初始:決定所有群體相互間的層級關係,並設定各群體的部分 私密金鑰。程序結束後,各群體 Gi 皆會得到一把不同的私密金鑰 K i 。 群體設定:輸入一個安全參數. , 一個金鑰值 K ,此機率程序. (Probabilistic procedure) 會輸出系統參數 (System parameter)、群體公開金鑰 和群體管理者的私密金鑰。 參與程序:此程序由群體管理者和使用者進行。執行結果是會讓使 用者成為群體的合法成員,並得到使用者最初合法時段的金鑰更新元件。 更新程序:輸入時段 k 的金鑰更新元件,此程序會輸出時段 k 的 簽名金鑰與時段 k + 1 的金鑰更新元件,並刪除時段 k − 1 的群體簽章金鑰 和時段 k 的金鑰更新元件。 簽章程序:輸入所屬群體 i 、群體簽章金鑰、訊息 m ,和時間 k , 簽章程序會輸出群體 i 相對於時間 k 對此訊息 m 上的群體簽章。 驗證程序:輸入群體 i 相對於時間 k 在訊息 m 上的群體簽章和 群體 i 的公開金鑰,此驗證程序可驗證出此簽章是否為群體 i 相對於時間 k 在訊息 m 上的群體簽章。在我們的驗證步驟中還必須檢查憑證撤銷列表. (CRL,Certificate revocation lists),以確認此簽章是否由已被廢止的成員身份 憑證簽出來的,若是由被廢止的成員身份憑證簽出來的,則不能通過此驗證 程序。 廢止程序:在時段 k 時,管理者對欲廢止的成員身份憑證,利用金 7.
(15) 鑰更新程序算出此成員在時段 k + 1 、 k + 2 …… d 時的身份憑證並公佈在 CRL,其中 d 為此遭廢止的使用者在參與程序時,群體管理者所指定時限 的最末合法時段,若無設定則 d = 系統生存時間 τ 。再發出訊息指示系統剩 餘成員進入下一時段,剩餘成員也在進入下一時段時更新自己持有的簽名金 鑰和金鑰更新元件。 解章程序:給定一個群體簽章、相對於此簽章的訊息、此簽章所屬 群體的公開金鑰、解章者的私密金鑰。若此解章者具有合法之解章權限,則 此程序可輸出簽名者的身份。 群體簽章的安全性,都是由它所需要符合的特性,加上實際狀況發展而 來 的 。 一 般 的 群 體 簽 章 需 要 滿 足 下 列 七 項 特 性 [2][15] , 包 括 正 確 性 (Correctness)、不可偽造性 (Unforgeability)、匿名性 (Anonymity)、無連結性 (Unlinkability)、脫罪性 (Exculpability)、可追蹤性 (Traceability)、聯合抵抗性 (Coalition-Resistance)。另外還有在[15][23]中所定義的有追溯效力的公開廢止 性. (Retroactive public revocability) 和 向 後 式 無 連 結 性. (Backward. unlinkability)。接下來我們定義一個安全的動態群體簽章系統。. 定義2. 一個安全的有時限性的群體簽章系統,必須符合下列九個特性: 正確性:一個由合法的群體成員經過簽章程序所造出來的簽章,必 須能通過驗證程序。 不可偽造性:只有合法的群體成員能夠以群體的身份代表群體簽 章。 匿名性:給定針對某訊息的合法簽章,除了群體管理者外,任何人 要在多項式時間內算出此簽章真正的簽名者身份是很困難的。 無連結性:除了群體管理者外,任何人要在多項式時間內判別兩份 8.
(16) 正確的簽章是否由相同的簽章者所簽出是非常困難的。 脫罪性:任何群體中的合法成員,包括群體管理者,都不能以其他 合法成員的身份去作簽名。有一相近的性質為不可誣陷性 (Non-framing),其 意義為一個群體成員不會被迫對自己未簽過的簽章負責,即一個非本身所簽 的章不會被解章程序判定為自己所簽。 聯合抵抗性:可分為兩種,弱的聯合抵抗性為在群體中,若一群有 惡意的人,其中成員所持有最早的金鑰更新元件為在時段 kmin 的金鑰更新元 件,則他們無法造出一個時間早於 kmin 的合法簽章,使得群體管理者無法透 過解章程序追蹤到這群人中任何一人。因為在本篇論文中,加上了使用者有 合法期限的設定,所以在弱的聯合抵抗性方面,除了滿足以上的敘述外,還 希望這些惡意成員也無法造出一個時間晚於 d max 的合法簽章能滿足上述的 條件,其中 d max 為這些惡意成員所被指定的合法時限中最大者。強的聯合 抵抗性為在群體中,任何一群有惡意的人,皆無法合作簽出一份任何時間的 合法群體簽章,使得群體管理者無法透過解章程序追蹤到這群人中任何一 人。 可追蹤性:可根據上方聯合抵抗性的定義分為兩種:弱的可追蹤性 為在上方定義弱的聯合抵抗性之下,群體管理者一定可以解開一個合法的群 體簽章,得到真正簽章者的身份。強的可追蹤性為在上方定義強的聯合抵抗 性之下,群體管理者一定可以解開一個合法的群體簽章,得到真正簽章者的 身份。 有追溯效力的公開廢止性:在時段 k 時,群體管理者可以將成員在 時段 l 時,成員用來簽章的簽章金鑰中的成員憑證公佈,使得任何在時段 l 之後(包括 l ),此成員用廢止後的成員憑證簽出來的章都是不合法的。 9.
(17) 向後式無連結性:若廢止時間在 l ,則在時段 l 之前的簽章仍然保 持匿名性和無連結性。. 第三節. 相關的定義與假設. 強 RSA 假設是一個比 RSA 更強的假設,RSA 假設是說在一個模數 (Modulus) n 之下,要找某數的 e 次方根是很難的,其中 e ∈ Z >1 是一個固 定的公開值;而強 RSA 假設則是說要找出任意 e 次方根都是困難的。此假 設最早是由[4][14]提出來的。. 定義3. 強 RSA 問題( Strong-RSA problem ):令. n = pq 其中 n 為一般. RSA 問題中的模數 n ,即 p 、 Q 為強質數,且令 G 為 Z*n 的一個含 #G 個元素的子循環群,令. G. RSA 問 題 就 是 要 找 到 一 組. = ⎡⎢ log 2 ( # G ) ⎤⎥ 。給定 n 和某一個 z ∈ G ,強. ( u , e ) 其 中 u ∈G. 且. e ∈ Z >1. 滿足. z ≡ u e (mod n) 。. 假設1. 強 RSA 假設(Strong-RSA Assumption):令. G. 為安全參數。任. 意一個滿足定義 3.要求的 n ,對任何機率的多項式時間演算法 A , A 能解 強 RSA 問題的機率皆可忽略。正規一點的寫法如下:對所有機率的多項式時 間演算法 Α ,所有的 c > 0 ,和所有足夠大的安全參數. G. ,都會滿足下方這. 樣的式子 Pr ⎡⎣ z ≡ u e (mod n) ∧ gcd(e, φ ( n)) = 1 ∧ 1 < e < n : z ∈R G; (u , e) ← Α(n, z ) ⎤⎦ ≤. 10. −c G.
(18) 第四節. 零知識互動式證明系統及知識簽章. 所謂的零知識互動證明系統 (Zero-knowledge interactive prove system) 是 一種由兩方溝通的互動式證明系統 (Interactive proof system):一方為證明者 (Prover),另一方為驗證者 (Verifier);系統中有一些公開值,而系統的活動就 是證明者需向驗證者證明其知道有關公開值的一些秘密值。零知識則是指在 這個證明過程中,證明者除了證明了它知道這些秘密值之外,不會透露任何 其他其它資訊。 互 動 式 的 證 明 系 統 可 分 為 兩 類 , 一 類 是 語 言 成 員 的 證 明 (Proof of membership of language),用來讓證明者向驗證者證明某些資訊是否屬於某個 特定的語言;另一類為判斷式的證明 (Proof of knowledge of predicates),主要 是證明者用來向驗證者證明他知道某些秘密的實際值能滿足判斷式。而我們 在這裡會用到的是後者,我們引用[15]的定義來介紹。使用到的名詞定義如 下: PPTM 為 機 率 的 多 項 式 時 間 杜 林 機 器 (Probabilistic polynomial-time Turing machine)。 Q 為某個二元的判斷式 (predicate) ,且可輸入 x ,若 p 對 x 而言合. 於此判斷式,則 Q ( x, p ) = 1 ,否則 Q ( x, p ) = 0 。而任何合於正確形式的 x 都會存在秘密值 ρ 使得 Q ( x, ρ ) = 1 。 定義 P ( ρ ) , V ( x) 為 P 和 V 的一個互動式證明系統,使得 x 是此系 統中公開的輸入值,而 ρ 是 P 的私有輸入值。. 定義4. 令證明者. P 和驗證者 V 都是 PPTM,則對於 Q 的一個 零 知. 識互動式證明系統需滿足以下三個條件: 11.
(19) 1. 完 整 性 (Completeness) : 對 任 何 滿 足 Q ( x, ρ ) = 1 的 x 和 ρ , Pr ⎡⎣ P ( ρ ) , V. ( x ) = 1⎤⎦ = 1 恆成立。. 2. 完 美 性 (Soundness) : 存 在 一 個 機 率 的 多 項 式 時 間 的 知 識 擷 取 者 (knowledge extractor) E ,使得任何 x 屬於 Dom(Q ) (Q 的定義 域,即 x 合於正確形式) 與任何證明者 P∗ ,若存在著以下的關係 Pr ⎡⎣ P∗ ( ρ ) ,V. (. ( x ) = 1⎤⎦ ≥. ). (. 1 ,我們就一定可以推得這樣的結果 p( x ). ). Pr ⎡⎣ E P∗ , V , x = ρ ∗ , Q x, ρ ∗ = 1⎤⎦ = 1 − ε ( x ) ,其中 p ( i ) 為一個多項式,. 而 ε ( i ) 為一個可忽略的值。 3. 零知識(Zero-knowledge):對每個驗證者 V∗ ,都會存在一個模擬器 (Simulator) M V , 使 得 如 下 兩 個 分 佈 為 多 項 式 時 間 之 不 可 分 辨 ∗. (Polynomially indistinguishable):. { P ( ρ ) ,V {M ( x )} V∗. ∗. ( x )}x∈Dom(Q),Q ( x, ρ )=1 和. x∈Dom ( Q ). 在完整性中,主要是證明若 x 和 ρ 符合 Q ( x, ρ ) = 1 ,那麼擁有私有輸 入值的證明者 P 一定能說服 (Convince) 驗證者 V ,使 V 相信 P 知道 ρ 這個秘密值。在完美性中,主要是說若有某個證明者 P∗ 有很大(不可忽. 略 )的機率可說服驗證者 V 的話,那麼會存在一個知識擷取者 E ,可利用 這個 P∗ 來與 此 V 互動 ,將此 P∗ 當子程式呼叫使用,產生出相對應於 x ,而能滿足 Q ( x, ρ ∗ ) = 1 的秘密值 ρ ∗ 。在零知識部分,是希望對任何驗證. 者 V∗ 而言,都能存在一個模擬器 M V 。當 V∗ 與一其對應公開值為 x 的 ∗. 證明者 P 作互動式證明時,所能得到的資訊若與 M V 只得到公開值 x 而 ∗. 12.
(20) 能造出來的資訊分佈為不可分辨的話,則代表 V∗ 與 P 的互動並不會造成 P 有多餘資訊的外洩,此即為零知識的含意。. 而這裡我們所需要用到的元件-知識簽章 (Signature of knowledge)[10]就 是由以上的零知識互動式證明系統轉化而來,需要加上一個雜湊函數 (Hash function) 來 扮 演 一 個 誠 實 的 驗 證 者. (Honest-verifier) 提 供 挑 戰 值. (Challenge),讓整個證明由互動式成為可由證明者單方提供的非互動式證 明。我們介紹這裡所需要的四種知識簽章,包括(i)離散對數(ii)兩離散對數的 相等(iii)落在一給定區間的離散對數(iv)表示方式。這些都是建構在一個循環 群 G= g 使得 2. G −1. 之上,其元素個數 #G 是未知的,然而其長度. G. (即一整數. G. ≤ # G ≤ 2 G ) 是公開的。參考[15],我們定義 G 中一元素 y 的離. 散對數為任何一個整數 x 能使得在 G 中 y = g x ,記為 x = log g y 。另有 一抗碰撞(collision resistant)的雜湊函數 H : {0,1} → {0,1} 能將任何長度的二元 ∗. k. 字串映射到一個長度為 k 的雜湊值。與定義一安全參數 ε > 1 。. 定義5. 離 散 對 數 值 的 知 識 簽 章 (Signature of knowledge of discrete logarithm)[10] : 令. ( c, s ) ∈ {0,1}. k. × ± {0,1}. ε(. 值,對一訊息. G + k ) +1. y 、 g. 為. G. 中 的 元 素 。 一 個 數 對. 是一個證明者知道 y = g x 對基底 g 的離散對數. m ∈ {0,1}. ∗. 造出的知識簽章。驗證者可由是否. c = H ( y || g || g s y c || m ) 來驗證。此簽章造法為由一知道 x 者,任選一隨機的. t ∈ ± {0,1}. ε(. G +k ). 再算出 c = H ( y || g || g t || m ) 與 s = t − cx 。 下圖即為此證明系. 統的原始的互動式版本,在轉為知識簽章時,我們用了一個抗碰撞的雜湊函 數來作為一個誠實的驗證者。. 13.
(21) Prover t R ∈ ± {0,1}. ε(. Verifier G +k ). gt (∈G). c ∈R {0,1}. k. c s = t − cx. s. Check if g t = g s y c (∈ G ). 圖表 1. 離散對數值的知識簽章. 由定義 5 稍加變化可造出如下兩離散對數相等的知識簽章,我們令 x 同時為 y1 對基底 g 與 y2 對基底 h 的離散對數。. 定義6. 兩 離 散 對 數 相 等 性 的 知 識 簽 章 (Signature of knowledge of equality of two discrete logarithms)[10]:令 y1 、 y2 、 g 、 h 為 G 中的元 素。一數對. ( c, s ) ∈ {0,1}. k. × ± {0,1}. ε(. G + k ) +1. 是一個證明者知道 y1 對基底 g 與. y2 對基底 h 的離散對數且兩者相等,對一訊息 m ∈ {0,1}. ∗. 造出的知識簽. 章。驗證者可由是否 c = H ( y1 || y2 || g || h || g s y1c || h s y2c || m ) 來驗證。此簽章造 法為由一知道. (. x. 者,任選一隨機的. c = H y1 || y2 || g || h || g t || ht || m. ). t ∈ ± {0,1}. ε(. G +k ). 再算出. 與 s = t − cx 。下圖即為此證明系統的原始的互. 動式版本。同樣用一個抗碰撞的雜湊函數來作為誠實的驗證者。. 14.
(22) Prover t ∈R ± {0,1}. ε(. Verifier G +k ). g t 、 ht (∈ G ) c ∈R {0,1}. k. c s = t − cx. s. Check if g t = g s y c 、 ht = h s y c (∈ G ). 圖表 2. 兩離散對數值相等性的知識簽章. 接下來是一個與定義 5 類似的版本,證明的是知道一個落在給定區間的 離散對數值。. 定義7. 離散對數值落在給定區間的知識簽章 (Signature of knowledge of discrete logarithm lying in a given interval )[10]:令 y 、 g 為 G 中的元 素。一個數對. ( c, s ) ∈ {0,1}. × ± {0,1}. ε(. k. g 且落在區間 ⎤⎦ X − 2ε (. G +k ). , X + 2ε (. G + k ) +1. G +k ). 是一個證明者知道 y = g x 對基底. ⎡⎣ 的離散對數值,對一訊息 m ∈ {0,1}. ∗. 造出的知識簽章。驗證者可由是否 c = H ( y || g || g s −cX y c || m ) 來驗證。此簽章 造法為由一知道. (. c = H y || g || g t || m. ). x. 者,任選一隨機的. t ∈ ± {0,1}. ε(. G +k ). 再算出. 與 s = t − c( x − X ) 。下圖即為此證明系統的原始的互動式. 版本。(附註:即使證明者知道的 x 介於區間 ⎤⎦ X − 2 , X + 2 ⎡⎣ 裡,此知識 G. 簽章仍只能證明證明者所知之秘密值介於 ⎤⎦ X − 2ε (. 15. G +k ). , X + 2ε (. G. G +k ). ⎡⎣ )。.
(23) Prover t ∈R ± {0,1}. ε(. Verifier G +k ). g t (∈ G ) c ∈R {0,1}. k. c s = t − c( x − X ). s. Check if g t = g s − cX y c (∈ G ). 圖表 3. 離散對數值落在給定區間的知識簽章. 另一類是有關表示方式的知識簽章。其實定義 5 的離散對數也可以看成 是某數對單一基底的表示方式。我們舉較單純的兩基底模式來作介紹,更多 基底的模式可類推。. 定義8. 表 示 方 式 的 知 識 簽 章 representation). ( c, s1 , s2 ) ∈ {0,1}. k. 令 y 、 g 、 h. × ± {0,1}. ε(. G + k ) +1. (Signature of knowledge of a. 為. × ± {0,1}. ε(. G + k ) +1. 中 的 元 素 。 一 值 組. G. 是一個證明者知道 y = g x h r 相對. 於基底 g 、 h 的表示方式,對一訊息 m ∈ {0,1} 造出的知識簽章。驗證者可 ∗. 由是否 c = H ( y || g || h || y c g s h s || m ) 來驗證。此簽章造法為由一知道 x 者, 1. 2. 任選一兩個隨機的 t1 、 t2 ∈ ± {0,1}. ε(. G +k ). 再算出 c = H ( y || g || h || g t ht || m ) 與 1. s1 = t1 − cx 、 s2 = t2 − cr 。下圖即為此證明系統的原始的互動式版本。. 16. 2.
(24) Prover. Verifier. t1 、 t2 ∈R ± {0,1}. ε(. G +k ). g t1 ht2 (∈ G ). c ∈R {0,1}. k. c s1 = t1 − cx , s2 = t2 − cr. s. Check if g t1 ht2 = yg s1 h s2 (∈ G ). 圖表 4.表示方式的知識簽章. 17.
(25) 第三章 一個具層級性的動態群體簽章系統 本文中底層所採用的群體簽章系統和[2]中曾提到,應用兩種不同的簽章 系統,來結合出群體簽章系統的作法是一樣的。第一個簽章系統的目的在於 管理者需簽署一個憑證給要加入群體的使用者,而第二個簽章系統才真正用 來簽出群體簽章。在第二個簽章系統中運用了知識簽章的技巧,以使群體簽 章的大小不用再與群體成員個數相關[10]。廢止成員的觀念,採用的是[15]中 的新作法,在系統中加入時間的觀念,讓成員可以自行更新群體簽章金鑰, 來達成一個廢止機制。大致來說:我們的系統是以[15]中所提的群體簽章系 統為基礎,導入層級的觀念並作相關修改。新增了一開始的層級初始步驟以 決定層級間的關係。並在參與程序中增加可限定使用者合法時限的功能。. 第一節. 參數定義. 本系統主要是以[15]中的群體簽章系統加以演變,大部分參數將繼續沿 用,但仍有為了避免混淆而作的修改與新增部分,因此還是將所有系統所需 參數介紹如下。 a. ε > 1 、 h 、. p. 為系統的安全參數, λ1 、 λ2 、 γ 1 、 γ 2 的取法需滿足. 以下的關係: (1) λ1 > ε ( λ2 + h ) + 2 (2) λ2 > 4. p. (3) γ 1 > ε ( γ 2 + h ) + 2 (4) γ 2 > λ1 + 2 b. 定義如下的區間 Λ = ⎡⎣ 2λ − 2λ , 2λ + 2λ ⎤⎦ 、 Γ = ⎡⎣ 2γ − 2γ , 2γ + 2γ ⎤⎦ , 1. 2. 1. 18. 2. 1. 2. 1. 2.
(26) ⎡ Γi = ⎢ 2γ1 ⎢⎣. ⎛ 2 ( i − 1) ⎞ γ 2 γ1 − ⎜1 − ⎟⋅2 ,2 τ ⎠ ⎝. ⎤ ⎛ 2i ⎞ − ⎜1 − ⎟ ⋅ 2γ 2 ⎥ , τ 為時間區間分割的總 ⎝ τ ⎠ ⎥⎦. 數,其中 1 ≤ i ≤ τ 。. (. ). c. H : {0,1} → {0,1} 、 H ' : {0,1} , n → Z n 為兩抗碰撞之雜湊函數。 H ∗. h. ∗. 為原本在簽章程序中所需用到的。 H ' 為新定義的雜湊函數,目的在 於隨機在 Z n 中選出一個數來當作群體管理者的私密金鑰。 d. T 與 Τ 與 τ 皆不同。. 第二節. 一個具層級性的動態群體簽章系統. 1. 層級初始 (Hierarchy initialization) 1.1. 決定各群體的階級高低及權力領域之關係,繪出類似如下之似樹狀圖, 每個節點代表一個群體,各節點間線段相連部份表示上層群體管理者有 權限可解開下層群體之簽章。 1.2. 對每個群體 Gi 各指定一個不同的質數 Pi ,如附圖各節點下方之值所 示 。 1.3. 計算各群體所擁有的 Ti =. ∏. Pj ,其中 ≤ 為 partial order。我們標示在. G j ≤ Gi. 下圖各節點內。. 19.
(27) 1. 2 2 ⋅ 5 ⋅13. 2 ⋅3⋅ 7. 3. 5. 2 ⋅ 3 ⋅ 5 ⋅11 ⋅13. 2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅13. 2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅11. 7. 11. 13. 圖表 5. 層級初始程序步驟 a、b、c 圖例. 1.4. 由一公正之機構(系統管理者)隨機選出 K 0 和兩個大質數 P 、 Q 。算出 M = P ⋅Q. 且將 M. 公 開 。 使 得 各 群 體 管 理 者 GM i 的 私 密 值 為. K i = fTi ( K 0 ) = ( K 0 )Ti (mod M ). 。. 我們定義若 Gi 的層級比 G j 高且可管轄 G j ,在圖上的表示方式即 G j 為 Gi 的子孫節點,記為 G j ≤ Gi ,若無此關係,則可記為 G j ≤ Gi 。步驟. 1.3 的意思即是將所有群體 Gi 所不能管轄之群體的 P 值連乘起來,即為 Ti 的值。這樣的設定方式主要是採用了由[1]中建議的層級式的金鑰推導法來 的,關於其安全性也有簡單的證明,我們後面會再詳細的說明其安全。 2. 群體設定 (Group setup) 2.1. 對 每 個 群 體. Gi , 管 理 者. qi = 2qi '+ 1 ,長度各為. GM i. 選擇兩個強質數. pi = 2 pi '+ 1 、. h 位元長,再算出 ni = pi ⋅ qi 。 2. 2.2. 管理者 GM i 算出 xi = H ' ( K i , ni ) 其中 xi ∈ Z n 。 i. 2.3. 管 理 者. GM i. 任意由. QRni. 中選擇 20. ai 、 a0i 、 gi 、 hi , 並 將.
(28) yi = gi xi (mod ni ) 公佈。如此我們就有 (ni , ai , a0i , yi , g i , hi ) 為群體 Gi 的公. 開值,以及各群體管理者 GM i 會擁有一把私密金鑰 ( pi , qi , xi , K i ) 。 2.4. 任選滿足 ei ,k ∈ Γ k 的質數 ei ,1 、 ei ,2 、.....、 ei ,τ ,同時將它們公開。 在此群體設定過程中,步驟 2.1 為各群體自行選擇 pi 、 qi 值,可不受 限 制 , 即 各 自 初 始 一 個 [15] 中 的 群 體 。 在 步 驟 2.2 中 所 用 的. (. ). H ' : {0,1} , n → Z n 為一個抗碰撞的雜湊函數,其實作方式[25]可以用一個標 ∗. 準 的 雜 湊 函 數 h : {0,1} → {0,1} , 其 中 ∗. = ⎢⎡log 2 n ⎥⎤. 即為 n 的長度。若. ⎡n⎤ h ( x ) < n ,則輸出 H ' ( x, n ) = h ( x ) 。否則就輸出 H ' ( x, n ) = h ( x ) − ⎢ ⎥ 。如此即 ⎢2⎥ 1 可讓 Z n 中的任意一個元素 b ,滿足 Pr[ H ' ( x, n ) = b] − < 2− ,則 H ' 可接 n. 近均勻分布(Uniform distribution)。步驟 2.3、2.4 仍依[15]中設定。 3. 參與程序 (Join) 3.1. 當一個使用者 j 要加入群體 i 時,記為 U i , j ,假設給定其可合法代替群 體簽章的時間為 c 到 d。 3.2. U i , j 產生兩私密值 xi , j ∈R ⎤⎦ 0, 2λ ⎡⎣ 、 r ∈R ⎤⎦ 0, ni 2 ⎡⎣ 。送出 C1 = g x ⋅ h r (mod ni ) i, j. 2. 給管理者 GM i 並且證明自己知道 C1 以 g 和 h 為底的表示方法, 證明方式可參考定義 8。 3.3. 管理者 GM i 確認是否 C1 ∈ QRn 。若為真,則選取 α i , j 、 βi , j ∈R ⎡⎣0, 2λ ⎤⎦ 2. i. 送給 U i , j 。 3.4. U i , j 算出 xi , j = 2λ + (α i , j ⋅ xi , j + βi , j (mod 2λ ) ) ,和 C2 = ai x (mod ni ) 。將 C2 1. 2. 21. i, j.
(29) 送給 GM i 且證明下列事實: i. log a C2 ∈ Λ i. ii. 知道一組 u , v , w 使得 (1) log a. i. αi , j. C2 ai. (2) C1 gi. 2λ1. βi , j. ∈ ⎡⎣ −2λ2 , 2λ2 ⎤⎦. ( ) h (mod n ). = gi u gi 2. λ2. v. w. i. 同樣可用定義提供的方法來提出知識簽章。 3.5. 管 理 者 GM i 確 認 是 否 C2 ∈ QRn 。 若 是 的 話 , 管 理 者 GM i 算 出 i. 1. ti , j ,c = ( C2 a0i ) ei ,c ⋅ei ,c+1 ⋅⋅⋅⋅⋅⋅ei ,d (mod ni ) 且將值送給 U i , j 。此時,使用者 U i , j 在時. 間. c. 的 私 密 金 鑰 即 為. si , j ,c = ( ti , j ,c ). ei ,c+1 ⋅ei ,c+ 2 ⋅⋅⋅⋅⋅⋅ei ,d. ski , j ,c = ( xi , j , si , j ,c , ti , j ,c +1 ). (mod ni ) , ti , j ,c +1 = ( ti , j ,c ) (mod ni ) 。 ec. 22. 其 中.
(30) GM i. U i, j. 3.2. xi , j ∈R ⎤⎦ 0, 2λ2 ⎡⎣ , r ∈R ⎤⎦ 0, ni 2 ⎡⎣. C1 3.3. C1 ? ∈ QRni. α i , j , β i , j ∈R ⎡⎣ 0, 2λ ⎤⎦. α i , j , βi , j. 2. 3.4. (. xi , j = 2λ1 + α i , j ⋅ xi , j + β i , j (mod 2λ2 ). C2 = ai i , j (mod ni ). C2. 3.5. ). x. C2 ? ∈ QRni 1. ti , j ,c +1 = ( C2 a0i ) ei ,c ⋅ei ,c+1 ⋅⋅⋅⋅⋅⋅ei ,d (mod ni ). ti , j ,c +1. si , j , c = ( t i , j , c +1 ). ei ,c +1 ⋅ ei ,c + 2 ⋅⋅⋅⋅⋅⋅ ei ,d. (mod ni ). 圖表 6. 參與程序. 參與程序中的步驟 3.2、3.3、3.4 與[15]中的作法大致相同。為了方便指 定成員的合法區間,我們的架構中已經把 ei ,1 、 ei ,2 ..等值視為群體中的公開值 了,所以並不需有[15]中的 seed 部分。在步驟 3.5 中的作法,也就是為了要 使成員加入時,能夠先指定好其合法區間,過期就不能再代表群體簽章。當 使用者拿到 ti , j ,c 之後,就可以算出他在最初合法時間 c 時的憑證,也是簽章 金鑰中的 si , j ,c = ( ti , j ,c ). ei ,c+1 ⋅ei ,c+2 ⋅⋅⋅⋅⋅⋅ei ,d. (mod ni ) 與更新元件 ti , j ,c +1 = ( ti , j ,c ). ei ,c. (mod ni ) 。這. 個群體簽章原理主要就是把成員憑證當作簽章金鑰使用,簽章時用系統的公 開金鑰來加密這個憑證,以便讓群體的管理者可以用此群體的私密金鑰來解 密出這個憑證,達成解開簽章的部分。. 23.
(31) 4. 更新 (Update). (使用者 U i , j 由時間 k 至 時間 k+1). 在時間 k 時,使用者 U i , 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 ) 其 中 si , j ,k +1 = ( ti , j ,k +1 ). ei ,k +2 ⋅ei ,k +3 ⋅⋅⋅⋅⋅⋅ei ,d. (mod ni ) , ti , j ,k + 2 = ( ti , j ,k +1 ). ei ,k +1. (mod ni ) 。. 這是一個要達成前進式安全 (Forward secure) 必需的作法,讓每個時段 使用者的成員憑證不同,可以往後更新但無法往前回溯出之前的憑證,所以 簽章金鑰推導的過程必須是一個不可逆的程序,在更新過後即將舊的金鑰和 更新元件丟棄,如此便能保證在時段 k 入侵的攻擊者無法得到時段 k 之前 的簽章金鑰來偽造時段 k 之前的簽章,這樣才能達到前進式安全的特性。這 種觀念和更新方法主要是由[16]中來的。而我們又在參與程序根據欲給定使 用者的時限有技巧的給予憑證,可以讓一個在時段 c~d 間為合法的成員,到 達時段 d 之後,即無法繼續更新出合法的簽章金鑰,因此可達到使用者時限 (Time-bounded) 的設定。 5. 廢止 (Revoke). (在時段 k 時廢止使用者 U i , j ,其合法時段為 c ~ d ). 5.1. 管理者 GM i 利用更新的演算法算出 si , j ,k 、 si , j ,k +1 、…、 si , j ,d (即 U i , j 在時段 k 之後到時段 d 之間所有時期之憑證,亦為簽章之私密金鑰), 並依其對應時間將其分別公佈在廢止憑證列表 RLi ,k 、 RLi ,k +1 、……、 RLi ,d 中。. 5.2. 管理者發出訊號指示系統行進到下一個時間。 在時段 k 時,若需對一成員,撤除其可合法代替群體簽章的權力,也就 是在給定某使用者合法時限後,時限未到即需將某使用者當時與之後的憑證 24.
(32) 廢止的話,就必須執行此廢止程序。實際作法是系統需維護一組憑證廢止列 表: { RLi ,k |1 ≤ k ≤ τ , i為群組} 。當欲在時段 k 廢止一憑證時,即是利用更新程 序算出該成員在時間 k+1、k+2、…、d 的憑證,其中 d 為此使用者的合法 時限,並分別存入 RLi ,k 、 RLi ,k +1 、…、 RLi ,d 中。而這些存在廢止清單的憑 證,以後在有需要驗證簽章時,我們會一個一個拿來作一些運算,以確定我 們正在驗證的簽章是否由這些憑證所簽出來的。雖然這些廢止的憑證是公開 的,每個人也都應該能作驗證簽章的動作,但向後式無連結性會保持將廢止 憑證公開後的安全。 6. 簽章 (Sign). (使用者 U i , j 在時間 k). 6.1. 隨機選取 ω ∈R {0,1}. 2. ,算出 Τ1 = ( si , j ,k ) ⋅ ( yi ) (mod ni ) 以及 ω. p. Τ2 = ( gi ) (mod ni ) 。 ω. 6.2. 隨機選取 r1 ∈R {0,1}. ε ( λ2 + h ). 、 r2 ∈R {0,1}. ε (2. ( Τ1 ) i. d1 = r e ( ai ) ⋅ ( yi ). p +h). 並算出下列各值:. ei ,k. 1. (mod ni ). i ,k ⋅r2. ii.. d 2 = ( gi ) 2 (mod ni ). iii.. c = H ( gi || yi || ai || a0i || Τ1 || Τ2 || d1 || d 2 || k || ei ,k || m ). iv.. s1 = r1 − c xi , j − 2λ1. v.. r. (. ). s2 = r2 − cω. 6.3. 輸出簽章為 σ = ( c, i, k , ei ,k , s1 , s2 , Τ1 , Τ2 ) 。 25.
(33) 簽名程序中,主要是以 ElGamal 的加密方法來加密簽章者所持的憑證, 再以知識簽章的技巧來證明簽章者知道某些秘密值。加密的部分用群體(管理 者)的公開金鑰值中的 ( yi , gi ) 來加密成員 U i , j 在時間 k 的憑證(簽章金鑰) si , j ,k 。這樣一來,在需要解開簽章的時候,群體管理者只要用自己的私密金. 鑰就可以解開加密值以獲得憑證。 為了要確定簽章者的確是利用當時段的憑證 si , j ,k 來簽章,所以用了步 驟 6.2 這樣的證明過程。 d1 是為了證明所加密的憑證值 si , j ,k 確實是成員 U i , j 在時間 k 的憑證,也就是滿足 si , j ,k = (a a0 ) xi , j. 1 ei ,k. (mod ni ) 。 d 2 的取法則是. 為了要證明簽章者知道私密值 xi , j 。只有在知道憑證 si , j ,k 和私密值 xi , j 的 情況下,才能夠不管步驟 6.2.iii 中挑戰值 c 的值為何,皆能通過一個零知 識的證明系統之驗證。 (針對某一簽章 σ = ( c, i, k , e, s1 , s2 , Τ1 , Τ2 ) ). 7. 驗證 (Verify). 7.1. 確認是否 e ∈ Γ k 。若否,則此簽章有誤。. 7.2. 算 出 D1 =. (a0i )c Τ1e⋅(1−c ) (ai ). s1 − c⋅2λ1. ⋅ ( yi ). e⋅s2. (mod ni ) 、 D2 = Τ2c ⋅ ( gi ) s2 (mod ni ) , 並 確 認 是 否. c = ( g i || yi || ai || a0i || Τ1 || Τ2 || D1 || D2 || k || e || m ) 。若否,則輸出驗證失敗。. 7.3. 確認是否 s1 ∈ ± {0,1}. ε ( λ2 + h ) +1. ,以及 s2 ∈ ± {0,1}. ε (2. p + h ) +1. 失敗。 7.4. 接著重複以下步驟查詢廢除憑證列表: i. 驗證者將 ( s2 , Τ2 , e, c ) 送給管理者 GM i 。 26. 。若否,則輸出驗證.
(34) ii.. GM i 算出 C =. 再將. (g , g ) C. 0. 0. (( y ) i. s2. ⋅ ( Τ2 ). c⋅ xi. ) (mod n ) ,並隨機選取 e. i. 傳回給驗證者。. iii. 驗 證 者 由 廢 止 憑 證 列 表 中 取 出 一 憑 證 D ' = ( yi ). e ⋅ s2. g0 ∈R QRni ,. ( Τ1 ) ( A) e⋅c. − e⋅c. A , 算 出. (mod ni ) 。. iv. 確認是否 g0C = g 0 D ' 。若是,則此簽章由此廢止憑證所簽,輸出 此簽章驗證結果“失敗";否則重複步驟 7.4 驗證廢止憑證列表 RLi ,k 上所有憑證。. 驗證的方法仍然和[15]類似,前半部為驗證簽章是否為正確格式。在步 驟 7.1 檢查 e 值範圍是否落在 Γ k 中,避免以特定的 e 值捏造簽章中的證 明過程之慮。步驟 7.2 則是利用比較簽章中的雜湊值 c 是否等於我們所算出 的 c ' ,用來達成原本零知識互動式證明系統改成非互動式之後的驗證工作, 只有真正知道正確的憑證和秘密值才能通過此驗證步驟。步驟 7.4 則是檢查 證明系統中回應 (Response) 值的範圍是否正確,同樣可將捏造證明過程的可 能性降至最低。若使用者超過其合法簽章時限,依照我們在參與程序中的設 定方法,使用者沒辦法利用更新程序來造出簽章當時所需的私密金鑰中的憑 證,因此這樣的過期使用者無法造出一個成功的零知識非互動式證明系統, 就沒辦法通過這部分的驗證。 驗證程序的後半部,則是要檢查此憑證是否已在給定合法期限內提前被 廢止。驗證的方法是要將正在驗的簽章內部所隱藏的憑證與此時期被廢止的 憑證一個一個比對,若有相同,此簽章即為無效。由於驗證程序是要讓每個 人都能驗證,但卻不能洩漏簽出此簽章的憑證,因此這部分的驗證必須與系 統中擁有能解開簽章中憑證能力的群體管理者作溝通。方法則如步驟 7.4 所 27.
(35) ( s2 , Τ2 , e, c ) 部分,讓群體管理者用解開簽章用的私密金. 示,傳送此簽章中的 鑰 xi 算出 C =. (( y ) i. s2. ⋅ ( Τ2 ). c⋅ xi. ) (mod n ) 。因為在簽章程序的知識簽章中有 e. i. s2 = r2 − cω 的關係,所以 ( yi e ) r2 = ( yi e ) s2 ( yi eω )c ,此等式左方即為 C 值,其中. 不含目前所驗簽章之憑證資料,但含有群體私密金鑰 xi 加入運算;令右方 為 D ,則因為 C = D ,所以 g0C = g 0 D 應該成立。群體管理者將 C 值以. (g , g ). 的形式隱藏在指數並回傳給驗證者。而 D 可改寫成如下形式. D = ( yi ). ( Τ1 ) ( S ). C. 0. 0. e⋅s2. e⋅c. − e⋅c. (mod ni ) ,其中 S 為此簽章的憑證。 Τ1 含此簽章的憑. 證資料,但若 S 確為簽出此簽章的憑證,則. (S ). − ec. 會將憑證的資料抵銷。. 因此我們比對憑證撤銷列表的步驟即是將列表上的憑證一一代入 D ' = ( yi ). e ⋅ s2. ( Τ1 ) ( A) e⋅c. − e⋅c. (mod ni ) 中的 A ,求出 D ' 。若 g0C = g 0 D ' 則此群體簽. 章是由在憑證廢止列表中的憑證所簽出,故為無效的群體簽章。 8. 解章 (Open). (當管理者 GM I 需打開簽章 σ = ( c, i, k , e, s1 , s2 , Τ1 , Τ2 ) ). ⎛ TTi ⎞ 8.1. 算出 xi = H ' ⎜ K I I , ni ⎟ 。 ⎜ ⎟ ⎝ ⎠. 8.2. 由驗證演算法驗證簽章 σ 。 8.3. 算出此簽章所用的憑證 s =. Τ1 (mod ni ) 。 Τ2 xi ⎛Τ. ⎞. 8.4. 管理者需提出證明知道 log g yi = logT ⎜ 1 (mod ni ) ⎟ 之值,並輸出 s 。 ⎝S ⎠ i. 2. 解開簽章的步驟首先是要能夠取得該簽章所屬群體的私密金鑰,用來解 開在簽章時所作的 ElGamal 加密。按照我們對 xi 這個值的設定方法,若群. 28.
(36) 體管理者 GM I 有權限能解開群體 Gi 的簽章的話,那麼 Ti 就會被 TI 所 Ti TI. TI ⋅. 整除,因此步驟 8.1 中 ( K I ) = ( K 0 ). Ti TI. = ( K 0 )Ti = K i (mod M ) 可求得 K i ,再用. 相同於群體設定時的抗碰撞雜湊函數 H ' 將 K i 對應至一個 Z n 中的值, i. 此值即為群體 Gi 的私密金鑰 xi 。然後經過驗證程序確定此簽章為正確的形 式且非被廢止的憑證所簽出,因為在驗證程序的後半部需用到 xi ,因此步驟 8.1 必須先作。步驟 8.3 則是用 xi 來作 ElGamal 解密,算出的 s 即為此簽 章的憑證。最後在步驟 8.4 再附上一個知識簽章,證明前一步驟中用來解密 的 xi 確實為群體 Gi 的私密金鑰 xi 。. 29.
(37) 第四章 安全性證明 要證明我們系統的安全性,大約可分為幾部分:(1)各群體的群體簽章架 構是安全的。(2)層級架構中用來解開群體簽章的私密金鑰,確實只能由上層 的管理者往下層推導。(3)若下層的成員兼為上層的管理者,本文架構之安全 也不會受到影響。(4)對[15]群體簽章架構中的改變,使用者加入群體時可決 定其合法時限之設計,可以證明是安全的。第一節介紹的是第(1)部分,由於 我們的層級架構是以[15]為基礎,因此我們會介紹此架構中滿足的安全性與 相關證明步驟,並加以適當的修改,以符合本文中之架構,原始版本詳細步 驟可參閱[15]。第二節介紹(2)、(3)、(4),是將基礎架構運用在我們的系統中 所需考慮的其他相關證明。. 第一節. 基礎架構的安全性. 有關[15]中群體簽章架構的安全性,在該篇文中已有詳細證明,本節會 簡介其證明過程並重新考慮在本系統中之安全性。. 定理1. 在強 RSA 的假設條件之下,[15]中的群體簽章系統是建立在對於 成員憑證和成員私密值的統計性零知識互動式證明。. 證明:根據之前關於零知識互動式證明系統的介紹,一個零知識的互 動式證明系統,必須滿足完整性、完美性、和零知識。 1. 完整性:若證明者確實知道秘密值,則一定能通過證明。這部分可顯 而易見地透過簽章與驗證程序來確定:若簽章者確實知道當時間的憑 證和成員的私密值,則必可簽出能驗證通過的正確簽章。 2. 完美性:若有一證明者 P∗ 有很大的機率能說服驗證者 V ,則須存. 30.
(38) 在一個知識擷取者 E , E 可利用 P∗ 與回轉 (rewind) 的技巧來擷 取出證明者欲證明之秘密值。因為此簽章系統要證明的是知道憑證值 與成員的私密值,我們這裡以憑證值為例,敘述知識擷取者 E 的作 法,成員私密值的擷取法亦類似。. (a) 假設存在證明 P∗ 有很大的機率能說服驗證者 V ,那表示在多 項式時間內可以經由回轉的技巧,針對相同的 commited 值,對 不同的挑戰值 (Challenge),得到不同的回應值 (Response)。因此 我們可得到兩組合理的值組 (Tuple): ( c, i, k , ek , s1 , s2 , d1 , d 2 , Τ1 , Τ2 ) 與. ( c, i, k , ek , s1 , s2 , d1 , d 2 , Τ1 , Τ2 ) ,其中兩值組的 committed 值. d1 、. d 2 都一樣。. (b) 我們可由兩值組間 d 2 的相等關係來找出 ω ,再利用 Τ1 / yiω 來 取得憑證值。由 d 2 ≡ ( gi ) ≡ ( gi ) r2. cω + s2. ≡ Τ2 c gi s2 ≡ Τ2 c gi s2 (mod n) ,得到. gi s2 − s2 ≡ Τ2c −c (mod n) 。令 δ = gcd ( s2 − s2 , c − c ) ,則可用延伸的歐基里. 德演算法 (Extended Euclidean algorithm) 來得到 α 、 β ∈ Z 滿足 δ = α ( s2 − s2 ) + β ( c − c ) 。故 gi ≡ gi. α ( s2 − s2 ) + β ( c − c ) δ. (. α. ≡ Τ2 g i. β. ). c −c. δ. (mod n) 。. 從 c − c 與 δ 的大小關係分三種情況討論: i.. c − c < δ :不可能,因為 δ 為 c − c 與 s2 − s2 的最大公因. 數。 ii.. c − c > δ :不可能。若為真則上方等式. (. α. gi ≡ Τ2 gi. β. ). c −c. δ. (mod n) 中的. 題,違背其假設。. 31. c −c. δ. > 1 ,已解決了強 RSA 的問.
(39) 故可知 c −c =δ ,且. iii.. s2 − s2 c −c. 之值為某整數 π 。由於. committed 值 d 2 相等,因此 s2 = r2 − cω 且 s2 = r2 − cω , 可得到 ω =. s2 − s2 Τ = π 。最後得到憑證 si , j ,k = 1π (mod n) 。 c −c yi. (c) 成員的私密值 xi , j 亦可用類似技巧擷取出來,主要是利用兩值組 間 d1 的相等性得出關係式,其餘步驟與擷取 ω 值類似。 3. 零知識:這裡需要證明的是我們可以造出一個模擬器 M ,讓證明者 和驗證者真正經由協定跑出來的 view 可以和這個模擬器造出來的 view,成統計上的不可分辨 (Statistical indistinguishable)。我們的簽章 程序所作的零知識互動式證明系統可以下圖表示。 Prover r1 ∈R {0,1}. ε ( λ2 + h ). Verifier. , r2 ∈R {0,1}ε (2. ( Τ1 ) d1 = (mod ni ) r e ⋅r ( ai ) ⋅ ( yi ) r d 2 = ( gi ) (mod ni ). p +h). ei ,k. 1. i ,k. 2. 2. d1 , d 2 c ∈R {0,1}. k. c. (. s1 = r1 − c xi , j − 2λ1. s2 = r2 − cω. ) s1 , s2 d1 =. (a0i )c Τ1e⋅(1−c ) λ1. (ai ) s1 −c⋅2 ⋅ ( yi )e⋅s2. (mod ni ). D2 = Τ2 c ⋅ ( gi ) s2 (mod ni ). 圖表 7. 簽名程序的互動式證明系統. 依下列步驟[15]造出一模擬器:. (a) 依 均 勻 分 布 (Uniform distribution) 隨 機 選 取. 32. c ' ∈R {0,1} 、 k.
(40) s '1 ∈R {0,1}. ε ( λ2 + k ). 、 s '2 ∈R {0,1}. ε (2. e (1− c′ ). (b) 計算 d '1 =. a0c′Τ1i ,k a. s1′ − c '2λ1. y. ei ,k s2′. p +k ). 。. (mod n) 、 d 2′ = Τc2' g s2′ (mod n) 。. (c) 輸出值組 ( c ', s1′, s2′ , d1′, d 2′ ) 。 因為由上圖中,真正由證明者和驗證者經協定跑出來的正確值 組. ( c, s1 , s2 , d1 , d 2 ). e (1− c ). d1 =. 會 滿 足. a0c Τ1i ,k λ1. a s1 −c 2 y i ,k. e s2. (mod n). 與. d 2 = Τc2 g s2 (mod n) , 因 此 只 要 證 明 模 擬 器 跑 出 來 的 結 果 Pr [C ' = c, S1′ = s1 , S 2′ = s2 , D1′ = d1 , D2′ = d 2 ]. 和真正協定跑出的結果. Pr [C = c, S1 = s1 , S 2 = s2 , D1 = d1 , D2 = d 2 ] 是統計上不可分辨的,即表示. 驗證者經與證明者間的互動式證明系統(即驗證簽章)所會得到的資 訊,也可由驗證者自己透過這個模擬器得到與其為統計上不可分辨 的資訊,所以代表這個簽章程序是零知識的,詳細機率分析可參考 [15]。. 定理2. 對某一群體 新值. (x. i, j. Gi ,若給予 K 個任意時段的合法成員私密值和更. , ti , j ,k ) 1 ,其中 1 ≤ j ≤ K , k 為時段,可重複。而令 k 值中最小者. 為 kmin 。每個值組皆有一截止期限 d j ,其中 1 ≤ j ≤ K ,令最大的 d 值為 d max 。在強RSA假設下,給予 K 組任意時段的合法成員私密值和更新值. (x. i, j. 1. , ti , j , k ) , 也 無 法 造 出 一 個 新 的 合 法 值 組. ( xˆ, t ) i ,h ,m. 其 中 m < kmin. 或. 為簡化索引符號,在此將時段k時的更新值記為 ti , j ,k 。而在架構中,時段k時的更新值則為 ti , j , k +1 。 33.
(41) m > d max 。. 證明:因為各個時期的憑證值 s,皆是由更新值 t 得來,因此我們考慮 簽章時所需的金鑰時,可考慮私密值 x 和更新值 t 的問題轉化到產生新合理值組. (x. i, j. [15]。我們要將強 RSA. , ti , j ,k ) 的問題。方式是若有一個攻擊者能. 由 K 個(x , t)值組得到一個私密值 xˆ 與對應此值而在某個大於時段 d max 或小於時段 kmin 的合法 t 值,則我們能利用此攻擊者來解強 RSA 問題, 違背強 RSA 假設,所以此攻擊者不存在。 假設 M 是一個攻擊者,它被允許參加 K 次參與程序來獲得這 K 個 合理值組. (x. i, j. , ti , j ,k ) ,然後會輸出一組合法值組. ( xˆ, t ) 。則我們可用一個演 i ,h ,m. 算法 A , A 可呼叫 M ,其輸入為強 RSA 問題的輸入 z ≡ u e (mod n) 的值組. ( n, z ) ,輸出為滿足. ( u, e ) 。 A 的步驟如下:. Algorithm1 ( n, z ) 1.. 隨機選取(1) xi ,1 、 xi ,2 、……、 xi , K ∈R Λ ,當作 K 組合法的私密 值,與(2) K 個時段 k1 、 k2 、……、 k K ,當作 K 組 t 值的時 段,與(3) K 個時段 d1 、 d 2 、……、 d K ,當作此 K 組 (x , t) 值組的最末合法時限,即截止時段,其中 k j ≤ d j , ∀j ∈ {1,....., K } 。 並亂數選取所有時段滿足 ei ,k ∈ Γ k 的 e 值。. 2.. 令 a≡z. ei ,kmin ⋅ei ,kmin +1 ⋅⋅⋅⋅⋅⋅ei ,dmax. (mod n) 。. 34.
(42) 3.. 隨機選取 r ∈R Λ ,再令 a0i ≡ ai r (mod n) 。. 4.. 依下列規則,對所有 j ∈ {1,..., K } ,給定 ti , j ,k : (1) 若 k j ≠ kmin ∧ d j ≠ d max 則算 ti , j ,k ≡ z. ( xi , j + r ) ei ,kmin ⋅⋅⋅ei ,k j −1 ⋅ei ,d j +1 ⋅⋅⋅ei ,dmax. (2) 若 k j = kmin ∧ d j ≠ d max 則算 ti , j ,k ≡ z. ( xi , j + r ) ei ,d j +1 ⋅⋅⋅ei ,dmax. (3) 若 k j ≠ kmin ∧ d j = d max 則算 ti , j ,k ≡ z. ( xi , j + r ) ei ,kmin ⋅⋅⋅ei ,k j −1. i, j +r ). (4) 若 k j = kmin ∧ d j = d max 則算 ti , j ,k ≡ z ( x. (mod n). (mod n). (mod n). (mod n). 5.. 任選 gi 、 hi ∈R QRn , x ∈R {1, n 2 } ,並令 ni = n 、 yi = gi x (mod ni ) 。. 6.. 讓. i. M. 跑. K. 次參與程序,其中輸入的公開參數為. ( ni , ai , a0i , yi , gi , hi ) 。 假 設 我 們 在 跑 第. j. 次 , 在 步 驟 3.2 收 到. committed 值 C1 後,我們用將 M 回轉 (Rewind) 的技巧來擷取 出其中能使得 C1 = gi hi (mod ni ) 的 xi , j 值和 ri , j 值。並算出能 xi , j. ri , j. 滿足 xi , j = 2λ + (α i , j ⋅ xi , j + βi , j (mod 2λ ) ) 的 α i , j 與 βi , j ,在下一步驟 1. 2. 3.3 送給 M 。接著跑到最後一步驟 3.5 再將相對應於 xi , j ,在第 4 步驟算出的 ti , j ,k 送給 M 。 7.. 當 M 跑完全部 K 個回合後,輸出一組值組. ( xˆ, t ) ,對所有. d 滿足 m ≤ d ≤ τ ,由小到大依序測試何者為值組. 合法期限 d 。考慮 m 的大小:. 35. i ,h ,m. ( xˆ, t ) i ,h ,m. 的最大.
(43) (1) 若 m < kmin ,則. (e. ⎛. a. 若 d < kmin ,則輸出 ( u, e ) = ⎜ zα (ti ,h ,m ) β ,. i ,m. ⎜ ⎝. ⋅⋅⋅ ei ,d ) ⎞ ⎟。 ⎟ δ ⎠. ⎛. b. 若 kmin ≤ d < kmax ,則輸出 ( u, e ) = ⎜ zα (ti ,h ,m ) β ,. (e. i ,m. ⎜ ⎝. ⎛. c. 若 kmax = d ,則輸出 ( u, e ) = ⎜ zα (ti ,h ,m ) β ,. (e. i ,m. ⎜ ⎝. d. 若 kmax. ). ⋅⋅⋅ ei ,kmin −1 ⎞ ⎟。 ⎟ δ ⎠. ). ⋅⋅⋅ ei ,kmin −1 ⎞ ⎟。 ⎟ δ ⎠. (. ⎛ ei ,m ⋅⋅⋅ ei ,kmin −1 ⋅ ei ,kmax +1 ⋅⋅⋅ ei ,d < d ,則輸出 ( u, e ) = ⎜ zα (ti ,h ,m ) β , ⎜ δ ⎝. (2) 若 m > d max ,令 δ = gcd ( ei ,m ⋅⋅⋅⋅ei ,d , ( xˆ + r )ei ,k ⋅⋅⋅⋅ei ,d min. α. 歐 基 里 德 演 算 法 算 出 δ = α ( ei ,m ⋅⋅⋅⋅ei ,d ) + β ( ( xˆ + r )ei ,k ⋅⋅⋅⋅ei ,d min. ⎛. 案 ( u, e ) = ⎜ zα (ti ,h ,m ) β , ⎜ ⎝. (e. i ,m. max. max. 、. ) ,再輸出強. ). ) ⎞⎟ ⎟ ⎠. 利用延伸的. β. 使 得. RSA 問題的答. ⋅⋅⋅ ei ,d ) ⎞ ⎟。 ⎟ δ ⎠. 在第 7 步驟的(1)中, M 輸出的值組. ( xˆ, t ). 若是在某個時段 m < kmin. i ,h ,m. 合法,假設此合法值組的合法期限可到時段 d ,那麼依 d 的範圍可分為四 種情況: a.若 d < kmin :則值組. ( xˆ, t ) i ,h ,m. 會有. (t ). ei ,m ⋅⋅⋅ei ,d. 的關係,所以令 δ = gcd ( ei ,m ⋅⋅⋅ ei ,d , ( xˆ + r )ei ,k ⋅⋅⋅ ei ,d min. 算法求出 zδ ≡ z. α ( ei ,m ⋅⋅⋅ei ,d ). α 、 β ⋅z. (. 滿足. β ( xˆ + r ) ei ,kmin ⋅⋅⋅ei ,dmax. ). ≡z. ≡ ai xˆ a0i ≡ z. i ,h ,m. max. ( xˆ + r ) ei ,kmin ⋅⋅⋅ei ,dmax. ) ,再用延伸的歐基里德演. δ = α ( ei ,m ⋅⋅⋅ ei ,d ) + β ( ( xˆ + r )ei ,k ⋅⋅⋅ ei ,d min. α ( ei ,m ⋅⋅⋅ei ,d ). ⋅ ( ti ,h ,m ) 36. β ( ei ,m ⋅⋅⋅ei ,d ). (mod ni ). (. ≡ zα (ti ,h ,m ) β. ). max. ( ei ,m ⋅⋅⋅ei ,d ). ) 。於是 (mod ni ) ,.
(44) Î z ≡ ( z (ti ,h ,m ) α. β. ). ( ei ,m ⋅⋅⋅ei ,d ) δ. ⎛. ( u, e ) = ⎜⎜ zα (ti ,h,m )β ,. (mod ni ) ,所以值組. (e. i ,m. ⎝. ⋅⋅⋅ ei ,d ) ⎞ ⎟ 為強 ⎟ δ ⎠. RSA 問題的解。 b.若 kmin ≤ d < d max ,值組 ( xˆ, ti ,h ,m ) 會有. (t ). 的 關 係 , 因 此 δ = gcd ( ei ,m ⋅⋅⋅ ei ,k. β. 滿. zδ ≡ z. (. (. )(. ). ⋅z. ei ,m ⋅⋅⋅ei ,kmin −1. ≡z. i ,h ,m. ≡ ai xˆ a0i ≡ z. ( xˆ + r ) ei ,d +1 ⋅⋅⋅ei ,dmax. ( xˆ + r ) ei ,kmin ⋅⋅⋅ei ,dmax. (mod ni ). 。 所 以 令. (mod ni ). ). δ = α ( ei ,m ⋅⋅⋅ ei ,k (. β ( xˆ + r ) ei ,d +1 ⋅⋅⋅ei ,dmax. ei ,m ⋅⋅⋅ei ,kmin −1. Î z ≡ ( zα (ti ,h ,m ) β ). ei ,m ⋅⋅⋅ei ,d. i ,h ,m. , ( xˆ + r )ei ,d +1 ⋅⋅⋅ ei ,dmax ,再用延伸的歐基里德演算法求出 α 、. 足. α ei ,m ⋅⋅⋅ei ,kmin −1. ≡ zα (ti ,h ,m ) β. min −1. (t ). ). ). ≡z. min −1. (. α ei ,m ⋅⋅⋅ei ,kmin −1. ) + β ( ( xˆ + r )e. ). i , d +1. ⋅ ( ti , h , m ). (. β ei ,m ⋅⋅⋅ei ,kmin −1. ⋅⋅⋅ ei ,dmax. ). 。. 於. 是. ). (mod ni ) ,. (. ( ei ,m ⋅⋅⋅ei ,kmin −1 ) δ. ⎛ ei ,m ⋅⋅⋅ ei ,kmin −1 , = u e ( ) ⎜ zα (ti ,h,m )β , ⎜ δ ⎝. (mod ni ) ,所以值組. ) ⎞⎟ ⎟ ⎠. 為強 RSA 的解。 c.若 d max = d ,則值組 的關係,則 ( ti ,h ,m ). ( xˆ, t ). 會有. i ,h ,m. ei ,m ⋅⋅⋅ei ,kmin −1. (t ). ei ,m ⋅⋅⋅ei ,d. i ,h ,m. ≡ ai xˆ a0i ≡ z. (. zδ ≡ z. (. α ei ,m ⋅⋅⋅ei ,kmin −1. min −1. ). ) + β ( ( xˆ + r ) ). ⋅ z β ( xˆ + r ) ≡ z. Î z ≡ ( zα (ti ,h ,m ) β ). ). (. α 、 β. 。. α ei ,m ⋅⋅⋅ei ,kmin −1. ). ⋅ ( ti , h , m ). (. (mod ni ) ,所以值組. 滿 足. 於. β ei ,m ⋅⋅⋅ei ,kmin −1. ( ei ,m ⋅⋅⋅ei ,kmin −1 ) δ. (mod ni ). ≡ z ( xˆ + r ) (mod ni ) 。所以令 δ = gcd ei ,m ⋅⋅⋅ ei ,kmin −1 , ( xˆ + r ) ,. 再 用 延 伸 的 歐 基 里 德 演 算 法 求 出 δ = α ( ei ,m ⋅⋅⋅ ei ,k. ( xˆ + r ) ei ,kmin ⋅⋅⋅ei ,dmax. ). (. ≡ zα (ti ,h ,m ) β. )(. 是. ei ,m ⋅⋅⋅ei ,kmin −1. ). (mod ni ). (. ⎛ ei ,m ⋅⋅⋅ ei ,kmin −1 , = u e ( ) ⎜ zα (ti ,h,m )β , ⎜ δ ⎝. ) ⎞⎟ ⎟ ⎠. 為強 RSA 的解。 d.若 d max < d ,則值組 的 關 係 , 則. ( xˆ, t ) i ,h ,m. (t ). 會有. (t ). ei ,m ⋅⋅⋅ei ,d. i ,h ,m. ei ,m ⋅⋅⋅ei ,kmin −1 ⋅ei ,dmax +1 ⋅⋅⋅ei ,d. i ,h ,m. 37. ≡ ai xˆ a0i ≡ z. ≡ z ( xˆ + r ) (mod ni ). ( xˆ + r ) ei ,kmin ⋅⋅⋅ei ,dmax. (mod ni ). 。 所 以 令.
(45) δ = gcd ( ei ,m ⋅⋅⋅ ei ,k. β. 滿. zδ ≡ z. min −1. ). ⋅ ei ,dmax +1 ⋅⋅⋅ ei ,d , ( xˆ + r ) ,再用延伸的歐基里德演算法求出 α 、. δ = α ( ei ,m ⋅⋅⋅ ei ,k. 足. (. α ei ,m ⋅⋅⋅ei ,kmin −1 ⋅ei ,dmax +1 ⋅⋅⋅ei ,d. (. )(. Î. (. ≡ zα (ti ,h ,m ) β. ). ⋅ z β ( xˆ + r ) ≡ z. ei ,m ⋅⋅⋅ei ,kmin −1 ⋅ei ,dmax +1 ⋅⋅⋅ei ,d. α. z ≡ z (ti ,h ,m ). ⎛. ( u, e ) = ⎜ zα (ti ,h,m ) β ,. β. (e. i ,m. ⎜ ⎝. ). ). min −1. ). ⋅ ei ,dmax +1 ⋅⋅⋅ ei ,d + β ( ( xˆ + r ) ). (. α ei ,m ⋅⋅⋅ei ,kmin −1 ⋅ei ,dmax +1 ⋅⋅⋅ei ,d. ). ⋅ ( ti ,h ,m ). δ. ,. (mod ni ). α ( ei ,m ⋅⋅⋅ei ,d ). ⋅z. 會有. i ,h ,m. ). (t ). ei ,m ⋅⋅⋅ei ,d. i ,h ,m. ). ≡ ai xˆ a0i ≡ z. max. ( xˆ, t ). 值. 組. 在時段 m > d max. i ,h ,m. ( xˆ + r ) ei ,kmin ⋅⋅⋅ei ,dmax. (mod ni ) 的關. ) ,再用延伸的歐基里德演算法 min. ≡z. α ( ei ,m ⋅⋅⋅ei ,d ). ⋅ ( ti ,h ,m ). ( ei ,m ⋅⋅⋅ei ,d ) δ. 以. δ = α ( ei ,m ⋅⋅⋅ ei ,d ) + β ( ( xˆ + r )ei ,k ⋅⋅⋅ ei ,d. 滿 足. (. β. 所. ). β ( xˆ + r ) ei ,kmin ⋅⋅⋅ei ,dmax. Î z ≡ ( z (ti ,h ,m ) α. ). ⋅⋅⋅ ei ,kmin −1 ⋅ ei ,dmax +1 ⋅⋅⋅ ei ,d ⎞ ⎟ 為強 RSA 的解。 ⎟ δ ⎠. min. zδ ≡ z. 是. ( ei ,m ⋅⋅⋅ei ,kmin −1 ⋅ei ,dmax +1 ⋅⋅⋅ei ,d ). ( xˆ, t ). α 、 β. 於. (mod ni ). 係,所以令 δ = gcd ( ei ,m ⋅⋅⋅ ei ,d , ( xˆ + r )ei ,k ⋅⋅⋅ ei ,d 求 出. (. β ei ,m ⋅⋅⋅ei ,kmin −1 ⋅ei ,dmax +1 ⋅⋅⋅ei ,d. 而在第 7 步驟的(2)中,則是若 M 輸出的值組 為合法,則值組. 。. (mod ni ) ,所以值組. β ( ei ,m ⋅⋅⋅ei ,d ). ≡ ( zα (ti ,h ,m ) β ) ⎛. ( u, e ) = ⎜⎜ zα (ti ,h,m )β , ⎝. max. ). ( ei ,m ⋅⋅⋅ei ,d ). (e. i ,m. 。 於 是 (mod ni ) ,. ⋅⋅⋅ ei ,d ) ⎞ ⎟ 為強 ⎟ δ ⎠. RSA 的解。 由於強 RSA 問題是很難的,所以我們知道不存在一個 M 可以造出一 組合理值組. ( xˆ, t ) ,其中 i ,h ,m. m < kmin 或 m > d max 。. 定理3. 我 們 在 各 群 體 中 採 用 的 群 體 簽 章 系 統 , 在 Random oracle model、強 RSA 假設和延伸的 Diffie-Hellman[15]判決假設皆成立的情況下, 滿足正確性、不可偽造性、匿名性、無連結性、脫罪性、可追蹤性、聯合抵. 38.
(46) 抗性、有追溯效力的公開廢止性與向後式無連結性。. 證明:我們會引用[15]中的證明來依序證明改變為層級性架構後,仍 然能滿足正確性、不可偽造性、匿名性、無連結性、脫罪性、可追蹤性、聯 合抵抗性、有追溯效力的公開廢止性與向後式無連結性。 1. 正確性:若成員 U i , j 在時段 k 為合法成員,則能利用參與和更新程 序來得到時段 k 的憑證 si , j ,k ,再利用簽章程序來簽章。由定理 1 的 完整性得知,這樣的簽章必能通過驗證程序。 2. 不可偽造性:由定理 1 可知我們的簽章具有統計性零知識的特性,再 加上我們是在 Random oracle model 下,所以 H 這個抗碰撞雜湊函 數的輸出的確是一個隨機的函數。所以無法由簽章中得到任何資訊, 當然也包括群體簽章金鑰的資訊,因此群體簽章不會被偽造。 3. 匿名性:同樣可由此簽章系統的零知識特性來說明,除了群體管理者 以外,皆無法由簽章中得到任何有關憑證和私密值的資訊,且是在 Random oracle model 下,不會洩漏任何資訊,因此可保證其匿名 性。 4. 無連結性:同一群體的群體簽章需無法判斷是否為同一人所簽。假設 有 兩 份 同 屬 於 群 體 Gi 的 正 確 簽 章 : σ 1 = ( c, i, j , e j , s1 , s2 , Τ1 , Τ2 ) 與 σ 1 = ( c , i, k , ek , s1 , s2 , Τ1 , Τ2 ) ,若有一演算法 A 能判斷 σ 1 和 σ 2 是否 j=k. 由 同 一 位 成 員 所 簽 , 則 若 (1) 在 log yi. 時, A. 可以判斷. Τ1 Τ (mod ni ) 和 log gi 2 (mod ni ) 是否相等,若(2)在 j < k 時, A Τ1 Τ2. Τ i, j Τ i, j 可以判斷 log yi 1ei ,k (mod ni ) 和 log gi 2ei ,k (mod ni ) 是否相等。因此我 Τ1 Τ2 e. e. 39.
(47) 們可以設計一演算法利用 A 來解決延伸的 Diffie-Hellman 判決假設 [15],此演算法詳細步驟可參閱[15]。 5. 脫罪性:可分為兩點討論:(1)在參與程序中,使用者與管理者的互 動,都是以零知識互動式證明來實作,因此即使群體管理者也無法知 道某成員 U i , j 的私密值 xi , j [7]。 (2)在簽章程序先用 Τ1 、 Τ2 以 ElGamal 的方式加密憑證,再用知識簽章的方式證明知道 xi , j 和時 段 k 的憑證 si , j ,k ,因此由定理 1 可知只有同時知道 xi , j 和 si , j ,k 的 人才能簽出這樣的知識簽章,所以群體管理者和其他成員皆無法以使 用者 U i , j 的身份簽出合法的知識簽章。 6. 聯合抵抗性:由定理 2 可知,此簽章系統滿足弱的聯合抵抗性,不管 是根據定義的往前,或是經修改過的往後部分,皆可滿足。 7. 可追蹤性:由公開程序可知,由合法成員簽出的正確簽章,可被群體 管理者經解章程序將憑證擷取出來,且由定理 2 得知,這樣的群體簽 章系統可以保證一群惡意的合法成員,無法合作造出不具身份的成員 用時段 kmin 之前或 d max 之後的群體簽名金鑰所簽出的群體簽章。 8. 有追溯效力的公開廢止性:若使用者 U i , j 在其合法時段 k 時,用其 憑證 si , j ,k 簽出簽章 σ = ( c, i, k , ek , s1 , s2 , Τ1 , Τ2 ) 。因為使用者 U i , j 擁有 1 ei ,k. 私密值 xi , j 與憑證 si , j ,k = (ai a0i ) (mod ni ) ,所以能通過驗證程序的 xi , j. 1~4 步驟,但因為此憑證若被廢止後,會被公佈在列表 RLi ,k 中,驗 證程序剩下的步驟,事實上就是在比對 si , j ,k 與列表上的憑證,若相 同即會被檢查出來,此憑證即為不合法的憑證,驗證失敗。 40.
(48) 9. 向後式無連結性:此群體架構滿足無連結性,這裡要說的是即使因憑 證廢止列表的關係洩漏了一些憑證,仍然無法判斷某一簽章 σ = ( c, i, k , ek , s1 , s2 , Τ1 , Τ2 ) 是否由某一遭廢止的憑證 si , j ',k ' 所簽,其中 k < k ' 。假設有一演算法可判別 σ 是否由某一被廢止的成員 U i , j ' 所 Τ1 i ,k e (mod ni ) 與 log gi Τ2 i ,k (mod ni ) 是否相 簽出,則可以判別 log yi ei ,k ' ( si , j ',k ' ) e. 等,則可設計一演算法利用 A 來解決延伸的 Diffie-Hellman 判決假設 [15],此演算法詳細步驟可參閱[15]。. 第二節. 其他安全性證明. 定理4. 根據我們指定給各群體管理員X值的方式,一個群體中的 X 值,只有它的群體管理者和其祖先節點的群體管理者能推導出來。. 證明:我們先證明若非某群體的群體管理者和其祖先節點的群體管理 者 則 無 法 聯 合 推 導 出 此 群 體 的 K 值 。 令 Gi 為 一 個 群 體 , 群 體 的 集 合. {. C = G j | G j ≥ Gi. }. 成員為一群按設定不該能推導出 Gi 中秘密值 K i 的管理員. 之群體集合。將 Gi 所被指定的質數值記為 Pi ,運算所得的 T 值記為 Ti ,而 G j 所被指定的質數記為 Pj ,所持 T 值為 T j ,則我們證明的方式. 要先證明: C 這個群體的串通集合能推出 Gi 中的K值,若且唯若 g.c.d {T j } 整除 Ti (即 C 之中含有 Gi 的管理者或其祖先節點的群體管理者,因為若. 41.
(49) 不含,則 g.c.d {T j } 不整除 Ti )2。 (Í)若 g.c.d {T j } 整除 Ti ,令 g = g.c.d {T j } 則我們可用歐幾里德演算法 (Euclid’s algorithm )來求出一些 α j 使得 g = ∑ C α jT j ,若 T = gr ,則可以算 出 K = K 0T = K 0 gr = ∏ C K 0. α jT j r. = ∏C K j. α jr. (mod M ) 。. (Î)我們用轉化 (Reduction) 的方式證明。若有一可計算的函式 F 能讓集 合 C 中成員算出 K i ,則我們可利用 F 來解出目前被公認很難的 Z n∗ 中 的 r 次 方 根 問 題 。 假 設. (. ). K T = F K T1 , K T2 ,......, K Tn (mod M ). r=. { }. g .c.d T j. {. g .c.d {T j } , Ti. }. F. 其 中. 為 一 個 可 計 算 的 函 式 使 得 g.c.d {T j }. 不 整 除. Ti , 令. ,那麼對 Z M ∗ 中的任意元素 H ,我們可用下方的演算法來. 解出 H 的 r 次方根。 Algorithm2 ( H , M , T1 , T2 ,......Tn ) 1. 令 d = g .c.d {T j } 2. 令 e = g .c.d {d , Ti } 3. 令 r =. d e. 4. 對 j = 1 到 n. 令 rj =. Tj d. 5. 使用歐基里德演算法來算出 a 、 b 使得 e = aTi + bd. 2. 註:若 C 中的成員皆非 Gi 或 Gi 的祖先節點,對於所有 T j , Pi 都會整除 T j ,因此 Pi 會. { }. 整除所有 T j 的最大公因數。另外 Pi 不整除 Ti 。所以我們可以得到 g .c.d T j 42. 不整除 Ti 。.
Outline
相關文件
The roles of school management and technical support staff on implementing information and network security measures... Security
Service Level Agreement – ensure at least 99.7% availability of the WiFi service, support four-hour response time and four-hour service recovery with active monitoring,
• A formal usage policy and procedures should be in place, and appropriate security measures should be adopted to protect against the risks of using mobile computing and
Proceedings of the 19th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval pp.298-306.. Automatic Classification Using Supervised
Skype provide better security than most VoIP system and PSTN. – Just because most VoIP system and PSTN do not provide any
Certified Information Systems Security Professional (CISSP). Certified Information Systems Security
Besides, we also classify the existing RFID protection mechanisms to solve the different personal privacy threats in our security threat model.. The flowchart of security threat
Through the help of this study, the inconvenient of insufficient information of biological pilot plant can be improved, the manufacture security can be promoted, and the