• 沒有找到結果。

雙方相等性驗證機制的設計及其應用 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "雙方相等性驗證機制的設計及其應用 - 政大學術集成"

Copied!
74
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University 碩士論文. 立. Master Thesis 政 治 大. ‧. ‧ 國. 學. 雙方相等性驗證機制的設計及其應用. y. Nat. er. io. sit. A Study on the Design of Two-Party Equality Testing Protocol. n. a l and Its Applicationsi v n Ch U engchi 研 究 生:吳承峰 指導教授:左瑞麟. 中華民國 一〇一年七月 July 2012.

(2) 雙方相等性驗證機制的設計及其應用 A Study on the Design of Two-Party Equality Testing Protocol and Its Applications 研 究 生:吳承峰. Student:Cheng-Feng Wu. 指導教授:左瑞麟. Advisor:Raylin Tso. 立. 政 治 大. ‧ 國. 資訊科學系. 學. 國立政治大學. sit. io. A Thesis. er. Nat. y. ‧. 碩士論文. submitteda to Department of Computer Science. n. v i l n Ch in partial fulfillment of the Requirements engchi U for the degree of Master in Computer Science. 中華民國一〇一年七月 July 2011.

(3) 雙方相等性驗證機制的設計及其應用. 摘要. 政 治 大 雙方相等性驗證即是在不洩漏任何自身私密資訊的情況下,進行秘密計算 立. ‧ 國. 學. 來了解彼此的資訊是否相等。然而在大多數的現有協議之中,多數為不公 平的協定,也就是說其中的一方(被告知方)只能相信另一方(告知方)所告知. ‧. sit. y. Nat. 的比較結果,而無從驗證。雖然邱等學者在 2011 年提出的〝具隱私保護功. a. er. io. 能之兩方相等性驗證機制之提案〞已經提供了具雙方驗證的協定,但此方. n. v l 案因為在加密演算法上的限制導致實作較為困難。因此,在本論文中,將 ni Ch. engchi U. 利用 ElGamal 的加密機制,提出了一套新的雙方相等性驗證的協議,具備 相同的雙方相等性驗證的功能,但對加密演算法的限制較少,實作及運算 也較為有效率。另外,搭配模糊傳輸的協定,讓使用者藉由本研究所提出 的協定跟伺服器端溝通,來獲得所欲取得的資料,並同時保障使用者以及 伺服器端的隱私。同時除了理論的證明安全性及正確性之外,也撰寫程式 模擬並證實協定的正確性及討論其效能。. I.

(4) A Study on the Design of Two-Party Equality Testing Protocol and Its Applications. Abstract. 政 治 大. 立. Two-party equality testing protocol allows two entities to compare their. ‧ 國. 學. secrete information without leaking any information except the comparison result. In previous works, the comparison result can only be obtained by one. ‧. entity (ie. informer) and then the entity informs the result to the other entity (ie.. Nat. sit. y. receiver). The receiver has to accept the received result since he has no way to. er. io. verify its correctness. Ciou et al. in 2011 first mentioned this problem and. n. a lto solve the aforementioned proposed a new protocol i v problem. However, their. n U e n gwhich protocol has some specific restrictions c h i making it unpractical. In this paper,. Ch. based on the ElGamal encryption, we propose a new two-party equality testing protocol. Our protocol has the same feature (ie. allows the two entries to test the correctness of the comparison result) as Ciou et al.’s protocol but is more efficient and practical than theirs. On the other hand, combining our protocol with an oblivious transfer protocol can let users communicate with servers and to get the data in a private way. It is useful on the issue of privacy protection. Finally, the security and correctness are discussed and proved. The efficiency of the protocol is also provided. II.

(5) 致謝. 時光飛逝,歲月如梭。兩年的研究生生活隨著此篇論文的完稿,也到了尾 聲。在人生的下個階段開始之前,回顧這兩年來的生活,要感謝的人實在 是太多太多了。首先要感謝的人,當然是我的指導教授,左瑞麟老師。左. 政 治 大 老師在這兩年內的細心指導,讓整個協定以及論文成形、完整。並且在每 立. ‧ 國. 學. 一次碰到問題與瓶頸的同時,都盡心盡力地協助我通過一道道的難關。再 多的言語,也無法表達我對老師的崇敬與感謝。. ‧. sit. y. Nat. 再來,要感謝實驗室的學長們以及同學們。首先是學長士峰以及致諺,. a. er. io. 他們在我碩一時與我討論跟給予指教,對我的影響極大。再來是同學凱彬,. n. v l 程式在他的幫忙下,撰寫得更加的順暢,並且感謝他與我的每一次討論, ni Ch. engchi U. 都讓我獲益良多。最後是同學漢光跟欣瑤,有他們的幫忙與競爭,讓論文 的完成進度更佳的有效率。 最後,當然要感謝我的父母在這兩年來的支持,感謝有他們做為我強力 的後盾。也要感謝女朋友在碩二這一年來的督促以及支持,讓我能夠專心 並且具備動力的完成我的論文。 僅以這篇論文,獻給所有在這兩年內支持鼓勵我的所有師長及好友。. III.

(6) 目錄. 研究動機與目的 ................................................................................................................... 3. 1.3. 研究貢獻 ............................................................................................................................... 4. 1.4. 論文架構 ............................................................................................................................... 4. 背景知識與相關研究 ..................................................................................................................... 5. 政 治 大. 2.1. 同態加密 (Homomorphic Encryption) ................................................................................. 5. 2.2. ElGamal 加密演算法 ........................................................................................................... 8. 2.3. 祕密計算 (Secret Computation) ........................................................................................... 9. 2.4. 模糊傳輸 (Oblivious Transfer) .......................................................................................... 20. 2.5. 離散對數問題 (Discrete Logarithm Problem, DLP) .......................................................... 25. 2.6. 計算性迪菲-赫爾曼問題 (Computational Diffie-Hellman Problem, CDHP) ................... 25. 2.7. 決定性迪菲-赫爾曼問題 (Decisional Diffie-Hellman Problem, DDHP) ......................... 26. 2.8. 語意安全 (Semantic Security)............................................................................................ 26. 3.1. 基礎協定 ............................................................................................................................. 29. 3.2. 雙方相等性驗證之協定 ..................................................................................................... 31. 3.3. 雙方相等性驗證搭配模糊傳輸之協定.............................................................................. 35. 立. 學. ‧. y. sit. al. v i n Ch 研究方法 ....................................................................................................................................... 29 engchi U n. 5.. 1.2. io. 4.. 研究背景 ............................................................................................................................... 1. Nat. 3.. 1.1. er. 2.. 緒論 ................................................................................................................................................. 1. ‧ 國. 1.. 安全性分析 ................................................................................................................................... 42 4.1. 基礎協定安全性分析 ......................................................................................................... 42. 4.2. 雙方相等性驗證安全性分析 ............................................................................................. 43. 4.3. 模糊傳輸安全性分析 ......................................................................................................... 48. 相關應用 ....................................................................................................................................... 50. IV.

(7) 5.1. 登入驗證系統 ..................................................................................................................... 50. 5.2. 線上購買數位化出版品 ..................................................................................................... 53. 5.3. 結合數位與現實的投票情境-核發選票 ............................................................................ 55. 6.. 實作與效能分析 ........................................................................................................................... 57. 7.. 結論 ............................................................................................................................................... 62. 參考文獻 ............................................................................................................................................... 63. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. V. i n U. v.

(8) 圖目錄 圖 1 簡單祕密計算例圖〈一〉........................................................................................................................... 10 圖 2 簡單祕密計算例圖〈二〉........................................................................................................................... 11 圖 3 YAO 協定流程圖 ........................................................................................................................................... 12 圖 4 李姓及武姓協定流程圖............................................................................................................................... 16 圖 5 邱姓協定流程圖 .......................................................................................................................................... 19 圖 6 二選一模糊傳輸 .......................................................................................................................................... 21 圖 7 N 選一模糊傳輸............................................................................................................................................ 21 圖 8 N 選 T 模糊傳輸 ............................................................................................................................................ 22. 政 治 大. 圖 9 二選一模糊傳輸協定流程圖....................................................................................................................... 24 圖 10 N 選一模糊傳輸協定流程圖 ..................................................................................................................... 25. 立. 圖 11 基礎協定流程圖......................................................................................................................................... 30 圖 12 雙方相等性驗證協定流程圖 ..................................................................................................................... 34. ‧ 國. 學. 圖 13 雙方相等性驗證搭配模糊傳輸之協定流程圖 ......................................................................................... 39 圖 14 雙方相等性驗證應用於登入架構 ............................................................................................................. 52. ‧. 圖 15 雙方相等性驗證搭配模糊傳輸之協定應用於線上購買數位化出版品 ................................................. 54 圖 16 雙方相等性驗證搭配模糊傳輸之協定應用於核發選票 ......................................................................... 56. sit. y. Nat. 圖 17 協定模擬流程圖 ........................................................................................................................................ 58 圖 18 測試時所選取的 10 所大專院校 ............................................................................................................... 58. al. er. io. 圖 19 用來控制伺服器是否說謊的程式碼〈一〉-伺服器為誠實 .................................................................... 58. n. v i n 圖 21 伺服器誠實且比對無法找到 C 的執行結果 ...................................................................................... 59 hengchi U 圖 22 用來控制伺服器是否說謊的程式碼〈二〉-伺服器說謊(永遠說相等) ................................................. 60. 圖 20 伺服器誠實且比對找到 NCCU 的執行結果 .............................................................................................. 59 GWJK. 圖 23 伺服器說謊被使用者驗證發現〈一〉 ..................................................................................................... 60 圖 24 用來控制伺服器是否說謊的程式碼〈三〉-伺服器說謊(永遠說不相等) ............................................. 60 圖 25 伺服器說謊被使用者驗證發現〈二〉 ..................................................................................................... 60. VI.

(9) 表格目錄 表格 1 ANDREW YAO 協定簡例〈一〉 ................................................................................................................ 13 表格 2 ANDREW YAO 協定簡例〈二〉 ................................................................................................................ 13 表格 3 關鍵字判斷與用戶端索取資料與否配對結果 ....................................................................................... 40 表格 4 參數長度設定 .......................................................................................................................................... 61. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. VII. i n U. v.

(10) 1. 緒論 1.1 研究背景 古代的人怎麼保護自己所珍藏重視或是價值不斐的物品?沒錯,就是放在一個堅固的箱 子裡,上鎖後放在一個隱密的地方,除了自己以外沒有任何人有鑰匙,如此一來就完成 了保護。隨著時代的進步,這個箱子就進步成了眾人皆知的保險箱,傳統的鎖也進步成 了密碼鎖,開箱的鑰匙當然也就從有形的鑰匙轉變成了無形的密碼。但不管箱子再怎麼. 政 治 大. 的堅固,鎖設計的再怎麼精良,能夠保護的始終都被限定在有形的物體,那麼無形的一. 立. 切呢?. ‧ 國. 學. 在這個數位化的時代,人們的生活漸漸的離不開電腦,也離不開網路。每當人們在 享受電腦與網路所帶來的便利時,同時也不禁眉頭深鎖的擔心自己在電腦上所建立的檔. ‧. 案是否會遭到剽竊?利用網路做溝通是否會被他人竊聽?網路交易的紀錄是否會被他. sit. y. Nat. 人從中獲得個資?從實體的刷卡動作轉變到網路的信用卡交易,是否安全無虞?這些無. io. er. 形的一切又該用什麼去加以保護呢?有了密碼學的幫助,讓這些重重的顧慮一掃而空。. al. 密碼學一直以來都是資訊安全上相當重要的一個環節,有了密碼學的幫助,電腦及. n. v i n Ch 網路上一切活動都有了相當程度的保障。一個良好的密碼設計,基本的保護了資料的安 engchi U 全性;一個完善的加密系統,進一步的保護了資料的隱私性。根據不同的安全性要求, 密碼學可以做出千百種的變化跟調整,以達到最嚴密的保護。 網路普及已經多年,隨著網路速度的加快與網路科技的進步,各種網路服務也如雨 後春筍般地冒出,並且以驚人的速度蓬勃發展。人們能夠在網路上面完成的事情也愈來 愈多,甚至以網路行為取代既有的行為模式。因此,網路安全被重視的程度也與日俱增。 人們已經不再滿足於基本的資料加密保護,而更進一步的想保護個人的隱私性,不想讓 任何人在未經自身的許可下,得知自己在網路上所做的一切行為。換句話說,人們希望 自己在網路上就如同一個被完善保護的祕密。. 1.

(11) 在現實的世界裡,要保護一個寶物最直觀的方式就是將它鎖在一個設計精良的保險 箱中。除此之外,寶物非到必要時刻它是不會從保險箱中被取出的。這樣的想法同樣可 以套用到網路的世界。一個設計完善的加密系統,就如同一個設計精良的保險箱,可以 加密使用者在網路上的一切,保障了最基本的安全性。而非必要時刻不取出寶物的觀念, 便是本文的核心所在。一個寶物如果常常被從保險箱取出,那就大大的增加了它被盜取 的風險。同樣的,就算一切都經過加密的處理,但太頻繁的解密動作就會讓祕密處於密 文型態的時間大減,被保護的效果大大降低,使得祕密曝光的機率倍增,這絕對不是網. 政 治 大. 路使用者所樂於見到的。但是,之所以使用電腦跟網路就是因為仰賴電腦的運算能力能. 立. 夠幫助人們在有限的時間內做快速的資料運算,再搭配網路的便利特性,達到事半功倍. ‧ 國. 學. 的目的。如果為了保護安全性及隱私而不解密,電腦要如何在不解密的情況下做運算呢? 因此,如何在加密且不洩漏資訊的前提下,仍可藉由特定協議過程達到運算目的,便成. ‧. 為一個在密碼學中被廣為研究的課題。安全的多方計算(secure multi-party computation). Nat. sit. y. 即是一個這樣類型的問題,而為了滿足安全多方計算的 目的,利用滿足同態加密. n. al. er. io. (Homomorphic Encryption)的演算法是一個相當不錯的選擇,也是本文研究的重點。. i n U. v. 安全的多方計算[24]是一個允許兩方或是更多的參與者在不揭露自身祕密資訊的條. Ch. engchi. 件底下,獲得最終的運算結果的技術。換句話說,每個參與者所知曉的只有自身資訊以 及最後的運算結果,對於其他參與者的資訊以及任何額外資訊一無所知也無從得知。因 為如此,在一個有多個使用者且彼此不信任的網路中,藉由安全多方計算可以讓多個使 用者完成協同運算,同時也具備安全性以及隱私的保護。 同態加密演算法根據其加密演算法能否同時符合加法與乘法兩種同態性質做為區 分。若一個同態加密演算法只能單一滿足加法或乘法的同態運算性質,則稱作部分同態 運算加密演算法。反之,若可以同時滿足加法及乘法的同態運算性質,則稱作全同態加 密演算法。符合全同態加密的演算法則是在 2009 年首度由 Gentry 在[12]所發表,文中 定義了何謂同態加密以及全同態加密,同時說明了使用同態加密系統的意義在於就算密 2.

(12) 文不經過解密的步驟,仍可對密文型態的數據做運算、檢索、比較…等等的操作,並且 確保其正確性。如此一來,便可以解決將數據委託給第三方做運算時的保密問題。. 1.2 研究動機與目的 自 1982 年 Yao 在[24]提出百萬富翁問題以及安全計算協定後,許多專家學者也紛紛地投 入這個研究議題,也有許多不錯的研究成果。近年來,因為雲端科技這個新議題的興起, 讓祕密計算的研究又再一次的被專家學者們重視。 短短的幾年,雲端科技發展日益成熟,且至今仍在蓬勃的發展當中。無論是國家還. 治 政 是企業,都紛紛投入雲端的研究跟運用,希望能夠搶得先機,開拓市場或是利用雲的幫 大 立 助提升效率或產能。而在一般個人使用者的層面,也有相當多的服務陸續推出,讓一般 ‧ 國. 學. 民眾在雲端科技的協助下,你我都能利用雲的協助,來達成資料的儲存、運算、比對、. ‧. 著作、編輯、商業行為…等等的目的。像是雲端龍頭 Google 的 Google Cloud,由 Google 的雲端運算平台提供一個由 Gmail、Google Calendar、Google Docs、Google Talk 及 Google. y. Nat. io. sit. Pages 所組成的 Google Apps。此外,Google Chrome 的推出甚至改變了一般大眾對於網. n. al. er. 頁瀏覽器的認知,讓網頁瀏覽器不再只是瀏覽器,而是一個執行 Apps 的平台,一種線. Ch. i n U. v. 上的作業系統。再者,近幾個月,Google 雲端硬碟(Google Drive)也正式登場,提供了. engchi. 免費的 5GB 的空間讓使用者使用。當然除了 Goolge 雲端硬碟之外,DropBox 早在 2008 即推出了個人的網路雲端硬碟,更在 2011 年提供了 Dropbox for Teams。蘋果也有 iCloud 供蘋果使用者作同步以及備份資料的使用。除了上述的服務以外,大大小小的應用也都 正在被開發中,雲端運算實為一個相當熱門的議題以及便利的技術。而在這個熱潮下, 相對於雲端科技的便利性,雲的安全性跟隱私性一直以來也是備受人們所關注的,該使 用什麼樣的方法才能夠在不洩漏使用者的個人資訊下,達到兼具便利性與隱私性的目標, 是許多專家學者致力研究的方向。 本研究就是針對使用者隱私保護的動機,想要設計了一個協定並加以實作。滿足在. 3.

(13) 不洩漏任何個人私密資訊的條件下,達到雙方相等性驗證的目的。所謂的雙方相等驗證, 就是兩方在不洩漏自身私密資訊的情況底下,比較雙方的私密資訊是否相等。藉由雙方 相等性驗證,雙方都可以得知比較的結果並且做出驗證。在雙方誠實的情況下,若比較 結果不相等,彼此也完全不會知道對方的私密資訊為何。若有其中一方說謊,另一方都 可驗證發現。雙方相等性驗證應用的範圍相當的廣泛,本研究就設計了三個應用,其中 一個是登入系統,另外兩個則分別是建構出線上購買數位化商品的機制以及結合數位與 現實的投票系統。而後述的這兩個都是以雙方相等性驗證搭配模糊傳輸的概念與技術將. 政 治 大. 協定套用在使用者與伺服器(Client & Server)的架構下,讓使用者藉由本研究所提出的協. 立. 定跟伺服器端溝通,來獲得所欲取得的資料,並同時保障使用者以及伺服器端的隱私。. ‧ 國. 學. 1.3 研究貢獻. ‧. 目前的雙方相等性驗證協定,都需要較龐大的計算量或是條件限制較多的加密演算法。 因此,本研究利用 ElGamal 加密演算法設計了一個雙方相等性驗證的協定,相對於目前. y. Nat. io. sit. 的其他雙方相等性驗證協定,本協定是以較低的運算成本以及較少的條件限制達到目的,. n. al. er. 而且相較於既有之方案並沒有做任何的安全性的犧牲。除此之外,本研究更以此協定搭. Ch. i n U. v. 配模糊傳輸(Oblivious Transfer),在使用者與伺服器的架構下,保證不洩漏雙方的任何資. engchi. 訊來達到完成私密資訊查詢(Private Information Query)的目的。最後以撰寫 JAVA 程式加 以實作並討論其表現。. 1.4 論文架構 本論文共 7 個章節,第 1 章為緒論,接著第 2 章將介紹一些與本研究相關的知識背景以 及研究,包含了同態公開金鑰加密、秘密計算、ElGamal 加密系統、模糊傳輸…等。第 3 章將介紹本論文主要的研究方法與協定;第 4 章對本論文所提出的協定做安全性分析, 並在第 5 章提出對於協定的相關應用。第 6 章是如何將本論文提出的協定加以實作,並 在第 7 章做出結論以及未來展望。. 4.

(14) 2. 背景知識與相關研究 2.1 同態加密 (Homomorphic Encryption) 同態加密是一種特殊的加密形式,如果一個加密系統具備同態加密的性質,表示這個加 密系統滿足對密文進行特定的代數運算得到的結果,會同等於對明文運算後再加密的結 果。換句話說,就是要能夠滿足𝐸(𝑚1 )⨀𝐸(𝑚2 ) = 𝐸(𝑚1 ⊛ 𝑚2 ),⨀與⊛是兩個運算子, 而根據運算子⊛的不同,又可以分作加法同態加密(Additive Homomorphic Encryption)與. 政 治 大 2.2.1 與 2.2.2 做較為詳細的介紹。 立. 乘法同態加密(Multiplicatively Homomorphic Encryption),這兩個不同的同態性質會在. ‧ 國. 學. 使用同態加密系統的意義在於就算密文不經過解密的步驟,仍可對密文型態的數據 做運算、檢索、比較…等等的操作,並且確保其正確性。如此一來,便可以解決將數據. ‧. 委託給第三方做運算時的保密問題,例如雲端計算的隱私保護問題。不僅僅是雲端計算,. sit. y. Nat. 同態加密也被應用在許多不同的地方,像是創建一個安全的投票系統[16]、抗碰撞. io. er. (Collision-resistant)的雜湊函數(Hash function)[15]或是私密資訊擷取(Private Information. al. n. v i n Ch 更進一步來說,同態是一個代數系統(Algebraic e n g c h i Usystem)的對應關係,從一個代數系. Retrieval, PIR)[13]。. 統對應到同類的代數系統,例如群(Group)、環(Ring)、向量空間(Vector space)的對應關 係。在同態的運算過程當中,會保持所有相關的結構不變。換句話說,也就是保持單位 元素(Unit element)、反元素(Inverse element)以及二元運算(Binary compute)的屬性不變。 以達到我們接下來要說明的加法和乘法的同態性質。. 2.1.1. 加法同態. 若一個加密系統滿足𝐸(𝑚1 )⨀𝐸(𝑚2 ) = 𝐸(𝑚1 + 𝑚2 ),則稱這個加密系統為加法同態加密 系統,舉兩個簡單的例子來說: (1) 若𝐸(𝑚1 ) = 𝑘𝑚1 , 𝐸(𝑚2 ) = 𝑘𝑚2 則𝐸(𝑚1 ) + 𝐸(𝑚2 ) = 𝑘(𝑚1 + 𝑚2 ) = 𝐸(𝑚1 + 𝑚2 ). 5.

(15) (2) 若𝐸(𝑚1 ) = 𝑒 𝑚1 , 𝐸(𝑚2 ) = 𝑒 𝑚2 則𝐸(𝑚1 ) × 𝐸(𝑚2 ) = 𝑒 𝑚1 +𝑚2 = 𝐸(𝑚1 + 𝑚2 ) 目前已知滿足加法同態的著名加密系統有: Paillier[21]以及 Benaloh[1]。以下利用 Paillier 的演算法做更詳盡的說明。 Paillier 加密系統分做三個部分,分別是金鑰生成(Key generation)、加密演算法 (Encryption)以及解密演算法(Decryption),以下將逐步做介紹。 金鑰生成: 1. Alice 選取兩個大質數𝑝, 𝑞且𝑔𝑐𝑑(𝑝𝑞, (𝑝 − 1)(𝑞 − 1)) = 1。. 政 治 大. 2. Alice 計算𝑁 = 𝑝 × 𝑞, 𝜆 = 𝑙𝑐𝑚(𝑝 − 1, 𝑞 − 1)。. 立. ∗ 3. Alice 選擇亂數𝑔 ∈ Z𝑁 2。. ‧ 國. 學. 4. 函數L(u) =. u−1 N. ,且 Alice 利用是否存在𝜇 = (𝐿(𝑔 𝜆 )𝑚𝑜𝑑 𝑁 2 ). 5. Alice 的公鑰為𝑝𝑘 = (𝑁, 𝑔) ,私鑰為𝑠𝑘 = (𝜆, 𝜇)。. io. sit. y. Nat. 加密演算法:. 𝑚𝑜𝑑 𝑁來確保若𝑔的. ‧. 序為 k,則𝑁|𝑘。其中,𝑁|𝑘表示𝑁為𝑘的因數。. −1. n. al. er. 1. Bob 欲加密給 Alice 的訊息為𝑚 ∈ 𝑍𝑁 。 2. Bob 選擇亂數𝑟 ∈ 𝑍𝑁 。. Ch. engchi. i n U. v. 3. 密文𝐶 = 𝐸(𝑚) = 𝑔𝑚 × 𝑟 𝑁 𝑚𝑜𝑑 𝑁 2 並傳送給 Alice。 解密演算法: 1. 密文𝐶 ∈ 𝑍𝑁∗ 2 。 2. Alice 計算明文𝑚 = 𝐿(𝑐 𝜆 𝑚𝑜𝑑 𝑁 2 ) × 𝜇 𝑚𝑜𝑑 𝑁。 加法同態:. 在介紹完 Paillier 的加解密演算法後,接著說明 Paillier 這個加解密演算法所符合的加法 同態性質。首先假設欲加密的兩個變數為𝑚1 , 𝑚2 ,並且分別在經過加密後得到: 𝐶1 = 𝐸(𝑚1 ) = 𝑔𝑚1 × 𝑟1𝑁 𝑚𝑜𝑑 𝑁 2. 6.

(16) 𝐶2 = 𝐸(𝑚2 ) = 𝑔𝑚2 × 𝑟2𝑁 𝑚𝑜𝑑 𝑁 2 接著計算密文乘積為: 𝐶1 × 𝐶2 = 𝐸(𝑚1 ) × 𝐸(𝑚2 ) = (𝑔𝑚1 × 𝑟 𝑁 ) × (𝑔𝑚2 × 𝑟 𝑁 ) 𝑚𝑜𝑑 𝑁 2 = 𝑔𝑚1 +𝑚2 × (𝑟1 𝑟2 )𝑁 𝑚𝑜𝑑 𝑁 2 = 𝑔𝑚1 +𝑚2 × (𝑟′)𝑁 𝑚𝑜𝑑 𝑁 2 = 𝐸(𝑚1 + 𝑚2 ) 由上述可清楚地看到𝐶1 × 𝐶2 = 𝐸(𝑚1 ) × 𝐸(𝑚2 ) = 𝐸(𝑚1 + 𝑚2 ),因此 Paillier 加解密演算 法是具有加法同態性質的。. 2.1.2. 乘法同態. 政 治 大. 若一個加密系統滿足𝐸(𝑚1 )⨀𝐸(𝑚2 ) = 𝐸(𝑚1 × 𝑚2 ),則稱這個加密系統為乘法同態加密. 立. 系統。目前已知加法同態的著名加密系統有: ElGamal[11] 以及 RSA[22]。首先以簡單. ‧ 國. 學. 的 RSA 加解密演算法做說明。在下一個節會對本論文所使用的 ElGamal 加密演算法做 出更詳盡的介紹,並說明其乘法同態性質。. ‧. RSA 加密系統分做三個部分,分別是 金鑰生成(Key generation) 、加密演算法. Nat. sit. n. al. er. io. 金鑰的生成:. y. (Encryption)以及解密演算法(Decryption),以下將逐步做介紹。. i n U. v. 1. Alice 隨機選取兩個相異的質數𝑝, 𝑞。為了安全性的考量,兩質數的位元長度必須相 近。. Ch. engchi. 2. Alice 計算𝑁 = 𝑝 × 𝑞與𝜑(𝑁) = (𝑝 − 1) × (𝑞 − 1),𝜑為尤拉函數。 3. Alice 選取一個整數𝑒,1 < 𝑒 < 𝜑(𝑁), (𝑒, 𝜑(𝑁)) = 1。 4. Alice 根據所選的𝑒計算𝑑,其中𝑑 ≡ 𝑒 −1 𝑚𝑜𝑑 𝜑(𝑁) 。 5. Alice 的公鑰為(𝑁, 𝑒),私鑰為(𝑁, 𝑑) 。 加密演算法: 1. Bob 欲加密明文𝑚給 Alice。 2. 利用 Alice 的公鑰(𝑁, 𝑒)計算密文𝐶 = 𝑚𝑒 𝑚𝑜𝑑 𝑁並傳送給 Alice。 解密演算法: 7.

(17) 1. Alice 收到密文𝐶。 2. Alice 收到密文後利用私鑰(𝑁, 𝑑)做解密,計算𝑚 = 𝑐 𝑑 𝑚𝑜𝑑 𝑁。 乘法同態: 在介紹完 RSA 的加解密演算法後,接著說明 RSA 這個加解密演算法所符合的乘法同態 性質。首先假設欲加密的兩個變數為𝑚1 , 𝑚2 ,並且分別在經過加密後得到: 𝐶1 = 𝐸(𝑚1 ) = 𝑚1𝑒 𝑚𝑜𝑑 𝑁 𝐶2 = 𝐸(𝑚2 ) = 𝑚2𝑒 𝑚𝑜𝑑 𝑁. 政 治 大. 接著計算密文乘積為:. 立. 𝐶1 × 𝐶2 = 𝐸(𝑚1 ) × 𝐸(𝑚2 ) = 𝑚1𝑒 × 𝑚2𝑒 = 𝐸(𝑚1 × 𝑚2 ). ‧ 國. 學. 由上述可清楚地看到𝐶1 × 𝐶2 = 𝐸(𝑚1 ) × 𝐸(𝑚2 ) = 𝐸(𝑚1 × 𝑚2 ),因此 RSA 加解密演算法 是具有加法同態性質的。. ‧. 2.2 ElGamal 加密演算法. y. Nat. io. sit. ElGamal 加 密演算 法 有三個部 分,分 別是 金鑰生成 (Key generation) 、加密 演算法. n. al. er. (Encryption)以及解密演算法(Decryption),在這小節將會逐步做介紹。 金鑰的生成:. Ch. engchi. i n U. v. 1. Alice 取一個生成元𝑔,足以生成一個循環群𝐺,內有𝑞個元素。 2. Alice 任選一個變數 𝑥 ∈ {0, … , 𝑞 − 1}。 3. Alice 計算 𝑦 = 𝑔 𝑥 𝑚𝑜𝑑 𝑝。 4. Alice 以 (𝐺, 𝑞, 𝑔, 𝑦)作為她的公鑰,𝑥作為她的私鑰。 加密演算法: 1. Bob 任選一個變數 𝑟 ∈ {0, … , 𝑞 − 1},並且計算𝐶1 = 𝑔𝑟 𝑚𝑜𝑑 𝑝。 2. Bob 加密明文 𝑚,生成 𝐶2 = 𝑚 × 𝑦 𝑟 𝑚𝑜𝑑 𝑝。 3. 傳送密文 (𝐶1 , 𝐶2 )給 Alice。. 8.

(18) 解密演算法: 1. Alice 計算 𝐶1𝑥 = 𝑔𝑟𝑥 = 𝑦 𝑟 。 2. 接著計算 𝐶2 × (𝐶1𝑥 )−1 = (𝑚 × 𝑦 𝑟 ) × (𝑦 𝑟 )−1 = 𝑚 即可還原明文。 在了解 ElGamal 加密系統之後,在下一小節 2.2.4 將介紹 ElGamal 加密系統的乘法 同態性質。. 2.2.1. ElGamal 的乘法同態性質. 這小節我們將介紹 ElGamal 加密系統的乘法同態性質。首先利用 ElGamal 加密系統分. 政 治 大. 別以對明文𝑚1 , 𝑚2 做加密,產生(𝐶1 , 𝐶2 ), (𝐶1′ , 𝐶2′ )兩組密文,其中:. 立(𝐶 , 𝐶 ) = (𝑔 1. 2. 𝑟1. , 𝑚1 × 𝑦 𝑟1 ) 𝑚𝑜𝑑 𝑝. ‧ 國. 學. (𝐶1′ , 𝐶2′ ) = (𝑔𝑟2 , 𝑚2 × 𝑦 𝑟2 ) 𝑚𝑜𝑑 𝑝. 接著對兩組密文(𝐶1 , 𝐶2 )與(𝐶1′ , 𝐶2′ )做乘法運算得到(𝐶1′′ , 𝐶2′′ ) = (𝐶1 , 𝐶2 ) × (𝐶1′ , 𝐶2′ ),其中:. ‧. 𝐶1′′ = 𝐶1 × 𝐶1′ = 𝑔𝑟1 × 𝑔𝑟2 𝑚𝑜𝑑 𝑝 = 𝑔𝑟1 +𝑟2 𝑚𝑜𝑑 𝑝. Nat. sit. er. al. n. 𝑥 −1. 𝐶2′′ × (𝐶1′′ ). io. 最後做解密:. y. 𝐶2′′ = 𝐶2 × 𝐶2′ = (𝑚1 × 𝑦 𝑟1 ) × (𝑚2 × 𝑦 𝑟2 ) 𝑚𝑜𝑑 𝑝 = (𝑚1 × 𝑚2 ) × 𝑦 𝑟1 +𝑟2 𝑚𝑜𝑑 𝑝. i n U. v. = (𝑚1 × 𝑚2 ) × 𝑦 𝑟1 +𝑟2 × (𝑔𝑟1+𝑟2 )−1 = (𝑚1 × 𝑚2 ) × 𝑦 𝑟1 +𝑟2 × (𝑔 𝑥(𝑟1 +𝑟2 ) ). Ch. engchi. −1. = (𝑚1 × 𝑚2 ) × 𝑦 𝑟1 +𝑟2 × (𝑦 𝑟1 +𝑟2 )−1 = (𝑚1 × 𝑚2 ) 由以上的加解密過程及運算結果,我們可以清楚地看到,對兩組利用 ElGamal 加密系統 所加密的密文做乘法運算之後,其解密結果會同等於對明文做乘法運算。因此,ElGamal 加密系統是一個符合乘法同態性質的加密系統,本研究將利用 ElGamal 加密系統符合乘 法同態的性質,設計並提出一個可以達到隱私保護的雙方相等性驗證協定。. 2.3 祕密計算 (Secret Computation) 在介紹祕密計算之前,先來想像一個情境:期中考過後,甲、乙、丙三人都拿到了考卷 也得知了自己的分數,三人想要知道平均是多少,所以想要先算三人分數的加總,卻礙. 9.

(19) 於面子關係不想讓別人知道自己的成績。有沒有一個辦法可以去解決這個問題呢?其實 解決的方法相當的簡單,可以用以下的方法輕鬆達到。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 1 簡單祕密計算例圖〈一〉. 10.

(20) 政 治 大. 立. ‧. ‧ 國. 學. io. sit. y. Nat. 圖 2 簡單祕密計算例圖〈二〉. n. al. er. 以上介紹的其實就是個簡單的祕密計算概念,一個安全的祕密計算必須可以保障被. Ch. i n U. v. 運算資料的私密性,在不公開資料的情況下達到正確運算的目的。而 1982 年 Yao 在[24]. engchi. 所提出的百萬富翁問題更是個在祕密計算上相當著名的問題。百萬富翁問題是在探討能 否在不透漏兩個富翁的真實財產情況下,透過祕密計算的協定去比較哪一個富翁較為富 有。本論文將在接下來的小節,分別介紹雙方架構下的祕密計算協定與藉由半誠實 (semi-trust)第三方的祕密計算協定,也將特別對 Yao 以及邱姓學者在雙方架構下所提出 的安全祕密計算協定分別作介紹。. 2.3.1. Yao 的協定(雙方架構). 假設 a, b 分別為富翁 Alice 與富翁 Bob 的財產(私密資訊),Alice 跟 Bob 想比較彼此財產 的多寡。透過 Yao 提出的協定,可以在不洩漏 a 與 b 給對方的情況下,達到目的。協定. 11.

(21) 流程如下: 1. Bob 挑一個任意𝑁-bit 的整數𝑥,計算𝑘 = 𝐸𝑝𝑘𝐴 (𝑥),其中𝐸𝑝𝑘𝐴 是以 Alice 的公鑰𝑝𝑘𝐴 採 用 RSA 加密系統的加密演算法。接著 Bob 將𝑘 − 𝑏 + 1傳給 Alice。 2. Alice 在收到 Bob 傳來的資訊後,對𝑘 − 𝑏 + 𝑢, 𝑢 = 1, … , 𝑚這𝑚個數值作解密,得到 𝑌𝑢 = 𝐷𝑠𝑘 (𝑘 − 𝑏 + 𝑢), 𝑢 = 1, . . , 𝑚,其中𝐷𝑠𝑘𝐴 是以 Alice 的私鑰𝑠𝑘𝐴 採用 RSA 加密系統 的解密演算法。 𝑁. 3. 接著 Alice 挑選一個任意的質數𝑝,其長度為 2 -bit,且必須慎選𝑝使得𝑝與𝑍𝑢 至少相差. 政 治 大. 𝑌𝑢 𝑚𝑜𝑑 𝑝, 𝑢 = 1, … , 𝑎 2,計算𝑍𝑢 = { ,並且將𝑝與𝑍𝑢 傳送給 Bob。 𝑌𝑢 𝑚𝑜𝑑 𝑝 + 1, 𝑢 = 𝑎 + 1, … , 𝑚. 立. 𝑍𝑏 = 𝐺 ⇒ 𝑎 ≥ 𝑏 ,最後 Bob 𝑍𝑏 ≠ 𝐺 ⇒ 𝑎 < 𝑏. ‧ 國. 學. 4. Bob 在收到 Alice 傳來的資訊後,計算𝐺 = 𝑥 𝑚𝑜𝑑 𝑝,若{ 告知 Alice 判斷結果。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 3 Yao 協定流程圖 接著從邱學者在[6] [7]所中舉的簡單例子便能更清楚的了解 Yao 所提出的協定運作 以及是否可以利用祕密計算解決百萬富翁的問題。首先,假設 Alice 有 500 萬,Bob 有 600 萬,則a = 5, b = 6。Alice 的公鑰為(𝑒, 𝑁) = (5,119),私鑰為(𝑑, 𝑁) = (77,119)。. 12.

(22) 1. Bob 挑一個任意𝑁-bit 的整數𝑥 = 234,計算𝑘 = 𝐸𝑝𝑘𝐴 (𝑥) = 2345 𝑚𝑜𝑑 119 = 47,接 著 Bob 將𝑘 − 𝑏 + 1 = 47 − 6 + 1 = 42傳給 Alice。 2. Alice 在收到 Bob 傳來的資訊後,對𝑘 − 𝑏 + 𝑢, 𝑢 = 1, … , 𝑚這𝑚個數值作解密,得到 𝑌𝑢 = 𝐷𝑠𝑘 (𝑘 − 𝑏 + 𝑢), 𝑢 = 1, . . , 𝑚,下表為解密結果: 表格 1 Yao 協定簡例〈一〉 u. k-j+u. 𝐷𝑠𝑘 (𝑘 − 𝑏 + 𝑢). 𝑌𝑢. 1. 42. 4277 mod 119. 77. 2. 43. 3. 44. 4. 8. 77. 11. 45. 4577 mod 119. 75. 46. 4677 mod 119. 65. 47. 4777 mod 119. 48. 4877 mod 119. 49. 4977 mod 119. 立. 51. y. 10. n. al. 90. sit. 50. 115. 70. er. ‧ 國. 9. io. 8. Nat. 7. ‧. 6. 77. 學. 5. 43 mod 119 政 治 大 44 mod 119. Ch. 5077 mod 119. v. 50. e n g c51h77i mod 119. 102. i n U. 3. 接著 Alice 挑選一個任意的質數𝑝 = 11,計算𝑍𝑢 = {. 𝑌𝑢 𝑚𝑜𝑑 𝑝, 𝑢 = 1, … , 𝑎 , 𝑌𝑢 𝑚𝑜𝑑 𝑝 + 1, 𝑢 = 𝑎 + 1, … , 𝑚. 並且將𝑝與𝑍𝑢 傳送給 Bob。 表格 2 Yao 協定簡例〈二〉 u. k-j+u. 𝐷𝑠𝑘 (𝑘 − 𝑏 + 𝑢). 𝑌𝑢. 𝑍𝑢. 1. 42. 4277 mod 119. 77. 0. 2. 43. 4377 mod 119. 8. 8. 3. 44. 4477 mod 119. 11. 0. 13.

(23) 4. 45. 4577 mod 119. 75. 9. 5. 46. 4677 mod 119. 65. 10. 6. 47. 4777 mod 119. 115. 6. 7. 48. 4877 mod 119. 90. 3. 8. 49. 4977 mod 119. 70. 5. 9. 50. 5077 mod 119. 50. 7. 10. 51. 5177 mod 119. 102. 4. 政 治 大. 4. Bob 在 收 到 Alice 傳 來 的 資 訊 後 , 計 算 𝐺 = 𝑥 𝑚𝑜𝑑 𝑝 = 234 𝑚𝑜𝑑 𝑝 = 5 , 若. 立. 斷結果。. 學. 𝑍𝑏 = 𝐺 ⇒ 𝑎 ≥ 𝑏 𝑍 =5⇒𝑎 ≥𝑏 ⇒{ 6 ⇒ 𝑍6 = 6 ≠ 5 ⇒ 𝑎 < 𝑏,最後 Bob 告知 Alice 判 𝑍𝑏 ≠ 𝐺 ⇒ 𝑎 < 𝑏 𝑍6 ≠ 5 ⇒ 𝑎 < 𝑏. ‧ 國. {. ‧. 從上述的這個簡單例子,可以知道當 Alice 的財產少於 Bob 的財產時,是可以藉由. y. Nat. 一次的協定便能得知結果。但假如是 Alice 的財產多於 Bob 的財產或是雙方財產相等時,. er. io. sit. 便需要交換腳色再執行一次協定,才能判斷財產多寡。儘管能夠在不洩漏雙方的資訊下 比較雙方數值的大小,卻有效率上的缺點。除此之外,從協定的最後一個步驟可以看出. al. n. v i n Ch Alice 作為被告知的一方是沒有辦法去驗證告知方 Bob 是否有欺騙行為,只能相信 Bob engchi U. 所傳達的結果,對於 Alice 而言是相當不公平的。在介紹完雙方的架構後,接著在下一 小節將介紹李姓及武姓學者在[18]中利用半誠實的第三方所提出的協定。. 2.3.2. 李姓與武姓學者的協定(半誠實第三方架構). 在介紹協定之前,先解釋何謂半誠實的第三方。假如存在一個完全誠實的第三方 C,A 跟 B 便只需要將欲比較的資訊 a,b 利用安全通道傳給 C,C 在比較過雙方大小後分別告 知 A 跟 B 結果即可。若是不存在安全通道,則可以利用 C 的公鑰加密 a 跟 b,C 在接收 到這兩個密文後,解密比較結果再分別告知 A 跟 B 即可。但上述的兩個方式都是極度 理想的狀態,在現實環境中基於安全性的考量我們不能假設有一個完全誠實的第三方。. 14.

(24) 半誠實的第三方 D 顧名思義並不是個完全誠實的第三方,D 只保證會按照協定的規則進 行通訊和計算,但是會試著從協定的缺失獲取額外的資訊。換句話說,假使協定是沒有 漏洞的,D 不會從協定中獲得任何額外的資訊。 在李姓及武姓學者所提出的協定中,除了想要比較雙方資訊的 Alice 跟 Bob 外,存 在一個半誠實的第三方 Cathy。Cathy 在協定開始前會生成自己的公鑰跟私鑰(𝑝𝑘, 𝑠𝑘), 而 Alice 跟 Bob 共同決定一個亂數𝑟𝑎𝑏 ∈ [0,2𝑘 − 1], 𝑘 ≥ 80,整個協定中的加解密採用 Paillier 加解密演算法,接著協定開始:. 政 治 大. 1. Alice 以 Cathy 的公鑰加密自身的私密訊息 a,𝑥 = 𝐸𝑝𝑘 (𝑟𝑎𝑏 𝑎),並將𝑥傳送給 Bob。. 立. 2. Bob 以 Cathy 的公鑰加密自身的私密訊息 b,𝑦 = 𝐸𝑝𝑘 (−𝑟𝑎𝑏 𝑏),並且計算𝑦 ′ =. ‧ 國. 學. 𝐸𝑝𝑘 (𝑟𝑎𝑏 𝑎) × 𝐸𝑝𝑘 (−𝑟𝑎𝑏 𝑏),後將𝑦 ′ 傳送給 Cathy。. 3. Cathy 以自己的私鑰對𝑦 ′ 做解密,由於 Paillier 的加解密演算法是符合加法同態性質,. ‧. 因 此 得 到 𝑧 = 𝐷𝑠𝑘 (𝑦 ′ ) = 𝐷𝑠𝑘 (𝐸𝑝𝑘 (𝑟𝑎𝑏 𝑎) × 𝐸𝑝𝑘 (−𝑟𝑎𝑏 𝑏)) = 𝐷𝑠𝑘 (𝐸𝑝𝑘 (𝑟𝑎𝑏 𝑎−𝑟𝑎𝑏 𝑏)) =. y. Nat. sit. er. al. n. Bob。. io. 𝑧 = 0, 𝑎 = 𝑏 ⇒ 𝑧′ = 0 𝐷𝑠𝑘 (𝐸𝑝𝑘 (𝑟𝑎𝑏 (𝑎 − 𝑏))),若{ ,接著 Cathy 將𝑧′傳送給 Alice 跟 𝑧 ≠ 0, 𝑎 ≠ 𝑏 ⇒ 𝑧′ = 1. Ch. engchi. 15. i n U. v.

(25) 立. 政 治 大. ‧. ‧ 國. 學. io. sit. y. Nat. 圖 4 李姓及武姓協定流程圖. n. al. er. 這個協定雖然可以以一個相當簡單的步驟比較雙方資訊是否相等,但是存在一個只. Ch. i n U. v. 要有第三方的協定就會產生的問題,那就是共謀(collusion)的顧慮。假使 Cathy 跟 Alice. engchi. 或 Bob 其中一個人產生共謀,那對於另一方來說就顯得相當不公平,除非協定中存在能 夠阻止共謀的因子,否則多了第三方便是多了風險,於是本論文還是以雙方架構下的協 定為主軸。於是將在下一個小節,對邱姓學者在[6][7]所提出的雙方相等性驗證協定做 詳細的介紹。. 2.3.3. 邱姓學者的協定(雙方架構). 由於 Yao 的協定無法達到雙方驗證,而李姓及武姓學者所提出的協定則需要半誠實的第 三方幫助雙方做相等性的判斷。於是邱姓學者在 2012 年提出了具隱私保護功能之兩方 相等性驗證機制之提案[6][7],所提出的協定可以在不需要第三方的條件底下,讓雙方. 16.

(26) 都能夠驗證彼此的私密資訊是否相同。由於邱姓學者在此提案中所使用的加密演算法須 符合兩個較特別的性質,一個是可換式加密(Commutative Encryption),另一個則是雙重 同態加密(Doubly-homomorphic Encryption)。於是在介紹提案之前,先介紹這兩個相關 的知識,以便於進一步了解邱姓學者的提案。. . 可換式加密(Commutative Encryption) 若一個加密演算法對一個訊息𝑚加密兩次以上,並滿足下列三個條件,則稱作可換. 式加密:. 立. 政 治 大. 1. 假設 Alice 的公私鑰為(pk A , sk A ),Bob 的公私鑰為(pk B , sk B ),則EPK A (EPK B (m)) =. ‧ 國. 學. EPK B (EPK A (m)). al. 雙重同態加密(Doubly-homomorphic Encryption). er. io. v i n Ch 若一個加密系統同時滿足加法同態性質以及乘法同態性質,即可稱此加密系統為雙 engchi U n. . sit. Nat. 3. 利用pk A 或pk B 所加密產生的密文,其值域相同。. y. ‧. 2. 加密所用公鑰pk i 所對應的解密私鑰sk i 在多項式時間內可計算。. 重同態加密。換句話說,一個符合雙重同態加密的加密演算法,給定𝐸(𝑥)跟𝐸(𝑦),在不 知道𝑥, 𝑦的情況下,任何人都可以計算出𝐸(𝑥 + 𝑦)和𝐸(𝑥 × 𝑦)。. 在介紹完可換式加密與雙重同態加密之後,接著開始對邱姓學者所提出的雙方相等 性驗證機制協定做介紹。首先,先介紹一些協定中所用的符號:𝑎, 𝑏分別為 Alice 與 Bob 的私密資訊。𝐸𝐴 , 𝐷𝐴 分別為使用 Alice 公鑰𝑃𝐾𝐴 與私鑰𝑆𝐾𝐴 所做的加解密演算法,𝐸𝐵 , 𝐷𝐵 分 別為使用 Bob 公鑰𝑃𝐾𝐵 與私鑰𝑆𝐾𝐵 所做的加解密演算法。邱姓學者所採用的是 Gentry 的 演算法,但由於此演算法只符合雙重同態加密,並沒有滿足可換式加密,所以邱姓學者. 17.

(27) 在不改變演算法安全性的條件下,對 Gentry 的加解密演算法做了些為調整,使之同時滿 足雙重同態加密以及可換式加密。在修改過後的加密演算法為:𝑐 = 𝑚 + 2𝑁 𝑟 ′ + 𝑝𝑞,並 且規定𝑆𝐾𝐴 ≫ 𝑆𝐾𝐵 ≫ 2𝑁 ≫ 𝑝′,𝑝′ 是個由 Alice 與 Bob 共同決定的質數,且𝑝′ ∈ 𝑍 ∗ , 𝑟 ∈ 𝑍𝑝′。 協定流程如下: 1. Alice 生 成 亂 數 𝑟 = 𝑟𝑥 + 𝑟𝑦 , 𝑟𝑥 , 𝑟𝑦 , 𝑟 ∈ 𝑍 ∗ , 接 著 計 算 𝑎 × 𝑟𝑥 並 且 用 𝑃𝐾𝐴 加 密 得 到 𝐸𝐴 (𝑎 × 𝑟𝑋 ),再將𝑟𝑦 和𝐸𝐴 (𝑎 × 𝑟𝑋 )傳送給 Bob。 2. Bob 在收到𝑟𝑦 和𝐸𝐴 (𝑎 × 𝑟𝑋 )之後,計算𝑏 × 𝑟𝑦 並且用𝑃𝐾𝐴 加密得到𝐸𝐴 (𝑏 × 𝑟𝑦 ),並挑選. 政 治 大. 一個隨機的亂數𝑞 ∈ 𝑍 ∗ 加密後得到𝐸𝐴 (𝑏 × 𝑟𝑦 )。接著利用雙重同態性質運算得到. 立. 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )),最後 Bob 以自己的公鑰𝑃𝐾𝐵 加密得到𝐸𝐵 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))傳送給. ‧ 國. 學. Alice。. ‧. 3. Alice 收到 Bob 傳來的資訊後,利用可交換式加密的特性,先用自己的私鑰𝑆𝐾𝐴 對. sit. y. Nat. 𝐸𝐵 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))解密,𝐷𝐴 𝐸𝐵 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )) = 𝐸𝐵 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))。接著計算 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ). n. al. er. io. 𝐸𝐵 (𝑟 −1 ),利用乘法同態加密性質運算𝐸𝐵 (𝑟 −1 ) × 𝐸𝐵 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )) = 𝐸𝐵 ( 並將運算結果傳給 Bob。. Ch. 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ). 4. Bob 在 收 到 𝐸𝐵 ( 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ). 𝐷𝐵 𝐸𝐵 (. 𝑟. 𝑟. ) 𝑚𝑜𝑑 𝑝′ =. engchi. i n U. ) 之 後 用 自 己 的 私 鑰 𝑆𝐾𝐵 解 密 並 且 𝑚𝑜𝑑 𝑝′ 得 到 (𝑎𝑟𝑋 +𝑏𝑟𝑦 ). 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ). 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ) 𝑟. ). v. 𝑟. ,接著將𝑞除掉。假如{(𝑎𝑟. 𝑟 𝑋 +𝑏𝑟𝑦 ) 𝑟. Bob 將判斷結果連同. 𝑟. =b⇒a=b. 。. ≠b⇒a≠b. 𝑚𝑜𝑑 𝑝′與𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))傳送給 Alice。. 5. Alice 在收到 Bob 傳遞來的資訊後,以自己的密鑰𝑆𝐾𝐴 將𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))解密得到 𝑀 = 𝐷𝐴 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )) = 𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ),並計算𝑁 = Alice 便能夠比較𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )是否等於. 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ). 18. 𝑟. 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ) 𝑟. 𝑚𝑜𝑑 𝑝′ × 𝑟。此時. 𝑚𝑜𝑑 𝑝′ × 𝑟,再進一步的判斷若.

(28) 𝑞(𝑎𝑟𝑋 +𝑏𝑟𝑦 ). ⇒ 𝑎 = 𝑏。 {𝑎| 𝑟 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 ⇒ 𝑎 ≠ 𝑏. 立. 政 治 大. ‧. ‧ 國. 學. io. sit. y. Nat. 圖 5 邱姓協定流程圖. n. al. er. 在邱姓學者的方案中,Alice 跟 Bob 可以利用協定在不洩漏彼此私密資訊的情況下,. Ch. i n U. v. 達到雙方相等性的驗證,而且不需要任何第三方的協助。如此一來,便不需要擔心第三. engchi. 方與 Alice 或 Bob 其中任何一方做出共謀的動作。儘管如此,但邱姓學者的協定卻需要 使用到滿足可交換式與雙重同態的加解密演算法。 對於雙重同態的加解密演算法來說,2005 年 Boneh 在[2]所提到的加解密演算法可 以做多次的加法運算跟一次的乘法運算,所以並不能算是完整的雙重同態加密。而邱姓 學者所採用的演算法,是 Gentry[12]在 2009 年所發表的全同態加密演算法,雖然可以做 任意次數的加法與乘法同態,但是所需的時間成本太高,在實作上有一定的困難性。而 對可交換式加解密演算法來說,目前的文獻中除了邱姓學者提到的 Gentry 加密演算法外, 並沒有其他符合可換式加密的演算法,多半都是更改既有的加密演算法使其符合可換式. 19.

(29) 加密性質,但往往都導致安全性下降、無法正確解密。 綜合上述,雖然邱姓學者的協定確實可以達到雙方相等性驗證的目的,但所採用的 加密演算法的限制較多,且時間成本較高。本研究也是基於這樣的原因,想要設計一個 協定來改善加密演算法的限制以及時間的成本。在本研究的協定中,所採用的是 ElGamal 加密演算法,不但不需要額外的限制也同時降低所需的時間成本,增加了協定可被實作 以及被應用在實務上的可能性。本研究所提出的協定將會在第 3 章作更詳細的介紹。. 2.4 模糊傳輸 (Oblivious Transfer). 治 政 因為本研究在最後完整的協定中會加入模糊傳輸,利用模糊傳輸所符合的特殊性質達到 大 立 資料傳輸的私密性,因此將在 2.4.1 對模糊傳輸做簡單的介紹,並於 2.4.2 介紹在本研究 ‧ 國. 學. 中所使用的有效率的模糊傳輸做出更詳盡的介紹。. 模糊傳輸簡介. ‧. 2.4.1. 自從 1981 年 Rabin[23]提出模糊傳輸的主要概念之後,模糊傳輸在近十年來被視為密碼. y. Nat. io. sit. 學上相當重要的一項訊息交換技術。基於模糊傳輸的特性,這個協定被套用在相當多的. n. al. er. 應用上面,例如電子商務、祕密訊息交換或是傳輸認證過的電子郵件或是線上文件等等。. Ch. i n U. v. 在 Rabin 所提出的模糊傳輸概念中,有一個傳送資料的傳輸者(Sender),跟一個接收資. engchi. 料的接收者(Receiver),我們可以將傳輸者視為伺服器端(Server),而接收者視為客戶端 (Client),或稱做使用者端(User)。此概念中,傳輸者任意傳送一個訊息給接收者,而接 收者只有二分之一的機會能夠得到這個訊息,另外二分之一的機會什麼都得不到,而傳 送者對於接收者是否收到訊息一無所知。 在這個概念被提出之後,Rabin 在中提出了二選一(2-out-of-1)的模糊傳輸協定,在 這個協定中,傳送端擁有兩個位元𝑏1 , 𝑏2,而接收端可以挑選他所想要從傳送端得到的位 元,但他只有二分之一的機會可以得到他所想要的位元,另外二分之一的機會得到他不 想要的位元。在這個協定中,傳送端是無法得知接收端收到的位元為何,而接收端只會. 20.

(30) 收到一個位元而已。. 圖 6 二選一模糊傳輸 而在二選一的模糊傳輸協定之後,Brassard 跟 Cre'peau[4]將二選一的協定擴展成 n. 治 政 選一的模糊傳輸協定,顧名思義就是傳送端擁有 n 個訊息𝑏 大 , … , 𝑏 ,而接收端可以挑選 立 他所想要從傳送端得到的其中一個訊息,而他只有 n 分之一的機會可以得到他所想要的 1. 𝑛. ‧ 國. 學. 訊息,在這個協定中,傳送端一樣是無法得知接收端收到的訊息為何,而接收端只會收. ‧. 到一個訊息而已。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 7 n 選一模糊傳輸 在這之後,Chu 和 Tzeng[8]在 2005 年發表了 n 選 t 的模糊傳輸協定,在 n 選 t 的協 定裡,傳送者握有 n 個訊息,接收者可以選擇索取其中 t (t < n)個訊息,同樣的,傳送 端一樣是無法得知接收端收到的訊息是哪 t 個訊息,而接收端只能獲得他所索取的 t 個 訊息,而不能夠獲得其他的n − t個訊息。另外,在 n 選 t 的模糊傳輸協定中,只需將傳 送者所握有的訊息量以及接收者所索取的訊息量,即可將協定簡化並滿足 n 選一或是二 選一的模糊傳輸。. 21.

(31) 圖 8 n 選 t 模糊傳輸 除了上述所提到的模糊傳輸協定之外,尚有許多基於基本協定所提出的模糊傳輸協 定被專家學者所發表出來,像是非交談式模糊傳輸[5]、可重複使用的模糊傳輸[17]、可. 政 治 大 [10]所提出的條件式模糊傳輸協定(Conditional Oblivious Transfer, COT),這種條件式的模 立. 驗證的模糊傳輸[19]等等。另外,在 1999 年更有由 Crescenzo、Ostrovsky 與 Rajagopalan. ‧ 國. 學. 糊傳輸利用術語判斷式(predicate),假如判斷式成立,接收者便可以從傳送者端收到索 取的訊息,否則將無法獲得任何的訊息。另外,傳送者在整個協定過程都不會知道判斷. ‧. 式的成立與否。之後更有許多專家學者提出改良過的 COT 協定,像是強健型條件式模. sit. y. Nat. 糊傳輸協定(Strong Conditional Oblivious Transfer, SCOT)[3]、條件式模糊群播協定. io. er. (Conditional Oblivious Cast, COC)[9]。. al. 綜合上述,無論是任何一種模糊傳輸協定,都必須要滿足以下的三個安全需求:. n. v i n Ch 傳輸的正確性:只要傳送者跟接收者按照協定步驟進行,接收者就可以得到精確地 engchi U. 1.. 得到他所索取的訊息。 2. 接收者的隱私:對接收者而言,他可以選擇他所要索取的訊息,無論是二選一、n 選一還是 n 選 t,傳送者都沒有辦法得知接收者所索取的訊息項目為何,以保障接收 者的隱私。 3. 傳送者的隱私:在協定執行完成後,接收者只能獲得他所索取的訊息,對於其他沒 有索取的訊息是一無所知,縱使接收者有無窮的計算能力(unconditional computation power)也沒辦法得知,以保障傳送者的隱私。 在本論文中所使用的模糊傳輸方案,是由 Naor 與 Pinkas 在 Efficient Oblivious Transfer. 22.

(32) Protocols[20]中所提出的方案(以下簡寫為 EOT),分別有二選一以及 n 選一的方案,將 在以下的小節做出詳細的介紹。. 2.4.2. 有效率的模糊傳輸協定(Efficient Oblivious Transfer, EOT). 首先,在提到 EOT 中提到的模糊傳輸協定是在𝑍𝑞 這個群做運算,這個群的序為質數 (prime order),更特別的是𝐺可以是一個𝑍𝑝∗ 的子群,其序為𝑞, 𝑞|𝑝 − 1。定義𝑔為生成元, 並具有 Computational Diffie-Hellman assumption(CDH assumption)。而這個協定利用了一 個函數 H,這個函數被假設為一個隨機預言(random oracle)。 2.4.2.1. 政 治 大. 二選一模糊傳輸 (1-out-of-2). 立. 1. 傳送者隨機選取一個亂數𝑟 ∈ 𝑍𝑞 ,以及公布一個亂數𝐶 ∈ 𝑍𝑞 ,同時計算𝐶 𝑟 與𝑔𝑟 。. ‧ 國. 學. 𝐶. 2. 接收者隨機選取一個亂數1 ≤ 𝑘 ≤ 𝑞,計算公鑰𝑃𝐾𝜎 = 𝑔𝑘 , 𝑃𝐾1−𝜎 = , 𝜎 = {0,1},接 𝑃𝐾. 𝐶𝑟. ‧. 著傳送𝑃𝐾0 給傳送者。. 𝜎. Nat. 3. 傳送者在接收到𝑃𝐾0 之後,計算(𝑃𝐾0 )𝑟 以及(𝑃𝐾1 )𝑟 = (𝑃𝐾 )𝑟 ,接著傳送𝑔𝑟 與對兩個明. sit. y. 0. al. v i n Ch 𝑟 𝑘 𝑟 接收者收到傳送者傳來的資訊之後,計算𝐻((𝑔 e n g c h i U) , 𝜎) = 𝐻((𝑃𝐾𝜎 ) , 𝜎)並與𝐸0, 𝐸1做⨁ n. 4.. io. 收者。. er. 文𝑀0 , 𝑀1 分別加密後的資訊𝐸0 = 𝐻((𝑃𝐾0 )𝑟 , 0)⨁𝑀0 以及𝐸1 = 𝐻((𝑃𝐾1 )𝑟 , 1)⨁𝑀1 給接. 運算即可得到索求的明文。. 23.

(33) 立. 政 治 大. 圖 9 二選一模糊傳輸協定流程圖. ‧ 國. 學. 2.4.2.2. N 選一模糊傳輸 (1-out-of-N). ‧. 1. 傳送者隨機選取一個亂數𝑟 ∈ 𝑍𝑞,以及公布𝑁 − 1個亂數𝐶1 , 𝐶2 , … , 𝐶𝑁−1 ∈ 𝑍𝑞,同時計 算(𝐶𝑖 )𝑟 , 1 ≤ 𝑖 ≤ 𝑁 − 1與𝑔𝑟。接著將𝐶1 , 𝐶2 , … , 𝐶𝑁−1 與𝑔𝑟 做完傳送者的公鑰傳送給接收. io. sit. y. Nat. 者。. 𝐶. n. al. er. 2. 接收者隨機選取一個亂數1 ≤ 𝑘 ≤ 𝑞,計算𝑃𝐾𝜎 = 𝑔𝑘 。如果𝜎 ≠ 0則計算𝑃𝐾0 = 𝑃𝐾𝜎 ,. Ch. engchi U. v ni. 𝜎. 接著傳送𝑃𝐾0 給傳送者,並且同時也運算(𝑔r )𝑘 = (𝑃𝐾𝜎 )𝑟 作為解密的金鑰。 (𝐶 )𝑟. 3. 傳送者在接收到𝑃𝐾0 之後,計算(𝑃𝐾0 )𝑟 以及(𝑃𝐾𝑖 )𝑟 = (𝑃𝐾𝑖. 𝑟 0). , 1 ≤ 𝑖 ≤ 𝑁 − 1,並且選取. 一個隨機的字串𝑅,這個字串的長度必須夠長,必須大於2 log 𝑛位元。接著對於每個 明文𝑀0 , 𝑀1 … 𝑀𝑁−1分別加密得到𝐸𝑖 = 𝐻((𝑃𝐾𝑖 )𝑟 , 𝑅, 𝑖)⨁𝑀𝑖 ,最後傳送𝐸𝑖 以及字串𝑅給 接收者。 4. 接收者收到傳送者傳來的資訊之後,計算𝐻((𝑃𝐾𝜎 )𝑟 , 𝑅, 𝜎)並與𝐸𝑖 做⨁運算即可得到索 求的明文。. 24.

(34) 政 治 大 圖 10 N 選一模糊傳輸協定流程圖 立. ‧ 國. 學. 2.5 離散對數問題 (Discrete Logarithm Problem, DLP) 離散對數問題因為其求解的困難性而被廣泛利用在密碼學的領域中,而 ElGamal 加密系. ‧. 統主要也是基於求解離散對數這個難問題,換句話說,要破解 ElGamal 加密系統,以目. Nat. n. al. er. io. 什麼樣的難問題,接著我們會有詳細的定義與介紹。. sit. y. 前所知的手法而言,唯一的方法就是去破解離散對數問題,然而離散對數問題又是一個. i n U. v. 首先定義一個乘法群(multiplicative group)(𝐺,⋅),接著對於一個元素𝛼 ∈ 𝐺,𝛼的序 𝑖. Ch. engchi. (order)為𝑝,定義⟨𝛼⟩ = {𝛼 𝑚𝑜𝑑 𝑝: 0 ≤ 𝑖 ≤ 𝑝 − 1}, β ∈ ⟨𝛼⟩,而從這個定義很清楚可以看 出來⟨𝛼⟩是一個乘法循環群,其序為𝑝。問題為是否可以有效率的找一個整數𝑎, 0 ≤ 𝑎 ≤ 𝑝 − 1,使得αa 𝑚𝑜𝑑 𝑝 = 𝛽 𝑚𝑜𝑑 𝑝。由上述式子推得𝑎 𝑚𝑜𝑑 𝑝 − 1 = log 𝛼 𝛽 𝑚𝑜𝑑 𝑝 − 1 , 因此將此問題稱作β的離散對數問題,而到現今為止都被視為一個相當困難求解的難問 題。. 2.6 計 算 性 迪 菲 - 赫 爾 曼 問 題 (Computational Diffie-Hellman Problem, CDHP) 令𝑝為一個大質數,𝐺 ⊆ 𝑍𝑝∗ 為一個循環群其序為𝑞, 𝑔是循環群𝐺的生成元且𝑝 = 2𝑞 + 1,. 25.

(35) 在已知𝑔, 𝑔𝑎 𝑚𝑜𝑑 𝑝, 𝑔𝑏 𝑚𝑜𝑑 𝑝,求解𝑔𝑎𝑏 𝑚𝑜𝑑 𝑝的問題即稱作 CDH 難問題。. 2.7 決定性迪菲-赫爾曼問題 (Decisional Diffie-Hellman Problem, DDHP) 令𝑝為一個大質數,𝐺 ⊆ 𝑍𝑝∗ 為一個循環群其序為𝑞, 𝑔是循環群𝐺的生成元且𝑝 = 2𝑞 + 1, 在已知𝑔, 𝑔𝑎 𝑚𝑜𝑑 𝑝, 𝑔𝑏 𝑚𝑜𝑑 𝑝, 𝑔𝑐 𝑚𝑜𝑑 𝑝,判斷是否𝑐 = 𝑎𝑏的問題即稱作 DDH 難問題。. 2.8 語意安全 (Semantic Security) 2.8.1. 語意安全介紹. 政 治 大 法的安全定義。對於一個具備語意安全的非對稱式金鑰加密演算法來說,它必須能夠抵 立. 語意安全是一個被廣泛利用在非對稱式金鑰加密(Asymmetric Key Encryption, AKE)演算. ‧ 國. 學. 抗一個具備有限計算能力(computationally bounded)的攻擊者所發動的攻擊。這個攻擊者 就算擁有密文以及與其對應的加密公鑰,也沒有辦法從密文獲得有關明文的任何資訊,. ‧. 換句話說,也就是能夠抵抗選擇明文攻擊(Chosen Plaintext attack, CPA)。. sit. y. Nat. 語意安全的概念最早是由 Goldwasser 和 Micali[14]在 1982 年所提出,而通常證明. io. er. 語意安全時會設計一個遊戲,假使能夠成功地贏得遊戲,則表示具備了破解語意安全的. al. 能力。以下說明這個遊戲的步驟:. n. v i n Ch 攻擊者知道加密方法與公鑰,並允許攻擊者在有限的多項式時間內產生任何數量的 engchi U. 1.. 密文。 2. 攻 擊 者 任 意 生 成 兩 個 長 度 相 同 的 訊 息 𝑚0 , 𝑚1 , 並 且 將 這 兩 個 訊 息 傳 給 挑 戰 者 (challenger)。 3. 挑戰者投擲一個公平的硬幣,若正面則加密𝑚0,反面則加密𝑚1。加密完之後將密文 回傳給攻擊者。 1. 4. 攻擊者猜中密文所對應的明文機率是2 + ε,若ε的值微小到可以忽略(negligible),則 稱攻擊者無法破解語意安全。反之,若ε的值無法忽略不計,則攻擊者攻擊成功的破 解了語意安全。 26.

(36) 本論文的加密系統是採用 ElGamal 的加密系統,在下一個小節將會以 ElGamal 為例, 說明 ElGamal 是符合語意安全的。. 2.8.2. ElGamal 的語意安全. 為了說明 ElGamal 符合語意安全,我們如上個小節所說創建一個遊戲: 1. 攻擊者知道在這個遊戲中我們都使用 ElGamal 加密系統以及所使用的公鑰(𝐺, 𝑞, 𝑔, 𝑦), 並允許攻擊者在有限的多項式時間內產生任何數量的密文。 2. 攻 擊 者 任 意 生 成 兩 個 長 度 相 同 的 訊 息 𝑚0 , 𝑚1 , 並 且 將 這 兩 個 訊 息 傳 給 挑 戰 者 (challenger)。. 立. 政 治 大. 3. 挑戰者投擲一個公平的硬幣,若正面則加密𝑚0 ,反面則加密𝑚1 。此時回顧 2.2 的. ‧ 國. 學. ElGamal 加密演算法,挑戰者加密時會選取一個變數𝑟 ∈ {0, … , 𝑞 − 1},並且計算 𝐶1 = 𝑔𝑟 𝑚𝑜𝑑 𝑝。接著選擇明文𝑚𝑖 , 𝑖 ∈ {0,1},生成 𝐶2 = 𝑚 × 𝑦 𝑟 𝑚𝑜𝑑 𝑝。加密完之後. ‧. 將密文(𝐶1 , 𝐶2 )回傳給攻擊者。. Nat. sit. y. 4. 此時由於挑戰者在加密過程中,任意選取了一個亂數𝑟 ∈ {0, … , 𝑞 − 1},使得攻擊者. n. al. er. io. 並沒有辦法從已知條件(𝐺, 𝑞, 𝑔, 𝑦)計算出密文(𝐶1 , 𝐶2 )究竟是由𝑚0 , 𝑚1 哪一個訊息所 加密的,確保了 ElGamal 的語意安全。. Ch. engchi. i n U. v. 基於 DDHP,ElGamal 可被證明滿足語意安全並且有效的抵抗選擇明文攻擊(CPA)。 另外,儘管沒有嚴格的證明,但一般推測 ElGamal 是能夠抵抗選擇密文攻擊(CCA) 的。 以下便證明如何以 DDHP 證明 ElGamal 符合語意安全。假設攻擊 ElGamal 演算法的攻 擊者為𝐴𝑇1 ,攻擊 DDH 的攻擊者為𝐴𝑇2 ,以及一個挑戰者𝐶(challenger)。 1. 𝐶將𝑔, 𝑔𝑎 𝑚𝑜𝑑 𝑝, 𝑔𝑏 𝑚𝑜𝑑 𝑝以及𝑇 = 𝑔𝑎𝑏 傳送給𝐴𝑇2,𝐴𝑇2 將𝑔, 𝑔𝑎 𝑚𝑜𝑑 𝑝傳給𝐴𝑇1,其中 𝑔𝑎 作為 ElGamal 加密的公鑰。 2. 𝐴𝑇1 選擇訊息𝑀0 , 𝑀1 ,並且將𝑀0 , 𝑀1 傳送給𝐴𝑇2 。 3. 𝐴𝑇2 在收到𝑀0 , 𝑀1 後,任意選擇一個訊息做加密得到𝐶1 = 𝑔𝑏 , 𝐶2 = 𝑀𝛾 𝑇, 𝛾 ∈ {0,1} ,並 將(C1 , C2 )傳回給𝐴𝑇1 。 27.

(37) 4. 𝐴𝑇1 收到(C1 , C2 )後,猜測被加密的訊息是𝑀𝛾′ , 𝛾 ∈ {0,1}回傳給𝐴𝑇2 。 5. 若𝑀𝛾′ = 𝑀𝛾,表示𝐴𝑇1 挑戰成功,成功的破解了 ElGamal 的語意安全,而同時𝐴𝑇2 從𝐴𝑇1 能夠猜出正確的訊息推論出當初所加密的(𝐶1 , 𝐶2 )為合法的 ElGamal 加密,因此得知 𝐶2 = 𝑀𝛾 × (𝑔𝑎 )𝑏 = 𝑀𝛾 𝑇 ⇒ 𝑇 = 𝑔𝑎𝑏 。如此一來𝐴𝑇2 便利用了𝐴𝑇1 破解了 DDHP。但已 知 DDHP 為難問題,因此由逆否命題可知:若 DDHP 無法被破解,則 ElGamal 無法 被破解。所以證明 ElGamal 是符合語意安全的。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 28. i n U. v.

(38) 3. 研究方法 本論文的研究主要目的是為了解決在章節 2.3.3 所提到的幾個問題點,重新設計一個雙 方祕密計算為架構的協定。本研究提出的協定,採用的是 ElGamal 加密演算法,移除了 邱姓學者在之前文章中需要對加密演算法的限制,以及減少了原本因為使用 Gentry 的加 密演算法所造成的時間成本。同時搭配模糊傳輸協定,讓本研究的相等性驗證協定能夠 應用在更多的實務面上。接下來的章節將從基礎的協定開始介紹,一步步探討,最後深 入到完整的協定。. 3.1 基礎協定. 立. 基礎協定介紹. ‧ 國. 學. 3.1.1. 政 治 大. 為了解決比較雙方私密資訊相等性的問題,本研究先設計並提出了一個基礎的協定,在. ‧. 不揭露雙方私密資訊的條件下,比較 Alice 跟 Bob 兩個人的私密資訊是否相等。假設. Nat. sit. y. Alice 擁有私密資訊 a,Bob 擁有私密資訊 b 以及私鑰𝑥𝑏 ,選取一個夠大的質數𝑝與生成. n. al. er. io. 元𝑔,配合私鑰計算出公鑰𝑃𝐾𝐵 = 𝑦𝑏 = 𝑔 𝑥𝑏 𝑚𝑜𝑑 𝑝,接著以下列步驟比較 Alice 跟 Bob. i n U. v. 的 a 與 b 是否相等。由於文中將會有許多的模(𝑚𝑜𝑑)運算,之後文章中的模運算都將以. Ch. engchi. [𝑥]𝑦 代表 𝑥 𝑚𝑜𝑑 𝑦。另外[(𝑥1 , 𝑥2 )]𝑦 代表 (𝑥1 𝑚𝑜𝑑 𝑦, 𝑥2 𝑚𝑜𝑑 𝑦)。 1. Alice 任選一個亂數 t,並將 a 做𝑡 × 𝑎 𝑚𝑜𝑑 𝑝 = [𝑡 × 𝑎]𝑝 之後傳送給 Bob。 2. Bob 接收到資訊後,計算[. [𝑡×𝑎]𝑝 𝑏. 𝑡𝑎. ] = [ 𝑏 ] ,並且用 Bob 自己的公鑰𝑃𝐾𝐵 以 ElGamal 加 𝑝. 𝑝. 𝑡𝑎. 密系統加密運算後,得到[𝐸𝑃𝐾𝐵 ( 𝑏 )] = (𝐶1 , 𝐶2 ) = [(𝑔𝑟1 , 𝑝. 𝑡𝑎 𝑏. × 𝑦𝑏 𝑟1 )] ,再將𝐶2 回傳. 給 Alice。 3. Alice 收到 (𝐶1 , 𝐶2 ) 後,對所收到的密文做以下兩個步驟的運算。 𝑎. (1) 𝐶2′ = [𝐶2 × 𝑡 −1 ]𝑝 = [𝑏 × 𝑦𝑏 𝑟1 ]. 𝑝. 29. 𝑝.

(39) 𝑎 𝑙. 𝑙 (2) (𝐶1′′ , 𝐶2′′ ) = (𝑔𝑙 , 𝐶2′ ) = [(𝑔𝑙 , (𝑏) × 𝑦𝑏 𝑟1 ×𝑙 )]. 𝑝. 接著再將結果回傳給 Bob,其中𝑙為 Alice 自選的亂數。. 4. Bob 在收到(𝐶1′′ , 𝐶2′′ )之後,先利用私鑰𝑥𝑏 與之前自選的亂數𝑟1 計算[(𝑔𝑟1×𝑙 )𝑥𝑏 ]𝑝 = 𝑎 𝑙. 𝑎 𝑙. 𝑎 𝑙. [𝑦𝑏 𝑟1 ×𝑙 ]𝑝,接著計算[(( ) × 𝑦𝑏 𝑟1 ×𝑙 ) × (𝑦𝑏 𝑟1 ×𝑙 )−1 ] = [( ) ] ,若[( ) ] = 1,則表 𝑏 𝑏 𝑏 𝑝. 𝑝. 𝑝. 𝑎. 示(𝑏) = 1,也就推論出𝑎 = 𝑏,否則𝑎 ≠ 𝑏。最後,Bob 在得知相等與否之後,發送 訊息告訴 Alice 告知雙方私密資訊是否相等。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 11 基礎協定流程圖. 3.1.2 基礎協定討論 在這個基礎的協定裡,只要 Alice 跟 Bob 找著步驟完成協定,便可以達到判斷雙方私密 資訊是否相等的目的。而這樣的基礎協定,可以被利用在用戶端與伺服器(client & server) 這樣的環境。舉例來說,假設 Alice 為用戶端,Bob 作為伺服器端,Alice 要登入伺服器 時,Bob 去驗證 Alice 所傳送來的通行碼(password)是否與當初註冊的相同,如果相同, 則允許登入,否則拒絕登入。若使用這個協定所架構出來的環境,則每個用戶所註冊的. 30.

(40) 資訊就都可以以密文的形式儲存在伺服器端,而伺服器端並不需要解密即可驗證登入者 的身分。就算有任何駭客成功破解伺服器的防護,獲取到的用戶資料也全都是密文,比 起傳統的密碼儲存方式來的安全有保障。 儘管基礎的協定已經達到判斷雙方私密資訊是否相等的目的,但是仍然存在一個問 題。問題在於基礎的協定中,最後一個步驟是由 Bob 來告訴 Alice 是否相等,Alice 只能 夠相信 Bob 所告知的最後結果,並沒有辦法驗證 Bob 是否有說謊,這對 Alice 來說是不 太公平的。為了解決這個問題,便在基礎的協定中增加了一些驗證的機制,讓 Alice 也. 政 治 大. 能夠驗證 Bob 所告知的最後結果是否正確無誤,達到雙方相等性驗證,以確保雙方的公. 立. 學. ‧ 國. 平性。. 3.2 雙方相等性驗證之協定 雙方相等性驗證協定介紹. ‧. 3.2.1. 為了解決上述所提到的雙方驗證問題,本研究接著設計了一個具備雙方驗證功能的協定,. y. Nat. n. al. er. io. 證結果是否正確無誤。. sit. 除了用來比較 Alice 跟 Bob 兩個人的私密資訊是否相等之外,更可以達到雙方都能夠驗. Ch. i n U. v. 1. Alice 任選一個亂數 t,並將 a 做𝑡 × 𝑎 𝑚𝑜𝑑 𝑝 = [𝑡 × 𝑎]𝑝 之後傳送給 Bob。 2. Bob 接收到資訊後,計算[. [𝑡×𝑎]𝑝 𝑏. e n𝑡𝑎g c h i. ] = [ 𝑏 ] ,並且用自己的公鑰𝑃𝐾𝐵 = 𝑦𝑏 = 𝑔 𝑥𝑏 𝑚𝑜𝑑 𝑝 𝑝. 𝑝. 𝑡𝑎. 𝑡𝑎. 𝑏. 𝑏. 以 ElGamal 加密系統加密運算後,得到[𝐸𝑃𝐾𝐵 ( )] = (𝐶1 , 𝐶2 ) = [(𝑔𝑟1 , 𝑝. × 𝑦𝑏 𝑟1 )] , 𝑝. 再將(𝐶1 , 𝐶2 )回傳給 Alice。 3. Alice 收到 (𝐶1 , 𝐶2 ) 後,在這個步驟又分成三個部分: I.. 將[𝑡 −1 ]𝑝 以 Bob 的公鑰加密,並選取一個亂數𝑙1根據 ElGamal 加密系統所具備的 乘法同態性質做以下兩個步驟的運算: 𝑡𝑎. 𝑎. (1) 𝐸𝑃𝐾𝐵 (𝑡 −1 ) × 𝐸𝑃𝐾𝐵 ( 𝑏 ) = 𝐸𝑃𝐾𝐵 (𝑏). 31.

(41) 𝑎. (2) (𝐸𝑃𝐾𝐵 (𝑏)) II.. 𝑙1. 𝑎. 𝑙1. 𝑚𝑜𝑑 𝑝 = [(𝐸𝑃𝐾𝐵 (𝑏)) ]. 𝑝. 將從 Bob 接收而來的原始(𝐶1 , 𝐶2 ) ,並選取一個亂數𝑙2 做以下兩個步驟的運算。 𝑎. (1) 𝐶2′ = [𝐶2 × 𝑡 −1 ]𝑝 = [𝑏 × 𝑦𝑏 𝑟1 ]. 𝑝 𝑎 𝑙2. 𝑙 (2) (𝐶1′′ , 𝐶2′′ ) = (𝑔𝑙2 , 𝐶2′ 2 ) = (𝑔𝑙2 , (𝑏) × 𝑦𝑏 𝑟1 ×𝑙2 ). III. Alice 對 𝑖 個 1 與任選的 𝑖 個不等於 1 的變數 𝑘𝑖 並以 Bob 的公鑰加密,將 𝑎. 政 治 大. 𝑙1. (𝐸𝑃𝐾𝐵 (11 ), … , 𝐸𝑃𝐾𝐵 (1𝑖 ), 𝐸𝑃𝐾𝐵 (𝑘1 ), … , 𝐸𝑃𝐾𝐵 (𝑘𝑖 ), [(𝐸𝑃𝐾𝐵 (𝑏)) ] , (𝐶1′′ , 𝐶2′′ ))回傳給. 立. 𝑝. Bob。其中,除了(𝐶1′′ , 𝐶2′′ )以外的2𝑖 + 1個數值順序是由 Alice 自訂的,這個順序. ‧ 國. 學. 的安排將會被利用在之後的驗證步驟。 4. Bob 在收到密文數列之後,運算分做兩大部分:. ‧. I.. 在 固 定 位 置 將 (𝐶1′′ , 𝐶2′′ ) 取 出 , 先 利 用 私 鑰 𝑥𝑏 與 之 前 自 選 的 亂 數 𝑟1 計 算. Nat. 𝑎 𝑙2. 𝑎 𝑙2. sit. 𝑎. 𝑝. 𝑝. er. io. 𝑎 𝑙2. y. [(𝑔𝑟1 ×𝑙2 )𝑥𝑏 ]𝑝 = [𝑦𝑏 𝑟1 ×𝑙2 ]𝑝,接著計算[(( ) × 𝑦𝑏 𝑟1 ×𝑙2 ) × (𝑦𝑏 𝑟1 ×𝑙2 )−1 ] = [( ) ] , 𝑏 𝑏 若[( ) ] = 1,則表示( ) = 1,也就推論出𝑎 = 𝑏,否則𝑎 ≠ 𝑏。 𝑏 𝑏 II.. al. n. 𝑝. Ch. i n U. engchi. v. 𝑎. 𝑙1. 對數列中 Alice 隨機擺放2𝑖 + 1個元素做解密,其中[(𝐸𝑃𝐾𝐵 (𝑏)) ] 解密之後得到 𝑝. 𝑎 𝑙1. [(𝑏) ] ,對𝐸𝑃𝐾𝐵 (11 ), … , 𝐸𝑃𝐾𝐵 (1𝑖 ), 𝐸𝑃𝐾𝐵 (𝑘1 ), … , 𝐸𝑃𝐾𝐵 (𝑘𝑖 )解密會得到𝑖個 1 跟𝑖個 𝑝. 變數𝑘𝑖 ,解密後的結果劃分為兩種: 𝑎 𝑙1. 𝑎. (1) 如果 1 的個數多於變數的個數,表示[(𝑏) ] = 1 = (𝑏),由此可以推論得到𝑎 = 𝑏。 𝑝. Bob 在知道雙方私密資訊相等後,接著回傳(11 , … , 1𝑖 , 𝑘1′ , … , 𝑘𝑖′ , 1)給 Alice。 𝑎 𝑙1. 𝑎. (2) 如果 1 的個數少於變數的個數,表示[(𝑏) ] ≠ 1 ≠ (𝑏),由此可以推論得到𝑎 ≠ 𝑏。 𝑝. 𝑎 𝑙1. Bob 在知道雙方私密資訊不相等後,接著回傳(11 , … , 1𝑖 , 𝑘1′ , … , 𝑘𝑖′ , [(𝑏) ] )給 𝑝. 32.

(42) Alice。 最後,Bob 在經過雙重判斷得知相等與否之後,發送訊息告訴 Alice 告知雙方私密資 訊是否相等。無論是上述兩種情況中的哪一種,Bob 都不會去更動數列內元素的順 序,否則 Alice 將會在驗證步驟時發現 Bob 更動過數列。同時,Bob 在回傳數列的時 候,會將原本數列中的𝑘1 , … , 𝑘𝑖 替換成𝑘1′ , … , 𝑘𝑖′。這麼做的原因是為了避免當𝑎 ≠ 𝑏時, 𝑎 𝑙1. Alice 能夠就她自訂的數列位置找到[( ) ] ,進而得知 Bob 的私密資訊。 𝑏 𝑝. 5. 當 Alice 收到 Bob 回傳的數列後,由於只有 Alice 知道當初傳送資料的順序,Alice. 治 政 針對回傳的數列,檢查所有的 1 與變數位置是否正確,以檢驗 Bob 是否更改了數列 大 立 中元素的位置或是企圖以竄改元素的方式欺騙 Alice。接著,Alice 再去對應的位置 ‧ 國. 學. 𝑎 𝑙1. 找 到[(𝑏) ] ,檢查是否為 1。 若數列中元素位置皆 正確而且沒有被竄改 , 且 𝑝. ‧. 𝑎 𝑙1. [(𝑏) ] = 1,則表示 Bob 沒有企圖以更改資訊的方式欺騙 Alice,而且雙方的私密 𝑝. Nat. n. al. er. io. sit. y. 資訊是相等的。. Ch. engchi. 33. i n U. v.

(43) 立. 政 治 大. ‧. ‧ 國. 學 y. sit. Nat. 雙方相等性驗證協定討論. io. er. 3.2.2. 圖 12 雙方相等性驗證協定流程圖. al. 在這個改良的方案中,不僅僅是雙方都知道私密資訊是否相等,同時也讓 Alice 可以驗. n. v i n Ch 證 Bob 是否誠實地告知結果,達到了雙方的相等性驗證。接著用一個簡單的例子來說明 engchi U 假如一個不誠實的 Bob 想要欺騙 Alice,成功機會是相當微小的。 在這個例子裡,假設 Alice 以 Bob 的公鑰加密了三個 1 以及三個變數𝑘1 , 𝑘2 , 𝑘3 ,並 𝑎. 𝑙1. 且以(𝐸𝑃𝐾𝐵 (1), 𝐸𝑃𝐾𝐵 (𝑘1 ), 𝐸𝑃𝐾𝐵 (𝑘2 ), 𝐸𝑃𝐾𝐵 (1), 𝐸𝑃𝐾𝐵 (𝑘3 ), [(𝐸𝑃𝐾𝐵 (𝑏)) ] , 𝐸𝑃𝐾𝐵 (1))的順序 𝑝. 𝑎 𝑙1. 送出給 Bob。Bob 解密後會得到(1, 𝑘1 , 𝑘2 , 1, 𝑘3 , [(𝑏) ] , 1),如同上小節所述,根據雙 𝑝. 方私密資訊相等性與否,將分成兩種情況: (1) 若雙方私密資訊相等,Bob 必須傳回(1, 𝑘1 ′, 𝑘2 ′, 1, 𝑘3 ′, 1,1)給 Alice,此時若 Bob 想欺騙 Alice 說雙方資訊不相等,則必須將四個 1 當中的一個換成任意變數𝑘4 , 34.

參考文獻

相關文件

動態時間扭曲:又稱為 DTW(Dynamic Time Wraping, DTW) ,主要是用來比

審查整理呈現資料:蒐集到的資料應先審核 是否完整、正確、合理與一致,然後利用敘

所以 10 個數字 個數字 個數字 個數字 pattern 就產生 就產生 就產生 就產生 10 列資料 列資料 列資料 列資料 ( 每一橫 每一橫 每一橫

由於投訴人的上司對投訴人的工作表現不 滿,因此向投訴人發出一封警告電郵,並

 想要設計一個具有兩個輸入G(gate閘控)和 D(data資料)以及一個輸出Q的閘控閂電 路。當G等於1時,在輸入D出現的二進位資料

• 不過,如果是為調查及懲處嚴重不當行為(並不限於罪案)的目的而使用 的個人資料,則受《 私隱條例》第58條所豁免 ,以致有關資料不受保障資

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出