• 沒有找到結果。

基於儲存限制模型的私密通訊系統

N/A
N/A
Protected

Academic year: 2021

Share "基於儲存限制模型的私密通訊系統"

Copied!
53
0
0

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

全文

(1)國立交通大學 資訊科學系 碩 士 論 文. 基 於 儲 存 限 制 模 型 的 私 密 通 訊 系 統. Private Communication System based on Bounded Storage Model. 研 究 生:林坤杉 指導教授:曾文貴. 中 華 民 國. 教授. 九 十 三 年 六 月.

(2) 基於儲存限制模型的私密通訊系統 學生:林坤杉. 指導教授:曾文貴 博士. 國立交通大學資訊科學系. 摘. 要. 在 一 般 的 公 開 金 鑰 系 統 中 都 是 基 於 一 些 困 難 的 計 算 假 設 上 ( 如 RSA assumption)。而限制儲存空間的模型(Bounded Storage Model)並不限制攻擊者的 計算能力,它是假設限制攻擊者的儲存空間。而基於這種模型所設計出來的加密 系統,如果攻擊者無法完全儲存在加密過程中所使用的隨機字串時,即使日後金 鑰被洩露了,密文仍不會被解密,這樣的特性又稱為永久性的安全(Everlasting Security)。 在此我們應用了 Lu 在[10]中所用的證明,將 Dziembowski 跟 Maurer 的方法 [8]其安全性做了一個延伸,使其能夠抵擋動態攻擊(adaptive attack),即使金鑰重 覆的被使用,而系統仍是安全的。並利用訊息驗證的觀念來得到一個不可捏造 (non-malleable)的加密系統。最後設計並模擬了一個基於儲存限制的訊息傳送系 統,並分析我們所得到的效能。. 關鍵詞:限制儲存空間的模型、不可捏造、永久性的安全 i.

(3) Private Communication System based on Bounded Storage Model Student:Kun-Shan Lin. Advisor:Dr. Wen-Guey Tzeng. Department of Computer and Information Science National Chiao Tung University. Abstract In pulic-key cyptosystems are based on computational assumptions(i.e. RSA assumption). But there is no restirction of computational power in the bounded storage model. It just limited the adversary’s storage. We can construct a encryption scheme by using this model. If the adversry can’t store all the random bits which are used in the communication. Then he can’t decrypt the ciphertext, even he get the initial key after communication. This property is so called everlasting security. We apply the proof which was proposed by Lu[10] to extend the security of Dziembowski and Maurer’s scheme[8]. Then we make the security of DM’s scheme to against adaptive attack, even the same initial key is reused in communication. We also use the concept of message authentication to extend the scheme to get the non-malleable encryption system. Then we design a private communication system based on bounded storage model.. Key Word:Bounded Storage Model, Non-malleable, Everlasting Security. ii.

(4) 誌. 謝. 在此感謝我的指導老師曾文貴教授,在我碩士班兩年的學習過程中,不只讓 我在學業上受益良多,更在生活上以及言行上給我許多教導。此外,我要感謝口 試委員,交大資工系蔡錫鈞教授和清大資工系孫宏民教授,在論文上給予我許多 良好的建議和指導,讓我的論文更加完善。除此之外我要感謝實驗室同學,尚宸、 照儀、振魁和佩琳的幫忙,實驗室學長成康、惠龍、學姊季穎的指導,以及實驗 室學弟妹們在精神方面的鼓勵。 最後,我要感謝我的家人,不論在精神或物質上都給予我極大的支持,讓我 在無後顧之憂的情況下可以順利完成學業。在此,謹以此文獻給我所有我想要感 謝的人。. iii.

(5) 目. 錄. 中文摘要.........................................................................................................................i 英文摘要........................................................................................................................ii 誌. 謝...................................................................................................................... iii. 目. 錄.......................................................................................................................iv. 圖表目錄.......................................................................................................................vi 表格目錄.......................................................................................................................vi 第一章 引言..................................................................................................................1 第一節 研究動機..................................................................................................1 第二節 研究目標與成果......................................................................................2 第三節 各章節介紹..............................................................................................3 第二章 相關研究..........................................................................................................4 第一節 限制儲存空間的模型..............................................................................4 第二節 對稱式金鑰系統......................................................................................5 第三節 兩個基於儲存限制的方法......................................................................8 第四節 其他相關研究........................................................................................ 11 第三章 背景與基本定義............................................................................................12 第一節 基本定義................................................................................................12 第二節 攻擊者模型............................................................................................13 第三節 訊息驗證................................................................................................15 第四節 不可捏造的加密方法............................................................................16 第四章 一個基於儲存限制的加密系統....................................................................17 第一節 DM加密系統安全性的延伸 .................................................................17 第二節 不可捏造的加密系統............................................................................23 第一項 基於金鑰式赫序函數的訊息驗證................................................23 iv.

(6) 第二項 擁有不可捏造的加密系統............................................................26 第五章 設計與實作....................................................................................................31 第一節 系統架構................................................................................................31 第二節 系統協定................................................................................................33 第三節 系統效能................................................................................................39 第六章 總結................................................................................................................44 參考文獻......................................................................................................................45. v.

(7) 圖表目錄 圖表 1 Alice與Bob利用加密來達到安全通道 ...........................................................6 圖表 2 one-time pad system .........................................................................................7 圖表 3 Ding and Rabin的方法 .....................................................................................9 圖表 4 Dziembowski跟Maurer的方法.......................................................................10 圖表 5 DR跟DM方法的比較.....................................................................................10 圖表 6 HMAC.............................................................................................................24 圖表 7 系統架構圖....................................................................................................32 圖表 8 註冊新帳號....................................................................................................33 圖表 9 記錄使用者資料的資料結構........................................................................34 圖表 10 建立安全通道..............................................................................................35 圖表 11 隨機位元的資料結構..................................................................................36 圖表 12 聽取隨機字串的協定..................................................................................37 圖表 13 效能分析......................................................................................................42. 表格目錄 表格 1..........................................................................................................................39 表格 2..........................................................................................................................40 表格 3..........................................................................................................................40. vi.

(8) 第一章 引言 在網際網路的高度發展下,使用者經常會利用網路來互相傳送訊息。而在一 個開放性的網路環境下,想要得到一個安全的傳送訊息方式一直是密碼學上研究 的課題。不論是私密金鑰加密系統(Private Key Encryption System)或公開金鑰加 密系統(Public Key Encryption System),在金鑰被洩露的情況下都無法再保持密文 的私密性。如果能夠擁有在金鑰被洩露的情況下而密文仍無法被解密的特性,這 是相當令人著迷的。 在 一 般 的 公 開 金 鑰 系 統 中都 是 建 構 在 一 些 困 難 的 計 算 假 設 上( 如 RSA assumption)。因此 Maurer 在 92 年提出了不同以往的假設,也就是限制儲存空間 的模型(Bounded Storage Model),在此模型中主要是限制攻擊者的儲存空間,並 沒有去限制攻擊者的計算能力。基於這種模型所設計出來的加密系統,若攻擊者 無法完全儲存在加密過程中所使用的隨機字串時,那麼即使在日後金鑰被洩露 了,而之前的密文仍無法被解密。這樣的特性又稱為永久性的安全(Everlasting Security)。在此我們應用了 Lu 在[10]中所提的證明,將 Dziembowski 跟 Maurer 的 方法其安全性做了一個延伸,使其能夠抵擋動態攻擊(adaptive attack),即使金鑰 重覆的被使用,系統仍是安全的。並利用訊息驗證的觀念來達到一個不可捏造 (non-malleable)的的加密系統。然後在一般的網路上設計模擬了一個基於儲存限 制的訊息傳送系統。. 第一節 研究動機 有很多人常會使用 ICQ、MSN 等軟體與他人溝通,而這些軟體多數都是以 明文(Plaintext)的方式在網路上傳送,對於一個惡意的攻擊者就可以在網路上竊 聽你所傳送的訊息。因此如何在一個開放性的環境下得到安全的秘密通訊方式,. 1.

(9) 這一直是在密碼學裡一個很基礎的問題。安全的秘密通訊其主要目標,是令傳送 者與接收者兩者間的通訊內容不會被攻擊者所得知。 過去的研究中,各種加密演算法被提了出來 (如 DES、AES、RSA、ElGamal 等)。但這些加密方法只要攻擊者儲存了加密過的密文,之後若能得到金鑰,那 就能夠將密文解密。因此這些演算法都無法提供永久性的安全。針對 DES 而言 已經可以利用特別設計的硬體在幾天內破解了,所以過去如果有攻擊者仍儲存著 當時的密文,現在就能夠將之解密而得到機密的資訊了。而對於公開金鑰系統的 安全性都是基於一個很難的計算假設(unproven assumption)上才是安全的,但這 樣的假設只適用於一般的電腦,如果將相同的問題移到量子計算的電腦上,那這 樣將會使得 RSA 假設變的不適用了。因此如果將來量子技術能夠有突破性的發 展而量子電腦能夠普及的話,那麼安全性基於因數分解(Factoring)與離散對數 (Discrete logarithm)的系統將不再安全了(如 RSA)。 如上所述,對於電腦系統與量子計算的的迅速發展,可能使一些基於公開金 鑰的加密方式變的不安全。而且對於密鑰洩露後是否能夠保持著密文的私密性, 這種令人嚮往的安全性使得這方面的研究相當重要。因此永久性安全系統的研究 在近幾年來也越來越多,我們可以發現在這樣的演算法下,其所使用的假設是不 同於過往基於一些很難的計算假設,他是基於限制攻擊者儲存空間的假設下所發 展出來的。它不限制攻擊者的計算能力,所以其安全性要滿足理論安全 (information-theoretic secrecy)。. 第二節 研究目標與成果 限制儲存空間的模型提供了一種不同方向的安全性假設,而我們也可以針對 下面幾個重點來研究。一個安全性基於限制儲存空間的系統需要包含以下幾個部 份(Alice 跟 Bob 為使用者): 1. Alice 與 Bob 間必須先共同擁有一把短的私密金鑰 initial key K。 2.

(10) 2. 一 個 可 以 不 停 的 傳 送 大 量 公 開 隨 機 字 串 的 主 機. random R ←⎯⎯ ⎯{0,1}t .. (t > 攻擊者儲存空間) 。. 3. 一個金鑰衍生函數(derivation function),其輸入是隨機字串與初始金鑰, 輸出是與平均分佈(uniform distribution)成統計上鄰近(statistically close)。 4. 使用 one-time pad 這種擁有理論安全的加密方式,將衍生函數所衍生出來 的金鑰視為加密金鑰來進行加密。 而金鑰衍生函數的安全性,在於攻擊者無法儲存完整的隨機字串,所以即使在日 後得到初始金鑰,也無法做出相同的輸出結果。 本篇論文主要是研究各種永久性安全的演算法,我們希望能夠對各種演算法 都能夠熟悉。對於兩種不同的演算法 Ding-Rabin 的方法與 Dziembowski-Maurer 的方法,在此我們研究了後者的方法並將其安全性做了一個延伸使其能夠抵擋動 態攻擊,使這樣的系統其初始金鑰能夠重覆使用而系統仍是安全的。之後利用 HMAC 來對密文做驗證,並達到一個不可捏造(non-malleable)的性質。最後在一 般的網路上設計並模擬了一個基於儲存限制的訊息傳送系統。而我們利用特別設 計的資料結構與協定,使得在我們所設計的系統裡不需要做時間同步的機制,並 且詳細分析在現有的網路裡所實作出來的效能。. 第三節 各章節介紹 在第二章裡我們將會介紹所需要的相關背景,對限制儲存模型(Bounded Storage Model)的定義做一個詳細的介紹。並介紹兩個基於儲存限制的方法及其 他相關研究。然後在第三章對接下來會用到的密碼學定義,做一個詳細的描述。 攻擊模型與訊息驗證的觀念也會在這裡介紹說明。第四章我們對 Dziembowski 跟 Maurer 的安全性做一個延伸,使得即使金鑰被重覆使用,而系統仍是安全的。 並且利用訊息驗證的觀念來加強原本的系統,使其能夠達到不可捏造的特性。第 五章對我們實作的系統做一個詳細的描述,並分析其效能。然後是總結。 3.

(11) 第二章 相關研究 在這個章節中我們會介紹限制儲存的基本概念與相關研究。在第一節會先對 限制儲存模型(Bounded Storage Model)的定義做一個詳細的介紹。對於基於儲存 空間的加密系統,我們會使用一種名為 one-time pad 的加密方法。而它是一種對 稱式金鑰的系統,在第二節中我們會對這些做詳細的介紹。在第三節會介紹兩個 基於限制儲存模型的加密方法 Ding-Rabin 與 Dziembowski–Maurer 的加密方法, 然後介紹其他基於儲存限制的研究。. 第一節 限制儲存空間的模型 一般的公開金鑰的加密方式是基於計算上很難的問題上,因此在這樣的系統 中都會限制了攻擊者的計算能力。但是在限制儲存空間的模型(Bounded Storage Model)下,它並不是基於計算上很難的問題上,所以並不需要去限制攻擊者的任 何計算能力。而它唯一限制的只有限制攻擊者 Eve 的儲存空間而已,這樣的設定 就是一種限制儲存空間的假設。而這樣的觀點最早是在 1992 年由 Maurer 在[12] 所提出來的,他假設攻擊者 Eve 在任何時間所能夠使用的儲存空間,是一個大量 並且固定大小的空間(如 1 terabyte),且並沒有對 Eve 的計算能力做任何的限制, 但他所描述的攻擊者是只能夠儲存隨機字串中原本的位元,攻擊者不能利用任何 的儲存函數來計算隨機字串得到計算過後的位元,所以之後也定義了一個一般性 的儲存限制假設,使得攻擊者能夠利用任意的函數來計算隨機字串,只要其所輸 出的長度是小於隨機字串就可以了。而這樣也使得攻擊者的能力又更強了,之後 的相關研究也都是基於這樣的一般性儲存限制假設。 我們可以利用這樣的模型來建構出一個安全的加密系統,證明其安全性是基 於理論安全(information-theoretically-secure),而不是基於一些難解的問題(如因數. 4.

(12) 分解、離散對數問題)。在加解密系統中傳送者與接收者需要先共享一把金鑰, 並且能夠存取一隨機字串(random bits),而這個隨機字串是必須比攻擊者所能儲 存的空間來要來的大,假設隨機位元為 R 而攻擊者的儲存空間為 V ,攻擊者可以 利用任何的儲存函數來對隨機字串做運算,其輸出的長度必須限制在 | V | < | R |。之後即使攻擊者得到傳送方與接收方一開始所共享的金鑰,仍然無法攻擊 此加解密系統。 在加解密的過程中需要大量的隨機字串(random bits),當然要傳遞大量的隨 機位元(ex 250)利用硬體的實作是一個比較有效率的方式(如利用衛星來傳送),但 本篇論文是以目前的網路環境來模擬實作一個實驗性的加解密系統,並分析在現 有網路環境下所得到的效能。. 第二節 對稱式金鑰系統 為了要達到一個安全的溝通通道,我們常會利用一些加密的演算法來加密訊 息以達到一個安全的溝通。加解密的系統大致可分為兩大類,對稱式金鑰系統與 非對稱式金鑰系統(symmetric-key system and asymmetric-key system),而在本篇中 所使用到的,主要是以對稱式金鑰的加密系統為主,來達到一個安全的溝通管 道,在此我們會對對稱式金鑰系統做一個詳細的定義,而我們在基於儲存限制的 加密系統中,主要是利用 one-time pad 這樣的加密方法,因此我們也會詳細介紹 one-time pad 這個加解密系統。 „. 對稱式金鑰系統(Symmetric-key System) 考慮一個加解密系統主要包含兩個部份,加密及解密演算法. {Ee : e ∈ K},{Dd : d ∈ K} 1,對稱式的系統主要是定義在加密用的金鑰與解密用的. 1. K是一個金鑰空間(key space) 5.

(13) 金鑰是相同的情況下,也就是當e=d,圖表 1 為一對稱式系統的安全通道:. 攻擊者. 金鑰產生. e(對稱式系統 e=d) 安全通道. e 加密 Ee(m)=c m. 解密. c 非安全通道. 明文空間. Dd(c)=m m 儲存顯示. Alice. Bob. 圖表 1 Alice 與 Bob 利用加密來達到安全通道 Shannon 在 1949 年討論了密碼系統的安全性[16],他主要考慮了兩個問題: 1.. 當攻擊者有無限的計算能力(Computational power)時,對密文加以分析時, 一個密碼系統能有多強的安全性?. 2.. 當攻擊者在有限的時間及計算能力的限制下對密文做分析,那這樣子一個密 碼系統是否足夠安全呢? 我們考慮當攻擊者不論得到多少的密文 C,並且對密文以無限制的時間與計. 算能力來加以分析。如果在這樣的情況下攻擊者所能夠得到的明文資訊,其結果 跟直接猜測明文是一樣的話;那麼如果一個系統能夠達到這樣的安全性,我們就 稱它是理論安全,或絕對安全(perfect security)。而 Shannon 也說明了要達到這樣 的安全性,所使用的加密金鑰的長度必須大於或等於明文的長度。 „. one-time pad 系統 這樣的系統是一種擁有理論安全的一種系統,所以這樣的加密方法,可以用 6.

(14) 來抵擋一個不被限制計算能力的攻擊者。在 one-time pad 這種系統當中,每次要 加密並傳送一個訊息 M 時,傳送者與接收者之間必須先共同擁有一把隨機的私 密金鑰 X,稱為 one-time pad,金鑰與明文彼此之間是互相獨立的,且| X | = | M | (|⋅|表示其二進位位元長度)。當傳送者要加密訊息 M 時,只需計算 C = M ⊕ X ( ⊕ 為互斥或的運算 XOR),當接收者收到密文 C 想要對其解密時,只要計算 C ⊕ X = M ⊕ X ⊕ X = M 就可以得到訊息 M 了,如圖表 2 所示。值得注意的是每個 X 只能對一個訊息加密,若要加密其他訊息必須再共享另一個 X。因此對於每次想 要加密訊息就必須重新溝通出一把新的 X,這在現實的實作上是 one-time pad 系 統的一個缺點。. 明文 M. ⊕ 金鑰 X. 密文 C. ⊕. 明文 M. 安全通道. Alice. Bob. 圖表 2 one-time pad system. 我們考慮上面所提到的 one-time pad 系統,雖然其運算是一個很簡單的互斥 或運算,但對於攻擊者而言想要分析密文 C(|C|=n),會發現所有 2n 可能的明文都 有可能經過金鑰 X 的加密而成此密文,所以很清楚的它是一個有理論安全的系 統,這樣的系統雖可達到最高安全性,但是因為明文長度通常會很長,如此要獲 得一個跟明文長度相同的或更長的金鑰是一大難題。因此這個系統如果要加密長 的文件時就必須先共享一把夠長的 one-time pad,所以在一般是被認為不適用於 實際場合,但在接下來的章節裡我們所介紹到的方法,都是藉由一把短的初始金 鑰,從一個長的但是公開的隨機字串中,萃取出一把擁有足夠雜亂性的 one-time 7.

(15) pad X,所以我們也可以視這些方法在 one-time pad 系統下,為一個產生共享金鑰 的協定。. 第三節 兩個基於儲存限制的方法 „. Ding and Rabin 的方法 Ding 跟 Rabin 在[9]所提出的方法是 Alice 與 Bob 間先建立一把共同分享的. 初始金鑰 s ,其中每個 si 都是一個 k 元素的向量,向量中的值是介於 0 到 t 之間 的數,每次加密都以長度 b-bit 的訊息為單位來做加密,因此這把共享的金鑰其 實是由 bk 個索引所組成的,所以這把共享金鑰所需的長度為 bk log 2 t 。 接下來若要加密一長度 b 的訊息 M,Alice 與 Bob 必須去聽取一個長度為 t 公開的隨機字串 R,並且根據金鑰 s 中的索引來記錄相關的位元,計算出所要的 one time pad X = ( X 1 ,..., X b ) = (⊕ kj =1 R[σ 1 j ],..., ⊕ kj =1 R[σ bj ]) ,Alice 對 M 做加密運算 C = M ⊕ X ,將 C 傳送給 Bob,當 Bob 想解密時只要計算 M = C ⊕ X 。. 這個系統其安全性能夠抵擋 Chosen Ciphertext Attack(詳細定義在第三章)。 當共享金鑰 s 被建立後,在這樣的攻擊下能夠重覆使用達 2O ( k ) 次,即使之前所用 過的 one time pad 被攻擊者得知,共享的金鑰 s 也可以繼續在下一次的加解密步 驟中再被使用;即使 s 在之後被攻擊者得知,因為當時所使用的隨機字串已經不 能被存取,且攻擊者無法完整儲存當時所使用的隨機字串,因此在這之前所加密 的文件仍然是安全的,這就是所謂的永久性安全(Everlasting Security)。. 8.

(16) Message Block M ∈ {0,1}b Secret key s = ( s1 ,..., sb ), si = (σ i1 ,..., σ ik ) ∈ S = {1,..., t}k . (k is security parameter) random ⎯{0,1}t . Public random string R ←⎯⎯. Both Alice and Bob listen while R is being broadcast. 1. Alice and Bob store R[σ ij ] ∀1 ≤ i ≤ b,1 ≤ j ≤ t . 2. for i=1 to b do Alice and Bob set X i = f ( si , R ) = ⊕ kj =1 R[σ ij ] 3. Alice and Bob set X = f ( s, R) = ( X 1 ,..., X b ) = ( f ( s1 , R),..., f ( sb , R)) = (⊕ kj =1 R[σ 1 j ],..., ⊕ kj =1 R[σ bj ]) 4. Alice encrypts C = X ⊕ M , and sends C to Bob 5. Bob decrypts M = C ⊕ X 圖表 3 Ding and Rabin 的方法. „. Dziembowski and Maurer 的方法 Dziembowski 跟 Maurer 在[8]的方法只有說明如何將一把短的初始金鑰. (initial key) K,經過他們所提的方法來得到一把長的衍生金鑰(derived key) X,其 系統的安全性為 X 是一個與平均分佈成統計上鄰近的亂數。 在此我們介紹他們是如何產生出衍生金鑰的,首先Alice與Bob間先建立一把 共同分享的金鑰 K = ( K1 ,..., K m ) ∈ {1,..., w}m ,將隨機字串R視為m個區塊組成的,. Ki主要是用來記住每個區塊R(i)要從第幾個位元開始的起始索引,這把共享的初 始金鑰是由 m 個起始索引所組成的,每個索引需要 log 2 w 的位元來儲存,因此這 把初始金鑰所需的長度為 m log 2 w 。 接下來聽取一個公開的隨機字串 R ∈ R = {0,1}t ,如圖表 4 所示,根據金鑰 K 中的起始索引將其後 n 個位元記錄起來,針對 R 中的區塊 R(1),…,R(m),由 m 個 起始索引所引導的長度為 n 的字串,將這 m 個字串做互斥或的運算後就可計算. 9.

(17) 出所需要的 one time pad. X = f ( R, K ) = (⊕im=1 R(i )[ K i ],..., ⊕im=1 R (i )[ K i + n − 1]) 。 長度為 w+l-1 長度為 w 長度為 n. R(1). K1 K2. R(m). Km 圖表 4 Dziembowski 跟 Maurer 的方法. „. 兩種方法的比較 我們對上面所提的兩種方法做一個比較,如圖表 5 所示:. Ding and Rabin. Dziembowski and Maurer. 攻擊者儲存能力. 0.166 × R. 0.08 × R. 金鑰長度. bk log 2 t (與訊息長度相關). m log 2 w 2(小於訊息長度). 安全性. 可抵擋動態攻擊者,達到 沒有證明可以抵檔動態攻擊. CCA 的安全程度 重覆使用金鑰. 可,系統還是安全. 不可,沒有證明. 圖表 5 DR 跟 DM 方法的比較 在安全性方面 Dziembowski 跟 Maurer 並沒有證明他們可不可以抵擋動態攻 擊,但在 Ding and Rabin 的方法裡對於初始金鑰的長度與訊息長度是成正比的,. 2. m log 2 w ≤ n n為產生的衍生金鑰,也可視為可加密的訊息長度 10.

(18) 且我們要傳遞 b-bit 的訊息確得先共享一把比訊息長的初始金鑰。所以我們會對. Dziembowski 跟 Maurer 的方法進一步的研究,使其能夠達到 CCA 的安全性,並 且能夠重覆使用初始金鑰,而系統還是安全的。. 第四節 其他相關研究 雖然儲存限制的模型在[12]就定義出來了,Maurer 所提出的是一個私密金鑰 的溝通協定,且其安全性的證明並不是在一般性的儲存限制模型。在 Maurer 所 提的系統中攻擊者所能儲存的位元必須是跟公開隨機字串的的位元是一樣的,並 不能夠儲存經過任意運算後的位元。因此在之後 Cachin 跟 Maurer 在[4]提出的系 統中,攻擊者可以儲存經過任意運算後的位元,只要總數不超過被限制的儲存空 間即可,但在這樣的系統中所得到的結果效率並不好,為了要得到足夠的安全 性,Alice 跟 Bob 必須儲存相當大量的位元(i.e. 3 ×1010 )。 對於加密系統在[1][2]中也有相關研究,但是所提出的加密系統其安全性並沒 有考慮動態攻擊者,而在[9][6]中所提出的加密系統中就有考慮動態攻擊者的安 全性。在[10]中提出的加密系統是利用萃取器(extractor)概念,作者利用一個列表 解碼(List-decoding code)來建立出一個強萃取器(strong extractor),然後從隨機字 串中得到 one-time pad。 對於[9]中所提的方法而言,如果要加密訊息必須先共享一把比訊息長的初始 金鑰,但其安全性是可以抵達 CCA 的攻擊。而在[8]中所提的方法不需要共享一 把比訊息長的金鑰,因此效能比較好,但是其安全性並沒有考慮 CCA 的攻擊, 也沒有對 one-time pad 的捏造性做改善的動作。 其它方面的研究如金鑰分配(key agreement)的系統,Maurer 也有提出許多相 關的研究[13][14][16]。而 Ding 在[5][6]中提出一個基於儲存限制的模糊傳送系統. (oblivious transfer),而訊息驗證(message authentication)與不可捏造(non-malleable) 的加密系統在[6][9]中也有相關的研究。 11.

(19) 第三章 背景與基本定義 在本章節我們定義一些密碼學上的基本定義,還有之後證明會使用到的基本 定理。在第二節會介紹攻擊者模型,詳細說明 CCA/CPA 的攻擊方式。其他所需 要的相關背景也會在後面有詳細的說明。. 第一節 基本定義 定義一:語意上的安全(semantically secure) 一多項式 p(k ) 對於所有的安全參數 k,則若一密碼系統 CS = ( E , D, G ) ,對於. ∀M 0 , M 1 ∈ {0,1}m 且 (e, d ) ← G (1k ) ,攻擊者任何的解密演算法 A 都滿足下列式 子,則稱它是 p(k ) − semantically secure. | Pr[ A( E (e, M 0 ) = 1] − Pr[ A( E (e, M 1 )) = 1] |<. 1 p(k ). 對於一個沒有計算限制的攻擊者,一個理論安全(informational-theoretically secure) 的私密金鑰加密系統,表示其所能夠達到的安全程度是 semantically secure 且滿 足下式 | Pr[ A( E (e, M 0 ) = 1] − Pr[ A( E (e, M 1 )) = 1] |< 2−O ( k ) 定義二:統計距離(statistical distance) 對於兩個隨機變數(random variable)X、Y 而且他們的基礎樣本空間(common. sample space)為 S,X 與 Y 之間的統計距離(statistical distance)定義如下:. dist ( X , Y ) =. 1 ∑ | Pr[ X = s] − Pr[Y = s] | 2 s∈S. = max {Pr[ X ∈ T ] − Pr[Y ∈ T ]} T ⊆S. 定理一:對於任意的隨機變數 X,Y,Z 而且他們的基楚樣本空間為 S. dist ( X , Y ) ≤ dist ( X , Z ) + dist ( Z , Y ). 12.

(20) 定理二:[10]如果有一機率分佈 A,它與機率分佈 B 跟 B’彼此是互相獨立的,那 麼對於任何的函數 f 他們的基礎樣本空間為 S,Q,我們得到以下的式子:. dist ( f ( A, B), f ( A, B ')) = dist ( B, B '). 定義三:多項式不可分辨(polynomial indistinguishable) 任 意 兩 個 機 率 分 佈 X 0 , X1 , 且 對 於 任 何 機 率 的 多 項 式 時 間 杜 林 機 器. (probabilistic polynomial-time Turing machine, PPTM) D,若dist(D(X0),D(X1))是可 忽略的情況下,對於每個多項式p(n)都存在n0使得 n ≥ n0 如果滿足下面式子,我們 說它們是多項式不可分辨. | Pr[ D( X 0 ) = 1] − Pr[ D( X 1 ) = 1] |≤ 1/ p(n) or dist ( D( X 0 ), D( X 1 )) 是可忽略的 定義四:統計上鄰近、近亂數(statistically close、ε-random) 如果兩機率分佈X跟Y,若其dist(X,Y) ≤ ε (ε是一個可忽略的函數),那我們稱. X跟Y是統計上鄰近(statistically close),如果Y是一個平均分佈(uniform distribution) 的話,那我們稱X是一個ε-random的分佈。很清楚的可以發現,如果X是ε-random 的話,那也表示X跟平均分佈是多項式不可分辨的。而對於機率分佈X0跟平均分 佈U之間,如果X0與U兩者間是多項式不可分辨的話,那我們稱這個分佈X0是近 亂數。. 定理三:[6]令 X 是一個機率分佈在 {0,1}m 下,且是一個近亂數,如果一個 one-time. pad 系統用 X 來當作其所使用的 one-time pad,則此系統對 m-bit 的訊息擁有語意 上的安全。. 第二節 攻擊者模型 對於密碼系統的安全性而言,大多數都是考慮攻擊者的攻擊模型。如果一個 密碼系統能夠抵擋特定的攻擊者模型,我們就相信它是安全的,接下來我們會介 13.

(21) 紹兩種攻擊者模型。. ♦ 選擇性密文攻擊(Chosen Ciphertext Attacks, CCA): 選擇性密文攻擊對於任一加解密系統 CS = (G, E , D) ,若一個攻擊者AD要攻 擊此系統,AD可以去查詢一個解密資料庫(Decryption oracle) Od (⋅) 。詳細的攻擊 方式分成兩個步驟: 步驟一:AD可以對解密資料庫 Od (⋅) 做l次的查詢動作,對於第i次的查詢可 以根據之前所做的i-1 次查詢所得到的訊息,來決定第i次要詢問解密資料庫 的密文Ci,然後會得到相對應於Ci的明文Mi=D(d, Ci)(d是一把解密金鑰)。 步驟二:AD會被給予另一密文 C ,這個密文 C 是沒有詢問過解密資料庫. Od (⋅) 的,AD必須根據步驟一所作的l次查詢得到的資訊(M1,C1)…(Ml,Cl),來 猜出相對應於密文C的明文M。. ♦ 選擇性明文攻擊(Chosen Plaintext Attacks, CPA): 選擇性明文攻擊對於任一加解密系統 CS = (G, E , D) ,若一個攻擊者AD要攻 擊此系統,AD可以去查詢一個加密資料庫(Encryption oracle) Oe (⋅) 。詳細的攻擊 方式與選擇性密文攻擊一樣分成兩個步驟: 步驟一:AD可以對加密資料庫 Oe (⋅) 做l次的查詢動作,對於第i次的查詢可 以根據之前所做的i-1 次查詢所得到的訊息,來決定第i次要詢問加密資料庫 的明文Mi,然後會得到相對應的密文Ci=D(e, Mi)(e是一把加密金鑰)。 步驟二:跟選擇性密文攻擊的步驟二一樣。AD被給予另一密文C,AD必須 根據步驟一得到的資訊(M1,C1)…(Ml,Cl),來猜出相對應於密文C的明文M。. 對於上面所提到的兩種攻擊方式,可以很清楚的發現在公開金鑰的加密系統 中,CPA 的方式是比較沒意義的。因為公開金鑰是大家都知道的,所以可以對任 14.

(22) 何的訊息做加密,因此通常都是討論能夠抵擋 CCA 的攻擊。對於私密金鑰的加 密系統就必須分開討論。但在本論文會用到的方法中,可以很清楚的發現 CCA 跟 CPA 是等價的。. 第三節 訊息驗證 當我們在傳送一份訊息 M 時,如果不希望訊息的內容被修改,通常會對訊 息做一些運算得到其相對應的訊息驗證碼 r(message authentication code),所以一 個訊息驗證系統若想要會先對 M 產生相對應的 r,然後傳送(M,r),當接收者收 到後針對訊息 M 做相同的運算。藉由 r 的正確性來判斷訊息傳送的過程裡有沒 有被第三者修改。一般在公開金鑰系統裡想要達到訊息驗證的性質我們可以利用 數位簽章的技術來做到此性質。但在此我們討論的是在私密金鑰系統下安全的訊 息驗證。 定義五:在此定義一個私密金鑰的訊息驗證系統,這樣的系統主要有三個部份. MAS = (Gen, Mac,Ver ) ,Gen 為一個產生私密金鑰的演算法,Mac 為一個產生訊 息驗證碼的演算法,Ver 為驗證演算法,詳細如下:. ♦ Gen(1k),輸入為一長度為k的隨機字串(k為系統安全參數),其輸出為私密 金鑰s. ♦ Mac(M,s),輸入為任意的訊息 M ∈ {0,1}* ,私密金鑰 s 是由 Gen 所產生的, 其輸出是一個訊息驗證碼 r=Mac(M,s). ♦ Ver(M,s,r),其輸入為訊息 M、私密金鑰 s,與要驗證的驗證碼 r。當驗證 正確時輸出 1,表示(M,r)是有效的,反之輸出 0. ⎧1 if r = Mac( M , s ) Ver ( M , s, r ) = ⎨ ⎩0 if r ≠ Mac( M , s) 在一個私密金鑰系統,當傳送者與接收者共享一把私密金鑰 s,傳送方利用 演算法 Mac 計算出 r = Mac( M , s ) ;接收方也是擁有相同的私密金鑰 s,所以也可 15.

(23) 以計算出 Mac( M , s ),藉由驗證演算法 Ver(M,s,r)輸出的結果來判斷訊息有沒有被 修改。如果這樣的系統是安全的,表示任一攻擊者AD在沒有私密金鑰 s 的情況 下,無法做出任一訊息 M 其相對應的驗證碼 r = Mac( M , s ),使得 Ver ( M , s, r ) = 1。. 第四節 不可捏造的加密方法 一個公開金鑰加密系統中如果有不可捏造的性質(non-malleable),表示任一 攻擊者AD在得到一密文 C 的情況下;AD要由 C 計算出另一個有效的密文 C ' , 在計算時間為一多項式時間的情況下是不可行的。而這樣的定義也可以延伸到私 密金鑰的系統裡,根據[7]中提到要使一私密金鑰擁有不可捏造的特性,比在公 開金鑰上的設定要來的簡單而且有效率。在公開金鑰的設定下是大家都知道公開 金鑰的,所以已經有部份的資訊可以被攻擊者來使用。而在私密金鑰的設定上, 只有溝通雙方知道共享金鑰。因為私密金鑰只有使用者雙方知道,所以攻擊者必 須在只知道密文資訊的情況下,偽造出一份新的可以通過驗證的密文,才算攻擊 成功。我們會在下面說明在 one-time pad 加密系統中,如何捏造一個有效的密文。 對於我們的不可捏造的加密系統,其主要的概念是利用訊息驗證的方式,對 密文做驗證。而對於一不可捏造的加密系統,其安全性也可以利用上一節所介紹 過的 CCA/CPA 攻擊者模型。之後我們也會證明我們的不可捏造的加密系統是能 夠抵擋 CCA/CPA 的。 one-time pad 系統的捏造性:在 one-time pad 的系統中我們可以很清楚的發現 到,它是一個可捏造的系統,如果我們有一密文 C = M ⊕ X ,針對此密文 C 我 們做下面的運算:. C ' = C ⊕ Z = ( M ⊕ X ) ⊕ Z = ( M ⊕ Z ) ⊕ X = M '⊕ X 很明顯的經由一個簡單的互斥或運算後我們可以得到 C ' 為 M ' 用 X 所加密出來 的密文。. 16.

(24) 第四章 一個基於儲存限制的加密系統 接下來我們會將 Dziembowski 跟 Maurer 的安全性做一個延伸,主要的想法 是利用 Lu 在[10]中使用的證明。然後再搭配上訊息驗證的觀念,來達到一個不 可捏造的加解密系統,我們會證明其安全性是可以抵擋動態攻擊者 (adaptive. adversary)。而在這樣的系統中,雙方所共有的初始金鑰能夠在一安全參數 l 下, 重覆使用 l 次,且加解密系統仍是安全的。. 第一節 DM 加密系統安全性的延伸 „. 基本符號定義. K:初始金鑰,可視為一有m元素的向量,每個元素值小於w,用於derivation function 中 來 萃 取 出 有 足 夠 雜 亂 性. 3. 的 one-time. pad ,. K = ( K1 ,..., K m ) ∈ K = {1,..., w}m X:經由derivation function,所計算出的one-time pad,長度為n R:公開的隨機字串,其長度為t, R ∈ R = {0,1}t ,可將其視為m個短隨機字 串所組成的, R = ( R(1),..., R(m)) ,而每個R(i)的長度為w+n-1. ext :是一個 derivation function ,其輸入是隨機字串與初始金鑰,輸出是 one-time pad, ext (R, K) → X V:攻擊者所能儲存的相關資訊,其長度為s, V ∈ V h:攻擊者所用的儲存函數,其輸入為隨機字串,輸出為一長度為s的字串,. h( R ) → V U、U2:個別為相對於one-time pad X 與初始金鑰 K 的平均分佈。. 3. 與平均分佈成統計上鄰近(statistically close) 17.

(25) „. DM 演算法說明. Dziembowski 跟 Maurer 的方法說明了,如何將一把短的初始金鑰(initial key) K,經過他們所提的方法來得到一把長的衍生金鑰(derived key) X。在其研究中, X 是一個與平均分佈成統計上鄰近的亂數。很明顯的可以知道,如果 X 是與平均 分佈成統計上鄰近的亂數,那麼就存在一個語意上安全的 one-time pad 加密系 統。我們將 DM 的加密系統以演算法的方式呈現如下,接下來我們將 Lu 的證明 應用到 DM 加密系統中,使其安全性延伸至能夠抵抗 CCA/CPA 的攻擊,使得相 同的初始金鑰能夠重覆使用。. 演算法 一:DM with one-time pad. Initial:A public random bits R is composed by m blocks. R = ( R(1),..., R (m)), | R(i ) |= w + n − 1, R = m( w + n − 1) = t .. Alice and Bob have:initial key K = ( K1 ,..., K m ) ∈ {1,..., w}m . Alice and Bob listen while R is being broadcast. 1. Alice and Bob store R (i )[ K i ],..., R(i)[ K i + n − 1] 1 ≤ i ≤ m 2. Alice and Bob compute X for i = 0 to n-1 do. X [i ] = ⊕im=1 R(i )[ K i + i ] end for. 3. Alice compute C = X ⊕ M then transfer to Bob 4. Bob compute M = C ⊕ X. „. 安全性的討論 假設攻擊者可以儲存任何的位元只要其長度小於 R 。存在一個函數 18.

(26) h : R → V ,攻擊者可以利用 h 來儲存有關於 R 的任何位元:V=h(R)。. 如果攻擊者擁有關於隨機字串 R 的資訊 V,且在之後得到了初始金鑰 K。得 到 K 後攻擊者不能再存取 R 的情況下,對 X 做分析。如果在這種情形下所得到 的機率分佈期望值是很小的值(如 2− m / 2 ),那利用這樣的 X 所做的 one-time pad 系 統就是安全的。我們定義一隨機變數 β (v, k ) = dist ( X | V = v, K = k , U ) 。. 引理一: [8]如果 w、m、n,能滿足 m log 2 w ≤ n 且 w > 100 ,限制攻擊者的儲存 空間約為 s = 0.08t − 1.5m(n + 1) ,則 β (V , K ) 的期望值會有如下之關係式:. E[ β (V , K )] ≤ n2− m / 2 安全性的考量在[8]中,並沒有在之前所定義的攻擊模型下(CCA/CPA)。只說 明攻擊者在得到所能儲存的資訊 V 及之後可以得到初始金鑰 K 的情況下,系統 所製造出的 X 是與平均分佈成統計上鄰近的亂數。接下來我們會利用[10]中的證 明,用數學歸納法的方式將其安全性證明延伸至能夠抵擋 CCA/CPA 攻擊。 首先我們說明攻擊者的攻擊策略,假設R1,R2…是個別被利用在密文C1,C2… 與明文M1,M2,…之間的隨機字串。攻擊者AD可以存取隨機字串R1,R2,…並且觀察 密文與明文(C1,M1),(C2,M2),…。針對每一組的密文與明文可以根據選擇性密文攻 擊或選擇性明文攻擊所提供的解密 / 加密資料庫來獲得 (Ci,Mi) ,而攻擊者得到. (Ci,Mi)後就可以計算出 ext ( Ri , K ) = X i = Ci ⊕ M i 。 因為Ri每次都是獨立選取的,且在CCA與CPA模型中,攻擊者可以得到的資 訊 只 有 (Mi,Ci) , 雖 然 也 可 以 利 用 既 有 的 (Mi,Ci) 經 過 計 算 得 到. ext ( Ri , K ) = X i = M i ⊕ Ci (1 ≤ i ≤ l ) 。但對於在CCA與CPA中攻擊者而言,其所得到 的資訊是一樣的。因此對於我們使用的方法而言,這兩種安全性是等價的。 依照之前所定義的攻擊者模型 CCA/CPA,在此說明攻擊者AD的攻擊方式, 可分為兩個步驟: 步驟一:AD可以做l次的查詢動作,對於第i回合AD都可以存取該回合所使 19.

(27) 用的隨機字串Ri,攻擊者的攻擊順序為:先聽取隨機字串Ri,AD可以利用 一個儲存函數hi來儲存s位元,接下來將Ri、上一次所儲存的資訊Vi-1及之前 所使用的one-time pad X[i-1]=(X1,…,Xi-1),當做是hi的輸入。則在第i個回合攻 擊者可以得到新的資訊為 Vi = hi ( Ri ,Vi −1 , X [i −1] ) 。之後攻擊者無法再聽取隨機 字串,但可以利用查詢資料庫獲得第i回合的密文及明文(Ci,Mi)計算出相對應 的Xi。 步驟二:在第l+1 回合時,AD會被給予另一密文C,這個密文C是沒有被詢 問過的。AD可以藉由存取這一回合的隨機字串Rl+1與步驟一得到的資訊,再 利用函數hl+1來得到新的儲存資訊 Vl +1 = hl +1 ( Rl +1 ,Vl , X [ l ] ) 。得到新的儲存資訊 後,攻擊者無法存取Rl+1,之後攻擊者可以得到初始金鑰K,並企圖利用這 些資訊來猜出相對應於密文C的明文M。 我 們 將 前 l 次 的 X[l] 也 考 慮 進 去 , 重 新 定 義 隨 機 變 數 β (i) 如 下. β (v, k , x[l ] ) = dist ( X l +1 | Vl +1 = v, K = k , X [l ] = x[l ] , U ). 定理四:如果 w、m、n,能滿足 m log 2 w ≤ n 且 w > 100 ,限制攻擊者的儲存空間 約 為 s = 0.08t − 1.5m(n + 1) , 則 在 任 何 的 儲 存 函 數 hi : ( Ri ,Vi −1 , X [i −1] ) → Vi 下. β (Vl +1 , K , X [l ] ) 的期望值會有如下之關係式: E[ β (Vl +1 , K , X [ l ] )] ≤ (l + 1)n 2− m / 2 證明: 我們利用數學規納法的方式來證明 E[ β (Vi , K , X [i −1] )] ≤ i × n × 2− m / 2 ,規納在 i 上。 Basic step:i=1ÎV1=h1(R1)根據引理一 E[ β (V1 , K )] ≤ n × 2− m / 2 Induction hypothesis:對 i=l 時成立 E[ β (Vl , K , X [l −1] )] ≤ l × n × 2− m / 2 20.

(28) Statement to be shown in induction step:考慮 i=l+1 時. (. β (Vl +1 , K , X [ l ] ) = dist X l +1 | Vl +1 , K , X [l ] , U ≤ dist. (. + dist. ). X l +1 | Vl +1 , K , X [l ] , X l +1 ' | Vl +1 , K ', X [ l ]. (. X l +1 ' | Vl +1 , K ', X [l ] , U. ). ). ( where X l +1 ' = ext ( K ', Rl +1 )). ⇒ E[ β (Vl +1 , K , X [l ] )] ≤ E ⎡ dist ⎣. (. ). X l +1 | Vl +1 , K , X [l ] , X l +1 ' | Vl +1 , K ', X [l ] ⎤ ⎦ + E ⎡ dist X l +1 ' | Vl +1 , K ', X [l ] , U ⎤ ⎣ ⎦. (. ). K’是從平均分佈中選取的,與X[l]是互相獨立的。接下來我們將會分成 兩個部分來討論。在第一個部分等同是討論在經過l個回合後K是否還是擁有 足夠的雜亂性(randomness)。第二部分則是在第l+1 回合時換了另一把新的初 始金鑰K’,然後討論在這樣的情況下所製造出來的one-time pad Xl+1是否還是 能夠擁有足夠的雜亂性。我們先考慮在第一部分的情況 E ⎡ dist ⎣. (. ). X l +1 | Vl +1 , K , X [l ] , X l +1 ' | Vl +1 , K ', X [l ] ⎤ ⎦. = ∑∑∑ Pr ⎡⎣Vl +1 = v, K = k , X [ l ] = x[l ] ⎤⎦ Vl +1. K X[ l ]. × dist. (. X l +1 | Vl +1 = v, K = k , X [l ] = x[l ] , X l +1 ' | Vl +1 = v, K ' = k , X [l ] = x[l ]. ). = ∑∑∑ Pr[Vl +1 = v, K = k , X [l ] = x[l ] ] Vl +1. × =. K X[ l ]. 1 ∑ Pr ⎡ X l +1 = x | Vl +1 = v, K = k , X [l ] = x[l ] ⎤⎦ − Pr ⎡⎣ X l +1 ' = x | Vl +1 = v, K ' = k , X [l ] = x[l ] ⎤⎦ 2 X l +1 ⎣. 1 ∑∑∑∑ | Pr[Vl +1 = v, K = k , X [l ] = x[l ] ] 2 Vl+1 K X[ l ] X l+1. (. ). × Pr ⎡⎣ X l +1 = x | Vl +1 = v, K = k , X [ l ] = x[ l ] ⎤⎦ − Pr ⎡⎣ X l +1 ' = x | Vl +1 = v, K ' = k , X [l ] = x[l ] ⎤⎦ | =. 1 ∑∑∑∑ | Pr[Vl +1 = v, K = k , X [l ] = x[l ] , X l +1 = x] 2 Vl+1 K X [ l ] X l+1 − Pr[Vl +1 = v, K ' = k , X [ l ] = x[l ] , X l +1 ' = x] |. (. = dist Vl +1 , K , X [l ] , X l +1 , Vl +1 , K ', X [l ] , X l +1 ' 21. ).

(29) (. = dist hl +1 ( Rl +1 ,Vl , X [ l ] ), K , X [ l ] , ext ( K , Rl +1 ) , hl +1 ( Rl +1 ,Vl , X [l ] ), K ', X [ l ] , ext ( K ', Rl +1 ) 由於我們的Rl+1是跟Vl、X[l]、K、K’是互相獨立的,可以利用定理二所提到 的結果,得到下面的式子. (. dist hl +1 ( Rl +1 ,Vl , X [l ] ), K , X [l ] , ext ( K , Rl +1 ) , hl +1 ( Rl +1 , Vl , X [l ] ), K ', X [l ] , ext ( K ', Rl +1 ). (. ). (. ). = dist Vl , K , X [ l ] , Vl , K ', X [l ]. = dist Vl , K , X [l ] , Vl , U 2 , X [l ] ∵ K ' is selected from uniform distribution. (. ). = dist Vl , X [l −1] , K , X l , Vl , X [l −1] , U 2 , X l. (. ≤ dist Vl , X [l −1] , K , X l , Vl , X [l −1] , U 2 , U. ). = ∑∑ ∑ Pr ⎡⎣Vl = v, K = k , X [l −1] = x[l −1] ⎤⎦ Vl. K X [ l −1]. × dist. (. X l | Vl = v, K = k , X [l −1] = x[l −1] ) , U | Vl = v, U 2 = k , X [l −1] = x[l −1]. ). = E[ β (Vl , K , X [l −1] )]. ≤ l × n × 2− m / 2. (1). 接 下 來 讓 我 們 詳 細 討 論 在 第 二 個 部 份 所 發 生 的 情 況 , E ⎡ dist ⎣. (. ). X l +1 ' | Vl +1 , K ', X [l ] , U ⎤,這個部分就是在第 l+1 回合時換了一把新 ⎦. 的金鑰,所以根據引理一這個值會被限制在 n × 2− m / 2 之下 E ⎡ dist ⎣. (. ). X l +1 ' | Vl +1 , K ', X [l ] , U ⎤ ⎦. = E[ β (Vl +1 , K ', X [ l ] )]. ≤ n × 2− m / 2. (2). 因此由(1)、(2)我們可以得知. E ⎡⎣ β (Vl +1 , K , X [l ] ) ⎤⎦ ≤ l × n × 2− m / 2 + n × 2− m / 2 = (l + 1) × n × 2− m / 2 故得證。 22. ). ).

(30) 所以定理四說明了,即使初始金鑰在之後洩露了,依據演算法一所產生出來 的 X 仍然是一個與平均分佈成統計上鄰近的亂數。也可以發現,因為是在. CCA/CPA 的模型下證明,所以允許攻擊者做 l 次的查詢,而在第 l+1 回合所得到 的 X 仍是與平均分佈成統計上鄰近的亂數。所以很清楚的知道同樣的一把初始 金鑰可以重覆使用達 l 次,而系統仍然是安全的。因此若一 one-time pad 系統使 用這樣的 X 來加密,這樣的 one-time pad 系統會是語意上安全的,且能夠重覆使 用初始金鑰。. 第二節 不可捏造的加密系統 接下來我們考慮訊息驗證的系統,並將其概念應用到演算法一,達到一個不 可捏造的加密系統。在一些公開金鑰的系統中可以利用數位簽章的方式,很容易 的達到訊息驗證的效果。而在對稱式金鑰的系統(symmetric-key system)中也可以 利用 MAC 的技術來達到。我們利用訊息驗證的技術對密文做驗證,使得在傳遞 的過程中不會被第三者修改。. 第一項 基於金鑰式赫序函數的訊息驗證 金鑰式赫序函數(keyed hash function),其主要目地就是要用來產生訊息驗證 碼(message authentication code)。與一般的赫序函數的不同,主要在於它會牽涉到 一把私密的金鑰,因此只有擁有金鑰的使用者能夠產生相同的輸出。這樣的特性 剛好很適合用在訊息驗證上面。我們在此介紹一種用赫序函數來產生 MAC 的演 算法,”HMAC”(Keyed-Hash Message Authentication Code)。這個方法可以利用私 密金鑰來計算出訊息驗證碼,並且擁有一些特性: „. 可以利用一些常見的赫序函數來製造,且已有一些赫序函數在軟體上有 不錯的效能,而且也有一些免費的開放原始碼(Open Source). „. 利用既有的赫序函數來製造,其效能並不會有太大的影響,仍然有跟使 23.

(31) 用的赫序函數差不多的效能。 „. 這樣的製作過程所產生的訊息驗證,其安全性分析是基於所使用的赫序 函數,而且如果有更安全的赫序函數被發展出來,也能夠很輕易的替換 使用,達到更好安全程度的訊息驗證。. HMAC其演算法中ipad=(0x36)64與opad=(0x5C)64為兩個 64 位元組的定值,H為任 何的赫序函數(如SHA-1,MD5),對於HMAC而言可以將H視為一個黑盒子(black. box),直接像是呼叫子函式一樣的呼叫使用H,定義其函數如下:HMAC(Message,. Key)= H (( Key ⊕ opad ) || H (( Key ⊕ ipad ) || Message)) ,詳細過程如圖表 6。. Key. ⊕. ipad=(0x36)64. ||. 訊息(Message). H(任一赫序函數) opad=(0x5C)64. ⊕. || H(任一赫序函數). Output 圖表 6 HMAC 密碼學上的赫序函數都是將一個任意長的輸入字串,對應到一個較短的且固 定長度的輸出字串上。而一般的建構方式如SHA-1,MD5 等函數其設計都是要滿 足抗碰撞的性質(collision-resistance)。此外,密碼學上的赫序函數通常都會有雜 亂的性質(randomness)。如果一個赫序函數是”random”的,那其定義域的值就會. 24.

(32) 平均的對應到值域上。假設輸出的長度為|T|的話,那麼兩個隨機的輸入對應到相 同的輸出的機率會是 2-|T|。我們在下面對抗碰撞赫序函數做一個詳細的定義。. 定義六:抗碰撞赫序函數(collision-resistance hash function):對於一個函數集合. {. }. H = hn : {0,1} → {0,1}n ,如果滿足下面三個條件,我們稱它擁有抗碰撞(collision *. resistance)的性質: 1.. 在多項式時間內就可計算出所對應的值. 2.. Hard to invert : 對於任何的 PPTM M,在任何多項式 p(n)下,滿足 Pr ⎡⎣ M (1n , y ) ∈ hn−1 ( y ) ⎤⎦ < 1/ p(n). y∈{0,1}n. 3.. Hard to find collision : 對於任何的 PPTM M,在任何多項式 p(n),滿足 Pr ⎡⎣ M (1n ) = ( x1 , x2 ), hn ( x1 ) = hn ( x2 ) ⎤⎦ < 1/ p(n). 在[3]中詳細說明了 HMAC 安全性。因為 HMAC 主要是利用一般的赫序函數 來建構的,因此若要考慮其安全性是需要在一個適當的假設之下。假設若存在一 抗碰撞赫序函數,就可以做出一個安全的 HMAC。概略的說來,要攻擊 HMAC 等於是要偽造一個合法驗證碼,如果攻擊者能夠做到下面兩件事,就可以成功偽 造驗證碼:. 1.. 攻擊者在赫序函數中找到碰撞的狀況. 2.. 攻擊者偽造一個有效的驗證碼. 第一個狀況跟假設矛盾,而第二個狀況若發生則表示赫序函數的雜亂性. (randomness)變弱了。但是因為一般在設計赫序函數都會考慮其雜亂性,所以這 個狀況也會矛盾。 我們利用這樣的訊息驗證方式,將其應用到我們所使用的加密方法上,得到 一個擁有不可捏造的加密系統。我們假設在 HMAC 中所使用的是一個性質好的 赫序函數,其擁有抗碰撞的特性也擁有雜亂性。詳細的加密方式及安全性的討 25.

(33) 論,我們將會在下一小節中討論。. 第二項 擁有不可捏造的加密系統. 演算法 二:Non-malleable encryption. Initial:A public random bits R is composed by m blocks. R = ( R (1),..., R (m)), | R (i ) |= l + n − 1, R = m(l + n − 1) .. Alice and Bob have:initial key K enc and K auth . Alice and Bob listen while R is being broadcast. 5. Alice and Bob store. R (i )[ K enc ,i ],..., R(i )[ K enc ,i + n − 1] 1 ≤ i ≤ m R (i )[ K auth ,i ],..., R(i)[ K auth ,i + n − 1] 1 ≤ i ≤ m. 6. Alice and Bob compute X for i = 0 to n-1 do. X enc [i ] = ⊕im=1 R(i )[ K enc ,i + i ] X auth [i ] = ⊕im=1 R(i )[ K auth ,i + i ] end for. 7. Alice compute C = X enc ⊕ M and r = HMAC (C , X auth ) then transfer (C,r) to Bob ?. 8. Bob check r = HMAC (C , X auth ) if equal compute M = C ⊕ X enc else ⊥. 在第二章已經介紹過one-time pad系統的捏造方法,為了避免密文被偽造, 我們將這樣的訊息驗證應用到DM的加密方法。在一開始要溝通的雙方必須先建 立兩把初始金鑰 K enc ∈ K 、 K enc ∈ K ,所存取的隨機字串是R。利用這兩把初始金 鑰 來 對 隨 機 字 串 產 生 出 兩 組 one-time pad , X enc = ext ( R, K enc ) 、. X auth = ext ( R, K auth ) 。將Xenc跟之前所述一樣與訊息M做互斥或的運算得到C。為 26.

(34) 防止密文傳遞的過程被第三者修改,我們利用Xauth並利用HMAC函數來製作驗證 碼 r = HMAC (C , X auth ) ,傳送(C,r)的組合給Bob,他必須先檢查r的正確性來判斷 密文在傳遞時是否有被修改過,然後再用Xenc來做解密的步驟,詳細的演算法如 上所示。. „. 安全性討論 這樣的系統安全性如何,我們考慮在第二章所定義的不可捏造的定義,如果. 攻擊者無法在沒有初始金鑰的情況下產生出一組有效的 ( 密文 - 驗證碼 ) 組合的 話,那我們的系統就有不可捏造的特性。但在此我們考慮更弱的假設,如果攻擊 者也能夠得到初始金鑰的狀況下系列仍是安全的。攻擊者在得到(C,r)後就不能再 存取隨機字串了;直覺的想法,因為r=HMAC(C,Xauth),所以在定義四的描述下, 即使Kauth在之後被洩露了,Xauth仍然是與平均分佈是統計上鄰近的。因此在Kauth洩 露的情況下無法從(C,r)偽造出另一組有效的 (C , r ) 。 攻擊者的攻擊策略,假設R1,R2…是個別被利用在密文(C1,r1),(C2,r2)…與明文. M1,M2,…之間的隨機字串,我們將(Ci,ri)視為密文。攻擊者AD可以存取隨機字串 R1,R2,…並且觀察密文與明文((C1,r1),M1),((C2,r2),M2),…。針對每一組的密文與明 文可以根據選擇性密文攻擊與選擇性明文攻擊所提供的解密/加密資料庫來獲得. ((Ci,ri),Mi)且 ri = HMAC (Ci , ext ( Ri , K auth )) = HMAC (Ci , X auth ,i ) 。 依照之前所定義的攻擊者模型做一些修改,給予攻擊者每回合用來加密及訊 息驗證的 one-time pad,攻擊者AD的攻擊可分為兩個步驟: 步驟一:AD可以做l次的查詢動作。對於第i回合AD可以存取該回合所使用 的隨機字串Ri。給予AD隨機字串Ri、上一次所儲存的資訊Vi-1及之前用來加 密 及 訊 息 驗 證 的 one-time. pad. Xenc,[i-1]=(Xenc,1,…,Xenc,i-1) 與. Xauth,[i-1]=(Xauth,1,…,Xauth,i-1) , AD 可以利用一個儲存函數 hi 來儲存 s 位元的資 27.

(35) 訊 。 則 在 第 i 個 回 合 , 攻 擊 者 可 以 得 到 新 的 儲 存 資 訊 為. Vi = hi ( Ri , Vi −1 , X enc ,[i −1] , X auth ,[ i −1] ) 。之後AD可以利用查詢資料庫獲得密文及明 文((Ci,ri),Mi)並給予這個回合所用的Xenc,i與Xauth,i。 步驟二:在第l+1 回合時,AD會被給予另一密文(C,r),這個密文是沒有被 詢問過的,. C = M ⊕ X enc r = HMAC (C , X auth ). AD可以藉由存取這一回合的隨機字串Rl+1與步驟一得到的資訊,利用函數 hl+1來得到新的儲存資訊 Vl +1 = hl +1 ( Rl +1 , Vl , X enc ,[l ] , X auth,[l ] ) ,此後攻擊者無法存 取隨機字串。然後攻擊者可以得到初始金鑰Kenc與Kauth,再利用這些資訊攻 擊兩個方向: 一、猜出相對應於密文 C 的明文 M 二、產 生 一 組 新 的 密 文 與 驗 證 碼 (C , r ) = F (Vl +1 , K enc , K auth , C , r ) 使 得 C = M ⊕ X enc , r = HMAC (C , X auth ) 且 M ≠ M 。. 定理五:如果 w、m、n,能滿足 m log 2 w ≤ n 且 w > 100 ,限制攻擊者的儲存空間 約為 s = 0.08t − 1.5m(n + 1),則在任何的儲存函數 hi : ( Ri ,Vi −1 , X enc ,[i −1] , X auth,[i −1] ) → Vi 下,不存在任何的偽造演算法 F (Vl +1 , K enc , K auth , C , r ) 能夠偽造出有效的 (C , r ) ,也 不存在任何的解密演算法 A (Vl +1 , K enc , K auth , C , r ) 能夠解密得到相對應於密文 C 的 明文 M。 證明: 第一部分 解密得到訊息 M : 考慮第一個攻擊方向,由於Kenc與Kauth是互相獨立的,從隨機字串中計 算出的 Xenc 與 Xauth 也是互相獨立的。所以從 Xauth 無法得到任何關於 Xenc 的資 訊。如果這個攻擊者能夠解密得到與訊息M相關的訊息,那可以利 28.

(36) 用”reduction”的方式來證明攻擊者也可以在演算法一中得到M相關的資訊。 因為在定理四中所描述的是,即使經過l回合,仍不會洩露M相關的資訊。 而這樣的結果會與定理四矛盾,所以不存在這樣的解密演算法可以解密得到. M,詳細reduction如下: 如果攻擊者能夠利用解密演算法 A (Vl +1 , K enc , K auth , C , r ) 產生出C對應的 明文M的話,就可以利用 A 來攻擊演算法一,首先AD先自己隨機選擇Kauth步 驟一:在第i個回合聽取隨機字串Ri計算出Xanth,i ( 1 ≤ i ≤ l ),也計算新的儲存 資訊Vi。 步驟二:在第l+1 回合時AD可以聽取Rl+1計算出Xauth與新的儲存資訊Vl+1,然 後會得到密文 C 與 Kenc ,之後無法再存取隨機字串。接下來利用 Xauth 算出. r = HMAC (C , X auth ) ,並將(C,r)、Vl+1、Kenc、Kauth給 A ,如果 A 能夠成功解 密回M,那麼AD也成功地攻擊演算法一了。但這樣的結果與定理四矛盾, 所以不存在這樣的解密演算法。 第二部分 偽造新的密文與驗證碼: 考慮第二個攻擊方向。由不可分辨的定義得知,如果兩機率分佈是統計 上鄰近(statistically close)的話,就表示他們是多項式不可分辨的。反過來說, 也就是如果有分辨器可以分辨這兩個機率分佈的話,那麼他們就不是統計上 鄰近。 如果攻擊者能夠利用偽造演算法 F (Vl +1 , K enc , K auth , C , r ) 產生出一組新的 密文與驗證碼 (C , r ) 使得 C = M ⊕ X enc , r = HMAC (C , X auth ) 且 M ≠ M 。那麼 就可以將這個偽造演算法當成是子函式來呼叫,造出一個分辨器D來分辨. Xauth 與平均分佈。我們假設如果存在一個 F 可以成功偽造的機率是 (|T| 為 HMAC輸出的長度): Pr ⎡⎣ r = HMAC (C , X auth ) ⎤⎦ ≥ 2|T | + l × n × 2− m / 2 29.

(37) 接下我們可以利用這樣的 F 來製造一分辨器D分辨Xauth與平均分佈,如下所 述: R 演算法 D(Vl +1 , K enc , K auth , Z : ) ( Z ) ←⎯ ⎯{ X auth ,U }. i.. 計算出 σ = HMAC (C , Z ). ii.. 計算出 (C , r ) = F (Vl +1 , K enc , K auth , C , σ ). iii.. 如果 r = HMAC (C , Z ) ,則輸出 1. C 為演算法 D 的一部分,我們接下來要說明這樣造出來的演算法 D,會與 定理四互相矛盾。很明顯的根據演算法的設計,我們知道 D(Vl +1 , K enc , K auth , Z ) = 1 ⇔ r = HMAC (C , Z ). (C , r ) 是演算法 D 在步驟(ii)藉由呼叫 F 所得到的,因此他們成功的機率是一 樣的. Pr [ D(Vl +1 , K enc , K auth , Z ) = 1] = Pr ⎡⎣ r = HMAC (C , Z ) ⎤⎦ 如果 Z = X anth 根據假設. Pr ⎡⎣ r = HMAC (C , X auth ) ⎤⎦ ≥ 2|T | + l × n × 2− m / 2 如果 Z = U ,HMAC 的結果等於是隨機選取的,其機率為. Pr ⎡⎣ r = HMAC (C ,U ) ⎤⎦ = 2|T | 因此由上面兩個機率式子可以得知. Pr [ D(Vl +1 , K enc , K auth , X auth ) = 1] − [ D(Vl +1 , K enc , K auth , U ) = 1] = Pr ⎡⎣ r = HMAC (C , X auth ) ⎤⎦ − Pr ⎡⎣ r = HMAC (C ,U ) ⎤⎦ ≥ l × n × 2− m / 2 所以如果存在 F 能夠偽造出新的有效的 (C , r ) ,那麼將會與定理四所得到的 結果矛盾,因此不存在 F 可以成功偽造有效的 (C , r ) 。. 30.

(38) 第五章 設計與實作 在第四章我們將 Dziembowski-Maurer 的系統安全性做了一個延伸,使其能 夠達到抵擋動態攻擊者,且相同的初始金鑰在合理的安全參數下可以重覆使用。 然後在之後利用了一個基於金鑰式赫序函數的訊息驗證 HMAC,將原本的方法中 加強了一點特性,使其能夠擁有不可捏造(non-malleable)的性質。我們會依據第 四章所提到的擁有不可捏造的加密方法,設計模擬一個建構在一般的乙太網路上 的系統。. 第一節 系統架構 系統架構概念圖如圖表 7,這個系統主要可以分成三個部分,廣播伺服器、 註冊伺服器、一般使用者。廣播伺服器所使用的是一個公開的網路通道,任何人 都可以去存取它所傳送的任何資料。而註冊伺服器與一般使用者之間是使用公開 金鑰來做加密的安全溝通,在這個安全通道中傳遞一些註冊及登入的訊息,以防 止被第三者得知相關的資訊。我們也假設這個伺服器是一個誠實的角色,它不會 任意洩露使用者存在伺服器端的私密資訊。而使用者與使用者之間原本是一個公 開的網路通道,但我們利用上一章節所提到的加密方式,在使用者與使用者之間 利用一個基於儲存限制的加密法來達到安全的溝通。而如果攻擊者沒有完全儲存 當時所使用到的隨機字串,那經過加密過的文件將會擁有一個不錯的特性,「永 久性安全」。 我們要求使用者與註冊伺服器需先擁有一組公開金鑰系統的金鑰並經過一 信任的機構所簽署的憑證。 接著我們將會介紹這三個角色所分配到的工作:. 31.

(39) 好友名單. Broadcast Server. … Access Always Broadcast. Registration Server. Sign In. Sign In. Communication. 圖表 7 系統架構圖. z. 廣播伺服器(Broadcast Server) 這個伺服器主要的作用在於,它必須不間斷的發送隨機字串,提供使用者在 溝通時所需要的大量隨機字串。. z. 註冊伺服器(Registration Server) 這個伺服器需要處理使用者註冊的事宜,並且記錄使用者密碼資訊、公開金 鑰憑證、與好友名單,當有使用者登入時必須記錄該使用者目前為上線狀 態,幫助使用者從他的好友名單中與目前所有的上線使用者做比對,將上線 的好友資訊(包括 ID、IP address)和離線好友的名單傳送給該使用者。歸納其 工作有:. 一、處理使用者向註冊伺服器註冊一個新帳號,儲存密碼資訊與憑證 二、處理使用者登入/登出時的動作 三、管理使用者新增好友與刪除好友,維護使用者的好友名單 32.

(40) z. 客戶端軟體(Client Software) 安裝在各地的電腦上,是使用者與系統真正接觸的介面。負責根據使用者提 供的資訊及下達的命令,做出適當的回應。如:. 一、向註冊伺服器註冊一個新帳號 二、登入/登出,由註冊伺服器得知線上好友的相關訊息(IP Address),並發 送上線與離線通知給線上好友. 三、新增好友與刪除好友 四、選取想要溝通的使用者,利用公開金鑰的系統來加密所產生的共享初始 金鑰,利用聽取廣播伺服器所傳送出的隨機字串與不可捏造的加密演算 法,進而得到安全的溝通。. 第二節 系統協定 Certi:使用者i的憑證,若為s表示為註冊伺服器。 Ei:利用使用者i的公開金鑰來加密。 Sigi:利用使用者i的私密金鑰來做簽章。 IDi:使用者i的ID。 PWi:使用者i的密碼。. User. Register Server. (1). Register. (2). Certs. (3) Es(IDA||H(PWA)||CertA||Time||SigA(IDA||H(PWA)||CertA||Time)) (4) EA(Register_ACK ||”Register OK”||Time||Sigs(”Register OK”||Time)). 圖表 8 註冊新帳號. 33.

(41) z. 使用者向註冊伺服器註冊一個新帳號 A 當使用者想要向伺服器註冊一個新帳號 A 的步驟如圖表 8:. (1). 使用者在一台安裝有客戶端軟體的機器上與註冊伺服器建立連線,提出 註冊帳號的要求,傳送 Register。. (2). 當註冊伺服器收到使用者送來的要求,會將他的憑證傳送給使用者。 (3). 使用者得到憑證後,即可利用憑證中的公開金鑰加密訊息,將使用者的 ID、密碼相關資訊、憑證、時間戳記、對前四項訊息所做的簽章,用伺 機器的公開金鑰加密起來,傳送給伺服器。. (4). 這時註冊伺服器會回傳的訊息有兩種 z. Register_ACK || ”Register OK”. z. Register_ACK || ”Account already exist”. 當註冊伺服器解密後得到使用者的憑證,會先利用憑證來驗證簽章的正確 性,再檢查時間戳記是否過期。若正確的話就回傳第一種回傳訊息,並儲存 使用者的IDA、密碼相關資訊H(PWA)及使用者的憑證,反之則回傳第二種回 傳訊息。. public class UserInfo implements Serializable{ public String name; // 記錄使用者的 ID public String ip; // 記錄使用者目前的 IP Address public int port; // 記錄使用者的 Port } 圖表 9 記錄使用者資料的資料結構 z. 登入使用本系統. 一、輸入你的帳號,傳送 Es(SignIn||IDAlice||H(PWAlice)||Time||SigAlice(IDAlice||H(PWAlice)||Time)) 的 訊 息給註冊伺服器. 34.

(42) 二、伺服器解密後檢查簽章的正確性,時間戳記有否過期,比對密碼相關資 訊,若都正確表示登入成功,註冊伺服器會將使用者的 ID、與目前 IP. Address 及 Port 記錄在我們設計的資料結構中(如圖表 9). 三、註冊伺服器會根據帳號來尋找好友名單,並且與目前連上線的使用者做 比對,最後將比對後的結果加密傳回. EAlice (SignIn_ACK_OK||OnlineFriendListAlice||OfflineFriendListAlice||Time || Sigs(OnlineFriendListAlice||OfflineFriendListAlice||Time)). 四、當使用者解密得到資料時,對簽章驗證及時間戳記無誤後,依據 OnlineFriendListAlice的裡的IP Address資訊,傳送上線通知給你的線上好 友 z. 建立安全通道. Register Server. (1). Alice. (2) (3) (4) (5). Bob. 圖表 10 建立安全通道. (1). Alice向註冊伺服器要求Bob的憑證,傳送 Es(Cert_Req || IDAlice|| IDBob || Time || SigAlice(IDAlice||IDBob || Time)),註冊伺 服器確認簽章及時戳沒問題後,傳會Bob的憑證. (2). 註冊伺服器會將Bob的憑證傳送給Alice EAlice(Cert_ACK || CertBob || Time || Sigs(CertBob || Time)),Alice檢查簽章及 35.

(43) 時戳沒問題後,準備與Bob建立安全通道. (3). Alice傳送溝通的要求給Bob的同時,也會將自己的憑證傳送過去 EBob(Com_Req||IDAlice||CertAlice ||Time||SigAlice(IDAlice||CertAlice||Time)) (4). Bob檢查簽章及時戳沒問題後,回傳Com_ACK EAlice(Com_ACK||“Hello”||Time||SigBob(“Hello”||Time)) (5). Alice收到Com_ACK後,表示雙方之間的連線已建立。接下來雙方要溝 通兩把初始金鑰,由Alice產生初始金鑰Kenc,Kauth,將初始金鑰加密後傳 給Bob,EBob(Key_Init||Kenc||Kauth||Time||SigAlice(Kenc||Kauth||Time))。Bob解密 得到內容後,確認憑證與時戳沒問題後。就可以利用初始金鑰,並聽取 廣播伺服器所發送的隨機字串,計算出用來加密與用在訊息驗證的. one-time pad Xenc跟Xauth,然後利用不可捏造的加密方法來做加解密的動 作。. public class RandomData { public BigInteger random_bits_bignum = null; // 記錄隨機字串 public BigInteger index_bignum = null; // 記錄隨機字串的索引 } 圖表 11 隨機位元的資料結構 聽取隨機字串的方法. 因 為 我 們 模 擬 的 廣 播 方 式 是 利 用 多 點 傳 播. (Multicast),在乙太網路架構中不論是廣播還是多點傳播都是用 UDP(User Datagram Protocol)類型的封包來傳送訊息的。而 UDP 的傳送協定是一個不 可靠的傳送協定,因此會有封包遺失的情況發生,所以 Alice 與 Bob 所聽取 到的隨機字串,會因為某些封包的遺漏而造成收到不同的隨機字串。因此我 們設計特殊的資料結構,來使我們方便解決雙方收到不同的隨機字串。 隨機字串的資料結構如圖表 11,每段隨機字串後面都伴隨著一個唯一 的索引,因此由傳送訊息者去聽取目前隨機字串後面伴隨的索引值,並將其 36.

(44) 加上 500 傳送給對方。這是因為我們在傳送索引時,也會花費時間的關係, 所以為了使雙方都能從相同的索引值開始接收,因此約略的加上 500。接著 雙方由得到的索引值開始接收隨機字串,當接收到一個段落時就先將索引值 傳給對方,接收方經過比對後將結果回傳,雙方留下交集部份的隨機字串, 反覆的做相同的動作直到隨機字串的數量足夠為止。詳細步驟如圖表 12:. Broadcast Server (4). (4) (1). Alice. Bob (2) (3) (5) (6). 圖表 12 聽取隨機字串的協定. (1). Alice 聽取目前隨機字串所伴隨的索引 index_i。 (2). 將 index_i 加上 500 後,start_index = index_i + 500,傳送 start_index 給 Bob。 (3). Bob 收到後回傳 ACK,start_index_ack。 (4). Alice 與 Bob 雙方根據 start_index 去接收隨機字串,將那些索引比 start_index 大的隨機字串儲存。 (5). Alice 將 儲 存 的 隨 機 字 串 所 伴 隨 的 索 引 傳 串 聯 起 來 , 傳 送 給 Bob , Index1||Index2||Index3…….||Index20484. 4. 在此我們以接收 2048 筆隨機字串為一個單位 37.

(45) (6). Bob 收到後,與自己所儲存的隨機字串索引做比對,將經過交集的結果 以 True 或 False 表示法,回傳給 Alice。. Ex. True||False||True…….||True z. 登出本系統. 一、傳送Es(SignOut||IDAlice||Time||SigAlice(IDAlice||Time))的訊息給註冊伺服器。 二、註冊伺服器檢查簽章與時間戳記無誤後,將Alice從所有線上使用者的 名單中刪除,並回傳. EAlice (SignOut_ACK ||“SignOut OK”||Time|| Sigs(“SignOut OK”||Time))。. 三、Alice 檢查簽章與時間戳記無誤後,會依據 Online Friend List 裡的 IP Address 資訊,傳送離線通知給線上好友。 z. 新增/刪除好友. 一、輸入好友的帳號,傳送 Es(AddFriendList||IDAlice||IDfriend||Time||SigAlice(IDAlice||IDfriend||Time)) 給 註 冊伺服器。. 二、註冊伺服器收到後檢查簽章與時間戳記無誤後,再檢查IDfriend是否為已 註冊過的使用者。若是一個尚未註冊的帳號,註冊伺機器回傳. EAlice(AddFriendList_ACK||“not register”||Time||Sigs(“not register”||Time)) 若是一個註冊過的帳號,檢查這個帳號是否在所有線上使用者的名單 中,伺服器回傳. EAlice(AddFriendList_ACK||True|| UserInfofriend ||Time|| Sigs(True|| UserInfofriend ||Time)) 若為上線 EAlice(AddFriendList_ACK||False||Time|| Sigs(False||Time)). 若為離線. ,接著註冊伺機器將好友帳號寫進Alice好友名單中。. 三、客戶端根據收到的傳回值來更新上線與離線的好友名單。 四、刪除好友的步驟與新增好友的一樣,只是將 Add 更改為 Delete。在此就 38.

(46) 不詳細描述。. 第三節 系統效能 在這個章節裡我們會對上面所提到的系統架構,利用一般的網路來模擬,首 先說明我們的測試環境: 中央處理器 Intel 2.4-GHz Pentium 4 記憶體 256 MB 作業系統 Mircosoft Windows XP Professional 程式軟體 Borland JBuilder 8.0 with J2SDK version 1.4.2 統計與製圖軟體 Mircosoft Excel 2000 表格 1 是我們測試時所設定的環境及參數。由定理四很清楚的發現,其安 全參數有一定限制在,故我們設定了這些參數但也不失去其安全性。在不同長度 的隨機字串下,將 m 與產生出來的 one-time pad 長度 n 這兩者固定後,安全性就 固定下來了。但還必須滿足 m log 2 w ≤ n 與 w > 100 ,由下表的設定看來是都滿足 這兩個限制的。而在不同大小的區塊中所對應出來的初始金鑰長度 m log 2 w ,也 可由這兩個限制發現,我們不必共享一把比訊息長度長的初始金鑰。 隨機字串長度. m. w. m log 2 w. n. 安全性. 2MB. 128. 3 × 215 − 1. ≈ 2176. 215. 215 × 2−64 ≈ 2−49. 4MB. 128. 7 × 215 − 1. ≈ 2304. 215. 215 × 2−64 ≈ 2−49. 8MB. 128. 15 × 215 − 1. ≈ 2432. 215. 215 × 2−64 ≈ 2−49. 16MB. 128. 31× 215 − 1. ≈ 2560. 215. 215 × 2−64 ≈ 2−49. 32MB. 128. 63 × 215 − 1. ≈ 2688. 215. 215 × 2−64 ≈ 2−49. 64MB. 128. 127 × 215 − 1. ≈ 2816. 215. 215 × 2−64 ≈ 2−49. 表格 1. 39.

(47) 我們由上面所設定的參數下,對於不同的隨機字串長度能夠傳遞多少訊息來 做一個模擬。表格 2 所表示的是我們藉由調整隨機字串的長度,在不同的長度 下能夠傳送多少訊息,平均每個訊息所花費的時間為何。我們測量當溝通雙方接 收到相同的隨機字串長度為 2MB~64MB,每次都計算出長度 n( 215 )的 one-time. pad。並且以十分鐘的時間為單位來測量,所得到的效能為:在花費約十分鐘的 情況下,每接受到相同的隨機字串長度為 2MB 時能產生 215 bits 的 one-time pad 為 79 個,平均每個 pad 花費 7.555 秒。 隨機字串長度 單位區塊 R(i)大小. 總耗費時間. 訊息總數. 平均傳送時間. 2MB. 217 bits. 596.893 sec. 79 個. 7.555 sec. 4MB. 218 bits. 601.673 sec. 31 個. 19.408 sec. 8MB. 219 bits. 601.047 sec. 20 個. 30.052 sec. 16MB. 220 bits. 602.374 sec. 11 個. 54.761 sec. 32MB. 221 bits. 599.219 sec. 8個. 74.902 sec. 64MB. 222 bits. 627.781 sec. 4個. 156.945 sec. 表格 2 隨機字串長度. 比例. 總共接收隨機字串長度 失去隨機字串長度. 2MB. 0.617188. 3.24MB. 1.24 MB. 4MB. 0.603708. 6.62 MB. 2.62 MB. 8MB. 0.605911. 13.2 MB. 5.2 MB. 16MB. 0.695348. 23.01 MB. 7.01 MB. 32MB. 0.747861. 42.78 MB. 10.78 MB. 64MB. 0.692986. 92.35 MB. 28.35 MB. 表格 3. 40.

數據

表  2 one-time pad sys

參考文獻

相關文件

The Model-Driven Simulation (MDS) derives performance information based on the application model by analyzing the data flow, working set, cache utilization, work- load, degree

教育局網頁 www.edb.gov.hk &gt; 課程發展 &gt; 課程範疇 &gt; 全方位學習. 與津貼有關的重要資訊 會通過聯遞系統 Communication and Delivery

• Tone distribution and contrast ÎModified based on model

happy linear modeling after Z = Φ(X ) Price of Nonlinear Transform.

The purpose of this research lies in building the virtual reality learning system for surveying practice of digital terrain model (DTM) based on triangular

The GCA scheduling algorithm employs task prioritizing technique based on CA algorithm and introduces a new processor selection scheme by considering heterogeneous communication

The GCA scheduling algorithm employs task prioritizing technique based on CA algorithm and introduces a new processor selection scheme by considering heterogeneous communication

Therefore, this work developed a multiplayer online game-based learning system (MOGLS), which based on the ARCS motivation model.. The MOGLS allows learners to