26
1 密密密密密密密密 密 9 密 密密密密密密密密 RSA

密碼學與網路安全 第 9 章 公開金鑰密碼學與 R SA

  • Upload
    zarek

  • View
    132

  • Download
    0

Embed Size (px)

DESCRIPTION

密碼學與網路安全 第 9 章 公開金鑰密碼學與 R SA. 私密金鑰密碼學. 傳統的 私密/秘密/單一金鑰 密碼學使用一把金鑰 傳送端和接收端共用同一把金鑰 所以也稱為對稱式加密 若通訊時洩漏金鑰,會危及通訊安全 而且也無法確認傳送端的真實身份. 公開金鑰密碼學. 公開金鑰密碼學是整個密碼學最重大的發展,也是整個密碼學演進史唯一真正的變革 使用兩把金鑰:公開金鑰和私密金鑰 也稱為 非對稱加密 ,兩端使用不一樣的金鑰 公開金鑰演算法是以數學函數為基礎,而非替代和重排. 為什麼要使用 公開金鑰加密?. 解決兩大金鑰的議題: 金鑰分送 數位簽章 - PowerPoint PPT Presentation

Citation preview

Page 1: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

1

密碼學與網路安全

第 9 章 公開金鑰密碼學與 RSA

Page 2: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

2

私密金鑰密碼學 傳統的私密/秘密/單一金鑰密碼學使用

一把金鑰 傳送端和接收端共用同一把金鑰 所以也稱為對稱式加密 若通訊時洩漏金鑰,會危及通訊安全 而且也無法確認傳送端的真實身份

Page 3: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

3

公開金鑰密碼學 公開金鑰密碼學是整個密碼學最重大的發

展,也是整個密碼學演進史唯一真正的變革

使用兩把金鑰:公開金鑰和私密金鑰 也稱為非對稱加密,兩端使用不一樣的金

鑰 公開金鑰演算法是以數學函數為基礎,而

非替代和重排

Page 4: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

4

為什麼要使用公開金鑰加密? 解決兩大金鑰的議題:

金鑰分送 數位簽章

公開金鑰加密是由菲迪和赫爾曼在 1976年於史丹佛大學公開發表 安全單位更早之前也已提出類似的概念,但

未公開

Page 5: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

5

公開金鑰密碼學 公開金鑰/雙金鑰/非對稱密碼學使

用兩把金鑰: 公開金鑰:公開並用於加密訊息、確認

簽章 ( 即是解密 ) 私密金鑰:只由接收端擁有,用來解密

訊息、簽署(建立)簽章 ( 即是加密 ) 非對稱式因為

加密訊息或確認簽章之金鑰無法解密訊息或建立簽章

Page 6: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

6

公開金鑰密碼學

Page 7: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

7

公開金鑰密碼學

Page 8: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

8

公開金鑰的特徵 非對稱演算法的加密是依賴一把金鑰,並

且用另一把不同但相關的金鑰來解密,這些演算法具有以下重要的特性: 若只知道密碼系統的演算法和加密金鑰,無法經由

計算得到解密金鑰 對於已加密的密文而言,搭配另一把金鑰可以快快

的解密 兩把金鑰的任一把可用來加密,另一把可用來解密

(對某些演算法而言)

Page 9: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

9

公開金鑰加密系統之認證加保密

Page 10: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

10

公開金鑰密碼系統的應用 廣義的三大應用:

加密/解密:傳送者以接收者的公開金鑰加密訊息

數位簽章:傳送者以自己的私密金鑰「簽署」訊息

交換金鑰:通訊雙方合作交換通訊金鑰 有些演算法適合這三種應用,而有些只能

用在其中的一或兩種應用

Page 11: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

11

公開金鑰的安全性 公開金鑰加密也會受到暴力法攻擊,雖然反制的對策也相

同:使用更長的金鑰。不過,公開金鑰系統依靠某些反向的數學函數,這些函數的計算複雜度可能超過線性成長於金鑰位元數。所以金錀的大小必須

大得足夠抵擋暴力攻擊。 小得足以不會太難解密和加密。

另一種類型的攻擊,是找出某些方法而以公開金鑰計算出私密金鑰 ( 並未有數學證明此法無可破解! )

最後一種針對公開金鑰系統的特殊攻擊方式,屬於「可能訊息」攻擊法

假設欲傳送的明文是 DES 的 56 位元金鑰,則不論公開金鑰的金鑰長度有多長,只要加密 256 種明文而得到 256 種密文即查表解密。這種攻擊法會簡化暴力攻擊而針對 56 位元金鑰。若要阻止這種攻擊,能在訊息之後加上一些隨機位元

Page 12: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

12

RSA RSA 是 1977 年由 Ron Rivest 、 Adi

Shamir 、和 Len Adleman 在 MIT 所發展 是目前最好也最廣為使用的公開金鑰架構 使用指數運算式,將明文加密成二進位值小於整數 n 的區塊

n 的大小通常是 1024 個位元 ( 故 n 小於等於 21024 1)

Page 13: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

13

RSA 演算法 Rivest 、 Shamir 、 Adleman 發展的方法使用指

數運算式,將明文加密成二進位值小於整數 n的區塊 區塊大小必須要小於或等於 log2(n) 實際上的區塊大小是 i 個位元( 2i < n 2≦ i+1 )

某些明文區塊M 和密文區塊 C 是以如下形式加密、解密:

傳送者與接收者都必須知道 n值,傳送者知道 e值,而只有接收者知道 d值

Page 14: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

14

RSA 演算法 RSA 演算法若要滿足公開金鑰加密,就

必須符合以下要求:1. 若 M < n 、 Med mod n = M ,就有可能找出 e 、

d 、 n 的值2. 若 M < n ,要計算 Me mod n 和 Cd mod n就

相對容易3. 知道 e 和 n 而要找出 d 是不可行

e 和 d 之間的關係可以表示為:

Page 15: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

15

RSA 演算法

Page 16: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

16

RSA範例 - 產生金鑰1. 選擇質數: p=17 & q=11

2. 計算 n = pq =17 × 11=1873. 計算 ø(n)=(p–1)(q-1)=16 × 10=1604. 選擇 e: gcd(e,160)=1; e=7

5. 者出 d: de=1 mod 160 且 d < 160; d=23 ,使用擴充歐幾里德演算法即可算出。

6. 公布公開金鑰 PU={7,187}7. 保持私密金鑰 PR={23,187} 的安全

Page 17: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

17

RSA範例 - 加 /解密

Page 18: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

18

模數算數的指數運算 RSA 的加密和解密都有整數的指數運算和取 n 同餘

以取 n 同餘來減小計算過程的中間值,讓計算變得實際可行

另一個考量是指數運算的效率,因為我們會在 RSA 使用很大的指數

Page 19: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

19

模數算數的指數運算c = 0; f = 1for i = k downto 0 do c = 2 x c f = (f x f) mod n if bi == 1 then c = c + 1 f = (f x a) mod n return f

Page 20: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

20

以公開金鑰加速運算 要以公開金鑰加速 RSA 演算法,通常要選擇特定的 e值

e值最常見的選擇是 65537 ( 216 + 1 )、 3 、 17

這些選擇只有兩個 1 位元,因此能將數值乘法所需執行的指數減到最少

但太小的公開金鑰(例如 e = 3 )會讓RSA容易受到攻擊

Page 21: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

21

產生 RSA 金鑰 RSA 使用必須:

決定 p 和 q等兩個質數 選擇 e 並算出 d;或者選擇 d 並算出 e

必須從夠大的集合選擇這些質數 p、 q 決定質數 p 和 q 之後,要選擇 e值並且計

算 d值,或者選擇 d值、計算 e值 選擇像是 gcd(ø(n),e) = 1 的 e值,並且計算 d

≡ e-1(mod ø(n))

Page 22: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

22

RSA 的安全性 4 種可以攻擊 RSA 演算法的方法:

暴力法:要試過所有可能的私密金鑰 數學攻擊法:共有數種方式,其效果都等同

於分解兩質數的乘積 計時攻擊法:這些方法依靠解密演算法的執行時間

選定明文攻擊法:這種類型的攻擊會刺探RSA 演算法的特性

Page 23: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

23

因數分解的問題 三種以數學運算攻擊 RSA 的方法:

將 n 分解成兩個質因數,最後算出d ≡ e-1 (mod ø(n))

不需要先算出 p 和 q 而直接算出 ø(n) 不需要先算出 ø(n) 而直接算出 d

大部分 RSA 密碼破解的焦點,是將 n 分解成兩個質因數

Page 24: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

24

計時攻擊法 Paul Kocher 在 1990 年代中期所發展 刺探者能經由記錄電腦解密的時間長短,

而算出私密金鑰 計時攻擊不只適用於 RSA ,也適用其他的公開

金鑰密碼系統 簡單的反制方法:

固定指數運算時間 隨機延遲 障眼法 ( 在指數運算前將密文乘上某一隨機數字 )

Page 25: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

25

選定密文攻擊 (略 ) 基本的 RSA 演算法容易遭受選定密文攻擊 攻擊者選定了一些密文,然後給予對應的

明文,並以目標的私密金鑰解密 攻擊者不需要新的資訊,而是先刺探 RSA

的特性 然後選擇以目標私密金鑰處理過的資料區塊,就能得到破解密碼所需要的資訊

CCA 攻擊 RSA 的簡單例子會利用如下的RSA 特性:

Page 26: 密碼學與網路安全 第 9 章  公開金鑰密碼學與 R SA

26

總結 公開金鑰密碼學的原則 RSA

演算法 實作 安全性