• 沒有找到結果。

背景與基本定義

在本章節我們定義一些密碼學上的基本定義,還有之後證明會使用到的基本 定理。在第二節會介紹攻擊者模型,詳細說明 CCA/CPA 的攻擊方式。其他所需 要的相關背景也會在後面有詳細的說明。

第一節 基本定義

定義一: 語意上的安全(semantically secure)

一多項式 ( )p k 對於所有的安全參數 k,則若一密碼系統CS =( , , )E D G ,對於

p ksemantically secure

0 1 定義二: 統計距離(statistical distance)

對於兩個隨機變數(random variable)X、Y 而且他們的基礎樣本空間(common sample space)為 S,X 與 Y 之間的統計距離(statistical distance)定義如下:

{ }

定理二: [10]如果有一機率分佈 A,它與機率分佈 B 跟 B’彼此是互相獨立的,那 麼對於任何的函數 f 他們的基礎樣本空間為 S,Q,我們得到以下的式子:

( ( , ), ( , ')) ( , ') dist f A B f A B =dist B B

定義三: 多項式不可分辨(polynomial indistinguishable)

任 意 兩 個 機 率 分 佈 X0,X , 且 對 於 任 何 機 率 的 多 項 式 時 間 杜 林 機 器1 (probabilistic polynomial-time Turing machine, PPTM) D,若dist(D(X0),D(X1))是可 忽略的情況下,對於每個多項式p(n)都存在n0使得 如果滿足下面式子,我們

定義四: 統計上鄰近、近亂數(statistically close、ε-random)

如果兩機率分佈X跟Y,若其dist(X,Y) ≤ ε (ε是一個可忽略的函數),那我們稱

紹兩種攻擊者模型。

♦ 選擇性密文攻擊(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是沒有詢問過解密資料庫 的,AD必須根據步驟一所作的l次查詢得到的資訊(M

( )

Od1,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 的方式是比較沒意義的。因為公開金鑰是大家都知道的,所以可以對任

何的訊息做加密,因此通常都是討論能夠抵擋 CCA 的攻擊。對於私密金鑰的加 密系統就必須分開討論。但在本論文會用到的方法中,可以很清楚的發現 CCA 跟 CPA 是等價的。

第三節 訊息驗證

當我們在傳送一份訊息 M 時,如果不希望訊息的內容被修改,通常會對訊 息做一些運算得到其相對應的訊息驗證碼 r(message authentication code),所以一 個訊息驗證系統若想要會先對 M 產生相對應的 r,然後傳送(M,r),當接收者收

以計算出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 計算出另一個有效的密文 ', 在計算時間為一多項式時間的情況下是不可行的。而這樣的定義也可以延伸到私 密金鑰的系統裡,根據[7]中提到要使一私密金鑰擁有不可捏造的特性,比在公 開金鑰上的設定要來的簡單而且有效率。在公開金鑰的設定下是大家都知道公開 金鑰的,所以已經有部份的資訊可以被攻擊者來使用。而在私密金鑰的設定上,

只有溝通雙方知道共享金鑰。因為私密金鑰只有使用者雙方知道,所以攻擊者必 須在只知道密文資訊的情況下,偽造出一份新的可以通過驗證的密文,才算攻擊 成功。我們會在下面說明在 one-time pad 加密系統中,如何捏造一個有效的密文。

C

對於我們的不可捏造的加密系統,其主要的概念是利用訊息驗證的方式,對 密文做驗證。而對於一不可捏造的加密系統,其安全性也可以利用上一節所介紹 過的 CCA/CPA 攻擊者模型。之後我們也會證明我們的不可捏造的加密系統是能 夠抵擋 CCA/CPA 的。

one-time pad 系統的捏造性:在 one-time pad 的系統中我們可以很清楚的發現 到,它是一個可捏造的系統,如果我們有一密文C=MX ,針對此密文 C 我 們做下面的運算:

很明顯的經由一個簡單的互斥或運算後我們可以得到 為

' ( ) ( ) '

C = ⊕ =C Z MX ⊕ =Z MZX =MX '

C M 用 X 所加密出來' 的密文。

相關文件