• 沒有找到結果。

若 m ∈ M , 我們用 pm 表示其出現的機率

N/A
N/A
Protected

Academic year: 2022

Share "若 m ∈ M , 我們用 pm 表示其出現的機率"

Copied!
4
0
0

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

全文

(1)

1. Perfect Secrecy

前面提過, 除了 exhaustive search 外 frequency analysis 頻率分析, 也是一種攻擊的工具.

使用頻率分析當然就會牽涉到機率的問題. 我們簡單的說明一下密碼和機率的關係.

首先我們假設M 為一個由 plaintext messages 所組成的 finite set. 若 m ∈ M , 我們用 pm

表示其出現的機率. 由於不可能出現的 message 我們不放在 M 中, 因此我們假設 pm> 0,

∀m ∈ M . 若令 p 為 M 上的 probability distribution, 我們假設 (M ,p) 為 memoryless source.

K 為 keys 所成的 finite set. 若 k ∈ K , 我們用 rk 表示其出現的機率且令 r 為 K 上的 probability distribution. 由於一般 key 的選取和 message 是無關的, 所以我們假設 (M ,p) 和 (K ,r) 是獨立的. 當然了我們也有 C 是由 ciphertext 所組成的 finite set. 若 c∈ C , 我們用 qc 表示其出現的機率. 同樣的不可能出現的 ciphertext 我們不放在C 中, 因 此我們也假設 pc> 0, ∀c ∈ C . 令 q 為 C 上的 probability distribution.

在以上的機率分布 p, r, q 是有相關性的. 例如若給定 c∈ C , 則 qc=

Ek(m)=c m∈M ,k∈K

pmrk.

事實上一個密碼系統中 r 是已知的, 而 p 就牽涉要加密的資訊. 至於 q 就如上式所示, 會 由 p 及 r 所決定. 因此一般我們可以考慮矩陣 Γ, 其 row 和 column 分別按照 M 和 C 來 編排. 而對於 m∈ M ,c ∈ C , 在 (m,c) 這個位置我們定

Γm,c=

Ek(m)=c, k∈K

rk. (1.1)

也就是說Γm,c 是在給定 m 之下加密得到密碼 c 的條件機率 Pr(c| m). 有了 Γ 這個矩陣, 若 知道 M 的機率分布 p, 只要將 p 按照 Γ row 的排序將 p 寫成 row vector, 則 p · Γ 就會是 C 的機率分布 q 了.

Example 1.1. 令 M = {0,1}, K = {A,B}, C = {a,b} 且 encryption functions Ek 描述如 下:

EA(0) = a, EA(1) = b, EB(0) = b, EB(1) = a.

假設 rA= 1/4, rB= 3/4, 則

Γ0,a= rA= 1/4,Γ0,b= rB= 3/4,Γ1,a= rB= 3/4,Γ1,b= rA= 1/4.

考慮 Γ 的第一個 row 和第二個 row 分別對應 M 的 0, 1, 而第一個 column 和第二個 column 分別對應 C 的 a, b, 則

Γ =

[1/4 3/4 3/4 1/4 ]

. 現又假設 p0= 1/4, p1= 3/4, 則 p = (1/4, 3/4). 故得

p· Γ = (1/4,3/4)

[1/4 3/4 3/4 1/4 ]

= (5/8, 3/8) = q, 亦即 qa= 5/8, qb= 3/8.

1

(2)

2

矩陣 Γ 告訴我們有 plaintext m 時加密會得到 ciphertext c 的條件機率 Pr(c | m). 然而 從破解密碼的角度, 我們需要知道的是收到 ciphertext c 時, 它是來自 plaintext m 的條件 機率 Pr(m| c). 若令 Pr(m,c) 表示 plaintext 為 m 且得到 c 的機率 (即 m,c 同時出現的機 率), 則由條件機率我們知道 Pr(c| m) = Pr(m,c)/pm. 也就是說 Γm,c· pm= Pr(m, c). 故再由 Pr(m| c) = Pr(m,c)/qc, 可得

Pr(m| c) = Γm,c· pm

qc = Γm,c· pm

m∈M Γm,c· pm

. (1.2)

Example 1.2. 考慮 Example 1.1 的密碼系統且假設為 p0= 1/4, p1= 3/4 的情況. 我們有 Pr(0| a) = Γ0,a· p0/qa= (1/4)(1/4)(8/5) = 1/10.

同理可得 Pr(1| a) = 9/10, Pr(0 | b) = 1/2 以及 Pr(1 | b) = 1/2.

從 Example 1.2 我們可以看出若使用 Example 1.1 的密碼系統, 當我們接收到 c = a 時, 可以猜測 a 應該來自於 m = 1. 因為 c = a 時 m = 1 的條件機率遠大於 m = 0 的條件機率.

然而接收到 c = b 時雖然 plaintext 來自於 m = 0 和 m = 1 的條件機率都是 1/2, 不過由於 m = 0 出現的機率應為 p0= 1/4, 而這裡當收到 c = b 時會來自 m = 0 的條件機率 1/2 高 於 1/4, 所以我們也可猜測 b 應來自於 m = 0. 所以從這個角度來看, 這個密碼系統應該是 不安全的.

Question 1.1. 考慮 Example 1.1 的密碼系統分別探討以下情況各 qc, Pr(m| c) 之值, 並探討 破解的情況.

(1) p0= 1/2, p1= 1/2.

(2) p0= 0, p1= 1.

從以上的例子我們可以看出, 若接收到某個 ciphertext c, 而 plaintext m 會使得 Pr(m| c) 遠高於 m 發生的機率 pm的話, 此時有很高的可能性 c 是來自於 m. 反之若所有的 plaintext m 在收到 c 的情況下條件機率 Pr(m| c) 和原來 m 發生的機率 pm 都保持一致, 則無法判定 c 是來自哪一個 m 加密而得. 因此 Shannon 給了以下的定義.

Definition 1.3. 若一個密碼系統對任意 m∈ M , c ∈ C 皆滿足 Pr(m | c) = pm, 則稱此系統 滿足 perfect secrecy.

Example 1.4. 令 M = {0,1}, K = {A,B}, C = {a,b} 且 encryption functions Ek 描述如 下:

EA(0) = a, EA(1) = b, EB(0) = b, EB(1) = a.

假設 rA= 1/2, rB= 1/2, 則

Γ0,a= rA= 1/2,Γ0,b= rB= 1/2,Γ1,a= rB= 1/2,Γ1,b= rA= 1/2.

此時對 M 的任何機率分布 (p0, p1), 我們有 (qa, qb) = (p0, p1)· Γ = (1/2,1/2). 因此 Pr(0 | a) = p0· Γ0,a/qa= p0, 同理 Pr(1| a) = p1, Pr(0| b) = p0 以及 Pr(1| b) = p1. 因此此密碼系 統滿足 perfect secrecy.

(3)

3

由於 Pr(m| c) = Pr(m,c)/qc 從 Definition 1.3, 我們知道 perfect secrecy 表示 Pr(m, c) = pn· qc. 由於 Pr(m, c) 表示 m 和 c 同時發生的機率, 所以 perfect secrecy 就是說M 和 C 的 機率分布 p 和 q 是互相獨立的. 不過前面提過 q 可由 p 和 K 的機率分布 r 求得. 所以要 保有 perfect secrecy 和 Key space 的機率分布有關. 我們底下探討其相關的性質.

假設密碼系統 (M ,K ,C ,E ,D) 有 perfect secrecy. 現對任意 m ∈ M 以及 c ∈ C , 由於 Pr(m| c) = pm 且已知 pm̸= 0, 故知 Pr(m,c) = Γm,c· pc̸= 0, 亦即 Γm,c ̸= 0. 也就是說必存 在 k∈ K 使得 Ek(m) = c. 現固定 c∈ C , 對任意 m ∈ M 令 K(m) = {k ∈ K : Ek(m) = c}.

由前知 K(m)̸= /0. 現若 m,m ∈ M 且 m ̸= m. 此時 K(m)∩ K(m) = /0. 這 是 因 為, 若 k∈ K(m)∩K(m)表示 Ek:M → C 滿足 Ek(m) = Ek(m) = c. 此與 Ek 為 one-to-one 相矛盾, 故知 K(m)∩ K(m) = /0. 從這裡我們知道每一個 m∈ M 都考找到 k ∈ K 使得 Ek(m) = c, 而且不同的 m 所找到的 k 決不會相同, 因此我們得 K 的元素個數不能少於 M 的元素個 數, 亦即 |K | ≥ |M |. 換言之, 在有 perfect secrecy 的系統中 key 的個數是要相當大的. 另 外由於對任意 k∈ K , Ek:M → C 是一對一, 所以我們自然有 |C | ≥ |M |. 事實上對於具 有 perfect secrecy 的密碼系統, 也會有 |K | ≥ |C |. 這是因為固定 m ∈ M , 對任意 c ∈ C , 由 於 Pr(c| m) = qc> 0, 表示必存在 k∈ K 滿足 Ek(m) = c. 然而若 c̸= c, 則 Ek(m)̸= c (因 為 Ek:M → C 是 well-defined function). 也就是說對應到不同的 ciphertext 所取的 k 不可 能相同, 也因此得 |K | ≥ |C |.

由於太大的 key space K 增加密碼系統的複雜度, 所以具有 perfect secrecy 的密碼系 統由前述可知 key space 最小的情況是 |M | = |K | = |C |. 在此情況之下 shannon 提出了 perfect secrecy 的等價條件.

Theorem 1.5 (Shannon). 在 |M | = |K | = |C | 的情況之下, 一個密碼系統具有 perfect secrecy 若且唯若對任意 m∈ M 以及 c ∈ C 皆存在唯一的 k ∈ K 滿足 Ek(m) = c 而且 K 上的機率分布 r 為均勻分布, 即對任意 k∈ K , rk= 1/|K |.

Proof. 首先考慮密碼系統為 perfect secrecy 的情況. 前面已知對任意 m∈ M , c ∈ C 皆存 在 k∈ K 滿足 Ek(m) = c. 由於不同的 m 其對應的 k 必不同, 故由 |K | = |M | 知所得的 k 必唯一 (否則會造成 |K | > |M |). 現固定 c ∈ M , 對任意 m ∈ M , 由剛才所提的唯一 性, 我們可找到唯一的 k(m)∈ K 滿足 Ek(m)(m) = c. 因為 Pr(m| c) = Pr(c | m) · pm/qc 以及 Pr(m| c) = pm, 我們得 Pr(c| m) = qc. 然而 Γm,c= Pr(c| m) 故由式子 (1.1) 以及 k 的唯一 性, 我們得 rk(m) = qc. 這說明了每個 k(m) 出現的機率皆相同 (皆為 qc, 與 m 無關). 由於

|K | = |M |, 每個 K 中的元素 k 都可找到 m ∈ M 滿足 k = k(m). 因此證得了 rk= 1/|K |, 亦即 K 上的機率分布 r 為均勻分布 (事實上也證得了 qc= 1/|K | = 1/|C |, ∀c ∈ C ).

現假設 |M | = |K | = |C | = n, K 的機率分布為均勻分布 (即 rk= 1/n, ∀k ∈ K ). 且 對任意 m∈ M , c ∈ C 存在唯一的 k ∈ K 使得 Ek(m) = c. 由此, 利用式子 (1.1) 我們得 Γm,c= 1/n, 也就是說矩陣 Γ 為每個 entry 皆為 1/n 的 n × n matrix. 因此由式子 (1.2) 得

Pr(m| c) = Γm,c· pm

qc

= Γm,c· pm

m∈M Γm,c· pm

=

1 n· pm

m∈M 1 n· pm

=

1 n· pm 1

nm∈M pm = pm.

因此得證此系統有 perfect secrecy 性質. 

(4)

4

由 Theorem 1.5 我們可以建立一個具有 perfect secrecy 的密碼系統. 最常被提及具有 perfect secrecy 的密碼系統就是所謂 Vernam one-time pad. 給定 n∈ N, 我們令 M = C = K = Fn2. 對任意 k∈ K = Fn2, 我們定義 encryption function Ek:Fn2→ Fn2 為 Ek(m) = m + k,

∀m ∈ Fn2. 很容易看出 Ek 是一對一的, 事實上若 c = Ek(m) = m + k, 我們可以使用 decryption function Dk= Ek 得到 Dk(c) = Ek(c) = (m + k) + k = m. 也就是說此系統確為一個密碼系統.

此系統和過去提過的 affine block system 不同的是, 每次要送出一個 plaintext m, 就必須隨 機 (均勻分布) 的在 Fn2 中選一個 k (而不是像 affine block system 一直使用同樣的 k). 這 也是稱之為 one-time pad 的原因. 當然了, 由 Theorem 1.5 我們知道 Vernam one-time pad 具有 perfect secrecy 的性質. 不過如何隨機的選取 key 以及如何機密的讓收受者知道使用 的 key 是另外需探討的課題了.

參考文獻

相關文件

《HPM 通訊》駐校連絡員 日本:陳昭蓉 (東京 Boston Consulting Group)

這兩個唯一性, 事實上不需要知道向量的 加法如何定義, 直接用 vector space 的性質就可以證明, 也就是說這個結果對一般的 vector space

我們已經了解在已知各 statement 的對錯情況之下它們用 connective 以及 not 連接之 後其對錯的狀況, 我們也知道一個 statement form 的否定為何.. 不過一個單一的

[r]

不過在特殊的情況, 例如 R 上的 standard topology 甚至更一 般的 metric space 上, 任意一個元素所成的集合就一定是

因為 vector space 有其方便性, 例如有了 vector space 我們就可以利用 dimension 來知 道它的大小.. 有關於

不過 Proposition 4.2.3 告訴 我們對於 linear transformation, 可以直接由它的 range 的 dimension 來判斷是否為 onto?. 至於如何知道一個 linear transformation

她寫道,當我們在生活中最想做的事情也是我們的義務時,最能 感受到 Ikigai 。關於 Ikigai ,感受就是最誠實的,如果我們知道如何