• 沒有找到結果。

一個可降低Gentry全同態加密演算法公鑰個數之提案 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "一個可降低Gentry全同態加密演算法公鑰個數之提案 - 政大學術集成"

Copied!
58
0
0

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

全文

(1)國立政治大學資訊科學研究所 Department of Computer Science National Chengchi University 碩士論文 Master Thesis. 立. 政 治 大. ‧ 國. 學. 一個可降低 Gentry 全同態加密演算法公鑰個數. ‧. 之提案. sit. y. Nat. n. er. io. An Improvement of Gentry’s “Fully al v i n Homomorphic Encryption Scheme” by Reducing Ch engchi U the Number of Public Keys 指導教授:左瑞麟 教授 研 究 生: 陳漢光. 中華民國一○一年七月 July 2012.

(2) 一個可降低 Gentry 全同態加密演算法公鑰個數之提案 An Improvement of Gentry’s “Fully Homomorphic Encryption Scheme” by Reducing the Number of Public Keys. 研 究 生:陳漢光 指導教授:左瑞麟. Tso 治 政Advisor:Ray-Lin, 大. 學. ‧ 國. 立. Student:Han-Kuang, Chen. ‧. 國立政治大學 資訊科學系 碩士論文. sit. y. Nat. n. er. io. A Thesis a lDepartment of Computer v Science submitted to i n C i U e n g c hUniversity NationalhChengchi in partial fulfillment of the Requirements for the degree of Master in Computer Science 中華民國一○一年七月 July 2012.

(3) 摘要 "全同態加密法"(Fully Homomorphic Encryption (FHE))一詞的介紹以及架構源於 西元 2009 年由 Gentry 所提出。它讓加密後的密文執行特定的運算再將其解密即 可得出該對應的明文運算結果,除此之外,全同態與同態最大的不同是它允許兩 種或是多種以上的運算元進行資料運算,期間必須可以處理大量的資料並且保護 其資料隱私性使其無洩漏之虞。也因為上述特點使得它可被廣泛使用在許多資料 庫或是資料儲存上的應用,像是 ASP、雲端運算或是雙方相等性驗證上,然而在 Gentry 的全同態加密中,它需要大量的空間來儲存所需要的公鑰,因此在實作上. 政 治 大 率來達到全同態加密的實作性,除此之外,我們也會在文章中提出安全性分析來 立 仍有一定的難度。為了解決上述問題,本文提供了一種新的改良方案使其更有效. ‧ 國. 學. 證明本改良方案並不會對安全性造成影響,並且提出系統效能測試,說明本方案 除了可減少公鑰儲存空間之外,在時間上,更可降低公鑰生成以及系統加密的時. ‧. 間,讓其全同態運算更具效率。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v.

(4) Abstract C. Gentry in 2009 proposed the first practical scheme which can compute arbitrary functions of encrypted data. This scheme is named “Fully Homomorphic Encryption (FHE)”. FHE allows a worker without the secret decryption key to compute any result of the data on one hand and still keep the data privacy on the other hand. It can be widely used in data storage application or database application, such as ASP, cloud computing and two-party equality testing. However, one drawback of Gentry’s fully homomorphic encryption scheme is that the size of public keys used in this system is. 政 治 大 public keys. This problem 立 causes Gentry’s FHE hard to be implemented. In this thesis, extremely large. This means that a lot of space is required in order to store those. ‧ 國. 學. we address the problem above, and give an improvement encryption scheme. Our improvement scheme needs less space to store the public keys which also makes the. ‧. new scheme more efficient than Gentry’s original scheme. We also give a rigorous. sit. y. Nat. security proof to show that our improvement scheme is as secure as Gentry’s original. n. al. er. io. scheme. A system performance test is also provided which shows that our scheme can. i n U. v. not only reduce the numbers of public keys, but also reduce the time for public key. Ch. engchi. generation and for encryption. Therefore, our improvement scheme can make fully homomorphic encryption more practical..

(5) 致謝 時間匆匆,隨著碩士論文的完成,也為我的學生生涯畫上了一個句點。回首 過往,感謝許多老師、家人以及朋友的幫助以及指引,讓我在就讀碩士期間學習 了很多也獲得到更多。首先要感謝我的指導教授左瑞麟老師,謝謝老師的指導以 及督促讓我在資訊安全領域上獲益良多,更重要的是老師除了授業之外,更帶給 我們謙和待人、誠正做人等待人處事的道理。在我的心中,左老師不僅僅是傳達 專業知識的教授,更是一位關心學生、了解學生的兄長。感謝口試委員楊中皇教 授、王旭正教授以及黃仁俊教授,三位給我的鼓勵以及意見,讓我獲益良多。政. 政 治 大 感謝同窗同學承峰、欣瑤、凱彬以及圖學實驗室同學這兩年的互相砥礪,也 立. 大師長們的教導跟指點,更是我碩士兩年自我培育過程的明燈。. ‧ 國. 學. 謝謝兩位學長致諺、士峰的照顧,讓我們完全都沒有剛進實驗室該有的陌生,謝 謝理學院的融亭、亭君、映磊,在我投稿時間給我的鼓勵以及幫助。也謝謝兩位. ‧. 學弟士豪跟思瑋,在我碩二的期間帶給我許多的歡樂。而我特別感謝承峰及浩宇,. sit. y. Nat. 感謝你們這一路上以來的包容跟幫助,不管是課業上的討論或是分享彼此的人生,. al. er. io. 這一路上都謝謝你們的陪伴跟幫助,讓我在人生的道路上並不孤單。在這兩年也. v. n. 很感謝心恆、柏蓁,陳鐸、志翰、峻年、克嘉、閔閑、慈葳、冠甫、家瑄、宏儒、. Ch. engchi. i n U. 凱群、明慶、宗憲等朋友假日的陪伴,讓我在周末時可以放鬆自己,迎接下一關 卡。謝謝上述的各位朋友,在我求學的期間給我的鼓勵、關心、提點,真的謝謝 你們。 最後我要感激我的家人,特別是我的父母,在求學這兩年間讓我毫無後顧之 憂的往上衝刺,父母給我的加油打氣畫面歷歷在目,我也銘記在心,感謝父母所 為孩子做出的犧牲與苦心栽培。最後則是要感激我的外公,外公在我著寫論文期 間離開了我們,感謝你與外婆幼時的撫養及教養之恩,辛辛苦苦地把一個孩子養 到懂事,這份恩情我永遠記在心裡,最後感謝的是還是這一路上曾幫助過我的師 長、家人以及朋友,希望我的努力能讓你們感到欣慰與驕傲。.

(6) 目錄 1.. 2.. 緒論: ................................................................................................................. 1 1.1 雲端運算 ............................................................................................... 1 1.2 解決方法 ............................................................................................... 3 1.3 全同態加密應用.................................................................................... 4 1.4 研究動機及貢獻.................................................................................... 5 1.5 論文架構 ............................................................................................... 6 預備知識........................................................................................................... 7 2.1 近代密碼學 ........................................................................................... 7 2.1.1 對稱式金鑰密碼系統 (Symmetric Key Cryptosystem)....................... 7 2.1.2 非對稱式金鑰密碼系統 (Asymmetric Key Cryptosystem) ................. 8. 政 治 大. 2.2 同態加密 ............................................................................................. 10 2.2.1 加法同態 ......................................................................................... 10. 立. ‧ 國. 2.5 語意安全(Semantic Secure) ................................................................. 19 Gentry 全同態加密方案回顧......................................................................... 21 3.1 Gentry 全同態加密演算法 ................................................................. 21 3.2 同態加密的正確性 .............................................................................. 23 3.3 探討 Gentry 方案 ................................................................................ 24. ‧. 3.. 學. 2.2.2 乘法同態 ......................................................................................... 12 2.3 Genrty 對稱式全同態加密方案 .......................................................... 16 2.4 AGCD 問題(Approximate Greatest Common Divisor Problem) ............. 18. 7.. sit. n. 改進過後的 FHE 方案 ................................................................................... 25 4.1 我們提出的 FHE 方案 ........................................................................ 25 4.2 改進方案的貢獻.................................................................................. 27 4.3 正確性分析 ......................................................................................... 28 安全性證明 ..................................................................................................... 30 5.1. 6.. al. er. io. 5.. y. Nat. 4.. Ch. engchi. i n U. v. A-GCD 問題 ........................................................................................ 30. 5.2 語意安全 ............................................................................................. 33 5.3 為何需要A𝑥𝑘 ...................................................................................... 34 系統效能分析與比較 ..................................................................................... 35 6.1 金鑰生成所需時間 .............................................................................. 35 6.2 加密過程所需時間 .............................................................................. 38 全同態加密之應用 ......................................................................................... 41 7.1 邱姓學者提出的雙方相等性驗證....................................................... 41 7.2 FNP 隱私性交集相等性驗證 .............................................................. 44 7.3. 相等性驗證之應用 .............................................................................. 46.

(7) 結論及未來展望 ............................................................................................. 47 參考資料......................................................................................................... 48. 立. 政 治 大. 學 ‧. ‧ 國 io. sit. y. Nat. n. al. er. 8. 9.. Ch. engchi. i n U. v.

(8) 圖目錄. 圖 圖 圖 圖. 1 2 3 4. 利用傳統加密方法保障機密性且需進行雲端資料運算流程圖 ................... 2 利用同態加密進行資料運算流程圖.............................................................. 3 加解密基本流程圖......................................................................................... 7 對稱式金鑰密碼系統 ..................................................................................... 8. 圖 圖 圖 圖 圖. 5 非對稱金鑰密碼系統 ..................................................................................... 9 6 全同態加密方案流程 ..................................................................................... 22 7 公開金鑰所需時間 ......................................................................................... 36 8 金鑰生成時間 ................................................................................................ 37 9 加密時間 ........................................................................................................ 39. 圖 圖 圖 圖. 10 加密時間 ...................................................................................................... 40 11 協定與驗證流程 ........................................................................................ 43 12 比較交集個數 .............................................................................................. 44 13 協定流程 ...................................................................................................... 45. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v.

(9) 1. 緒論: 1.1 雲端運算 隨著科技的日新月異,造就了現今電子數位化的時代,使用者只須要有一台可連接網路 的微電腦就可以漫遊在網路之中取得他們所需要的資訊或是傳遞彼此之間的訊息。但隨 著數位化的普及造成單一台電腦在運算上或是儲存空間上漸漸開始不堪負荷,也因此進 而誕生雲端運算的概念。雲端運算是一種資料處理及儲存的模式,它透過網路連結其他. 政 治 大 或是透過網路來使用遠端伺服器提供的服務,皆可被歸類於雲端運算之中。也因為它的 立. 眾多電腦,使其可以進行平行運算,簡單來說利用網路來達到多台電腦運算上的溝通,. ‧ 國. 學. 便利性以及成本上的考量,雲端運算已經成為近年來熱門的話題。 在現今,不管所在何時及何處,人們都可以透過雲端運算去接收或發送他們所需要. ‧. 的線上資訊。使得資訊的傳遞變得越來越為方便。但在便利性的背後,也逐漸突顯了安. sit. y. Nat. 全性以及隱私性的重要。雖然我們都知道將資訊加密是最為安全的做法,但當我們需要. io. er. 對這些加密後的資訊做出運算時,必須先將這些加密後的密文進行解密進而進行運算,. al. 如此一來不僅造成安全上的風險更使得運算效率降低。假設我們想對兩個數值進行相加,. n. v i n Ch 在上述的情況下我們必須先將這兩個加密後的密文解密還原其原本數值進行加法運算, engchi U 再將其結果加密並且回傳到雲端上,這樣子的過程除了在效率上大幅度降低之外更造成 了硬體上的負擔,因此是個不明智的解決辦法。但在另一方面,若資料沒有進行加密可 能會造成較大風險的損失,像是醫療隱私這種特定的資料是必須經由加密來確保個資上 的隱私以及安全性。也因此產生了一個問題,如何在沒有私鑰的情況下,可以透過伺服 器端進行運算而依然保持正確性呢?. 1.

(10) 學 ‧. ‧ 國. 圖 1. 政 治 大 利用傳統加密方法保障機密性且需進行雲端資料運算流程圖 立. n. er. io. sit. y. Nat. al. Ch. engchi. 2. i n U. v.

(11) 1.2 解決方法 有鑑於上述問題,為了解決安全性上的疑慮,許多學者紛紛研究如何設計同態加密 演算法(Homomorphic Encryption)來確保資料的安全性以及正確性[3][16][17][24]。其中, 以 Gentry 的全同態演算法[11][12][13]最為著名,主要原因為其演算法除了沒有限制運算 次數之外更可讓兩種以上的運算子進行全同態運算。簡單的說,若想讓儲存在雲端上的 資料做整數運算(如:加法、乘法)而又不想執行如圖一這般的繁雜的傳送以及動作,使用 同態加密對使用者端而言,是最明智與方便的決定。舉例說明:假設明文為𝑚1 , 𝑚2 , … , 𝑚𝑡,. 治 政 經由加密過後得出密文為c , c , … , c ,並且送至雲端,使用同態加密進行運算對使用者端 大 立 而言,只需要一次的解密動作即可得到結果。所需要的步驟只需選擇函數 f 對雲端上加 1. 2. t. ‧ 國. 學. 密的密文進行特定運算後將結果傳送給使用者端進行解密,其結果會等同於其對應明文. ‧. 的運算結果。基於以上特性,在對密文進行運算處理時並不會造成任何資料隱私上的任 何問題。舉例來說,c1 , c2 分別代表 E (𝑚1 ) 和 E (𝑚2 )的加密密文, 所選擇的函數 f 為加. y. Nat. io. sit. 法運算,因此 E (𝑚1 )⊕E (𝑚2 ) =E (𝑚1 + 𝑚2 ), 最後我們只需將 E (𝑚1 + 𝑚2 ) 解密即可得. n. al. er. 到𝑚1 + 𝑚2 的計算結果,並且不會洩漏𝑚1 , 𝑚2 或是其他資訊。. 圖 2. Ch. engchi. i n U. v. 利用同態加密進行資料運算流程圖. 3.

(12) 1.3 全同態加密應用 同態以及全同態加密演算法可以廣泛的被應用在許多需要隱私性保護的資料應用 上[8][15][25],像是搜尋引擎、電子郵件、MSN…等。企業或是政府亦可利用全同態加 密來達到協同作業上的資料隱私性。舉例來說,一個國家若想要統計該國人民得到 AIDS 的統計數據或是加總資料,但是卻不想這類資料被其他機構或是人員知曉其細部內容, 使用全同態加密不論是資料或是運算都在伺服器端儲存或進行,並且伺服器端並沒有解 密金鑰,因此並無法破解密文以及最後的運算結果。因此若要對隱私性的資訊進行運算,. 治 政 選擇全同態加密對於保密資料以及計算資料上而言是最好的選擇。更甚是企業可以使用 大 立 全同態加密來計算員工工時或是員工薪資,這樣一來則少去許多信任上以及相關疑慮, ‧ 國. 學. 讓公司在人事或是其他相關作業上的運轉增加效率、少去不必要的麻煩。若在雲端上使. ‧. 用全同態加密,由於資料可儲存在雲端上,因此可以省去硬體設備上的成本,更重要的 是對於使用者端而言,我們只需將伺服器端傳來的運算結果進行解密即可(如圖二),因. y. Nat. io. sit. 此若在雲端上使用全同態加密可以保證其便利性以及低成本的兩大優點。. n. al. er. 除了以上雲端上的應用之外,全同態加密更可以使用在雙方相等性協議的實作上. Ch. i n U. v. [8][25]。若兩方 A、B 想要比較各自擁有其秘密資訊𝑚1 , 𝑚2 是否相等,期間並不得洩漏. engchi. 任何有用的資訊給任何一方,使用全同態加密去實作此項協定可以確保資料的正確性以 及安全性。而使用全同態加密的雙方相等性驗證更是可以被應用在許多資料庫服務或是 搜尋引擎服務上,例如線上拍賣競標、商業談判、電子投票、線上登入…等。皆可利用 上述技術去解決安全以及隱私性上的問題。 簡而言之,Fully Homomorphic Encryption(FHE)是一套強而有力的工具尤其在提供雲端 計算或是其他應用所需要的便利性和資料隱私性。. 4.

(13) 1.4 研究動機及貢獻 雖然 Gentry 的全同態加密可以被應用在上述的各種服務中而且保證其正確性以及 隱私性。但是在實作上仍有相當的難度。其中最重要的一點是,公鑰生成需要太多的硬 體儲存空間。一般來說,公鑰的大小至少佔據 800MB[6],所需要的容量實在太大,因 此導致實作上有相當程度的瓶頸。在假設一個狀況,若是要對 n 方進行多方通訊,那公 鑰的總大小至少需要(800*n)MB,如此一來對於系統造成一個沉重的負擔。因此,減少 公鑰的數量是本文首要研究課題。. 治 政 本論文主要是根據 Gentry 的全同態加密進行改良 大。利用減少公鑰個數讓本研究的全 立 同態加密在實作上是較為可行的,若以上述 800MB 為例利用本研究改良的全同態加密 ‧ 國. 學. 方案可以省去近 1/3(266MB)的空間,在 n 人通訊上更可省去(266*n MB)的空間資源,讓. ‧. 其較 Gentry 的原始方案易於實作並且不影響安全性。. 並且由於公鑰使用數量的減少,使得公開金鑰生成以及明文加密的時間也隨之降低。. y. Nat. n. al. er. io. 實用性增加。. sit. 亦即若使用我們改進後的全同態加密提案方式,可以有效率的降低金鑰生成的時間讓其. Ch. engchi. 5. i n U. v.

(14) 1.5 論文架構 本論文共分為六個章節,首先第一章為緒論,介紹全同態加密演算法的設計緣由以 及其相關應用,接著在第二章我們會介紹一些與同態相關的定義以及其相關知識,像是 加法同態與乘法同態的基本介紹、公開金鑰的同態加密演算法…等。第三章則是介紹 Gentry 所提出的全同態加密演算法以及他的實作瓶頸為何、第四章則是介紹我們改良過 後的 Gentry 的全同態加密方案以及本論文的貢獻,第五章則是提出其安全性分析、第六 章則是提出系統效能分析,並且在第七章提出其全同態加密應用並且在最後提出我們的 結論未來展望。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 6. i n U. v.

(15) 2. 預備知識 在第二章我們會介紹一些與本研究相關的密碼學基礎知識。以及說明同態定義及其 相關演算法,並且在最後為一些安全性定義做出介紹。. 2.1 近代密碼學 密碼學最重要的課題就是安全且秘密的傳遞兩方或是多方彼此擁有的私密資訊。首 先一個完整的密碼系統(Cryptosystem)必須由明文(plaintext)、金鑰(key)、加密演算法. 政 治 大 所組成。明文一般為加密前的原始資料,通常為加密過程中的輸入之一、解密結果的輸 立. (encryption algorithm)、解密演算法(decryption algorithm)以及密文(ciphertext)等五項元素. ‧ 國. 學. 出。密文則代表加密過後的資料,將其轉換後成為難以理解的訊息,通常代表加密過程 的輸出,解密過程的輸入。而加密演算法則是利用金鑰對明文進行加密的演算法。解密. ‧. 演算法則是剛好相反,則是利用金鑰對密文進行解密的演算法。架構圖如下:. n. er. io. sit. y. Nat. al. Ch. engchi. 圖 3. i n U. v. 加解密基本流程圖. 一般而言密碼系統分為兩大類,分別稱為對稱式金鑰密碼系統以及非對稱式金鑰密碼 系統。. 2.1.1 對稱式金鑰密碼系統 (Symmetric Key Cryptosystem) 在對稱式金鑰密碼系統中,會有兩方角色分別為發送者以及接受者。在確定彼此的. 7.

(16) 雙方的通訊之前,必須決定一把雙方都擁有的共同金鑰。再確定金鑰選定後,發送者會 使用這把雙方都擁有的金鑰對明文進行加密(Encryption)算出密文,(Ek (m) = C,其中 E 為加密演算法、k 為雙方都擁有的密鑰,C 為密文)並且將其結果傳送至接收者。接收者 收到密文訊息後,利用相同的金鑰進行解密(Decryption)得出明文 (Dk (c) = m,其中 D 為解密演算法),簡單的說,對於對稱式金鑰密碼系統而言所使用的 加解密金鑰皆為同一把,像 AES[7]、DES[4]都為著名的對稱式加密系統。 對稱式金鑰密碼系統最大的優點在於計算方面較為簡單及快速,但是相對來說其缺. 政 治 大. 點為金鑰的管理以及傳送上的困難,如何成功的設計出一個安全性機制可將金鑰安全的. 立. 分送到所要進行通訊的另一方或是保證這把雙方都擁有的密鑰不會有洩漏的疑慮,以上. ‧ 國. 學. 兩點都是相當困難去實行及驗證。然而對稱式密碼最讓人詬病的則是金鑰數量上的管理, 假設現在有 N 方要進行兩兩之間的通訊,對每一個使用者而言則需要C2N 把金鑰,這樣. ‧. 的數量對於管理或是儲存都是會對使用者造成莫大的負擔。. n. er. io. sit. y. Nat. al. Ch. 圖 4. engchi. i n U. v. 對稱式金鑰密碼系統. 2.1.2 非對稱式金鑰密碼系統 (Asymmetric Key Cryptosystem) 此密碼系統又稱做公開金鑰密碼系統,顧名思義與對稱式金鑰密碼系統最大的差別 為加密和解密要使用不同的金鑰。 對於非對稱式金鑰密碼系統,每個使用者擁有一對公私鑰對(public key and secret 8.

(17) key),兩把金鑰為數學相關。在加密過程中,訊息由公開金鑰進行加密後,其密文必須 以私密金鑰才可解密,其中公開金鑰與加密演算法皆可公開,其中只需對私密金鑰進行 隱密的儲存,像 RSA[22]、ElGamal[9]都為著名的非對稱式加密系統。 與對稱式金鑰密碼系統相較,雖然使用非對稱式金鑰加密在加密過程中的計算效率 較低,但是最大的優點為公開金鑰是允許被公開的,因此沒有像對稱式系統上安全傳送 密鑰的問題。若是進行 N 方兩兩通訊,也並不用C2N 這麼多把金鑰即可解決彼此通訊的 問題。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. 圖 5 非對稱金鑰密碼系統. 9. v.

(18) 2.2 同態加密 同態是一個函數具有相同代數性質的定義域與對應域的對應關係,在函數運算後仍 保有原先的代數結構,意指單位元素(Unit element)、反元素(Inverse element)、二元運算 (Binary compute)經過此函數運算後仍然保有原本的特性。 同態加密:若 f(x)為一同態加密函數,f: X → Y,且 a, b ∈ X,則f(a ⊕ b) = f(a)⨂f(b)。 此處的⨁、⨂分別為X,Y 代數系統特定的運算元,兩個運算元不一定相同,又因定義域 運算元的不同而分為加法同態與乘法同態。. 治 政 也因此我們可以清楚的瞭解到同態加密是一種特殊的加密方式,如果一套加密系統 大 立 滿足了同態加密的性質(如:乘法同態、加法同態)表示了這套系統滿足了對密文執行特定 ‧ 國. 學. 的代數運算後在解密的結果會等同於對明文進行運算的結果。. ‧. 同態加密可以應用在密文之間的運算,如將密文𝑐1 = 𝐸 (𝑚1 )和密文𝑐2 = 𝐸 (𝑚2 )做運 算得到𝑐 = 𝑐1 ⨀𝑐2 等同於𝑐 = 𝐸(𝑐1 ⊕ 𝑐2 )(c 為密文,m 為明文,E 是具同態性質的加密演. y. Nat. io. sit. 算法,⊙ 和⨁為特定運算)。而同態加密的最大的好處在於,若一套加密系統符合同態. n. al. er. 的性質,它可以允許在不經由解密的情況下,仍可讓人對加密後的訊息進行運算、比較…. Ch. i n U. v. 等操作,並且依然保持其正確性。如此一來便可以解決將私密數據委託給第三方做運算,. engchi. 或是自己本身經由繁雜的傳送做運算的問題,像是雲端計算的隱私性保護問題。而不僅 僅是雲端運算,全同態更可以保障其他應用上的隱私性問題,像是電子投票系統、私密 資訊擷取(PIR)…等。利用同態加密的此種作法不但可以節省運算成本及縮短計算時間 (不需多餘的加解密),還可保障運算過程中的訊息安全。. 2.2.1 加法同態 加法同態是指兩個密文做某種運算,會等同於明文做”加法”運算再加密,如下: mi 為明文, ci 為密文, E 為加密方案 𝑐1 = 𝐸 (𝑚1 ),𝑐2 = 𝐸(𝑚2 ) 𝑐 = 𝑐1 ⊕ 𝑐2 = 𝐸 (𝑚1 ) ⊕ 𝐸 (𝑚2 ) = 𝐸(𝑚1 + 𝑚2 ) 10.

(19) 舉例:若 k 為一個常數,且 E(m)=km,E(m1 ) + E(m2 ) = km1 + km2 = k(m1 + m2 ) = E(m1 + m2 ),此運算方式能達到加法同態。 在此以 Paillier 的加密系統[19]來說明,此系統由三個演算法:Key Generation、 Encryption 、Decryption 組成。 Key Generation(金鑰生成演算法):假設密文接收者為 Alice,則 Alice 利用 Key Generation 產生自己的公私鑰。其方法如下 1. 選擇兩個大質數 p 和 q. 政 治 大. 2. 計算 N=p*q 和𝜆=𝑙𝑐𝑚(𝑝−1,𝑞−1),而 lcm(Least Common Multiple)代表𝑝−1 和𝑞−1 的最. 立. 小公倍數。. ‧ 國. 學. 3. 選擇亂數𝑔 ∈𝑍𝑁∗ 2 ,𝑍𝑁∗ 2 是比𝑁 2 小且與𝑁 2 互質的元素且包含單位元素 1 的集合。 4. 函數 L(u)=(u-1)/N. ‧. 5. 設𝑔的序為𝑙,確保𝑁|𝑙 ,亦即 N 可整除 l. Nat. sit. y. 6. Alice 的公鑰 pk=(𝑁,𝑔). n. al. er. io. 7. Alice 的私鑰 sk=(N, 𝜆). Ch. engchi. i n U. v. Encryption(加密演算法):假設 Bob 欲利用 Paillier encryption 加密訊息 m 給 Alice,則 Bob 利用加密演算法執行以下步驟 1. 欲加密訊息 m∈𝑍n 2. 選擇亂數 r∈𝑍𝑛 ∗ 3. 計算密文 C=E(m)=𝑔𝑚 ∗ 𝑟 𝑁 mod 𝑁 2. Decryption(解密演算法):Alice 收到密文 C 後利用解密演算法做以下步驟解密 1. 密文 C∈𝑍𝑁∗ 2. 11.

(20) 2. m=D(C)=(. 𝐿(𝐶 λ 𝑚𝑜𝑑 𝑁2 ) 𝐿(𝑔λ 𝑚𝑜𝑑 𝑁2 ). ) mod N. Paillier加法同態: 假設Bob把m1和m2分別加密起來,得到E(m1)=𝑔𝑚 ∗ 𝑟1 𝑁 和E(m2)= 𝑔𝑚2 ∗ 𝑟2 𝑁 ,把 E(m1) 和E(m2)傳送到資料庫,資料庫在不知道明文的情況下,對兩個密文可做同態運 算,如下: C=E(m1)* E(m2)= (𝑔𝑚 ∗ 𝑟1 𝑁 )*( 𝑔𝑚2 ∗ 𝑟2 𝑁 )= 𝑔𝑚. 𝑚2. ∗(𝑟1 𝑟2 )𝑁 =E(m1+ m2). Alice可以從資料庫中得到C,但是她無法得到任何有關密文𝑐1 、𝑐2 的明文訊息,. 治 政 但是她可以得到明文𝑚 + 𝑚 的結果。 大 立 2.2.2 乘法同態 1. 2. ‧ 國. 學. 乘法同態是指兩個密文做某種運算,會等同於明文做”乘法”運算再加密,如下: mi 為明文, ci 為密文, E 為加密方案. ‧. 𝑐1 = 𝐸 (𝑚1 ),𝑐2 = 𝐸(𝑚2 ). Nat. sit. y. 𝑐 = 𝑐1 ⊗ 𝑐2 = 𝐸 (𝑚1 ) ⊗ 𝐸 (𝑚2 ) = 𝐸(𝑚1 ∗ 𝑚2 ). al. n. 𝐸 (𝑚1 ∗ 𝑚2 )。. er. io. 舉例:若 e 為某個常數,且𝐸(𝑚) = 𝑚𝑒 ,𝐸 (𝑚1 ) ∗ 𝐸 (𝑚2 ) = 𝑚1 𝑒 ∗ 𝑚2 𝑒 = (𝑚1 ∗ 𝑚2 )𝑒 =. Ch. engchi. i n U. v. 我們舉RSA來說明: Key Generation:假設密文接收者為Alice,則Alice利用Key Generation產生自己的公私 鑰。其方法如下 步驟1. 隨意選擇兩個大的質數𝑝和𝑞,𝑝≠𝑞,計算𝑁=𝑝𝑞。 步驟2. 根據尤拉函數,不大於𝑁且與𝑁互質的整數個數為(𝑝−1)(𝑞−1) 步驟3. 選擇一個整數𝑒與(𝑝−1)(𝑞−1)互質,並且𝑒小於(𝑝−1)(𝑞−1) 步驟4. 用以下這個公式計算𝑑:𝑑∗ 𝑒 ≡ 1 (𝑚𝑜𝑑 (𝑝−1)(𝑞−1)) 步驟5. 將𝑝和𝑞的記錄銷毀。 12.

(21) (𝑁,𝑒)是公鑰,(𝑁,𝑑)是私鑰。將公鑰(𝑁,𝑒)公開,而私鑰(𝑁,𝑑)秘密保存。 Encryption:假設Bob欲利用RSA encryption加密訊息m給Alice,Bob利用Alice的pk=(𝑁,𝑒) 計算密文C: 𝐶=𝑚𝑒 𝑚𝑜𝑑 𝑁 Decryption:Alice收到密文C後利用sk=(N,d)解密C得 𝑚=𝐶 𝑑 𝑚𝑜𝑑 𝑁 分析與討論:. 政 治 大. 𝑐 𝑑 ≡𝑚𝑒∗𝑑 (𝑚𝑜𝑑 𝑁),ed ≡ 1 (mod p−1)和ed ≡ 1 (mod q−1)。. 立. 由費馬小定理可以證明(因為p、q皆為質數). ‧ 國. 學. 𝑚𝑒∗𝑑 ≡m (𝑚𝑜𝑑 p) 𝑚𝑒∗𝑑 ≡m (𝑚𝑜𝑑 q). ‧. 由於p≠q,且p和q皆為質數,因此p和q互質. Nat. sit. n. al. er. io. RSA乘法同態:. y. 𝑚𝑒∗𝑑 ≡m (𝑚𝑜𝑑 p*q). i n U. v. Bob產生兩組密文𝑐1 、𝑐2 分別為𝑚1 𝑒 (𝑚𝑜𝑑 𝑁)、𝑚2 𝑒 (𝑚𝑜𝑑 𝑁)並且將其送至資料庫,. Ch. engchi. 資料庫在無法得知明文為何的狀況下,進行同態運算。. C=E(𝑚1 )*E(𝑚2 )= 𝑚1 𝑒 (𝑚𝑜𝑑 𝑁) ∗ 𝑚2 𝑒 (𝑚𝑜𝑑 𝑁) = (𝑚1 ∗ 𝑚2 )𝑒 𝑚𝑜𝑑 𝑁. Alice可以從資料庫中得到C,但是她無法得到任何有關密文𝑐1 、𝑐2 的明文訊息,但 是她可以得到明文𝑚1 ∗ 𝑚2 的結果。 再以一個例子ElGamal來介紹其乘法同態特性 ElGamal 加密演 算法有三個部分 ,分別是 金鑰 生成(Key generation) 、加密演 算 法 (Encryption)以及解密演算法(Decryption)。 金鑰的生成: 13.

(22) 1. Alice 取一個生成元𝑔,足以生成一個循環群𝐺,內有𝑞個元素。 2. Alice 任選一個變數 𝑥 ∈ {0, … , 𝑞 − 1}。 3. Alice 計算 𝑦 = 𝑔 𝑥 𝑚𝑜𝑑 𝑝。 4. Alice 以 (𝐺, 𝑞, 𝑔, 𝑦)作為她的公鑰,𝑥作為她的私鑰。 加密演算法: 1. Bob 任選一個變數 𝑟 ∈ {0, … , 𝑞 − 1},並且計算𝐶1 = 𝑔𝑟 𝑚𝑜𝑑 𝑝。 2. Bob 加密明文 𝑚,生成 𝐶2 = 𝑚 × 𝑦 𝑟 𝑚𝑜𝑑 𝑝。 3. 傳送密文 (𝐶1 , 𝐶2 )給 Alice。. 立. 解密演算法:. 政 治 大. ‧ 國. 學. 1. Alice 計算 𝐶1𝑥 = 𝑔𝑟𝑥 = 𝑦 𝑟 。. 2. 接著計算 𝐶2 × (𝐶1𝑥 )−1 = (𝑚 × 𝑦 𝑟 ) × (𝑦 𝑟 )−1 = 𝑚 即可還原明文。. ‧. ElGamal 的乘法同態性質. Nat. sit. y. 這小節我們將介紹 ElGamal 加密系統的乘法同態性質。首先利用 ElGamal 加密系統分. er. io. 別以對明文𝑚1 , 𝑚2 做加密,產生(𝐶1 , 𝐶2 ), (𝐶1′ , 𝐶2′ )兩組密文,其中:. n. a(l𝐶1, 𝐶2) = (𝑔𝑟 , 𝑚1 × 𝑦 𝑟 ) 𝑚𝑜𝑑 v𝑝 i n Ch (𝐶1′ , 𝐶2′ ) e =n (𝑔𝑟g, 𝑚 c2h×i𝑦 𝑟U) 𝑚𝑜𝑑 𝑝 2. 2. 接著對兩組密文(𝐶1 , 𝐶2 )與(𝐶1′ , 𝐶2′ )做乘法運算得到(𝐶1′′ , 𝐶2′′ ) = (𝐶1 , 𝐶2 ) × (𝐶1′ , 𝐶2′ ),其中: 𝐶1′′ = 𝐶1 × 𝐶1′ = 𝑔𝑟 × 𝑔𝑟2 𝑚𝑜𝑑 𝑝 = 𝑔𝑟. 𝑟2. 𝑚𝑜𝑑 𝑝. 𝐶2′′ = 𝐶2 × 𝐶2′ = (𝑚1 × 𝑦 𝑟 ) × (𝑚2 × 𝑦 𝑟2 ) 𝑚𝑜𝑑 𝑝 = (𝑚1 × 𝑚2 ) × 𝑦 𝑟. 𝑟2. 𝑚𝑜𝑑 𝑝. 最後做解密: 𝑥 𝐶2′′ × (𝐶1′′ ). −1. = (𝑚1 × 𝑚2 ) × 𝑦 𝑟 = (𝑚1 × 𝑚2 ) × 𝑦 𝑟. 𝑟2 𝑟2. × (𝑔 𝑟 × (𝑦 𝑟. 𝑟2 )−1 𝑟2 )−1. = (𝑚1 × 𝑚2 ) × 𝑦 𝑟. 𝑟2. × (𝑔 𝑥(𝑟. 𝑟2 ) )−1. = (𝑚1 × 𝑚2 ). 由以上的加解密過程及運算結果,我們可以清楚地看到,對兩組利用ElGamal加密. 14.

(23) 系統所加密的密文做乘法運算之後,其解密結果會同等於對明文做乘法運算。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 15. i n U. v.

(24) 2.3 Genrty 對稱式全同態加密方案 Gentry 的全同態加密方案有分為兩種,一種是對稱式金鑰的加密方案,另一種則是 非對稱式金鑰的加密方案。雖然在對稱式的方案當中,金鑰個數為一以及計算上較為快 速使得儲存空間上以及硬體的計算負擔皆為減輕許多,但對於金鑰的管理上以及如何安 全的傳送金鑰皆是對稱式金鑰密碼系統的瓶頸或缺點。因此為了安全性以及管理層面上 的考量,使用非對稱式的密碼系統是較為正確的選擇,也因此本文所討論以及改進的是 目前被使用的非對稱式的加密方案。但是由於 Gentry 所提出的非對稱式的全同態加密方. 治 政 案是根據對稱式的方案演變而成,因此為清楚的了解其脈絡,在本文中我們在此介紹其 大 立 對稱式加密方案,並在下一章介紹其非對稱式的加密系統。 1. (1)金鑰的生成如下(KeyGen(λ)): (輸入: λ,輸出: 密鑰 𝑝). ‧. ‧ 國. 學. 其對稱式方案之演算法如下:. 說明:產生一個安全參數λ,由此變數可求得密鑰 p、q、r 的長度以及數值,其中 p. y. Nat. io. sit. 的位元數為 O(λ2 )且 p 為奇數、q 的位元數為O(λ5 )、r 的位元數為 O(λ)。. n. al. er. (2)加密演算法如下(Encrypt(p, m)): (輸入: p、明文m ∈{0,1},輸出: 密文 C). Ch. i n U. v. 說明:對單一明文m ∈{0,1}進行加密,其加密過後輸出如下:Cm + pq + 2r,其中 q 為一個隨機 O(λ5 )位元數的亂數。. engchi. (3)解密演算法如下(Decrypt(p,C)): (輸入:p、C,輸出: m) 說明:將加密過後的結果 C mod p,再 mod 2 即 m(C mod p)mod 2,其中 C - C’可 被 p 整除。 舉例:假設公私鑰 p 為 101,明文 m 為 1,r 為 5,q 為 9 則加密過程如下: C = pq + 2r +m=11+909=920 而在解密的過程: ((C mod p) mod 2)=11 mod 2=1 因此其方案確保資料正確性。. 16.

(25) 然而在加密過程當中,C pq + m +2r,其中 2r + m 被稱為雜訊(noise),由於 p、q 兩數皆遠大於 2r + m,因此其加密後的結果 C 必定落在 p 的倍數前後少許。也因為其雜 訊遠小於 p,因此解密才可得到正確的答案。 在 Gentry 的全同態演算法中,可以執行的同態種類有加法同態、乘法同態、減法同態這 三種。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 17. i n U. v.

(26) 2.4 AGCD 問題(Approximate Greatest Common Divisor Problem) AGCD 問題因為其求解的困難性被利用在密碼學的領域之中,而 Gentry 的全同態 加密系統的安全性主要也是基於求解 AGCD 問題。簡單來說若是攻擊者 A 破解了 Gentry 的全同態加密系統則我們可以利用 A 去破解 AGCD 問題。然而何謂 AGCD 問題呢?在 下個段落我們會有詳細定義以及介紹。. 若有兩組數字x1 以及x2 ,其中x1 = pq1 , x2 = pq2 ,若要找到其相同因數 p 並不困. 治 政 難,我們可以利用 GCD 問題來求解得出 p 的結果。但是 大 A-GCD 問題是指當給定一組數 立 值𝑥 ,且假設𝑥 =p𝑞 +2𝑟 , 其中i=0,1,…,n 且𝑟 遠小於 p。在∀𝑞 , 𝑟 皆是未知的情況下,能否 𝑖. 𝑖. 𝑖. 𝑖. 𝑖. 𝑖. 學. ‧ 國. 𝑖. 找出其近似的最大公因數p的一個問題。也因此假設 p 若可以被一個演算法有效率的求. ‧. 出的話,Gentry 的全同態加密系統則可被破解。但到至今為止,AGCD 問題都仍被視為 是一個相當求解的難問題,也因為如此,Gentry 的全同態加密方案至少以目前而言是安. y. Nat. n. al. er. io. 細探討。. sit. 全無虞的。我們也將會在第五章安全性分析對 AGCD 問題以及全同態加密方案作出詳. Ch. engchi. 18. i n U. v.

(27) 2.5 語意安全(Semantic Secure) 語意安全是一種加密演算法的安全定義,並且廣泛的被運用在說明加密系統的安全 性高度之中,尤其是在非對稱式金鑰加密(Asymmetric Key Encryption, AKE)演算法,是 否達到語意安全則是此演算法安全與否的一個課題。那麼對於一個具備語意安全的非對 稱式金鑰加密演算法而言,需要達到的條件為何,則是設計加密演算法的設計者所要重 視的問題,它必須可以抵抗一個具備有限計算能力(computationally bounded)的攻擊者所 提出的攻擊行動。假設攻擊者擁有密文以及加密系統中所提供的加密金鑰,他也無法有. 治 政 效率地從密文當中得到任何有關明文的資訊。簡單來說,若滿足語意安全則必須能夠有 大 立 效的抵抗選擇明文攻擊(Chosen Plaintext attack, CPA),也因此一個具備語意安全的加密 ‧ 國. 學. 演算法,攻擊者是無法從密文以及公鑰等現有資訊來破解明文。. ‧. 語意安全的當初最早是在西元 1982 年由 Goldwasser 和 Micali [14]所提出。其必要 條件是必須抵抗選擇明文攻擊,也因此在語意安全的證明上會設計一種類似遊戲的流程,. y. Nat. io. sit. 若根據以下流程攻擊者最後可以得到明文資訊,則說明該加密演算法不具備語意安全的. n. al. er. 能力。另一方面假設到最後隨著流程結束並且參與者贏得該遊戲則說明了該演算法具備. Ch. i n U. v. 語意安全,攻擊者無法從中得到任何明文結果。下列則介紹這套遊戲的流程:. engchi. 在開始證明是否具備語意安全的遊戲之前,介紹兩方角色參與這項遊戲,分別為攻 擊者 A 以及參與者 B。接著步驟如下: Step 1.攻擊者 A 端可以得知加密演算法以及系統的公開金鑰,因此攻擊者可以在有 限的時間內取得任意數量的密文。 Step 2.攻擊者 A 任意產生兩個長度相同的訊息𝑚0 以及𝑚1 ,並且將此兩個訊息傳給 參與者 B。 Step 3.參與者隨機選擇𝑚0 或𝑚1 進行加密,並且將其密文結果傳送給攻擊者 A。 Step 4.在一般的情況之下,攻擊者 A 猜中明文機率是 1/2+ε,若ε的值微小到可以. 19.

(28) 忽略不計(negligible),則代表該演算法具備語意安全。反之,若ε的值是無法忽略的話, 則代表攻擊者 A 成功的破解該加密演算法,並且不具備語意安全。 以 ElGamal 為例,我們如上流程建立一個遊戲: (1) 攻擊者 A 知道在這個遊戲中使用 ElGamal 加密演算法以及其公開金鑰(𝐺, 𝑞, 𝑔, 𝑦),並 允許攻擊者在有限的時間內產生任何數量的密文。 (2) 攻擊者 A 任意生成兩個長度相同的訊息𝑚0 , 𝑚1 ,並且將這兩個訊息傳給參與者 B。 (3) 參與者 B 隨機選擇𝑚0 或 𝑚1 進行加密。由於 ElGamal 加密演算法公開,因此參與者 B. 政 治 大. 加密時會選取一個變數𝑟 ∈ {0, … , 𝑞 − 1} ,並且計算𝐶1 = 𝑔 𝑟 𝑚𝑜𝑑 𝑝。接著選擇明文. 立. 𝑚𝑖 , 𝑖 = {0,1},生成 𝐶2 = 𝑚 × 𝑦 𝑟 𝑚𝑜𝑑 𝑝。加密完之後將密文(𝐶1 , 𝐶2 )回傳給攻擊者 A。. ‧ 國. 學. 此時由於挑戰者在加密過程中,任意選取了一個亂數𝑟 ∈ {0, … , 𝑞 − 1},使得攻擊者 A 並沒有辦法從已知條件(𝐺, 𝑞, 𝑔, 𝑦)計算出密文(𝐶1 , 𝐶2 )究竟是由𝑚0 , 𝑚1 哪一個訊息所加. ‧. 密的,因此攻擊者並無法得知其真正的明文選擇為何,因此了解 ElGamal 具有語意安全,. Nat. sit. y. 其詳細證明已在[23]被提出。. n. al. er. io. 在第五章安全性證明時將會以我們改良後的全同態加密演算法為例,說明我們提出 的全同態加密演算法符合語意安全。. Ch. engchi. 20. i n U. v.

(29) 3. Gentry 全同態加密方案回顧 3.1 Gentry 全同態加密演算法 在章節 2.2 中我們介紹了 Gentry 最先設計的對稱式全同態加密方案,但是由於密鑰 的難管理以及如何安全傳送都是一個相當難以解決的問題,也因此對稱式的全同態加密 方案並不實用。在這裡我們將介紹 Gentry 後來提出的公開金鑰密碼系統的全同態加密方 案。. 政 治 大. 全同態加密共分成四個部分,分別是:金鑰生成、加密演算法、同態運算和解密演算. 立. 法. ‧ 國. 學. (1)金鑰的生成如下(KeyGen(λ)): (輸入: λ,輸出: 私鑰 𝑝、公鑰𝑥𝑖 ) (i)選取一個安全參數λ,由此變數可求得η、τ、γ,其中η為私鑰 p 的長度,τ 為公鑰. ‧. 的個數,γ為 q 的長度,其中𝜂=O(λ2 )、γ=O(λ5 )。. sit. y. Nat. (ii)在[2𝜂−1 , 2𝜂 )中,選取一個夠大的奇數 p 當私鑰,亦即𝑝 = (2ℤ + 1) ∩ [2𝜂−1 , 2𝜂 ). er. io. (iii)選取τ個亂數𝑞𝑖 及τ個亂數𝑟𝑖 ,其中𝑟𝑖 ϵ(−2𝜌 , 2𝜌 )、𝑞𝑖 ϵ(2γ−1 , 2γ ),𝜌為𝑟𝑖 的長度,且. al. 𝜌=λ。產生的公鑰為𝑥𝑖 =p𝑞𝑖 +2𝑟𝑖 ,i = 0, … , ( 𝜏 − 1),其中𝑥0 必須是奇數,而且. n. v i n 𝑥0 = max{𝑥𝑖 |∀𝑖 ∈ [0, ( 𝜏 − 1)]}C ,𝑟 為𝑥0 除 p 後的餘數且必須為偶數。 h′e ngchi U. (2)加密演算法如下(Encrypt(pk,m)): (輸入: 𝑥𝑖 、明文𝑚𝑖 ∈{0,1},輸出: 密文 C) 1.假設明文有 t 位元,將明文拆解成單一位元的數字,也就是分成{𝑚1 , 𝑚2 , … , 𝑚𝑡 }, ∀i, 𝑚𝑖 ∈{0,1} 2.對於每個𝑚𝑖 做加密,i = 1, … , t 加密過程如下: (i)選取子集合 S⊆{1,2,…,( 𝜏 − 1)} (ii)計算∑𝑖∈𝑆 𝑥𝑖 的數值 21.

(30) (iii)在(−2𝜌 , 2𝜌 )中隨機選取一個亂數𝑟𝑖 (iv)密文𝑐𝑖 = (𝑚𝑖 + 2𝑟𝑖 + ∑𝑗∈𝑆 𝑥𝑗 )mod 𝑥0 =(p(∑𝑗∈𝑆 𝑞𝑗 ) +2(𝑟𝑖 +∑𝑗∈𝑆 𝑟𝑗 )+ 𝑚𝑖 ) mod 𝑥0 3.得到密文 C={𝑐1 , 𝑐2 , … , 𝑐𝑡 } (3)同態運算如下(Evaluate(pk,f,𝑐1 , 𝑐2 , … 𝑐𝑡 )): (輸入:f、𝑐𝑖 、pk,輸出: c) (i)將密文傳送到運算端運算: 對任意兩個密文參數𝑐𝑖 , 𝑐𝑗 ,若想做加法同態則輸出𝑐𝑖 + 𝑐𝑗 ,若想做加法同態則輸出 𝑐𝑖 ∗ 𝑐𝑗 。. 政 治 大. (ii)將(i)運算結果彙整成 𝐶 ′ =𝑐1 ⨀𝑐2 ⊛ … ⊚ 𝑐𝑡 ,其中任兩個兩個密文參數𝑐𝑖 , 𝑐𝑗 中間的 運算元不一定相等。. 立. ‧ 國. 學. (4)解密演算法如下(Decrypt(sk,c)): (輸入:p、c,輸出: 𝑚′ ) 明文:𝑚′ = (c mod p) 𝑚𝑜𝑑 2。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. 圖 6 全同態加密方案流程. 22. v.

(31) 3.2 同態加密的正確性 假設明文為兩位元的數字(𝑚1 ||𝑚2 ),且公鑰為𝑥𝑖 =p𝑞𝑖 +2𝑟𝑖 , i = 0, … , (τ − 1)、私鑰為 p。 所以密文 C={𝑐1 , 𝑐2 }={𝑚1 + 2𝑟1 + ∑𝑗∈𝑆 𝑥𝑗 , 𝑚2 + 2𝑟2 + ∑𝑘∈𝑆2 𝑥𝑘 } 同態運算: (1)(以加法為例) 𝑐1 + 𝑐2 = 𝑚1 + 2𝑟1 + ∑𝑗∈𝑆 𝑥𝑗 + 𝑚2 + 2𝑟2 + ∑𝑘∈𝑆2 𝑥𝑘 =. 政 治 大. p(∑𝑗∈𝑆 𝑞𝑗 + ∑𝑘∈𝑆2 𝑞𝑘 )+2(𝑟1 +∑𝑗∈𝑆 𝑟𝑗 + 𝑟2 +∑𝑘∈𝑆2 𝑟𝑘 )+( 𝑚1 + 𝑚2 ). 立. 解密: ((𝑐1 + 𝑐2 )mod p )mod 2=( 𝑚1 + 𝑚2 ). ‧ 國. 學. 所以符合加法同態. ‧. (2)(以乘法為例). y. Nat. 𝑐1 ∗ 𝑐2 =(𝑚1 + 2𝑟1 + ∑𝑗∈𝑆 𝑥𝑗 )(𝑚2 + 2𝑟2 + ∑𝑘∈𝑆2 𝑥𝑘 )=( 𝑚1 ∗ 𝑚2 )+2(𝑟2 𝑚1 + 𝑟1 𝑚2 +. io. sit. 𝑟2 ∑𝑗∈𝑆 𝑥𝑗 + 𝑟1 ∑𝑘∈𝑆2 𝑥𝑘 )+(𝑚1 ∑𝑘∈𝑆2 𝑥𝑘 + 𝑚2 ∑𝑗∈𝑆 𝑥𝑗 + ∑𝑗∈𝑆 𝑥𝑗 ∗ ∑𝑘∈𝑆2 𝑥𝑘 )=( 𝑚1 ∗. n. al. er. 𝑚2 )+2R+pQ,Q,R 為整理之後的結果. Ch. 所以((𝑐1 ∗ 𝑐2 )mod p )mod 2=( 𝑚1 ∗ 𝑚2 ) 符合乘法同態. engchi. 23. i n U. v.

(32) 3.3 探討 Gentry 方案 雖然 Gentry 的方案可以被用在任意函數的加密演算,但是在實作上有相當的難度。 其中最重要的理由是,產生一個公鑰群組需要太多的儲存空間。一般來說,公鑰的大小 最小有 800MB[6],非常消耗設備系統的儲存空間。所以我們就思考是否有其改善的方 法,以下是我們改進後的方案。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 24. i n U. v.

(33) 4. 改進過後的 FHE 方案 4.1 我們提出的 FHE 方案 我們提出改進後的 FHE,是以 Gentry 的 FHE 架構下設計出來的。在金鑰生成 KeyGen(λ)、同態運算(Evaluate(pk,f,𝑐1 , 𝑐2 , … 𝑐𝑡 ))和解密演算法(Decrypt(sk,c))階段都是使 用 Gentry的構想。而此方案的改進最主要是在加密演算法 (Encrypt(pk,𝑚𝑖 ∈{0,1}))階段, 我們採取縮減公鑰個數的策略,設計出新的加密階段,以達到效能提升的目的。. 政 治 大 (1)金鑰的生成如下(KeyGen(λ)): (輸入: λ,輸出: 私鑰 𝑝、公鑰𝑥 ) 立 𝑖. ‧ 國. 學. 如同之前 Gentry 的方案,但公鑰個數為𝜏 ′ = ⌈log 3 2𝜏 ⌉。私鑰為𝑝,且 p 是奇數、公鑰為 𝑥𝑖 =p𝑞𝑖 +2𝑟𝑖 ,其中𝑥0 必須是奇數。. ‧. 其中𝑥0 = max{𝑥𝑖 |∀𝑖 ∈ [0, (𝜏 ′ − 1)]},𝑟 ′ 為𝑥0 除 p 後的餘數且必須為偶數。. sit. y. Nat. er. io. (2)加密演算法如下(Encrypt(pk, 𝑚𝑖 )): (輸入: 𝑥𝑖 、明文𝑚𝑖 ∈{0,1},輸出: 密文 C). al. n. 1.假設明文有 t 位元,將明文拆解成單一位元的數字,也就是分成{𝑚1 , 𝑚2 , … , 𝑚𝑡 }, ∀i, 𝑚𝑖 ∈{0,1}. Ch. 2.對於每個𝑚𝑖 做加密,i = 1, … , t. engchi. i n U. v. 加密過程如下: 隨機從S = {−1,0,1}集合選取(𝜏 ′ -1)個數值𝑎𝑖 。亦即∀𝑎𝑖 ∈ {−1,0,1},i = 1, … , (𝜏 ′ -1) (𝜏 ′−1). (i)計算∑𝑖=1. 𝑎𝑖 𝑥𝑖 的數值. (ii)在(−2𝜌 , 2𝜌 )中隨機選取一個亂數𝑟𝑖 (𝜏 ′−1). (iii)計算 w=𝑚𝑖 + 2𝑟𝑖 + ∑𝑗=1. 𝑎𝑗 𝑥𝑗. (iv)隨機選取𝑥𝑘 ∈ {𝑥1 , 𝑥2 , … , 𝑥(𝜏′−1) },. 25.

(34) (v)選取𝐴𝑖 如果 0<w<𝑥0 ,則取𝐴𝑖 ∈ {0,1, … ,6} 如果-𝑥0 <w<0,則取𝐴𝑖 ∈ {0, −1, … , −6} 如果𝑤𝑖 >𝑥0 或𝑤𝑖 <-𝑥0 則𝐴𝑖 =0 (𝜏 ′ −1). (vi)密文𝑐𝑖 = (𝑚𝑖 + 2𝑟𝑖 + ∑𝑗=1. 𝑎𝑗 𝑥𝑗 + 𝐴𝑖 𝑥𝑘 )mod 𝑥0 。. 3.得到密文 C={𝑐1 , 𝑐2 , … , 𝑐𝑡 } (3)同態運算如下(Evaluate(pk,f,𝑐1 , 𝑐2 , … 𝑐𝑡 )): (輸入:f、𝑐𝑖 、pk,輸出: 𝑐). 政 治 大. 如同之前 Gentry 的方案,. 立. (i)將密文傳送到運算端運算:. ‧ 國. 學. 對任意兩個密文參數𝑐𝑖 , 𝑐𝑗 ,若想做加法同態則輸出𝑐𝑖 + 𝑐𝑗 ,若想做加法同態則輸出. ‧. 𝑐𝑖 ∗ 𝑐𝑗 。. (ii)將(i)運算結果彙整成 𝐶 ′ =𝑐1 ⨀𝑐2 ⊛ … ⊚ 𝑐𝑡 ,其中任兩個兩個密文參數𝑐𝑖 , 𝑐𝑗 中間的. y. Nat. n. al. er. io. sit. 運算元不一定相等。. Ch. i n U. (4)解密演算法如下(Decrypt(sk,c)): (輸入:p、c,輸出: 𝑚′ ) 如同之前 Gentry 的方案,. engchi. 明文:𝑚′ = (c mod p)𝑚𝑜𝑑 2. 26. v.

(35) 4.2 改進方案的貢獻 我們改進過後的方案,跟 Gentry 的方案相比,只需更少的公鑰即可達成一樣的安全 性。因為在 Gentry 的方案中,加密階段對每一把公鑰只有選與不選兩種可能,所以若有 n 把公鑰,以他的加密方案只有2𝑛 種公鑰組合方式。而我們的方案中,增添了負數的概 念,在加密階段對每一把公鑰有選、不選和取負值共三種可能。所以若有 n 把公鑰,則 改進後的加密方案有3𝑛 種公鑰組合方式。舉例而言:如果在 Gentry 的方案使用了 1000 把 公鑰,所以公鑰組合共有21000 種可能性。但以我們改進過後的加密方案,只需. 治 政 log (2 ) ≈640 把公鑰即可達成一樣的安全性,縮減了大約 大 1/3 的時間去產生公鑰, 立 也減少公鑰的儲存空間,更符合現實的應用層面。 學. ‧ 國. 3. 1000. 在金鑰生成以及加密時間方面,由於我們所需要的公開金鑰數量低於 Gentry 的金鑰. ‧. 個數,也因此在我們提案中所要的金鑰生成時間與 Gentry 提案中相比,亦只需要將近 67%的時間即可完成。而更重要的是在加密過程中,所需要的時間也只需要 80%的時間. io. sit. y. Nat. 即可加密完成。. er. 在此處我們與原提案方式最大的不同之處就是增加了兩個變數𝐴𝑖 𝑥𝑘,其目的為確保. al. v i n Ch 不能過小,此舉是為了確保資料安全性,詳細說明會在第五章安 engchi U. n. 𝑚𝑖 + 2𝑟𝑖 +. (𝜏 ′−1) ∑𝑗=1 𝑎𝑗 𝑥𝑗. 全性分析中提出。. 27.

(36) 4.3 正確性分析 改進後的方案中, (1)若對明文 m∈{0,1}做加密,則密文 c=ap+(2b+m),其中 a,b 為特定整數,且 |2b+m|≤ 𝜏 ′ 2𝜌. 3. 證明: 𝑥𝑖 =p𝑞𝑖 +2𝑟𝑖 , i = 0, … , (𝜏 ′ − 1) (𝜏 ′−1). c← (𝑚 + 2𝑟 + ∑𝑗=1. (𝜏 ′−1). 所以 c=(𝑚 + 2𝑟 + ∑𝑗=1. 立. 𝑎𝑗 𝑥𝑗 + A𝑥𝑖 )+k𝑥0. ‧ 國. 學. (𝜏 ′ −1). 政 治 大. 𝑎𝑗 𝑥𝑗 + A𝑥𝑖 ) mod 𝑥0. =(m+2r+∑𝑗=1. 𝑎𝑗 𝑝𝑞𝑗 + 𝐴 𝑝𝑞𝑖 + 𝑘𝑝𝑞0 ) (𝜏 ′ −1). 𝑎𝑗 𝑞𝑗 +k𝑞0 ) +2(A𝑟𝑖 + 𝑟+= ∑𝑗=1. 𝑎𝑗 𝑟𝑗 + 𝑘𝑟0 )+𝑚,其中|k|≤ 𝜏 ′ 。. ‧. (𝜏 ′−1). =p(𝐴𝑞𝑖 + ∑𝑗=1. io. n. al. (𝜏 ′−1). |2b+m|≤2(6|𝑟𝑖 | + |𝑟| + | ∑𝑗=1 所以|2b+m|. 𝑎𝑗 𝑟𝑗 | + |𝑘|𝑟0 )+1,. Ch. engchi. ≤2(7*2𝜌 +𝜏 ′ 2𝜌 +𝜏 ′ 2𝜌 )+1,. sit. (𝜏 ′−1). 𝑎𝑗 𝑞𝑗 +k𝑞0 ,b = A𝑟𝑖 + 𝑟 + ∑𝑗=1. 𝑎𝑗 𝑟𝑗 + 𝑘𝑟0 ). er. (𝜏 ′ −1). (其中 a= 𝐴𝑞𝑖 + ∑𝑗=1. y. Nat. 因此可化簡 c =ap+(2b+m)。. i n U. v. 且∀𝑟𝑗 ≤ 2𝜌. 𝜏 ′ 為公鑰的個數,為了維持其安全性,所以𝜏 ′ > 7 所以|2b+m|≤2𝜏 ′ (2𝜌 + 2𝜌 + 2𝜌 ) ≤ 2𝜏 ′ 2𝜌. 2. = 𝜏 ′ 2𝜌. 3. (2) 若對明文𝑚𝑖 ∈{0,1},i = 1, … , 𝜏 ′ 做加密,c←(Evaluate(pk,f,𝑐1 , 𝑐2 , … 𝑐𝑡 )),則密文 c=a*p+(2b+m),其中 a,b 為特定整數,且|2b+m|≤ 𝑝/8. 28.

(37) 根據(1)、(2)可以得知在雜訊較小的情況下執行同態加密、以及同態運算在資訊的 正確性來說是正確無虞的。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 29. i n U. v.

(38) 5. 安全性證明 5.1 A-GCD 問題 因為我們的加密方案是改進 Gentry 的方案而來的,所以我們的方案無法被取得私鑰 的證明和 5.2 節語意安全的說明,皆跟 Gentry 的原始方案類似[11] [13]。 Gentry 方案的安全性是基於 A-GCD 問題是個難問題。A-GCD 問題是指當給定一組 數值𝑥𝑖 ,且假設𝑥𝑖 =p𝑞𝑖 +2𝑟𝑖 , i=0,1,…,n。在∀𝑞𝑖 , 𝑟𝑖 皆是未知的情況下,能否找出其近似的. 政 治 大 B 是一個企圖攻擊 A-GCD 問題的攻擊者。假設有攻擊者 A 宣稱可以破解我們的 FHE 立. 最大公因數p?. ‧ 國. B 破解 A-GCD 問題步驟如下:. ‧. 1.問題轉換:. 學. 方案,則 B 可透過 A 去破解 A-GCD 問題。. sit. y. Nat. 挑戰者 C,希望能破解 A-GCD 問題,所以將數列(𝑥0 , 𝑥1 , … , 𝑥τ )傳送給 B,. io. al. 外生成一組數列,直到符合上述的條件為止。. er. 𝑥𝑖 =p𝑞𝑖 +2𝑟𝑖 , i=0,1,…, τ,若𝑥0 不是奇數或有任何一個𝑥𝑖 > 𝑥0 ,其中 i=1,…, τ,則 C 再另. n. v i n 2.LSB 預測(目的為求出 z 除 p C 之後所得出的商為奇數或是偶數): hengchi U. B 任意取一個 z∈[0,2𝛾 ),γ 為公鑰的位元長度,z= 𝑞𝑝 (𝑧) ∗ 𝑝 + 𝑟𝑝 (𝑧),|𝑟𝑝 (𝑧)𝑧 |< 2𝜌,而𝑞𝑝 (𝑧) 為 z/p 的商、𝑟𝑝 (𝑧)為 z/p 的餘數,此時𝑞𝑝 (𝑧), 𝑟𝑝 (𝑧)還是未知數,此時 B 去執行 LSB(Last Significant Bit),並且程序如下 LSB (z, 𝑥0 , 𝑥1 , … , 𝑥τ ):(輸入:z、公鑰𝑥𝑖 ,輸出: 𝑞𝑝 (𝑧)的 LSB) ′. ′. (i)選一個干擾數值𝑟𝑗 ∈ (−2𝜌 , 2𝜌 ),m𝑗 ∈ {0,1},且隨機從{−1,0,1}集合選取τ個數值𝑎𝑖 , i = 1, … , τ,∀𝑎𝑖 ∈ {−1,0,1} (ii)𝑐𝑗 ← (𝑧 + m𝑗 + 2𝑟𝑗 + A𝑥𝑘 + ∑τ𝑖=1 𝑎𝑖 𝑟𝑖 ) mod 𝑥0 ,A 的取值為{0,1,…,6} (iii)因為攻擊者 A 可有效破解本全同態加密系統,所以 B 將𝑐𝑗 傳送給 A,此時 A 將解密𝑐𝑗 後 30.

(39) 的數值𝑎′𝑗 傳回給他。(𝑎′𝑗 = m𝑗 ⊕ [𝑟𝑝 (𝑧)]mod2 )。 (iv)𝑏𝑗 ← 𝑎′𝑗 ⊕parity(z) ⊕ m𝑗 ,其中 parity(z)代表 z 的最後一個位元值,也就是 z 為奇數 或是偶數(如 z = 1001,所以其 parity(z)代表最後一個位元的 1)。其中𝑏𝑗 所代表的是𝑞𝑝 (𝑧)的 最後一個位元。 (v)ℇ是 A 猜中明文m𝑗 ⊕ [𝑟𝑝 (𝑧)]mod2的 advantage,重複上述(i)~(iv)步驟 poly(λ)/ℇ次,其中 poly(λ)是一個跟λ相關的多項式,最後由出現較多次的m𝑗 ⊕ [𝑟𝑝 (𝑧)]mod2做為 A 的選擇 (如:假設對單一明文執行十次的 LSB 運算,得出七次結果為 1,三次結果為 0,由於 A. 政 治 大. 可有效的破解加密方案,因此選擇結果七次的 1 做為解密的結果)。. 立. 假設 A 可以準確地猜測 p 的數值,所以𝑎′𝑗 =𝑟𝑝 (𝑧)(𝑚𝑜𝑑 2)⨁ m𝑗 ,又. ‧ 國. 學. 𝑞𝑝 (𝑧)(𝑚𝑜𝑑 2)= 𝑟𝑝 (𝑧)(𝑚𝑜𝑑 2) ⊕parity(z)=𝑏𝑗,因此可以得知𝑞𝑝 (𝑧)(mod 2)的奇偶性質,並 且可利用以上資訊透過 Binary GCD 來得出私鑰 p。. ‧. 3.Binary GCD[11][13]:. Nat. n. al. er. io. B-GCD(𝑞𝑧 , 𝑞𝑧2 ):(輸入: 𝑞𝑝 (𝑧1 )、𝑞𝑝 (𝑧2 ),輸出: z’=1*p + r ). sit. y. 任意選取兩整數𝑧1 = 𝑞𝑝 (𝑧1 ) ∗ 𝑝 + 𝑟𝑝 (𝑧1 ),𝑧2 = 𝑞𝑝 (𝑧2 ) ∗ 𝑝 + 𝑟𝑝 (𝑧2 )。. i n U. v. 根據 LSB 預測,我們可以得知𝑞𝑝 (𝑧1 ), 𝑞𝑝 (𝑧2 )的奇偶性質。並且去執行 Binary GCD,其 程序如下:. Ch. engchi. (i)假設𝑧2 > 𝑧1 ,則交換彼此數值𝑧1 ⇔ 𝑧2 。 (ii)透過 LSB 可以𝑞𝑝 (𝑧1 ), 𝑞𝑝 (𝑧2 )的最後一個位元,並且表示𝑏𝑖 = 𝑞𝑝 (𝑧𝑖 )𝑚𝑜𝑑2 (iii)假設兩個𝑞𝑝 (𝑧1 ), 𝑞𝑝 (𝑧2 )數字皆為奇數,則𝑧1 𝑧1 − 𝑧2 。並且設定𝑏1 0 (v)如果對任意一個𝑧𝑖 ,其中它的𝑏𝑖 = 0,那麼計算𝑧𝑖 (𝑧𝑖 − 𝑝𝑎𝑟𝑖𝑡𝑦(𝑧𝑖 ))/2 終止條件:當𝑧2 隨著遞迴成為 0 時,即可終止此流程,並且將𝑧1 設定為 z’。 4.找出私鑰 p: 根據 Binary GCD,B 選取兩整數𝑧1 = 𝑞𝑧 ∗ 𝑝 + 𝑟𝑧 ,𝑧2 = 𝑞𝑧2 ∗ 𝑝 + 𝑟𝑧2 ,其中𝑧1 、𝑧2 可以 由公開金鑰中選擇,並且執行 Binary GCD 並且得出 z’。最後則是將𝑧1 𝑧1,𝑧2 z’,再 31.

(40) 去執行一次 Binary GCD,此時紀錄每一回合的𝑏1 將其成為一個二進位的數字,此數字即 為𝑞𝑝 (𝑧1 ),故此我們可得知𝑞𝑧 的實際數值,所以 B 可得知 p=⌊𝑧1 /𝑞𝑧 ⌉。B 破解了 A-GCD 問題。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 32. i n U. v.

(41) 5.2 語意安全 假設攻擊者 A,已經知道使用者 B 所使用的加密方法以及公開金鑰,也知道全部的 明文種類。A 攔截了 B 傳送一個加密過後的密文,但是 A 仍然無法根據所有的明文種 類和加密方案去推測出 B 傳送的是何種明文,則此種加密方案具有語意安全。 因為 Gentry 方案跟我們的方案都是非決定性的加密方案,除此之外對於相同的明文 m 進行多次不同的加密,所得出來的密文其相同機率是非常低的,應此對攻擊者而言並 無法根據所得到的密文訊息來判斷明文為何,並且私鑰 p 無法被攻擊者有效地破解,所. 治 政 以我們的方案也具備了語意安全。 大 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 33. i n U. v.

(42) 5.3 為何需要𝐀𝒙𝒌 因為我們的改進方案在加密階段對每一把公鑰有選、不選和取負值共三種可能。則 (𝜏 ′−1). 在計算(𝑚𝑖 + 2𝑟𝑖 + ∑𝑗=1. (𝜏 ′−1). 𝑎𝑗 𝑥𝑗 )的數值時,|(𝑚𝑖 + 2𝑟𝑖 + ∑𝑗=1. 𝑎𝑗 𝑥𝑗 )|跟 Gentry 的方案比起. 來有更多的機會讓此數值比 p 值來的小,如果有此種情形,則攻擊者可以將此數值直接 (𝜏 ′ −1). mod 2,即可得出明文𝑚𝑖 。但是如果我們多加一個A𝑥𝑘 數值,則可保障當∑𝑗=1 (𝜏 ′−1). 是小正數或小負數時,會讓|(𝑚𝑖 + 2𝑟𝑖 + ∑𝑗=1. 𝑎𝑗 𝑥𝑗 數值. 𝑎𝑗 𝑥𝑗 + A𝑥𝑘 )|可能>𝑥0 。因為 mod 𝑥0 的關. 政 治 大 係,所以改變了原本計算的數值,讓攻擊者無法認定在|(𝑚 + 2𝑟 + ∑ 立 𝑖. 𝑖. (𝜏 ′−1) 𝑎𝑗 𝑥𝑗 𝑗=1. + A𝑥𝑘 )|. (𝜏 ′−1). A 的取值分析:在|w|=|𝑚𝑖 + 2𝑟𝑖 + ∑𝑗=1. ‧. ‧ 國. 學. 是一個比 p 小的數值時,可以用 mod 2 的方法得出明文,所以才考慮增加A𝑥𝑘 的數值。. 𝑎𝑗 𝑥𝑗 |<𝑥0,我們才增加A𝑥𝑘 數值。我們希望加入的. Nat. sit. y. A𝑥𝑘 數值只是為了干擾攻擊者的猜測公鑰的方法,所以只要達到干擾目的即可。為了方. n. al. er. io. 便說明,因此我們假設 w>0,0≤w+ A𝑥𝑘 <3𝑥0 ⟹0≤ A<(3𝑥0 − 𝑤)/ 𝑥𝑘 ≤3𝑥0 / 𝑥𝑘 ,又公鑰. i n U. v. 的長度為γ,所以∀𝑖, 𝑥𝑖 ∈ [2γ−1 , 2γ ),所以𝑥0 / 𝑥𝑘 <2。故 0≤ A ≤3*2=6。所以 A 的取值範 圍為{0,1,…,6}。. Ch. engchi. 34.

(43) 6. 系統效能分析與比較 在第六章,我們會根據 Gentry 以及我們改良過後的提案方式來設計程式,而這份程 式最主要是測試兩種方案下所需要的計算時間為何以及相關比較。 在開始之前,先介紹所使用的程式軟體以及硬體設備為何: 1) 程式軟體: MATLAB 2) 硬體設備: Intel i7-740QM processor (1.73GHz,6MB L3 cache) 4GB DDR3 Memory 3)系統環境: WIN7. 立. 政 治 大. 程式內容最主要是在測量兩個部分,第一個是測試在不同方案下公鑰生成所需時間,. ‧ 國. 學. 第二個則是測量對單一個位元進行加密所需要的時間為何。而在兩個方案當中,私鑰 p. ‧. 的位元長度、亂數 p 跟亂數 r 的位元長度都是根據安全參數λ所決定,進而計算出金鑰 生成以及加密時間兩者之間的差異。. y. Nat. al. er. io. sit. 6.1 金鑰生成所需時間. n. 在此部分,我們先回顧一下兩種方案金鑰生成的方式 Gentry 的全同態加密方案:. Ch. engchi. i n U. v. 公開金鑰的生成: Step1:選取一個安全參數λ,由此變數可求得η、τ、γ,其中η為私鑰 p 的長度,τ 為公 鑰的個數,γ為 q 的長度,其中𝜂=O(λ2 )、γ=O(λ5 )。 Step2:在[2𝜂−1 , 2𝜂 )中,選取一個夠大的奇數 p,亦即𝑝 = (2ℤ + 1) ∩ [2𝜂−1 , 2𝜂 ) Step3:選取τ個亂數𝑞𝑖 及τ個亂數𝑟𝑖 ,其中𝑟𝑖 ϵ(−2𝜌 , 2𝜌 )、𝑞𝑖 ϵ(2γ−1 , 2γ ),𝜌為𝑟𝑖 的長度, 且𝜌=λ。產生的公鑰為𝑥𝑖 =p𝑞𝑖 +2𝑟𝑖 ,i = 0, … , ( 𝜏 − 1)。 在此處我們將參數λ設成 5,並將τ設定為 1000,其公鑰大小大約為 10MB。 我們改良過後的全同態加密方案: 35.

(44) 公開金鑰的生成: 我們的方案最主要是從 Gentry 的全同態加密方案改良而成,因此在參數方面我們所 選擇的跟原方案相同。唯一的不同就是金鑰個數,在此處我們只需要log 3(21000 ) ≈640 把金鑰個數去進行測試。 Our scheme's key generation time(單位:秒). Gentry's key generation time(單位:秒). 90.4274. 139.933. 90.3806. 146.001. 88.2574 91.4634. 138.638 132.554 127.812. 學. ‧ 國. 立 82.7818. 政 治 大. 86.8458. 129.403. 81.5026. 128.638. 80.8598. ‧. 127.484. y. n. al. 128.233 128.092. 圖 7 公開金鑰所需時間. Ch. engchi. er. io. 85.863. sit. Nat. 81.7693. i n U. v. 在這裡時間的單位是秒(sec),我們可以發現出我們所改良的方案所能降低的時間較 Gentry 的方案高出許多,而其中所降低的比率大約為 0.36 左右,直觀的來看所降低的時 間大致上跟所降低的公鑰個數相同。. 36.

(45) 立. 政 治 大. ‧ 國. 學 圖 8 金鑰生成時間. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. 37. i n U. v.

(46) 6.2 加密過程所需時間 相同地在這裡我們先回顧兩個方案所使用的加密方案,接而進行比較。 Gentry 的全同態加密方案 1.假設對單一明文 m 進行加密,且 m∈{0,1} 2.加密過程如下: (i)選取子集合 S⊆{1,2,…,( 𝜏 − 1)} (ii)計算∑𝑖∈𝑆 𝑥𝑖 的數值. 治 政 (iii)在(−2 , 2 )中隨機選取一個亂數𝑟 大 立 (iv)密文𝑐 = (𝑚 + 2𝑟 + ∑ 𝑥 )mod 𝑥 𝜌. 𝜌. 𝑖. 𝑖. 𝑗∈𝑆 𝑗. 0. ‧ 國. 學. 在此處我們同樣的將安全參數λ設成 5,並將τ設定為 1000。. ‧. 我們改良過後的全同態加密方案: 1.假設對單一明文 m 進行加密,且 m∈{0,1}. io. sit. y. Nat. 2.加密過程如下:. n. al. er. 隨機從S = {−1,0,1}集合選取(𝜏 ′ -1)個數值𝑎𝑖 。亦即∀𝑎𝑖 ∈ {−1,0,1},i = 1, … , (𝜏 ′ -1) (𝜏 ′−1) (i)計算∑𝑖=1 𝑎𝑖 𝑥𝑖 的數值. Ch. engchi. (ii)在(−2𝜌 , 2𝜌 )中隨機選取一個亂數𝑟𝑖 (𝜏 ′−1). (iii)計算 w=𝑚 + 2𝑟𝑖 + ∑𝑗=1. 𝑎𝑗 𝑥𝑗. (iv)隨機選取𝑥𝑘 ∈ {𝑥1 , 𝑥2 , … , 𝑥(𝜏′−1) }, (v)選取𝐴𝑖 如果 0<w<𝑥0 ,則取𝐴𝑖 ∈ {0,1, … ,6} 如果-𝑥0 <w<0,則取𝐴𝑖 ∈ {0, −1, … , −6} 如果𝑤𝑖 >𝑥0 或𝑤𝑖 <-𝑥0 則𝐴𝑖 =0. 38. i n U. v.

(47) (𝜏 ′−1). (vi)密文𝑐𝑖 = (𝑚 + 2𝑟𝑖 + ∑𝑗=1. 𝑎𝑗 𝑥𝑗 + 𝐴𝑖 𝑥𝑘 )mod 𝑥0 。. 其中安全參數λ為 5,τ為 640。 Our scheme's running time(單位:秒). Gentry's running time(單位:秒). 0.824004. 0.920406. 1.058006. 0.858006. 0.824004. 0.795605. 0.870804. 1.18561. 0.608404 0.855204. 立. 0.724004. 1.01401. 政 治 大. 1.07641 0.842405. ‧ 國. 學. 0.639604. 1.04521. 0.855204. 1.17001 1.23241. Nat. y. ‧. 0.780005. sit. 圖 9 加密時間. n. al. er. io. 由圖九我們可以發現大部分的狀況下,我們改良後的提案方式所需要的加密時間都. i n U. v. 比原方案的加密時間低,少部分的情況會高於 Gentry 的原方案原因有二:. Ch. engchi. 1. 選擇較多的金鑰進行運算。. (𝜏 ′−1). 2. 加密過後的 w=𝑚 + 2𝑟𝑖 + ∑𝑗=1. 𝑎𝑗 𝑥𝑗 <p,因而多出加𝐴𝑖 𝑥𝑘 的動作。. 而根據測試十次的結果,可以計算本方案加密的時間與 Gentry 的方案相比大約可減少 20%的時間,因此再加密過程中,我們的加密方案在大部分的情況之下優於 Gentry 所提 出的全同態方案。. 39.

(48) 立. 政 治 大. ‧ 國. 學 圖 10 加密時間. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. 40. i n U. v.

(49) 7. 全同態加密之應用 我們在 1.5 節介紹了許多與全同態加密的相關應用,像是對雲端上的資訊進行加密 儲存以確保隱私性之外、更可利用全同態加密的性質對加密過後的訊息做運算。除此之 外全同態加密更廣泛被運用在許多協定上,像是在 1.5 節也提出過的雙方相等性驗證。 因此在本章節將介紹兩篇文獻利用全同態加密演算法來達到雙方相等性驗證之應用,其 協定可讓雙方在不洩漏任何自身資訊的情況下,進行秘密計算來了解彼此的資訊是否相 等。. 政 治 大 7.1 邱姓學者提出的雙方相等性驗證 立. ‧ 國. 學. 邱姓學者在 2012 年提出了具隱私保護功能之兩方相等性驗證機制之提案[8],所提 出的協定可以讓雙方都能夠驗證彼此的私密資訊是否相同,其協定如下:. ‧. Alice 個人資訊 a,Bob 為 b,a,b∈ ZN ,E()為同時具備 commutative encryption 以及. sit. y. Nat. fully homomorphic 性質的加密演算法,A 為 Alice 的公鑰,所以EA 為 Alice 的同態公開. io. er. 金鑰,同理,EB 為 Bob 的同態公開金鑰. 1. Alice 生 成 亂 數 𝑟 = 𝑟𝑥 + 𝑟𝑦 , 𝑟𝑥 , 𝑟𝑦 , 𝑟 ∈ 𝑍 ∗ , 接 著 計 算 𝑎 × 𝑟𝑥 並 且 用 𝑃𝐾𝐴 加 密 得 到. n. al. Ch. 𝐸𝐴 (𝑎 × 𝑟𝑋 ),再將𝑟𝑦 和𝐸𝐴 (𝑎 × 𝑟𝑋 )傳送給 Bob。. engchi. i n U. v. 2. Bob 在收到𝑟𝑦 和𝐸𝐴 (𝑎 × 𝑟𝑋 )之後,計算𝑏 × 𝑟𝑦 並且用𝑃𝐾𝐴 加密得到𝐸𝐴 (𝑏 × 𝑟𝑦 ),並挑選 一 個 隨 機 的 亂數 𝑞 ∈ 𝑍 ∗ 加 密 後 得 到 𝐸𝐴 (𝑏 × 𝑟𝑦 ) 。 接 著 利 用 全 同 態 性 質 運 算得 到 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )),最後 Bob 以自己的公鑰𝑃𝐾𝐵 加密得到𝐸𝐵 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))傳送給 Alice。 3. Alice 收到 Bob 傳來的資訊後,利用可交換式加密的特性,先用自己的私鑰𝑆𝐾𝐴 對 𝐸𝐵 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))解密,𝐷𝐴 𝐸𝐵 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )) = 𝐸𝐵 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))。接著計算 𝐸𝐵 (𝑟 −1 ),利用乘法同態加密性質運算𝐸𝐵 (𝑟 −1 ) × 𝐸𝐵 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )) = 𝐸𝐵 ( 41. 𝑞(𝑎𝑟𝑋 𝑏𝑟𝑦 ) 𝑟. ).

(50) 並將運算結果傳給 Bob。 4. Bob 在 收 到 𝐸𝐵 (. 𝑞(𝑎𝑟𝑋 𝑏𝑟𝑦 ) 𝑟. ) 之 後 用 自 己 的 私 鑰 𝑆𝐾𝐵 解 密 並 且 𝑚𝑜𝑑 𝑝′ 得 到 (𝑎𝑟𝑋 𝑏𝑟𝑦 ). 𝐷𝐵 𝐸𝐵 (. 𝑞(𝑎𝑟𝑋 𝑏𝑟𝑦 ) 𝑟. ′. ) 𝑚𝑜𝑑 𝑝 =. 𝑞(𝑎𝑟𝑋 𝑏𝑟𝑦 ). 𝑟. 𝑟. (𝑎𝑟𝑋 𝑏𝑟𝑦 ). ,接著將𝑞除掉。假如{. 𝑟. Bob 將判斷結果連同. 𝑞(𝑎𝑟𝑋 𝑏𝑟𝑦 ) 𝑟. =b⇒a=b. 。. ≠b⇒a≠b. 𝑚𝑜𝑑 𝑝′與𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))傳送給 Alice。. Alice 在收到 Bob 傳遞來的資訊後,以自己的密鑰𝑆𝐾𝐴 將𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ))解密得到. 政 治 大. 𝑀 = 𝐷𝐴 𝐸𝐴 (𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )) = 𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 ),並計算𝑁 =. 立. 𝑏𝑟 ). ‧ 國. 𝑞(𝑎𝑟. 𝑞(𝑎𝑟𝑋 𝑏𝑟𝑦 ) 𝑟. 𝑟. 𝑚𝑜𝑑 𝑝′ × 𝑟。此時 Alice. 𝑚𝑜𝑑 𝑝′ × 𝑟,再進一步的判斷若. 學. 便能夠比較𝑞(𝑎𝑟𝑋 + 𝑏𝑟𝑦 )是否等於. 𝑞(𝑎𝑟𝑋 𝑏𝑟𝑦 ). ‧. 𝑋 𝑦 ⇒ 𝑎 = 𝑏。 {𝑎| 𝑟 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 ⇒ 𝑎 ≠ 𝑏. Nat. sit. y. 由以上協定可以讓雙方彼此擁有的秘密資訊在不需要公開的情況下進行比較,判斷. n. al. er. io. 其是否相等,使其並無洩漏之虞。而在第二個步驟,Bob 在接收 Alice 的密文之後,開. i n U. v. 始對自己擁有的訊息進行加密並進行同態運算,因此本方案所提出的全同態加密演算法. Ch. engchi. 可適用於邱姓學者的研究之中,並讓其可實行。. 42.

(51) 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. 圖 11 協定與驗證流程. 43. v.

(52) 7.2 FNP 隱私性交集相等性驗證 假設 A,B 兩方擁有其私密集合,其裡面元素需大於或等於一項,其元素代表著 A,B 兩方擁有的多筆秘密資訊,若想比較其各自集合內元素相等的個數可透過此協定來完成, 如圖十二。. 立. 政 治 大. y. ‧. ‧ 國. 學. Nat. sit. 圖 12 比較交集個數. n. al. er. io. 假設:Alice 的私密集合為 T={𝑡1 , 𝑡2,… 𝑡𝑚 },Bob 的私密集合為 Y={𝑦1, 𝑦2 , … 𝑦𝑛 },我們想得. i n U. v. 知 T,Y 集合內相等元素個數,也就是|T∩Y|。利用以下協定可以得知其交集個數並且不 會洩漏其自身秘密訊息。. Ch. engchi. Step1:Alice 選擇一個全同態的加密方案,生成其公私鑰,並且傳送一個數值 h 給 Bob Step2:Alice 建立一個多項式T(x)=∏(𝑥 − 𝑡𝑖 ),接著算出此多項式的各個係數𝑎𝑘 , 𝑘 即T(x) = ∑𝑘=𝑚 𝑘=0 𝑎𝑘 𝑥 ,而此多項式的 m 個根分別為𝑡1 , 𝑡2,… 𝑡𝑚. Step3:Alice 把多項式的係數𝑎𝑘 加密並且傳送給 Bob ({E(𝑎0 ), E(𝑎1 ), … , E(𝑎𝑘 )}) Step4:Bob 在接收到多項式𝑎𝑘 係數後,不需要解密並且將加密後的係數還原其多 項式成為E(𝑎0 ) + E(𝑎1 )𝑥 + ⋯ + E(𝑎𝑚 )𝑥 𝑚 Step5:Bob 隨機選擇一個亂數 c,並且將自己集合內的元素代入多項式求得 44.

(53) E(T(𝑦𝑗 )),因為滿足全同態定義所以E(𝑎0 ) + E(a1 )E(𝑥) + ⋯ E(𝑎𝑚 )E(𝑥 𝑚 )= E(𝑎0 + 𝑎1 𝑥 + ⋯ + 𝑎𝑚 𝑥 𝑚 )=E(T(𝑥)),接著計算E(c ∗ (T(𝑦𝑗 )) + h)並且將多個結 果回傳給 Alice Step6:Alice 在收到 Bob 的結果後,將其解密,若 Y 集合內元素𝑦𝑗 ∈|T∩Y|,則 Alice 得到 h,相反,則得到一個無意義的亂數 Step7:計算 h 的個數為何,並且傳送給 Bob 由上面協定之中,我們可以計算雙方集合元素相等個數比較,然而在協定之中 Alice. 治 政 或是 Bob 只知道其相等個數,其他的秘密訊息都不會被洩漏,而選擇全同態加密演算法 大 立 ‧ 國. 學. 的原因是在這套協定當中 Step5 Bob 要對自己的訊息進行運算E(c ∗ (T(𝑦𝑗 )) + h),而對 於多種運算元中,只有全同態的加密方案才符合此協定之需求。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. 圖 13 協定流程. 45. i n U. v.

(54) 7.3 相等性驗證之應用 相等性驗證所能推廣出來的應用相當廣泛,例如線上拍賣競標,線上商業談判,電 子投票,雲端資料庫計算,線上登入…等,都是可以利用此類技術加以解決,尤其是現 在資料庫系統的普及,使得儲存資料以及對資料進行分析已經是商業上面不可或缺的分 析工具時,我們應該對這些重要資料的安全風險更加謹慎,例如就商業面而言,我們可 以得知該項產品最終的總銷售數量,但卻無法得知該產品各月份的銷售量,這些對企業 來說,或許就是他們想要隱藏的秘密資訊,或是企業併購時,我們只可得知雙方對於此. 治 政 併購金額上的共識相不相同,但是卻無法得知雙方希望買下或是賣出的金額。而我們在 大 立 7.1 以及 7.2 所提出的相等性驗證皆可以運用在以上我們所提供的應用上,並且讓其具 ‧ 國. 學. 可行性且易於實行。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. 46. i n U. v.

(55) 8. 結論及未來展望 本研究最大的貢獻,是在於我們改良 Gentry 的全同態加密方案。讓加密所需要的公 鑰並不需要佔據太多的硬體空間或是資源,利用減少公鑰個數來達到降低所需空間,並 再資料隱私的情況下,同樣的進行對資料加密以及同態運算的正確性,並且與 Gentry 的全同態相比,我們降低公鑰所需空間使其易於實作,並且在安全性以及正確性上並不 會造成任何影響使其依舊保有其隱私性、正確性、安全性三項特點。 在未來,我們會針對所選取的集合 S 大小對應公鑰的數量來進行進一步的研究。雖然增. 治 政 加集合 S 會使降低的公鑰數量更為明顯,但是在正確性以及安全性來說,可能會造成疑 大 立 慮。因此如何在兩端之間求出最佳的平衡數量是我們未來所要進一步研究的課題。 ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 47. i n U. v.

數據

圖  13 協定流程

參考文獻

相關文件

缺課第一至六天(如家長沒有與校方聯絡),由校方

• 「迪士尼演藝日」為學生 提供一個奇妙的 公開表演 舞台 ,讓他們盡情發揮天 賦才華,從中增進團隊精 神、自律和藝術修養。.

明龍計算一題兩個數相加的數學題目,不小心算成了相減,所得到的答

• 「在香港定居的非華語學生與其他本地學 生,同樣是香港社會的下一代。……為促

• 我們通常用 nD/mD 來表示一個狀態 O(N^n) ,轉移 O(N^m) 的 dp 演算法. • 在做每題

除了之前所提的全域變數和區域變數外,我們在變數 前可以加上 static 修飾字:.

• 在線 (online):程式/演算法 必須對前一個詢問或操作做出

• 在線 (online):程式/演算法 必須對前一個詢問或操作做出