可訊息回復之免憑證簽章機制之研究 - 政大學術集成
65
0
0
全文
(2) 可訊息回復之免憑證簽章機制之研究 Certificateless Signatures with Message Recovery. 研 究 生:詹省三. Student:SHENG SAN CHAN. 指導教授:左瑞麟. Advisor:RAY LIN TSO. 資訊科學系 碩士論文. 學 ‧. ‧ 國. 立. 治 政 國立政治大學大. y. Nat. n. er. io. sit. A Thesis submitted to Department of Computer Science al National iv n C h Chengchi University i URequirements e n g cofhthe in partial fulfillment for the degree of Master in Computer Science. 中華民國一百年一月 January 2011.
(3) 可訊息回復之免憑證簽章機制之研究. 摘要. 在傳統的簽章機制中,我們需要一個具有公信力的第三方 (Trusted. 政 治 大. Third Party, TTP) 來核發數位憑證,以驗證公開金鑰確實屬於簽章者所擁. 立. ‧ 國. 學. 有,為了減少 TTP 的負擔,於是就有學者提出了免憑證簽章 (Certificateless Signature) 機制。另一方面,具有訊息回復 (Message Recovery) 功能的數. ‧. sit. n. al. er. io. 在傳送時的長度。. y. Nat. 位簽章是指原始訊息不需要與簽章一起傳送給接收者以簡化訊息及簽章. iv. 本論文中我們提出了一個具有訊息回復功能的免憑證簽章機制,和一 C Un. hengchi. 般簽章方式相比,我們的方法不僅具有免憑證簽章的優點,訊息回復功能 也減少了訊息和簽章的總長度,提昇了訊息的傳送效率 (Communication Cost),在效能方面也有不錯的表現,因此非常適用於以頻寬為主要考量的 公司組織以及對短訊息作簽章的應用,最後我們也有對我們的簽章方法做 完整的安全性證明。. I.
(4) Certificateless Signatures with Message Recovery. Abstract. In traditional digital signature systems, a trusted third party (TTP) is. 政 治 大 the public key actually belongs to the person of the signature. In order to 立. required in order to issue a digital certificate. The certificate is to assure that. ‧ 國. 學. reduce the burden of TTP, some scholars proposed the Certificateless Signatures. On the other hand, a digital signature with message recovery is a. ‧. signature that the message itself is not required to be transmitted together with. sit. y. Nat. the signature. It has the advantage of small data size of communication.. er. io. In this paper, a certificateless signature with message recovery is. n. a l the advantages of certificateless proposed. It inherits both signatures and iv n U i e h n g c The performance recovery.. Ch. signatures providing message. of our scheme is. compared with other schemes which shows that our scheme is quite efficient and the security of the scheme is finally proved in the random oracle model.. II.
(5) 誌謝 轉眼間兩年多的時間一下就過去了,回首當初剛進政大時面對空蕩蕩 的實驗室以及沒有學長姊的窘境還有著些許的不安,幸運的,這些做研究 的日子過得還挺順利的,實驗室的氣氛也越來越熱鬧,而我也將離開這熟 悉的校園以及熟悉的政大後山-貓空。. 政 治 大. 首先,我要誠摯的感謝我的指導教授左瑞麟老師,謝謝老師在這段時. 立. 間悉心的教導,以及不時耐心的與我一起討論並指引我正確的方向,還有. ‧ 國. 學. 老師我一定要跟你說你實在是太陽光了,希望以後還有機會一起去參加比. ‧. 賽,最後也感謝張仁俊老師與陳恭老師,謝謝你們在口試時給了我很多關. y. Nat. er. io. sit. 於論文修改的建議與意見,讓我的論文更加完整與嚴謹。. n. 另外,我還要感謝在這段時間曾給予我鼓勵與打氣的所有人,實驗室 a v. i l C n U hengchi 的夥伴與學弟妹、資科所的師長與同學、政大單車社的朋友們、大學高中 時期的朋友以及在家鄉的好朋友們,謝謝你們在這段時間的支持與包容, 沒有你們也不會有現在的我,真的,衷心的謝謝你們。 最後要謝謝我的家人,這些年來雖然和你們相處的日子很少,但我明 白你們都還是支持我的,讓我無後顧之憂,我也才能勇敢的繼續往前走。 最後的最後,僅以此篇論文獻給我天上的父親。. III. 省三.
(6) 目錄 第一章 緒論 .............................................................................................................................. 1 1.1 . 研究背景 .................................................................................................................... 1 . 1.2 . 研究動機與目的 ........................................................................................................ 2 . 1.3 . 論文架構 .................................................................................................................... 4 . 第二章 背景知識 ...................................................................................................................... 5 2.1 . 傳統簽章之簡介 ........................................................................................................ 5 . 2.2 . 基於身份認證之簽章 ................................................................................................ 8 . 2.4 . 相關數論介紹 .......................................................................................................... 11 . 學. ‧ 國. 2.3 . 治 政 大 免憑證簽章 .............................................................................................................. 10 立. 第三章 相關研究 .................................................................................................................... 15 Zhang等學者的基於身份認證之可訊息回復簽章 ................................................ 15 . 3.2 . Al‐Riyami等學者的免憑證簽章 ............................................................................... 19 . ‧. 3.1 . y. Nat. io. sit. 第四章 可訊息回復之免憑證簽章機制 ................................................................................ 24 限制訊息長度之免憑證簽章 .................................................................................. 24 . 4.2 . 不限制訊息長度之免憑證簽章 .............................................................................. 29 . n. al. er. 4.1 . Ch. engchi. i Un. v. 第五章 安全性與效能分析 .................................................................................................... 31 5.1 . 證明方法介紹 .......................................................................................................... 31 . 5.2 . 安全性模組 .............................................................................................................. 34 . 5.3 . 安全性證明 .............................................................................................................. 39 . 5.4 . 效能分析 .................................................................................................................. 52 . 第六章 結論與未來展望 ........................................................................................................ 53 參考文獻 .................................................................................................................................. 54 . IV.
(7) 圖目錄 圖 2.1.1 數位簽章基本架構圖。...............................................................................................6 圖 2.1.2 憑證簽發流程圖。.......................................................................................................7 圖 2.2 基於身份認證之簽章示意圖。......................................................................................9 圖 2.3 免憑證簽章示意圖。....................................................................................................10. 政 治 大. 圖 3.1 Zhang 的基於身份認證之可訊息回復簽章架構圖。................................................18. 立. 圖 3.2 Al-Riyami 等學者的免憑證簽章架構圖。..................................................................23. ‧. ‧ 國. 學. 圖 4.1 提案方式的可訊息回復之免憑證簽章架構圖。........................................................27. n. er. io. sit. y. Nat. al. Ch. engchi. V. i Un. v.
(8) 表目錄 表 5.4 效能分析與比較表。..................................................................................................52. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. VI. i Un. v.
(9) 第一章 緒論. 1.1 研究背景 密碼學一直以來都是數位通訊、電腦網路、資訊安全等應用上的重要工具,密碼. 政 治 大. 學也促進了電腦科學,特別是在於電腦與網路安全上所使用的技術,例如存取控制與. 立. 資訊的機密性,日常生活中也隨處可見其相關的應用,例如 ATM 的晶片卡、電腦使用. ‧ 國. 學. 者的存取密碼、電子商務等。. ‧. 隨著網際網路應用的發達與普及,許多消費者開始使用網路進行交易,於是各企. sit. y. Nat. 業紛紛投入電子商務活動,在現今的電子商務環境中,商業交易行為必須依賴電子文. io. al. er. 件與數位簽章來確立其該有的權利與義務,因此數位簽章一直在電子商務中扮演著極. v. n. 為重要的角色,也是現在數位化環境中各種應用的重要基礎。. Ch. engchi. i Un. 為了規範在電子商務環境下使用數位簽章所產生的風險,我國電子簽章法就有明 文規定[27],數位簽章須以一定之程序產生及驗證才能和實體之簽名蓋章具有同等之法 律效力。根據資訊安全管理的國際標準ISO 17799 定義,數位簽章亦須符合資訊安全中 的確認性、完整性以及不可否認性三種安全服務,其分別如下所述: z. 確認性:能確保簽章者即為簽署訊息之本人。. z. 完整性:能確保訊息在網路傳送的過程中,不會遭偽造或竄改。. z. 不可否認性:防止存心不良的使用者否認其所做過的事,即簽章者不可否認 其所簽署過的訊息。 1.
(10) 1.2 研究動機與目的 在傳統的簽章機制中,為了驗證公開金鑰確實屬於簽章者所擁有,我們需要一個 具有公信力的第三方 (Trusted Third Party, TTP) 來核發數位憑證,藉由驗證此數位憑 證來驗證使用者的公開金鑰。但憑證註銷 (Certificate Revocation) 等等的問題會造成 TTP 過多的負擔[29,31],另外,對簽名的驗證者來說,憑證的驗證也增加了許多的計 算成本(Computation Cost)。. 政 治 大. 在 1984 年的時候,Shamir 提出了第一個基於身份認證的簽章方法 (ID-based. 立. Signature) [18],ID-based signature 的優點是允許簽名者以個人資訊來當作他的公開金. ‧ 國. 學. 鑰,例如 email address、姓名、電話號碼等,如此驗證者就不需要透過憑證去驗證公. ‧. 開金鑰的合法性,也大幅地減少了 TTP 的計算量與記憶體空間。在 ID-based 架構下,. y. Nat. 由於 TTP 負責提供使用者的私密金鑰,所以在這裡我們稱 TTP 為 PKG (Private Key. er. io. sit. Generator) ,然而,由於所有使用者的私密金鑰皆是由 PKG 所生成,所以 ID-based signature 可能會有金鑰託管的問題(Key escrow problem) 。我們可以說 PKG 是私密金. al. n. iv n C 鑰的控管中心,由於私密金鑰皆是由 所生成, PKG 知道所有使用者的私密金鑰, h ePKG ngchi U 這樣將使得 PKG 的權限過大,假如今天 PKG 遭受駭客入侵控制,惡意的 PKG 即可偽. 造所有使用者的簽名,因此使用者就可以否認之前所簽過的訊息,這並不符合數位簽 章中的不可否認性,假如使用者人數一多,這會造成相當嚴重的安全性問題。 為了解決 ID-based signature 金鑰託管的問題,在 2003 年的時候,Al-Riyami 等學 者提出了免憑證簽章的概念(Certificateless signature) [1],它同時具有傳統簽章與 ID-based signature 的優點,既可解決金鑰控管的問題,也可保有 ID-based signature 免 憑證的特點,其主要的差異在於簽名者的私密金鑰並不是完全由 PKG 所生成,所以 PKG 無法得知簽名者的私密金鑰。 2.
(11) 一般的簽章演算法中明文是直接暴露的,當簽名者對訊息 m 簽名產生簽章 s,簽 名者會將訊息 m 以及簽章 s 一起傳送給驗證者,這是因為驗證者必須要有訊息 m 才可 以去驗證簽章 s 是否合法。因此,具有訊息回復功能的數位簽章是指原始訊息不需要 與簽章一起傳送給驗證者,且驗證者可在驗證階段利用一些公開參數與簽章即可回復 原始的訊息,這類型的簽章其目的就是為了能簡化簽章在傳送時的長度。 在 1993 年的時候,Nyberg 等學者提出了第一個具有訊息回復之數位簽章[16],此 方法是基於離散對數問題(Discrete Logarithm Problem),自此以後,關於訊息回復這方. 政 治 大. 面的簽章研究也陸續地被提出。在 2005 年的時候,Zhang 等學者提出了第一個具有訊. 立. 息回復之 ID-based signature[25],基於 Zhang 等學者以及 Barreto 等學者[5]的概念,在. ‧ 國. 學. 2007 年的時候,Tso 等學者提出了更有效率的可訊息回復之 ID-based signature[21],而 我們的方法同樣也是基於 Zhang 等學者的概念下去做延伸。因此,本論文的研究動機. ‧. Nat. n. al. er. io. sit. 方法,提出了基於免憑證架構下可訊息回復的簽章方法。. y. 就是為了解決 ID-based signature 架構下本身存在的問題,我們改良了 Zhang 等學者的. Ch. engchi. 3. i Un. v.
(12) 1.3 論文架構 在本論文中,共分為六個章節來做探討,各章節內容架構大致如下: z. 第一章為緒論。以本篇論文的研究背景與研究動機做一簡單、完整的說明。. z. 第二章我們將對傳統數位簽章、基於身份認證之簽章、免憑證簽章做完整的說明, 同時對於後續需使用到的雙線性配對函數、密碼學上的計算難題以及相關數學知. 政 治 大 第三章我們將對過去兩篇相關的文獻做簡要的介紹。 立 識與定義做一簡單、完整的介紹。. z. 學. 第四章為介紹我們所提出的可訊息回復之免憑證簽章協定。. z. 第五章將介紹我們使用到的證明方法,並針對我們所提出的協定做安全性證明與. ‧. ‧ 國. z. 效率分析,並與過去相關的方法做一比較。. sit. y. Nat. 第六章為結論與未來展望。. io. n. al. er. z. Ch. engchi. 4. i Un. v.
(13) 第二章 背景知識 . 2.1 傳統簽章之簡介 在 1976 年的時候,Diffie 和 Hellman 二位學者提出了公開金鑰密碼系統(Public-key. 政 治 大. cryptosystem)的概念[8],他們的研究在密碼學發展上是一個重要的里程碑,之後各式. 立. 各樣適合各種不同應用環境的簽章方法也先後的被發展出來。. ‧ 國. 學. 數位簽章的架構如下圖 2.1.1 所示,在公開金鑰密碼系統架構下使用者擁有兩把金. ‧. 鑰,私密金鑰與公開金鑰,此兩把金鑰是相對應的,私密金鑰是用來簽署文件的,必 須隱密的收藏著,只有使用者本人知道,而另一把公開金鑰顧名思義即是在系統內的. y. Nat. er. io. sit. 每個使用者皆可得到,是用來驗證文件的,簽名過程如下圖,簽名者 Alice 是用其私 密金鑰對訊息做簽章的動作,而驗證方的使用者則用簽名者 Alice 的公開金鑰去對訊. n. al. Ch. i Un. v. 息做驗證,即可驗證該訊息是否由簽名者 Alice 所簽署。. engchi. 5.
(14) 立. 政 治 大. ‧. ‧ 國. 學. 圖 2.1.1 數位簽章基本架構圖。. 由於驗證方沒辦法證實公開金鑰的正確來源性,所以公開金鑰基礎架構( Public. Nat. sit. y. Key Infrastructure, PKI)就是為了解決這個問題應運而生,其主要功能就是為每位使用者. n. al. er. io. 的公開金鑰做背書,以證明該公開金鑰的持有者確實是由所宣稱的那個人所擁有,也. i Un. v. 因為有此特性,PKI 能有效的解決網路上進行交易或訊息傳遞時所衍生的身份辨識、. Ch. engchi. 資料的確認性、完整性以及不可否認性等安全問題。. 如圖 2.1.2 所示,在 PKI 架構中所有公開金鑰都被集中保管於公正的第三方,也 就是憑證機構(Certificate Authority, CA),CA 驗證簽名者的身份後會核發一個憑證給簽 名者,憑證內容就包括簽名者的公開金鑰與其身份識別,任何要驗證之使用者都可透 過 CA 的公開金鑰向 CA 查詢交易相對人的公開金鑰及身份,因此可以確保公開金鑰 的來源性。. 6.
(15) 立. 政 治 大. ‧ 國. 學. 圖 2.1.2 憑證簽發流程圖。. ‧. Nat. sit. y. 由於憑證註銷(Certificate Revocation)等等的問題會造成 CA 過多的負擔,當使用. n. al. er. io. 者因某種原因更改其金鑰、使用者不再使用 CA 所提供的認證服務、使用者信用不好. i Un. v. 被 CA 列為拒絕往來戶、CA 自身遭遇危機或發生失誤時,就會需要註銷使用者的憑. Ch. engchi. 證,憑證註銷的目的就是為了避免數位憑證被盜用或非法使用,通常 CA 會利用憑證 註銷清冊(Certificate Revocation List, CRL)來紀錄所有被註銷但尚未到期的憑證,CA 再將 CRL 傳送給所有驗證單位或使用者,當使用者要驗證憑證時只需檢查 CRL 即可 知道該憑證是否合法,但也有可能會增加許多的計算成本(Computation Cost),若是憑 證註銷的使用者過多時,將會使 CRL 快速膨脹,因為註銷的即時性問題,驗證方每次 要驗證憑證時都需要下載 CRL,會使整個驗證的過程效率降低,增加了 CA 與驗證單 位的通訊量以及 CRL 的維護量,目前面對此問題大多以定期下載 CRL 使用為解決方 法,但當前的 CRL 與最新的 CRL 間還是會有時間落差而不一致的問題,而為了解決 時間差的問題,有很多學者也在這方面做了許多相關的研究[28,30]。 7.
(16) 2.2 基於身份認證之簽章 在 1984 年的時候,Shamir 提出了第一個基於身份認證的簽章方法 (ID-based Signature) [18],在傳統簽章下使用者不能自已決定持有的公開金鑰且公開金鑰都是系 統隨機產生的亂數,此簽章與傳統簽章最大的不同就是使用者是以其「唯一」且「可 識別」的身份識別子來當作其公開金鑰,例如電子信箱(e-mail),電話(phone number), 地址(address)等等資訊,因此不會有傳統簽章需要驗證公開金鑰來源性的問題,使用. 政 治 大. 者也不需要保留公開金鑰的目錄,以及不需有公信力的第三方 (Trusted Third Party,. 立. TTP)的協助即可祕密地通訊和驗證對方的簽章。在基於身份認證的簽章架構下,每個. ‧ 國. 學. 使用者的私密金鑰皆是由 TTP 或也可稱作私密金鑰產生者(Private key generator, PKG) 的公正第三方來生成,由於公開金鑰即為簽名者「唯一」且「可識別」的身份識別子,. ‧. 因此 PKG 不需要核發憑證給簽名者,每個接收簽章的驗證方皆可直接利用簽名者的公. y. Nat. io. sit. 開金鑰來驗證簽章。在此架構下因為沒有憑證核發註銷等動作,因此也不會有在 PKI. er. 架構下造成 TTP 過多負擔的問題,也省去了驗證憑證時所花費的通訊與計算成本。. al. n. iv n C 如圖 2.2 所示,Alice 為此系統的簽名者,Bob 則是驗證簽名的接收者,首先 PKG hengchi U. 利用 Alice 傳送過來的 IDA 去計算其私密金鑰 SK A 並回傳給 Alice,Alice 再利用 SK A 對 訊息 M 做簽名來得到簽章 σ ,接著把簽章 σ 與訊息 M 傳送給 Bob,Bob 再利用 Alice 的公開金鑰 IDA 去做驗證的動作,這就是 ID-based Signature 的基本架構。然而, ID-based Signature 存在一個不安全的因子,由於 PKG 知道所有簽名者的私密金鑰, PKG 可以假冒所有的簽名者去對任意訊息做簽章的動作,因此簽名者可以否認之前所 簽過的訊息,所以在此架構下 PKG 是必須完全被信賴的,這就是 ID-based Signature 本身存在的金鑰託管(Key escrow)問題。. 8.
(17) 學. 圖 2.2 基於身份認證之簽章示意圖。. ‧. ‧ 國. 立. 政 治 大. n. er. io. sit. y. Nat. al. Ch. engchi. 9. i Un. v.
(18) 2.3 免憑證簽章 在 2003 年的時候,Al-Riyami 等學者提出了免憑證簽章(Certificateless signature) 的概念[1],免憑證簽章與 ID-based Signature 最大的不同就是使用者有兩對金鑰,一對 金鑰是使用者自己生成的私密金鑰與公開金鑰,另一對則是 PKG 生成的部份私密金鑰 (Partial private key)與部份公開金鑰(Partial public key),簽名的時候使用者是用到兩把 私密金鑰,驗證的時候也是用到另外兩把公開金鑰才可驗證,這樣的好處就 PKG 沒辦. 政 治 大. 法只利用部份私密金鑰去偽造簽章,因此免憑證簽章不會有金鑰控管的問題。. 立. 如圖 2.3 所示,Alice 同樣為此系統的簽名者,Bob 則是驗證簽名的接收者,首先. ‧ 國. 學. PKG 利用 Alice 傳送過來的 IDA 去計算其部份私密金鑰 PSK A 並回傳給 Alice,接著. ‧. Alice 隨機選取一亂數 s 當作自己的私密金鑰 SK A ,Alice 再利用 SK A 與 PSK A 對訊息. Nat. io. sit. y. M 做簽名來得到簽章 σ ,接著把簽章 σ 與訊息 M 傳送給 Bob,Bob 再利用 Alice 的公. n. al. er. 開金鑰 PKA 與 IDA 去做驗證的動作,這就是免憑證簽章的基本架構。. Ch. engchi. i Un. v. 圖 2.3 免憑證簽章示意圖。 10.
(19) 2.4 相關數論介紹 密碼學技術能有效保護資訊在網路上安全的傳送訊息,不管是金鑰協議、加解密 機制或數位簽章機制,都需要用到密碼學的技術,以下我們將會對與本篇論文相關的 密碼學理論與背景知識做相關介紹。. 政 治 大 密碼系統的安全性大多是基於計算複雜度的難題上,主要是基於數學理論上因數 立. 2.4.1. 離散對數問題(Discrete Logarithm Problem). ‧. ‧ 國. 定理 1:. 學. 分解與離散對數問題,所謂的離散對數問題如下所定義[10]:. sit. y. Nat. 若 p 為很大之質數 ; g 為 p 之生成元 (generator),方程式為 y = g x (mod p ) ,今已知. 的。. n. al. er. io. x y , g , p ,需求出 x 滿足 g = y (mod p) ,此一問題即為離散對數問題,一般相信是困難. Ch. engchi. i Un. v. 2.4.2 橢圓曲線密碼學(Elliptic Curve Cryptography, ECC) 橢圓曲線原本是數學理論上的一個主題,但 1985 年及 1987 年有兩位學者 Miller[15] 和 Koblitz[14]分別將橢圓曲線應用到密碼學上,因為橢圓曲線具有較小金鑰長度即可 達到與 RSA 相當的安全程度,以及橢圓曲線可以建構出雙線性配對等特點,所以近年 來橢圓曲線在密碼學上相關的研究也越來越多。. 11.
(20) 橢圓曲線其實就是三次方的代數曲線,一般可表示成: E : y 2 + a1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6. (1). 若 Fq 特徵值不為 2 或 3 時,我們就能將(1)轉換成較簡單的表示法. E : y 2 = x 3 + Ax + B. (2). 若滿足 4 A 3 + 27 B 2 ≠ 0 ,則可依據切線與割線規則訂定點加法,使得 E (Fq ) 形成加法交. 政 治 大. 換群,而詳細的加法運算規則可參閱[20]。. 立. ECC 的主要優勢是在某些情況下金鑰長度比其他方法的要來的小,例如 RSA,目. ‧ 國. 學. 前所知破解 160 bit 的 ECC 與破解 1024 bit 的 RSA 所需要的時間大約相同,所以在相. ‧. 同的安全程度下 ECC 的金鑰長度比 RSA 小,而 ECC 的另一個優勢就是可以定義群之. y. Nat. 間的雙線性配對,例如 Weil pairing 或是 Tate pairing。直到 2000 年,Pairing 在密碼學. er. io. sit. 上的正向應用才正式出現[13],而更全面的應用方式則是 Boneh 等學者在 2001 年所提 出,以 Weil pairing 建構出基於身份識別碼的加密系統[4],自此 pairing 在密碼學上的. al. n. iv n C 地位就由此確立,也為密碼學指引了一個新的研究方向,此後各類密碼學應用的研究 hengchi U 也都看得到 pairing 的蹤影[2, 6,12,19,22]。. 2.4.3. 雙線性配對 (Bilinear Pairing). 雙線性配對函數為一線性映射函數(Bilinear map),由一個群(Group)對應到另一個 群,以雙線性配對為基礎的密碼機制其安全性是建立在解一些難問題假設的困難度上, 以下將會介紹雙線性配對函數的定義以及一些相關的難問題。. 12.
(21) G1 為一加法群 (Additive Group),序(Order)為 q , G2 為一乘法群 (Multiplicative Group),序也為 q 。 P 是 G1 的生成元(Generator),則一個雙線性配對表示為 e : G1 × G1. → G2 ,具有以下三種性質[6,24]: (1) 雙線性(Bilinear): P , Q ∈ G1 及 a , b ∈ Z∗q , e(aP, bQ ) = e(P, Q ) 。 ab. (2) 非退化性(Non-degenerate):若 P 是 G1 的生成元,則 e(P, P ) 也會是 G2 的生成 元,即 e(P, P ) ≠ 1 。 (3) 可計算性(Computable): P , Q ∈ G1 ,存在一有效率的演算法可計算 e(P, Q ) 。. 立. 政 治 大. ‧ 國. 學. 在密碼學的研究領域,為符合系統安全的需求,通常會有許多計算難問題的假設, 以下即是相關研究中常見的難問題定義[3,26]:. ‧. 定理 2:. y. Nat. io. sit. 計算性 Diffie-Hellman 難問題(Computational Diffie-Hellman Problem, CDHP),如果. n. al. er. P ∈ G1 且 a、b ∈ Z∗q ,在已知 P 、 aP 、以及 bP 的條件下,要求解 abP 的問題即為 CDH 難問題。. Ch. engchi. i Un. v. 定理 3: 決定性 Diffie-Hellman 難問題(Decisional Diffie-Hellman problem, DDHP),如果 P ∈ G1 且 a、b、c ∈ Z∗q ,在給定 P 、 aP 、 bP 以及 cP 的條件下,要判斷是否 c = ab 的問題即 為 DDH 難問題。 定理 4: 間隙 Diffie-Hellman 難問題(Gap Diffie-Hellman problem, GDHP),如果 DDH 問題為容 易而 CDH 問題為困難者稱之為 GDH 難問題。 13.
(22) 定理 5: 雙線性 Diffie-Hellman 問題(Bilinear Diffie-Hellman Problem,BDHP),如果 a、b、c ∈ Z∗q 為未知數,給定 P , aP , bP , cP ∈ G1 ,要求得 e(P, Q ). ∈ G2 是非常難解的。. abc. 2.4.4 符號標記 根據 Tso 等學者[21]提出的可訊息回復之 ID-based signature 的定義,本篇論文中. 治 政 大 同樣也會使用到相同的符號,其定義如下: 立 . ⊕ :二進位系統中的 X-OR 運算。. . [x]10 :x 的十進位表示法且 x∈ {0,1} 。. . [ y ]2 :y 的二進位表示法且 y ∈ Z。. n. . q : q 的位元長度。. l1. Ch. engchi. sit er. io. al. y. ∗. Nat. . ‧. ‧ 國. a b :a 字串與 b 字串結合的連續字串。. 學. . i Un. v. β :從 β 左側開始算起的 l1 位元,亦即,最高有效 l1 位元。. β l :從 β 右側開始算起的 l2 位元,亦即,最低有效 l2 位元。 2. 14.
(23) 第三章 相關研究 . 3.1 Zhang等學者的基於身份認證之可訊息回復簽章 此小節我們將介紹 Zhang 等學者提出的基於身份認證之可訊息回復簽章[25],這. 政 治 大 伸,故在此介紹他們的簽章方法。 立. 是第一個具有訊息回復功能之 ID-based signature,由於我們的方法是基於此方法的延. ‧. ‧ 國. 學. 3.1.1 簽章模組. y. Nat. 根據 Zhang[25]的定義,Identity-based message recovery signatures 的簽章模組大致. n. al. er. io (1) Setup. sit. 可以定義成四個演算法,分別如下所述:. Ch. engchi. i Un. v. 此階段 PKG 會生成一對自己的金鑰,且會公開一些系統參數。 (2) Extract 此階段 PKG 會根據使用者的身份識別 ID,生成使用者的私密金鑰並將該私 密金鑰傳送給使用者。 (3) Sign 此階段使用者會利用私密金鑰與公開的系統參數去對訊息做簽章。. 15.
(24) (4) Verify 此階段使用者可利用公開參數並透過一決定型的演算法去驗證簽章的合法 性。. 3.1.2 簽章方法 [Setup]. 政 治 大. (1) 首先 PKG 隨機選取一亂數 s ∈ Z q∗ 為 PKG 的私密金鑰,接著計算 Ppub=sP 為 PKG. 立. 學. ‧ 國. 的公開金鑰。. (2) PKG 公開系統參數給使用者:. ‧. < G1 , G2 , e , q , λ , P , H 0 , H 1 , F1 , F2 , k1 , k2 >. y. Nat. G1 , G2 皆為相同序aql的循環群,且 q = l1 + l2. n. . Ch. engchi. er. io. sit. 且系統參數的定義分別如下:. i Un. v. . e : G1 × G1 → G2 為雙線性配對. . H 0 : {0,1} → G 1∗ ,輸入為 {0,1} 的字串,輸出為 G1∗ 中的元素的單向雜湊函數 ∗. ∗. (one way hash function) . H1 : {0,1} → Z∗q ,輸入為 {0,1}∗ 的字串,輸出為 Z∗q 中的元素的單向雜湊函數. . F1: {0,1}k → {0,1}k ,輸入為 {0,1}k 的字串,輸出為 {0,1}k 的字串的單向雜湊函. ∗. 2. 1. 2. 1. 數. 16.
(25) . F2 : {0,1}k1 → {0,1}k 2 ,輸入為 {0,1}k1 的字串,輸出為 {0,1}k2 的字串的單向雜湊 函數. [Extract] (1) PKG 根據簽名者 A 的身份識別 IDA 計算 Q A = H 0 (IDA ) 為簽名者的公開金鑰。 (2) PKG 計算 S A = sQ A 為簽名者的私密金鑰,並將私密金鑰回傳送給簽名者。. 政 治 大. [Sign]. 立. 針對一欲簽名的訊息 m ∈ {0,1} 2 ,簽名者 A 會執行以下步驟來對 m 做簽名:. 學. ‧ 國. k. (1) 隨機挑選一亂數 k ∈ Z q∗ ,接著計算 v = e(P , P ) 。 k. ‧. (2) 計算 f = F1 (m ) (F2 (F1 (m )) ⊕ m ) 。. y. Nat. er. io. sit. (3) 定義 r = H 1 (v ) + f mod q 。. al. n. (4) 計算 U = kP − rS A 。. ni Ch U i e 最後得到對 m 的簽名為 σ = (r , U ) 。 n g c h. v. [Verify] 針對簽名 σ ,使用者可依以下步驟驗證 σ 是否合法: (1) 使用者根據簽名 σ = (r,U ) 及公開的參數可計算出:. (. ). r − H1 e(U , P)e(QA , Ppub ) = f 。 (2) 回復訊息 m ← f. r. k2. ⊕ F2. ( f )。 k1. 17.
(26) 若 k f = F1 (m) 則表示此簽章 σ 為合法簽章。 1. 關於此簽章的架構圖,如下圖 3.1 所示:. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 3.1 Zhang 的基於身份認證之可訊息回復簽章架構圖。. 由以上演算法可知,簽章者只需傳送 σ 給驗證者,驗證者可利用 σ 與系統公開參 數來計算出 f ,之後驗證者即可利用 f 來回復訊息 m 以及驗證簽章的合法性。此方法 在 CDH 難問題假設上有被證明其安全性,但因為該簽章方法是建立在 ID-based 架構 下,所以還是可能會發生金鑰控管的問題。. 18.
(27) 3.2 AlRiyami等學者的免憑證簽章 此小節我們將介紹 Al-Riyami 等學者[1]提出的免憑證簽章演算法,這也是第一個 免發送憑證的數位簽章,由於我們的免憑證簽章架構是基於此篇方法,故在此介紹他 們的簽章方法。. 政 治 大 根據 Al-Riyami 等學者[1]的定義,免憑證簽章大致可以定義成七個演算法,分別 立. 3.2.1 簽章模組. ‧. ‧ 國. (1) Setup. 學. 如下所述:. 此階段 PKG 會生成一對自己的金鑰,且會公開一些系統參數。. sit. y. Nat. io. n. al. er. (2) Partial-Private-Key-Extract. v. 此階段 PKG 會根據使用者的身份識別 ID 生成部份的私密金鑰與公開金鑰並. Ch. engchi. 將部份私密金鑰傳送給使用者。. i Un. (3) Set-Secret-Value 此階段使用者會隨機選取一秘密參數。 (4) Set-Private-Key 此階段使用者會利用秘密參數做一些運算,得到的結果為使用者的私密金 鑰。. 19.
(28) (5) Set-Public-Key 此階段使用者會利用秘密參數做一些運算,得到的結果為使用者的公開金 鑰。 (6) Sign 此階段使用者會利用私密金鑰與公開的系統參數去對訊息做簽章。 (7) Verify. 政 治 大. 此階段使用者可透過一決定型的演算法去驗證簽章的合法性。. 立. ‧ 國. 學. 3.2.2 簽章方法. sit. y. Nat. [Setup]. ‧. 以下我們將介紹 Al-Riyami 等學者[1]提出的免憑證簽章演算法,如下所述:. n. al. er. io. (1) 首先 PKG 隨機選取一亂數 s ∈ Z q∗ 為 PKG 的私密金鑰,接著計算 P0 = sP 為 PKG 的公開金鑰。. Ch. (2) PKG 公開系統參數給使用者:. engchi. G 1 , G2 , n, e, P, P0 , H 且系統參數的定義分別如下: . G1 , G2 皆為相同序 q 的循環群. . e : G1 × G1 → G2 為雙線性配對. 20. i Un. v.
(29) . H : {0,1} × G 2 → Z q∗ , H 為一單向雜湊函數,其輸入為 {0,1}∗ 的字串以及 G2 中 ∗. 的元素,輸出為 Z q∗ 中的元素 [Partial-Private-Key-Extract] (1) PKG 根據簽名者 A 的身份識別 IDA 計算 Q A = H (IDA ) ∈ G1∗ 為簽名者 A 的部份公 開金鑰(ID-based public key)。. 政 治 大. (2) PKG 計算 DA = sQA ∈ G1∗ 為簽名者 A 的部份私密金鑰,並將部份私密金鑰傳送給. 立. 簽名者 A。. ‧ 國. 學. [Set-Secret-Value]. io. sit. y. Nat. [Set-Private-Key]. ‧. 簽名者 A 隨機選取一亂數 x A ∈ Z q∗ 為 Secret-Value。. er. 簽名者 A 計算 S A = x A DA = x A sQA ∈ G1∗ 為自己的私密金鑰。. n. al. Ch. [Set-Public-Key]. engchi. i Un. v. 簽名者 A 計算 PA = X A , YA 為自己的公開金鑰,其中 X A = x A P, YA = x A P0 = x A sP 。 [Sign] 針對一欲簽名的訊息 M ∈ {0,1} ,簽名者 A 會執行以下步驟來對 M 做簽名: n. (1) 隨機選取一亂數 a ∈ Z q∗ 。 (2) 計算 r = e(aP, P) ∈ G2 。. 21.
(30) (3) 設置 v = H (M , r ) ∈ Z q∗ 。 (4) 計算 U = vSA + aP ∈ G1 。 最後得到對 M 的簽名為 (U , v) ,並將 M 及 (U , v) 傳送給驗證方。 [Verify] 針對簽名 (U , v) ,驗證方的使用者可依以下步驟驗證簽章是否合法: (1). 政 治 大 使用者先確認 e( X , P ) = e(Y , P ) 等式是否成立,如果不成立就輸出⊥並終止 立 A. 0. A. ‧ 國. 學. 驗證程序。. (2) 計算 r = e(U , P ) ⋅ e(Q A ,−Y A ) 。 v. ‧. n. al. er. io. sit. y. Nat. (3) 若 v = H (M , r ) 成立,則輸出 valid,表示此簽章是合法簽章,否則輸出 invalid。. Ch. 關於此簽章的架構圖,如下圖 3.2 所示:. engchi. 22. i Un. v.
(31) 立. 政 治 大. ‧. ‧ 國. 學 er. io. sit. y. Nat. al. n. 圖 3.2 Al-Riyami 等學者的免憑證簽章架構圖。. Ch. engchi. 23. i Un. v.
(32) 第四章 可訊息回復之免憑證簽章機制 根據 Zhang 等學者提出的基於身份認證之可訊息回復簽章[25],為了解決金鑰控 管問題,我們將會以 3.2 小節所提到之免憑證簽章架構去改良 Zhang 等學者提出的方 法。在此章節我們將會提出可訊息回復之免憑證簽章的方法,關於訊息回復在我們的 方法中我們分兩點討論,第一點就是訊息長度有限制,但可以回復完整的訊息,例如, m ∈ {0,1} 1 即 m 的長度限制為 l1,第二點則是訊息長度不限制,但只能回復部份的訊息, l. 以下我們會個別討論。. 立. 政 治 大. ‧ 國. 學 ‧. 4.1 限制訊息長度之免憑證簽章 . y. Nat. er. io. sit. 與 Al-Riyami 等學者[1]的免憑證簽章架構一樣,我們需要七個演算法來達到本簽 章系統的設計及目的,其分述如下:. n. al. [Setup]. Ch. engchi. i Un. v. (1) 首先 PKG 隨機選取一亂數 s ∈ Z q∗ 為 PKG 的私密金鑰,接著計算 Ppub = sP 為 PKG 的公開金鑰。 (2) PKG 公開系統參數給使用者:. G1 , G2 , q, e, P, Ppub , μ , H 1 , H 2 , F1 , F2 , l1 , l 2 且系統參數的定義分別如下:. 24.
(33) . G1 , G2 皆為相同序 q 的循環群,且 q = l1 + l2. . e : G1 × G1 → G2 為雙線性配對. . μ = e(P, P). . H 1 : {0,1} → G1 ,輸入為 {0,1} 的字串,輸出為 G1 中的元素的單向雜湊函數 ∗. ∗. (one way hash function). 政 治 大. . H 2 : {0,1} → Z q∗ ,輸入為 {0,1}∗ 的字串,輸出為 Z q∗ 中的元素的單向雜湊函數. . F1 : {0,1}l → {0,1}l ,輸入為 {0,1}l 的字串,輸出為 {0,1}l 的字串的單向雜湊函. ∗. 立. 1. 2. ‧. F2 : {0,1}l → {0,1}l ,輸入為 {0,1}l 的字串,輸出為 {0,1}l 的字串的單向雜湊函 2. 2. 1. y. sit. io. n. al. er. 數. 1. Nat. . ‧ 國. 數. 2. 學. 1. [Partial-Private-Key-Extract]. Ch. engchi. i Un. v. (1) PKG 根據簽名者 A 的身份識別 IDA 計算 Q A = H1(IDA ) 為簽名者 A 的部份公開金 鑰。 (2) PKG 計算 DA = sQA 為簽名者 A 的部份私密金鑰,並將部份私密金鑰傳送給簽名 者 A。 [Set-Secret-Value] 簽名者 A 隨機選取一亂數 x A ∈ Z q∗ 為 Secret-Value。. 25.
(34) [Set-Private-Key] 簽名者 A 計算 S A = x AQA 為自己的私密金鑰。 [Set-Public-Key] 簽名者 A 計算 PK A = (PK 1 , PK 2 ) = (x A P, x A Ppub ) 為自己的公開金鑰。 [Sign]. 政 治 大. 針對一欲簽名的訊息 m ∈ {0,1} 1 ,簽名者 A 會執行以下步驟來對 m 做簽名: l. 立. 學. ‧ 國. (1) 計算 β = F1 (m) (F2 (F1 (m)) ⊕ m ) ,接著定義 α = [β ]10 。. (. ). (2) 隨機挑選一亂數 r ∈ Z q∗ ,接著計算 V = H 2 μ r PK 2 + α 。. ‧ sit. y. Nat. (3) 計算 U = rP + V (DA + S A ) 。. n. al. er. io. 最後得到對 m 的簽名為 σ = (U ,V ) 。 [Verify]. Ch. engchi. i Un. v. 當驗證方的使用者收到系統公開參數、 σ 、以及簽名者的 ID 與 PK A 後,需先根據 e(PK 1 , Ppub ) = e(P, PK 2 ) 等式來驗證 PK A 的合法性。. 若 PK A 是合法的,使用者再依以下步驟驗證 σ 是否合法: (1) 使用者根據簽名 σ = (U ,V ) 及公開的參數可計算出:. (. ). α = V − H 2 e(U , P) ⋅ e(QA , PK1 + Ppub )−v PK2 。. 26.
(35) (2) 接著可推算出 β = [α ]2 。 (3) 回復訊息 m′ = F2. ( β )⊕ β l2. l1. 。. (4) 若 l β = F1 (m′) 則表示此簽章 σ 為合法簽章。 2. 關於此簽章的架構圖,如下圖 4.1 所示:. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 4.1 提案方式的可訊息回復之免憑證簽章架構圖。. 27.
(36) 此方法的正確性可被證明如下:. (. (. 因為 α = V − H 2 e(U , P) ⋅ e QA , PK1 + Ppub. (. ). −v. PK2. ). (. ). = H 2 μ r PK2 + α − H 2 e(U , P) ⋅ e(QA , PK1 + Ppub ) PK2 −v. (. 所以我們只需證明 μ r = e(U , P) ⋅ e QA , PK1 + Ppub. ). −v. ). 的等式是否成立即可:. e(U , P) ⋅ e(QA , PK1 + Ppub ). −v. −v. 1. pub. ). r. V. V. Nat. = e(P, P ) ⋅ e(D A , P ) ⋅ e(S A , P ) ⋅ e(Q A , x A P ) V. = e ( P , P ) ⋅ e ( D A , P ) ⋅ e (S A , P ) ⋅ e ( x A Q A , P ) r. V. io. al. r. V. n. = e(P, P ) ⋅ e(D A , P ) ⋅ e(S A , P ) ⋅ e(S A , P ) V. Ch. −V. −v. −V. ⋅ e(Q A , sP ). −V. ⋅ e(sQ A , P ). ⋅ e( D A , P ). engchi U. −V. −V. ‧. ‧ 國. V. 學. (. = e(rP, P ) ⋅ e(D A + S A , P ) ⋅ e QA , x A P + Ppub. y. A. sit. A. er. = e(rP + V (DA. 政 治 大 + S ), P) ⋅ e(Q , PK + P ) 立. =ve(P, P ) ni. −V. r. = μr. 若 σ 是合法的簽名,則 [β ]10 = α 且 β = F1 (m) (F2 (F1 (m)) ⊕ m ) = β = [α ]2 。 因此,我們可以得到:. F2. ( β )⊕ β l2. l1. = F2 (F1(m)) ⊕ (F2 (F1(m)) ⊕ m) =m 最後,若 l β = F1 (m) ,則即可驗證訊息的正確性。 2. 28.
(37) 4.2 不限制訊息長度之免憑證簽章. . 針對沒有限制長度的訊息,簽名的步驟與方法大致上跟前面所提的一樣,因此這 裡我們只針對有修改的部份做討論: [Setup] 在這個步驟我們只修改了 F1 ,新的定義如下:. 政 治 大. 2. 立. 學. [Sign]. F1 : {0,1}∗ → {0,1}l. ‧ 國. . 此階段針對一欲簽名的訊息 m ∈ {0,1} ,簽名者 A 會執行以下步驟來對 m 做簽名: ∗. ‧. sit. y. Nat. (1) 計算 β = F1 (m) (F2 (F1 (m)) ⊕ m ) ,接著定義 α = [β ]10 。 l. n. al. iv n e n g cV h= Hi U (μ PK ) + α 。 ,接著計算. Ch. (3) 隨機挑選一亂數 r ∈ Z q∗. er. io. (2) 將訊息 m 劃分為 m2 m1 且 m1 ∈ {0,1} 1 。. r. 2. 2. (4) 計算 U = rP + V (DA + S A ) 。 最後我們將 m 的簽名 σ = (U,V ) 及部份訊息 m 2 送給驗證方。 [Verify] 當驗證方的使用者收到系統公開參數、 m 2 、 σ 、以及簽名者的 ID 與 PK A 後,需先根 據 e(PK 1 , Ppub ) = e(P, PK 2 ) 等式來驗證 PK A 的合法性。. 29.
(38) 若 PK A 是合法的,使用者再依以下步驟驗證 σ 是否合法: (1) 使用者根據簽名 σ = (U,V ) 及公開的參數可計算出:. (. α = V − H 2 e(U , P) ⋅ e(QA , PK1 + Ppub )−v PK2. ). (2) 接著可推算出 β = [α ]2 。. ( β )⊕ β 。 政 治 大 ) 則表示此簽章 σ 為合法簽章。 m′立. (3) 回復部份訊息 m1′ = F2 (4) 若 l β = F1 (m2. l1. 1. 學. ‧ 國. 2. l2. 若簽章 σ 為合法簽章,我們可以回復訊息 m = m2 m1′ 。. ‧. 關於此改良方法的正確性,其證明與前面所述差不多,故這裡就不多做介紹。. n. er. io. sit. y. Nat. al. Ch. engchi. 30. i Un. v.
(39) 第五章安全性與效能分析. . 此章節我們將會針對上一章節所提出的簽章系統做安全性的證明,我們會利用到 Random Oracle Model[7]證明工具設計出一套安全性模組,然後針對免憑證簽章中的 Type I 與 Type II 兩種攻擊者去進行安全性假設,接著我們會利用 Forking Lemma 輔助 定理[17]來幫助我們將安全性假設導入到定理 2 之 CDH 難問題,然後再利用矛盾證明 法來證明我們的簽章方法是安全的,最後我們也會與其他相關的簽章方法做簡單的效 能分析與比較。. 立. 政 治 大. ‧ 國. 學 ‧. 5.1 證明方法介紹 . Nat. sit. y. 此小節我們將介紹 Random Oracle Model 的概念以及通常密碼學者如何利用它來. n. al. er. io. 證明簽章演算法的安全性,接著我們再介紹一個證明簽章演算法時所用到的輔助定理: Forking Lemma 的定義。. Ch. engchi. i Un. v. 5.1.1 Random Oracle Model 1993 年,Bellare 及 Rogway[7]指出雜湊函數可被視為隨機函數,使用雜湊函數的 簽章機制可以在 Random Oracle Model 下證明其安全性。為了證明一個數位簽章演算 法的安全性,我們必須導入 Random Oracle 的概念,Random Oracle 可以被視為完美的 雜湊函數,在假設雜湊函數皆為完全隨機(truly random)的情況下,任何一個機率式多 項式演算法都沒辦法自行計算出此雜湊函數的輸出值,因此我們必須向外在的 Random Oracle 詢問此雜湊函數的輸出值,而 Random Oracle Model 的精神就是我們可 31.
(40) 以藉由控制此外在的 Random Oracle 的輸出值以及一個假設可以破解目標系統的演算 法,使其來破解某個公認的難問題,因為目前的難問題尚無解,因此藉由反證法,我 們可以證明我們欲證明的簽章演算法是安全的。 通常,我們會利用 Random Oracle Model 將我們的簽章系統模組化,我們欲利用 此安全性模組來證明簽章演算法的安全性,首先我們會以外在獨立的 Random Oracle 來取代簽章演算法中的雜湊函數,如此所證明的簽章安全性才與雜湊函數無相依關係, 在此模組中攻擊者可以向 Random Oracle 詢問相對應某一輸入的輸出值,攻擊者再藉. 政 治 大. 由這些輸出值來破解簽章演算法,另一方面,此模組中存在著另一挑戰者(Challenger),. 立. 挑戰者會控制著 Random Oracle 的輸出值,並隨時紀錄 Random Oracle 的輸入與輸出. ‧ 國. 學. 值,挑戰者的目的就是利用攻擊者成功破解的結果來攻破公認的難問題,只要攻擊者 有不可忽略的機率可以攻破簽章演算法,挑戰者同樣也可以攻破難問題,最後利用反. ‧. 證法即可證明簽章演算法的安全程度。. n. al. er. io. sit. y. Nat 5.1.2 Forking Lemma. Ch. engchi. i Un. v. Forking Lemma 是密碼學者在證明簽章安全性時常使用到的輔助定理,根據 Pointcheval 及 Stern 對 Forking Lemma 的定義[17],Forking Lemma 只適用在 Generic Signature 的格式下,滿足 Generic Signature 條件的簽章格式為 (r , h, s ) ( r 代表著亂數,. h 代表著輸入為 (m, r ) 的雜湊值, s 代表著只和 (r, m, h) 相依的簽章。 在我們的簽章演算法中,我們可將 V = H 2 (μ r PK 2 ) + α 中的亂數 r 視作 r ,且由於. α 中包含著訊息 m ,因此我們可將 H 2 (μ r PK 2 ) + α 當作另個 H 2′ (m, r ) 並視為 h ,而 σ = (U ,V ) 即可視作只與 (r, m, h) 相依的 s ,因此我們可以得知我們的簽章方法滿足 Generic Signature 的簽章格式。 32.
(41) 定理 6: (Forking Lemma),在 Generic Signature 演算法下,令 A 為一個只能輸入公開資料機率 式多項式時間之狀態機(Probabilistic Polynomial Time Turning Machine)。令 Q 為 A 向 Random Oracle 要求的次數。假設在時間 T , A 可以在機率 ε > 7Q / 2 k ( k 為系統安全參 數)下產生一組合法的簽章 (m, r , h, s ) ;則 A 亦能夠在時間 T ′ ≤ 84480TQ / ε 內產生二組簽 章 (m, r , h, s ) 及 (m, r , h′, s ′),其中 h ≠ h ′ ( h′ 為 A 換了 Random Oracle 後對於 (m, r ) 的回傳 值)。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 33. i Un. v.
(42) 5.2 安全性模組. . 此小節我們將針對免憑證簽章機制的安全性定義做討論,並根據攻擊者能力的不 同,利用 Random Oracle Model 設計出兩種 Game。. 5.2.1 Security Definition. 政 治 大 不同分成兩種情況討論,如下所述: 立. 根據 Al-Riyami 等學者的定義[1],免憑證簽章的安全性通常會根據攻擊者的能力. ‧ 國. 學. . Type I 攻擊者. ‧. 此種情況是假設 PKG 是公正的 TTP,這類型的攻擊者 AI 無法從 PKG 那裡得到 PKG 所生成的部份私密金鑰,但攻擊者 AI 能夠偽造簽名者的私密金鑰以及有能力替. y. Nat. er. al. n. Type II 攻擊者. io. . sit. 換簽名者的公開金鑰,此種攻擊者我們歸為 Type I 攻擊者。. Ch. engchi. i Un. v. 此種情況是假設 PKG 不是公正的 TTP,這類型的攻擊者 AII 可輕易地從 PKG 那裡 得到 PKG 所生成的部份私密金鑰,但無法得到與簽名者相對應的私密金鑰以及替換簽 名者的公開金鑰,基於這種假設的攻擊者我們歸為 Type II 攻擊者。 若免憑證簽章系統可以抵擋此兩種攻擊者的攻擊,則我們可以說此系統是安全的。 此外,我們會根據攻擊者能力的不同設計出兩種 Game,每個 Game 將有五個 Random Oracle 會被攻擊者詢問,以下是我們對這五個 Oracle 的定義:. 34.
(43) 1.. CreateUser: 輸入為使用者的身份識別 ID ∈ {0,1}∗ ,若 ID 已被建立在 CreateUser List 中,則 不 會 發 生 任 何 事 。 否 則 , 此 Oraclec 會 執 行 免 憑 證 簽 章 的 Partial-Private-Key-Extract、Set-Secret-Value、Set-Public-Key 三個演算法來得 到 partial private key DID 、secret value x ID 以及 public key PK ID ,最後再把 ID 的資訊紀錄在 CreateUser List。此兩種情況皆會輸出 PK ID 來回應。. 2.. PartialKeyExtract:. 立. 政 治 大. 輸入為使用者的身份識別 ID ,若 ID 已被建立在 CreateUser List 中,此 Oracle. ‧ 國. 3.. 學. 會回覆相對應的 partial private key DID 。否則,回覆一個錯誤信號 "⊥" 。 SecretValueExtract:. ‧. y. Nat. 輸入為使用者的身份識別 ID ,若 ID 已被建立在 CreateUser List 中,此 Oracle. al. er. io. PublicKeyReplace:. n. 4.. sit. 會回覆相對應的 secret value x ID 。否則,回覆一個錯誤信號 "⊥" 。. Ch. engchi. i Un. v. ′ ,若 ID 已被建立 輸入為使用者的身份識別 ID 以及一隨機的 public key PK ID ′ 並紀 在 CreateUser List 中,此 Oracle 會將使用者 ID 原本的 PK ID 替換成 PK ID 錄於 CreateUser List 中。否則,不會發生任何事。 5.. Sign: 輸入為使用者的身份識別 ID 以及一訊息 m ∈ {0,1}∗ ,若 ID 已被建立在 CreateUser List 中,此 Oracle 會回覆一合法的簽章 σ 並紀錄於資料表中,合 法的簽章需滿足 true ← Verify( params, m, σ , ID, PK ID ) 的條件(在這裡的 PK ID 是 CreateUser Oracle 所給的)。否則,回覆一個錯誤信號 "⊥" 。 35.
(44) 5.2.2 Security Model 在 1988 年的時候,Goldwasser、Micali and Revist 提出了一個關於數位簽章安全 性 的 概 念 : Existential Unforgeability Against Adaptive Chosen Message Attacks (EUF-ACMA)[11],若我們能夠在攻擊者任意選擇訊息攻擊模式(Adaptively chosen message attack)下證明簽章的安全性,我們就稱該簽章方法滿足 EUF-ACMA。因此, 為了證明免憑證簽章機制能夠滿足 EUF-ACMA 的安全概念,我們針對 Type I 攻擊者. AI 以及 Type II 攻擊者 AII 分別設計了兩個 Game: Game 1 及 Game 2,其定義如下: Game 1:. 立. 政 治 大. ‧ 國. 學. 這個 Game 是由一挑戰者 C 以及進行 Adaptively chosen message attack 的 Type I 攻 擊者 AI 所參與,其 Game 的流程如下:. ‧. . Setup: 挑戰者 C 先執行免憑證簽章的 Setup 演算法來得到系統公開參數 params. Nat. sit. y. 以及 PKG 的私密金鑰 msk ,接著挑戰者 C 把系統公開參數 params 傳送給攻擊者. n. al. er. io. AI ,但 msk 只有挑戰者 C 知道。 . 及的五個 Oracle。 . i Un. v. Queries: 在一有限的多項式時間內,攻擊者 AI 會向挑戰者 C 詢問 5.2.1 小節中提. Ch. engchi. Forgery: 若滿足以下條件,攻擊者 AI 成功偽造一合法簽章 (ID ∗ , PK ID ∗ , m ∗ , σ ∗ ) 並 在此 Game 中獲得勝利。. (. ). 1.. true ← Verify params , ID ∗ , PK ID ∗ , m ∗ , σ ∗ 。. 2.. AI 從未向 Sign Oracle 詢問過 (ID ∗ , m ∗ ) 。. 36.
(45) AI 從未向 PartialKeyExtract Oracle 及 SecretValueExtract Oracle 詢問過 ID ∗ 。. 3.. 定義 1:若在機率式多項式演算法時間內,攻擊者 AI 有微乎其微的機率可以在 Game 1 中獲得勝利,我們則可以說此免憑證簽章面對 Type I 攻擊者是安全的。. Game 2: 這個 Game 是由一挑戰者 C 以及進行 Adaptively chosen message attack 的 Type II. 政 治 大. 攻擊者 AII 所參與,其 Game 的流程如下:. 立. Setup: 挑戰者 C 先執行免憑證簽章的 Setup 演算法來得到系統公開參數 params. 學. ‧ 國. . 以及 PKG 的私密金鑰 msk ,接著挑戰者 C 把系統公開參數 params 及 msk 皆傳送. Queries: 在一有限的多項式時間內,攻擊者 AII 會向挑戰者 C 詢問 5.2.1 小節中. sit. y. Nat. . ‧. 給攻擊者 AII 。. io. al. v. Forgery: 若滿足以下條件,攻擊者 AII 成功偽造一合法簽章 (ID ∗ , PK ID ∗ , m ∗ , σ ∗ ) 並. n. . er. 提及的五個 Oracle。. 在此 Game 中獲得勝利。. Ch. engchi. (. i Un. ). 1.. true ← Verify params , ID ∗ , PK ID ∗ , m ∗ , σ ∗ 。. 2.. AII 從未向 Sign Oracle 詢問過 ID ∗ , m ∗ 。. 3.. AII 從未向 SecretValueExtract Oracle 詢問過 ID ∗ 。. (. ). 37.
(46) 定義 2:若在機率式多項式演算法時間內,攻擊者 AII 有微乎其微的機率可以在 Game 2 中獲得勝利,我們則可以說此免憑證簽章面對 Type II 攻擊者是安全的。. 定義 3:若在機率式多項式演算法時間內,此免憑證簽章在面對上述 Type I 攻擊者及 Type II 攻擊者的情況下是安全的,我們則可以說此免憑證簽章機制滿足 Existential Unforgeability Against Adaptive Chosen Message Attacks (EUF-ACMA)的安全概念。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 38. i Un. v.
(47) 5.3 安全性證明. . 此小節我們將針對我們所提出的可訊息回覆之免憑證簽章機制做完整的安全性證 明,由於有限制訊息長度方案與無限制訊息長度方案的證明方法類似,故在此我們只 針對有限制訊息長度之方案做證明。 基於 CDH 難問題的假設,我們會證明我們的簽章方法在 Random Oracle Model 下面對 Type I 攻擊者及 Type II 攻擊者能夠符合定義 3 並滿足 EUF-ACMA 的安全概念。. 政 治 大. 以下我們將會利用本文章中 5.2.2 小節所提到的安全性模組來證明面對 Type I 攻擊者. 立. 及 Type II 攻擊者時簽章的安全性。. ‧. ‧ 國. 學. 5.3.1 Unforgeability against Type I Adversary. y. Nat. sit. 若存在一 Type I 攻擊者 AI 可以攻破我們的簽章演算法,那我們可以假設存在另一. n. al. er. io. 個挑戰者 C ,挑戰者 C 可以模擬我們的簽章演算法,並利用 AI 為一黑盒子(black box). i Un. v. 來達到解決 CDH 難問題的目的。為了讓簽章方法與 CDH 難問題有關連性,所以我們. Ch. engchi. 希望針對一特定 ID ∗ ,挑戰者 C 會將 Q ID ← aP 及 Ppub ← bP ,而挑戰者 C 的目的就是 ∗. 要利用 AI 攻擊成功的結果來得到 D ID ← abP 這個值,關於證明過程如下所述: ∗. . Setup: 為了能讓攻擊者 AI 能順利執行,挑戰者 C 會先模擬整個簽章環境來得到 系統參數,接著再模擬 Oracle 來回應攻擊者 AI 的詢問,此證明中我們也考慮模擬 雜湊函數 H 1 、 H 2 、 F1、 F2 的 Random Oracle。此階段挑戰者 C 會執行以下步驟:. 39.
(48) 1.. C 設置 Ppub ← bP 。. 2.. C 將系統參數 G1 , G 2 , q, e, P, Ppub , μ , H 1 , H 2 , F1 , F2 , l1 , l 2 傳送給 AI ,並允許 AI. 可以執行 C 所模擬的簽章環境。. Query: 任意多項式時間內,攻擊者 AI 被允許向以下的 Oracle 詢問,這些 Oracle 皆是由挑戰者 C 所模擬,且為了保持一致性(consistency)與避免衝突(collision),. 政 治 大. 我們假定挑戰者 C 會紀錄每一個 Oracle 的輸入與輸出:. 立. CreateUser:輸入為使用者的身份識別 IDi ,若 IDi 已被建立在 CreateUser-List. 學. 1.. ‧ 國. 中,則不會發生任何事。否則, C 先選取 x i ∈R Z q∗ 、 y i ∈R Z q∗ ,接著設置. ‧. (. ). y. sit. 若 i ≠ t,C 會設置 Q ID = H (IDi ) = y i P、D ID = bQ ID = by i P = y i bP = y i Ppub 、. io. z. Nat. PK IDi = PK ( IDi ,1) , PK ( IDi , 2 ) = (x i P , x i Ppub ) ,因此:. i. n. al. i. er. . Ch. i Un. 以及 S ID = xi Q ID = xi y i P 。 i. z. i. engchi. i. v. 若 i = t , C 會設置 Q ID = H (IDt ) = aP 以及 S ID = xt Q ID = xt aP ,接著設置 t. t. t. D IDt =" ⊥" 代表著無法計算出 Partial Private Key。. 最後,此兩種情況 C 皆會回應 (Q ID , PK ID ) 給 AI 。 i. 2.. i. PartialKeyExtract:輸入為使用者的身份識別 IDi,若 IDi 已被 CreateUser Oracle 建立且 i ≠ t ,則 C 會回覆 D ID = yi Ppub 給 AI 。否則, C 則回覆 "⊥" 表示此模擬 i. 終止。 40.
(49) 3.. ′ ,是為 PublicKeyReplace:輸入為使用者的身份識別 IDi 以及 AI 所選的 PK ID i. 了用來取代原本 IDi 的 PK ID ,若 IDi 已被 CreateUser Oracle 建立, C 會將 IDi i. ′ 。否則, C 則回覆 "⊥" 表示此模擬終止。 原本的 PK ID 替換成 PK ID i. 4.. i. SecretValueExtract:輸入為使用者的身份識別 IDi ,若 IDi 已被 CreateUser Oracle 建立且 i ≠ t ,則 C 會回覆 x i 給 AI 。否則, C 則回覆 " ⊥" 表示此模擬終. 政 治 大. 止。(在這裡 AI 所詢問的 secret value 與原本 CreateUser Oracle 設置的 public. 立. 學. 5.. ‧ 國. key 是相對應的). H 1 query:輸入為使用者的身份識別 IDi,若 IDi 已被 CreateUser Oracle 建立,. ‧. 則 C 會回覆 Q ID ( = y i P )給 AI 。否則, C 則回覆 "⊥" 表示此模擬終止( C 會紀 i. Nat. (. )。. sit. ). H 2 query:輸入為一 wi ∈ {0,1}. n. al. Ch. G1 + G2. (因為 H 2 (μ r PK 2 ) 中的 r 亦是隨機亂數,. engchi. er. io. 6.. y. 錄所有的 input/output 於 H 1 -List,儲存格式為 IDi , QIDi. i Un. v. 故我們將 μ r PK 2 視為 w ), C 會先確認 H 2 -List,若 wi 已經在 H 2 -List 中,則 C 會回覆 H 2 -List 中相對應的 v i 給 AI ,否則, C 會回覆一隨機選取的 vi ∈ Z q∗. 給 AI ( C 會紀錄所有的 input/output 於 H 2 -List,儲存格式為 (wi , vi ) )。 7.. F1 and F2 queries:若 AI 是向 F1 Oracle 詢問,則輸入為 l1 bit 的值, C 會回 覆一隨機 l 2 bit 的值給 AI 。若 AI 是向 F2 Oracle 詢問,則輸入為 l 2 bit 的值,C 會回覆一隨機 l1 bit 的值給 AI ( C 會紀錄所有的 input/output 於 F1 -List 與 F2 -List)。. 41.
(50) Sign:輸入為使用者的身份 識別 IDi 以及一訊息 m ∈ {0,1}l ,若 IDi 尚未被 1. CreateUser Oracle 建 立 , 則 C 會 回 覆 " ⊥" 表 示 此 模 擬 終 止 。 若 IDi 已 被 CreateUser Oracle 建立,則分兩種情況討論,第一種情況是當 IDi ≠ IDt 時,C 會利用 CreateUser-List 中的 (S ID , D ID ) 來產生一合法的簽章 σ ,另一種情況 i. i. 是當 IDi = IDt 時, C 會偽造一合法的簽章,其過程如下:. 政 治 大. (1) 隨機選取 U ∈ G1 、 V ∈ Z 。. 立. (2) 計算 β = F1 (m ) (F2 (F1 (m )) ⊕ m ) 。. 學. ‧ 國. (3) 計算 α = [β ]10 。. ‧. (. ). io. al. −v. PK ( IDi , 2 ) 視為 H 2 -List 中的 wi∗ )。. i v) n U. n. (. ). y. (. e(U , P ) ⋅ e QIDi , PK ( IDi ,1) + Ppub. sit. Nat. (4) 設 置 H 2 e(U , P ) ⋅ e(Q IDi , PK ( IDi ,1) + Ppub )− v PK ( IDi , 2 ) = V − α ( 我 們 可 將. er. 8.. (5) 將 H 2 e(U , P ) ⋅ e(Q IDi , PK ( IDi ,1) + Ppub )− v PK ( IDi , 2 ) = V − α 儲存到 H 2 -List (儲 存格式為. Ch. engchi (w , (V − α ) ) ),此時要考慮兩種情況: ∗ i. ∗. z 若 wi∗ 已經在 H 2 -List 中,但 output (V − α )∗ ≠ vi 。 z 若 output (V − α )∗ = vi ,但 input wi∗ ≠ wi 。 若上述任一種情況發生, C 則會立刻終止此 Query 且重新再進行一次 Sign Query。 (6) 得到一合法的簽章 σ = (U ,V ) 並回覆給 AI 。. 42.
(51) . Forgery: 除非攻擊者 AI 異常終止,否則挑戰者 C 會一直與攻擊者 AI 保持互動。 經過所有 Oracle 的詢問後,若攻擊者 AI 沒有異常終止,攻擊者 AI 會成功偽造一. (. (. ). ). 合法簽章 ID ∗ , PK ID ∗ = PK (ID ∗ ,1) , PK (ID ∗ , 2 ) , m ∗ , σ ∗ (= U ∗ , V ∗ ) ,並在此 Game 中獲得勝 利。. 現在我們就可以利用上述的結果來破解 CDH 難問題,若 ID ∗ ≠ IDt ,挑戰者 C 則. 政 治 大. 回覆 "⊥" 表示此模擬終止,否則,若 ID ∗ = IDt ,表示攻擊者 AI 可在挑戰者 C 所模擬的. 立. (. ). ‧ 國. 學. 環境下成功偽造一合法簽章 σ ∗ = U ∗ ,V ∗ 。由 5.1.2 小節我們可以得知我們的簽章方法 滿足 Generic Signature 簽章格式 (r, h, s ) ,因此根據 Forking Lemma 的定義[4],若挑戰. ‧. 者 C 在利用自己所定義之 Random Oracle 的情況下,攻擊者 AI 有不可忽略的機率偽造. sit. y. Nat. 出一組簽章,那麼當挑戰者 C 在第二次模擬的中途換了一個 Random Oracle,攻擊者 AI. n. al. ∗. er. io. 也能對相同的 (r, m ) 偽造出另一組簽章,因此,挑戰者 C 可以在相同的 ID ∗、 PK ID 、m∗. i Un. v. 情況下得到另一個合法的簽章 σ ′ = (U ′,V ′)。由於 σ ∗ 與 σ ′ 皆是與 ID ∗ 、 PK ID 、 m∗ 相對. Ch. engchi. ∗. 應的合法簽章,所以我們可以得到 U ∗ = rP + V ∗ (D ID + S ID ) 以及 U ′ = rP + V ′(D ID + S ID ), ∗. (. ). ∗. 接著挑戰者 C 可以利用 U ∗ ,U ′ 來計算出 D ID ,其計算過程如下:. (U. ∗. ) (. ∗. ). − U ′ = V ∗ − V ′ ⋅ (D ID ∗ + S ID ∗ ). (. ⇒ (DID∗ + S ID∗ ) = V ∗ − V ′. ) (U −1. ∗. −U ′. ). 43. ∗. ∗.
(52) (. 最後,挑戰者 C 可以得到 DID∗ = V ∗ − V ′. ) (U −1. ∗. ). − U ′ − S ID∗ (根據 Type I 攻擊者的定. 義攻擊者 AI 知道 S ID∗ ),而 D ID 也是挑戰者 C 欲破解之 CDH 難問題的結果(在給予 P 、 ∗. Q ID ∗ ← aP 、 Ppub ← bP 情況下,可以得到 D ID ∗ ← abP )。因此,我們可以說挑戰者 C 破. 解了 CDH 難問題,但事實上 CDH 難問題為無法解決,因此根據矛盾證明法,我們可 以得到我們的簽章方法在面對 Type I 攻擊者 AI 時是安全的且符合定義 1。. (. ) (. ). 在這裡我們要注意,在 PK ID∗ = PK (ID∗ ,1) , PK (ID∗ , 2 ) = PK ( IDt ,1) , PK ( IDt , 2 ) 的情況下,若 PK ID ∗. 政 治 大 是一開始在 CreatUser Oracle 原始生成的公開金鑰,則我們即可直接由上述證明 立. ‧ 國. 學. 過程來解決 CDH 難問題,否則,根據 Type I 攻擊者的定義,攻擊者 AI 具有替換公開 ′ 為新的公開金鑰, 金鑰的能力,若攻擊者 AI 在 PublicKeyReplace Oracle 替換了 PK ID ∗. ‧. (. ) (. ). ′ 亦可通過公開金鑰的驗證式 e PK (′ID∗ ,1) , Ppub = e P, PK (′ID∗ , 2 ) ,因此這裡要考慮 此時 PK ID ∗. sit. y. Nat. ′ 的方法: 兩種攻擊者 AI 替換 PK ID. n. al. er. io. ∗. Ch. i Un. v. ′ 替換掉原本的 PK ID ,此種情況挑戰者 C 無法得知 (1) 攻擊者 AI 會直接選取一 PK ID ∗. engchi. ∗. (. ). ′ 相對應的 x ID ,因此也就無法得知 S ID∗ = x ID∗ QID∗ 並利用其來計算 與 PK ID ∗. ∗. (. DID∗ = V ∗ − V ′ (2) 攻. 擊. 者. ) (U −1. AI. (. ∗. ). − U ′ − S ID∗ 。 會. 隨. 機. 選. 取. 一. 亂. 數. r. ,. ). 計. 算. ′ ∗ = rPK ID∗ = rPK (ID∗ ,1) , rPK (ID∗ , 2 ) = (rx ID∗ P, rx ID∗ Ppub ) 並替換掉原本的 PK ID ,此 PK ID ∗. ′ 相對應的 種 情 況 由 於 挑 戰 者 C 無 法 得 知 r , 因 此 也 就 無 法 得 知 與 PK ID ∗. (. S ID∗ (= rx ID∗ QID∗ ) 並利用其來計算 DID∗ = V ∗ − V ′. 44. ) (U −1. ∗. ). − U ′ − S ID∗ 。.
(53) ′ 相對應的 x ID 或者 r , D ID 即可 根據上述兩種替換方法,若挑戰者 C 能求得與 PK ID ∗. ∗. ∗. 被計算出來且 CDH 難問題亦可順利破解。. 在攻擊者 AI 可替換公開金鑰的情況下,我們會利用到 The Knowledge of Exponent Assumption (KEA),其定義如下[9,23]: 定理 7:. 政 治 大. (The Knowledge of Exponent Assumption),令 g 為一質數有序群(prime order group) g. 立. ‧ 國. 學. 的生成元。令 k = log g 為一秘密參數。針對任意的機率多項式時間(probabilistic. [. ]. ‧. polynomial time, PPT)之演算法 A,若 A 的輸入為 g 和 g a ( a 是此範圍 0, g − 1 中隨機. sit. y. Nat. 挑選出來的),其輸出為 (x, y ) 且 x ∈ g ,則亦會存在另一 PPT 之提取者(extractor). n. al. er. io. E , E 會在相同的輸入情況下輸出 (x r , y r )( r 為任意值),使得 k 於足夠大的情況下滿. 足:. [. Ch. i Un. v. e ]n g1c h(iQ 為任意之多項式). Pr y = x a and g r ≠ x <. Q(k ). 根據定理 7 我們可以知道: z. (. ). (. ). 於乘法群中已知 ( A, B ) = g , g b 的情況下,若能計算出 (C , D ) = g x , g bx 並滿 足 log CA = log DB 的條件,我們即可假設 x 的值可以被求出來。. z. 於加法群中已知 ( A, B ) = (P, bP ) 的情況下,若能計算出 (C , D ) = ( xP, xbP ) ,我 們即可假設 x 的值可以被求出來。 45.
(54) (. ). ′ ∗ 或從 因此根據 KEA,若攻擊者 AI 能從 (P, Ppub ) = (P, bP ) 計算出 x ID∗ P, x ID∗ bP = PK ID. (. ). (. ). ′ ∗ ,我們即可假設攻擊者 AI PK ID∗ = PK (ID∗ ,1) , PK (ID∗ , 2 ) 計算出 rPK (ID∗ ,1) , rPK (ID∗ , 2 ) = PK ID 能夠求出 x ID 或 r ,因此挑戰者 C 即有辦法從而得知,則挑戰者 C 即可計算出 D ID 並 ∗. ∗. 解決 CDH 難問題。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 46. i Un. v.
(55) 5.3.2 Unforgeability against Type II Adversary 若存在一 Type II 攻擊者 AII 可以攻破我們的簽章演算法,那我們可以假設存在另 一個挑戰者 C ′ ,挑戰者 C ′ 可以模擬我們的簽章演算法,並利用 AII 為一黑盒子(black box)來達到解決 CDH 難問題的目的。為了讓簽章方法與 CDH 難問題有關連性,所以 我們希望針對一特定 ID ∗ ,挑戰者 C ′ 會將 Q ID ← aP 及 PK (ID∗ ,1) ← bP ,而挑戰者 C ′ 的 ∗. 目的就是要利用 AII 攻擊成功的結果來得到 S ID ← abP 這個值,關於證明過程如下所 ∗. 述:. 立. Setup: 為了能讓攻擊者 AII 能順利執行,挑戰者 C ′ 會先模擬整個簽章環境來得到. 學. ‧ 國. . 政 治 大. 系統參數,接著再模擬 Oracle 來回應攻擊者 AII 的詢問,此證明中我們也考慮模 擬雜湊函數 H 1 、 H 2 、 F1 、 F2 的 Random Oracle。此階段挑戰者 C ′ 會執行以下步. ‧. Nat. y. 驟:. 2.. C ′ 將系統參數 G1 , G 2 , q, e, P, Ppub , μ , H 1 , H 2 , F1 , F2 , l1 , l 2 及系統私密金鑰 s 傳. er. n. al. sit. C ′ 設置 Ppub ← sP 。. io. 1.. Ch. engchi. i Un. v. 送給 AII ,並允許 AII 可以執行 C ′ 所模擬的簽章環境。 . Query: 任意多項式時間內,攻擊者 AII 被允許向以下的 Oracle 詢問,這些 Oracle 皆是由挑戰者 C ′ 所模擬,由於攻擊者 AII 已知系統私密金鑰 s 以及所有的部份私密 金鑰,所以 PartialKeyExtract Oracle 不會被詢問,且為了保持一致性(consistency) 與避免衝突(collision),我們假定挑戰者 C ′ 會紀錄每一個 Oracle 的輸入與輸出: 1.. CreateUser:輸入為使用者的身份識別 IDi ,若 IDi 已被建立在 CreateUser-List 中,則不會發生任何事。否則, C ′ 先選取 x i ∈R Z q∗ 、 y i ∈R Z q∗ ,因此:. 47.
(56) z. 若 i ≠ t ,C ′ 會設置 Q ID = H (IDi ) = y i P 、D ID = sQ ID = sy i P = yi sP = yi Ppub 、 i. i. i. 以及 S ID = xi Q ID = xi y i P 、 PK ID = (PK ( ID ,1) , PK ( ID , 2 ) ) = (xi P , xi Ppub )。 i. z. i. i. i. i. 若 i = t , C ′ 會設置 Q ID = H (IDt ) = aP 以及 t. (. ). PK IDt = PK ( IDt ,1) , PK ( IDt , 2 ) = (bP , sbP ),接著設置 DIDt = yt Ppub 以及 S IDt ="⊥". 代表著無法計算出使用者 IDt 的 Private Key。. 政 治 大. 最後,此兩種情況 C ′ 皆會回應 (QID , PK ID ) 給 AII 。. 立. i. SecretValueExtract :輸 入為 使 用者的身份識別 IDi , 若 IDi 已被 CreateUser. ‧ 國. 學. 2.. i. Oracle 建立且 i ≠ t ,則 C ′ 會回覆 x i 給 AII 。否則, C ′ 則回覆 " ⊥" 表示此模擬. ‧. 終止。(在這裡 AII 所詢問的 secret value 與原本 CreateUser Oracle i ≠ t 時所設. y. Nat. al. er. io. v. H 1 query:輸入為使用者的身份識別 IDi,若 IDi 已被 CreateUser Oracle 建立,. n. 3.. sit. 置的 public key 是相對應的). Ch. engchi. i Un. 則 C ′ 會回覆 Q ID ( = y i P )給 AII 。否則,C ′ 則回覆 "⊥" 表示此模擬終止( C ′ 會紀 i. (. 錄所有的 input/output 於 H 1 -List,儲存格式為 IDi , QIDi 4.. H 2 query:輸入為一 wi ∈ {0,1}. G1 + G2. ). )。. (因為 H 2 (μ r PK 2 ) 中的 r 亦是隨機亂數,. 故我們將 μ r PK 2 視為 w ), C ′ 會先確認 H 2 -List,若 wi 已經在 H 2 -List 中,則 C ′ 會回覆 H 2 -List 中相對應的 v i 給 AII ,否則,C ′ 會回覆一隨機選取的 vi ∈ Z q∗. 給 AII ( C ′ 會紀錄所有的 input/output 於 H 2 -List,儲存格式為 (wi , vi ) )。. 48.
(57) 5.. F1 and F2 queries:若 AII 是向 F1 Oracle 詢問,則輸入為 l1 bit 的值, C ′ 會回 覆一隨機 l 2 bit 的值給 AII。若 AII 是向 F2 Oracle 詢問,則輸入為 l 2 bit 的值,C ′ 會回覆一隨機 l1 bit 的值給 AII ( C ′ 會紀錄所有的 input/output 於 F1 -List 與 F2 -List)。 Sign:輸入為使用者的身份識別 IDi 以及一訊息 m ∈ {0,1}l ,若 IDi 尚未被 1. CreateUser Oracle 建 立 , 則 C ′ 會 回 覆 "⊥" 表 示 此 模 擬 終 止 。 若 IDi 已 被. 政 治 大. CreateUser Oracle 建立,則分兩種情況討論,第一種情況是當 IDi ≠ IDt 時,C ′. 立. 會利用 CreateUser-List 中的 (S ID , D ID ) 來產生一合法的簽章 σ ,另一種情況 i. i. 學. ‧ 國. 是當 IDi = IDt 時, C ′ 會偽造一合法的簽章,其過程如下:. ‧. (1) 隨機選取 U ∈ G1 、 V ∈ Z 。. y. Nat. io. n. al. (3) 計算 α = [β ]10 。. (. sit. (2) 計算 β = F1 (m ) (F2 (F1 (m )) ⊕ m ) 。. er. 6.. Ch. engchi. i Un. v. ). (4) 設置 H 2 e(U , P ) ⋅ e(Q IDi , PK ( IDi ,1) + Ppub )− v PK ( IDi , 2 ) = V − α (我們可將. (. e(U , P ) ⋅ e QIDi , PK ( IDi ,1) + Ppub. ). −v. PK ( IDi , 2 ) 視為 H 2 -List 中的 wi∗ )。. (. ). (5) 將 H 2 e(U , P ) ⋅ e(Q IDi , PK ( IDi ,1) + Ppub )− v PK ( IDi , 2 ) = V − α 儲存到 H 2 -List (儲. (. 存格式為 wi∗ , (V − α )∗. ). ),此時要考慮兩種情況:. z 若 wi∗ 已經在 H 2 -List 中,但 output (V − α )∗ ≠ vi 。 z 若 output (V − α )∗ = vi ,但 input wi∗ ≠ wi 。 49.
(58) 若上述任一種情況發生, C ′ 則會立刻終止此 Query 且重新再進行一次 Sign Query。 (6) 得到一合法的簽章 σ = (U ,V ) 並回覆給 AII 。 . Forgery: 除非攻擊者 AII 異常終止,否則挑戰者 C ′ 會一直與攻擊者 AII 保持互動。 經過所有 Oracle 的詢問後,若攻擊者 AII 沒有異常終止,攻擊者 AII 會成功偽造一. (. (. ). ). 合法簽章 ID ∗ , PK ID ∗ = PK (ID ∗ ,1) , PK (ID ∗ , 2 ) , m ∗ , σ ∗ (= U ∗ , V ∗ ) ,並在此 Game 中獲得勝 利。. 立. 政 治 大. ‧ 國. 學. 現在我們就可以利用上述的結果來破解 CDH 難問題,若 ID ∗ ≠ IDt ,挑戰者 C ′ 則. ‧. 回覆 "⊥" 表示此模擬終止,否則,若 ID ∗ = IDt ,表示攻擊者 AII 可在挑戰者 C ′ 所模擬. Nat. (. ). sit. y. 的環境下成功偽造一合法簽章 σ ∗ = U ∗ ,V ∗ 。由 5.1.2 小節我們可以得知我們的簽章方. n. al. er. io. 法滿足 Generic Signature 簽章格式 (r , h, s ) ,因此根據 Forking Lemma 的定義[4],若挑. i Un. v. 戰者 C ′ 在利用自己所定義之 Random Oracle 的情況下,攻擊者 AII 有不可忽略的機率偽. Ch. engchi. 造出一組簽章,那麼當挑戰者 C ′ 在第二次模擬的中途換了一個 Random Oracle,攻擊 者 AII 也能對相同的 (r , M ) 偽造出另一組簽章,因此,挑戰者 C ′ 可以在相同的 ID ∗ 、 PK ID ∗ 、m∗ 情況下得到另一個合法的簽章 σ ′ = (U ′,V ′)。由於 σ ∗ 與 σ ′ 皆是與 ID ∗、PK ID ∗ 、. m∗ 相 對 應 的 合 法 簽 章 , 所 以 我 們 可 以 得 到 U ∗ = rP + V ∗ (D ID + S ID ∗. (. ). ∗. )以及. ∗ U ′ = rP + V ′(D ID ∗ + S ID ∗ ),接著挑戰者 C ′ 可以利用 U ,U ′ 來計算出 S ID ∗ ,其計算過程如. 下:. 50.
(59) (U. ∗. − U ′) = (V ∗ − V ′)⋅ (D ID ∗ + S ID ∗ ). ⇒ (DID∗ + S ID∗ ) = (V ∗ − V ′) (U ∗ − U ′) −1. (. 最後,挑戰者 C ′ 可以得到 S ID∗ = V ∗ − V ′. ) (U −1. ∗. ). − U ′ − DID∗ (根據 Type II 攻擊者的定. 義攻擊者 AII 知道 D ID ∗ ),而 S ID ∗ 也是挑戰者 C ′ 欲破解之 CDH 難問題的結果(在給予 QID ∗ ← aP 及 PK (ID∗ ,1) ← bP 情況下,可以得到 S ID ∗ ← abP )。因此,我們可以說挑戰者 C ′. 政 治 大. 破解了 CDH 難問題,但事實上 CDH 難問題為無法解決,因此根據矛盾證明法,我們. 立. 可以得到我們的簽章方法在面對 Type II 攻擊者 AII 時是安全的且符合定義 2。. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 51. i Un. v.
相關文件
人機之間靠著密切的訊息 交流來確保二者之間溝通 良好,此訊息之交流稱為 人機互動,而訊息交流之
{ 許多問題都是請受訪者以李克特尺度指出 其同意或不同意的程度,這些問題可以正
使用者甲與使用者乙約定藉由非對稱加密(asymmetric encryption)進行溝通,假設使用者甲先以
KU 群至常奪透遊 性家希、過戲 的庭望甚學規 發以別至習則 展外人攻 -o 依擊漸 一由從性漸 這於他的變 時他們行成 期們的為使 的仍主出與 兒處意現別 童於行。人
Direct Access Attack 直接訪問攻擊. 詳細的攻擊手段描述請閱附件一 SQL
(A)SQL 指令是關聯式資料庫的基本規格(B)只有 SQLServer 2000 支援 SQL 指令(C)SQL 指令 複雜難寫,適合程式進階者使用(D)是由 Oracle 發明的。.
由於自簽的電子證書並非由知名憑證授權單位簽署,因此當使用者進入網 站時會被瀏覽器標注為不安全(例如使用 Google Chrome
定期更新作業系統 定期更新作業系統,修 正系統漏洞,避免受到