• 沒有找到結果。

三、 演算法介紹

4.1 安全性比較

4.1.1 第一等級安全性比較

首先介紹針對第一等級的攻擊者所做的安全遊戲,這安全遊戲為攻擊者在拿到一定 數量的密文情況下,可否解出這些密文中,包含某個特定明文,此事發生的機率,以其 明文範圍 M 和攻擊者拿到的相異加密資料總數 Z 為變數,詳細定義如下:

(Z,M)安全遊戲:

1.挑戰者隨機從明文範圍為 0~M-1 中,挑選 Z 個不一樣的數字𝑟1. . 𝑟𝑧,並把其加密後成 𝑐1. . 𝑐𝑧並傳給攻擊者。

2.從這些資訊中,挑選 1 個數字 x,認定這些密文中包含此數的密文,並把此數 x 回傳。

3.檢查傳過來的數字 x 是否在一開始隨機選擇的數字𝑟1. . 𝑟𝑧中,若有,則算攻擊成功,反 之攻擊失敗。

18

我們定義攻擊者在(Z,M)安全遊戲中的優勢為攻擊成功的機率,而若這個優勢趨近 於 0,則表示即使攻擊者拿到了 Z 個數量的密文,也沒辦法從中找出某個特定明文。

首先分析我們的密文,由兩個 bloom filter 和一個 HMAC 集合及一個 AES 加密的密 文所組成,而由於 AES 加密的密文不回洩漏資訊,兩個 bloom filter 實為兩個 HMAC 集 合所做成,因此我們只考慮此兩集合,而此兩集合裡的元素皆用 HMAC 加密,且集合的 元素個數也都調成與明文 bit 數相同,使得攻擊者單從單一密文的此兩 HMAC 集合是找 不出有關明文的任何資訊,他唯一能做的就是去比較兩密文的 HMAC 集合之間的交集,

而此交集數量就等於原先沒經 HMAC 的集合交集數量,0 集合和 0 集合、1 集合和 1 集合、

0 集合和 1 集合的交集數量可以得知,而 0 集合和 1 集合的交集數量非 1 即 0(代表者明 文大小關係),所以我們專注在 0 集合和 0 集合、1 集合和 1 集合的交集數量,而此資訊 其實會得到有關明文的資訊,如下例:

假設現有 3 個數字,皆為 8bit, 180、188 和 208,其經過 HYL encoding 後如下

180(二進位形式 10110100):

0 集合:11, 10111, 1011011, 10110101, 100000000, 101000000, 101100000, 101101000

1 集合:1, 101, 1011, 101101, 10, 10110, 1011010, 10110100

188(二進位形式 10111100):

0 集合:11, 1011111, 10111101, 100000000, 101000000, 101100000, 101110000, 101111000

1 集合:1, 101, 1011, 10111, 101111, 10, 1011110, 10111100

208(二進位形式 11010000):

0 集合:111, 11011, 110101, 1101001, 11010001, 100000000, 110000000, 110100000

19

1 集合:1, 11, 1101, 110, 11010, 110100, 1101000, 11010000

就二進位形式來看,180 和 188 前 4bit 一樣,所以無論是 180 的 0 集合和 188 的 0

20

4. 1, 2, 3 不發生且存在一數 x 在 Z 個數字中,而𝑥10、𝑥11、𝑥12和𝑥13中,有一個也在 這 Z 個數字中。

5. 1~4 都不發生,也就是對這 Z 個數字中的每一個數字 x,𝑥10、𝑥11、𝑥12和𝑥13都不在 這 Z 個數字中。

而由於我們要取上限,若 1 發生的話,我們把攻擊者解出密文的機率定為 100%,而 若 2 發生的話定為12,以次類推,於是我們就可以把優勢上限寫成 Pr(1 發生)*1 +Pr(2 發生)*1/2+Pr(3 發生)*1/4+Pr(4 發生)*1/8+Pr(5 發生)*1/16

而以下則是我們計算後的結果,由於優勢上限超過 1 就沒有用了,於是我們會把超 過 1 的部份切掉,如下圖 6:

圖 6:優勢上限比較圖 1(第一等級安全遊戲)

可以看到[5]推出來的優勢上限在 Z=15 時就超過 1 了,而我們的演算法在 Z=128 時 上限仍只有 0.2 左右,顯見我們的演算法在此標準下比起[1]這篇佔優。

藍色:[5]

紅色:我們的演算法

Z

21

相關文件