14. 單一字元替代密碼
攻擊:字頻分析(Frequency analysis)
最常出現的字母:e, t, a, o, i
最常出現的單字:the, to, of, and
自動化分析:https://quipqiup.com/
By Nandhp (Public domain)
https://commons.wikimedia.org/wiki/File:English_l
etter_frequency_(alphabetic).svg
17. Index of coincidence
● 已知在英文一段有意義的長文中,隨機取兩字母,相同機率為 0.068
● 已知同樣明文經同樣的密鑰加密後會出來同樣的密文
C --- key=B ---> D
● 以重複間格不斷取密文,其字母重複的機率應該接近 0.068
QPWKALVRXCQZIKGRBPFAEOMFL...
53. RSA
製作 Public Key 與 Private Key:
1. 選擇 2 個超大相異質數 p, q 並計算 N = pq
2. 計算 r = (p-1) × (q-1)
3. 選一整數 e 滿足 e < r 且 gcd(e, r) = 1
4. 尋一整數 d 滿足 ed ≡ 1 (mod r)
5. 銷毀 p 與 q,得 Public Key (N, e) 與 Private
Key (N, d)
加密與解密:
1. Bob 要傳訊息給 Alice,訊息依據特定方法
轉成整數 m 滿足 m < N
2. Alice 將 Public Key (N, e) 交給 Bob
3. Bob 運算 c ≡ me
(mod N) 得 c 並交給
Alice (加密)
4. Alice 運算 cd
≡ m (mod N) 得 m ,再依約
定方法轉回原始內容(解密)
其實看不懂沒關係啦 ...
維基百科上有很詳細的證明可以讀
55. OAEP
● Optimal Asymmetric Encryption Padding
● 欲加密訊息 m,隨機生成乱数 r
● 加密:
○ X=(m+000...) ⊕ G(r)
Y = r ⊕ H(X)
○ 其中 G, H 是公開的 Hash 函數
○ RSA 加密 (X||Y)
● 解密:
○ RSA 解密得 (X||Y)
○ r = Y ⊕ H(X)
○ m+000...= X ⊕ G(r)
56. Diffie-Hellman key exchange
● 可以靠著溝通創造出共有金鑰而讓竊聽者無法得知該金鑰
● 基於離散對數問題
● 由 Ralph C. Merkle、Bailey Whitfield Diffie、Martin Edward Hellman 提出
57. Diffie-Hellman key exchange
1. Alice 與 Bob 約定使用 p=23, g=5
2. Alice 創造一個整數 a=6 並保密
並計算 A = ga
mod p 並傳給 Bob。
A = 56
mod 23 = 8
3. Bob 創造一個整數 b=15 並保密
並計算 B = gb
mod p 並傳給 Alice。
B = 515
mod 23 = 19
4. Alice 計算 s = Ba
mod p
196
mod 23 = 2
5. Bob 計算 s = Ab
mod p
815
mod 23 = 2
63. 數位簽章(Digital Signature)
1. Alice 想要簽一筆資料 D
2. Alice 把 D 拿去算 hash 得 H
3. Alice 拿自己的私鑰對 H 簽章得 S
4. Alice 把 (D, S) 傳給 Bob
5. Bob 拿 D 去算 hash 得 H’
6. Bob 把 S 用 Alice 的公鑰驗證得 H
7. 比較 H 與 H’ 是否一樣
https://en.wikipedia.org/wiki/File:Digital_Signature_diagram.svg
由 FlippyFlink 以創用CC 姓名標示-相同方式分享 4.0 國際 公開
64. Hash vs. MAC vs. Digital Signature
完整性:Bob 可以確認 Alice 傳來的訊息是完整的,沒有缺漏或被意外更改
可驗證性:Bob 可以確認訊息確實是 Alice 傳來的
不可否認性:Bob 把訊息拿給第三方,第三方可以確認該訊息是 Alice 傳的,
且 Alice 無法不承認這個訊息源自於她
Hash MAC Digital Signature
完整性 Integrity Yes Yes Yes
可驗證性 Authentication No Yes Yes
不可否認性 Non-repudiation No No Yes