高大資管系 網路安全技術 期末報告 --- 加密 A 莊佳宏 2008/06/20
2 內容大綱 密碼學 金鑰 RSA 數位簽章 安全 & 密鑰
3 密碼學 密碼學 (Cryptology) 一字源自希臘文 “krypto‘s” 及 “logos” 兩字,直譯即為 “ 隱 藏 ” 及 “ 訊息 ” 之意。 著名的密碼學者 Ron Rivest 解釋道: 「密碼學是關於如何在敵人存在的環 境中通訊」,密碼學的首要目的是隱 藏訊息的涵義,並不是隱藏訊息的存 在。
4 密碼學 (cont) 密碼學也促進了電腦科學,特別是在 於電腦與網路安全所使用的技術,如 存取控制與資訊的機密性。 並且目前已經成為保護許多廣泛使用 系統的方法,例如網路通訊、電子商 務、手機網路和銀行自動取款機等。
5 對稱金鑰 對稱金鑰 (Symmetric Key) 密碼系統也就 是傳統保密系統,使用的是對稱加密演 算法 (Symmetric Cryptographic Algorith- m) ,即加密端與解密端均要使用同一把 金鑰 ( 即 Secret Key) ,其優點是加解密的 速度快。 在對稱金鑰密碼系統中最著名者為 DES(Data EncryptionStandard)
6 非對稱金鑰 非對稱金鑰密碼系統是使用非對稱加密 演算法 (Asymmetric Cryptographic Alg- orithm ),加密端與解密端使用不同的 金鑰。這兩個不同金鑰,一個為私密的 解密金鑰 (Private Key) 由擁有人自行保 存,另一個為可以公開的加密金鑰 (Public Key) ,兩個金鑰彼此配對使用, 稱為「金鑰對」 (Key Pair)
7 非對稱金鑰 「公開金鑰」和「私密金鑰」可分別用 於資料加密和資料解密。 如 RSA 、 DSA 。以公開金鑰 (Public Key) 加密,以私密金鑰 (Private Key) 解 密。 如數位簽章。以私密金鑰 (Private Key) 產生簽章,以公開金鑰 (Public Key) 驗 證簽章。
8 比較 加密與解密的過程中用同一把金鑰,所以秘鑰不 能公開。但加解密速度極快,但如何建立通道? 不適合直接應用在大範圍的網際網路上。 解決金鑰共享困難的缺點。每一對金鑰 (Key Pair) 包含兩把相互對應的金鑰,一把公鑰用來加密; 與一把私鑰用來解密,雖然傳訊方便,但是需要 「公開金鑰基礎建設 (PKI, Public Key Infrastructu- re) 」,才能讓人隨時取得公鑰的需求。 PKI 的建 構需要由政府或全球具有信譽的憑證管理機構 (CA, Certificate Authority) 來進行全球性或全國性 的認證、註冊與憑證管理,加密郵件所需的電子 憑證通常就是依靠 CA 所簽發的電子憑證作為基 準。
9 公鑰和私鑰的產生 假設旺哥想要通過一個不可靠的媒體接收陌哥的一條私人 訊息。他可以用以下的方式來產生一個公鑰和一個密鑰: 隨意選擇兩個大的質數 p 和 q , p 不等於 q ,計算 n=pq 。 根據歐拉函數, 與 n 互質的整數個數為 (p-1)(q-1) 選擇一個整數 e 與 (p-1)(q-1) 互質, 且 e 小於 (p-1)(q-1) 用以下這個公式計算 d : d× e (mod (p-1)(q-1)) =1 e 是公鑰, d 是私鑰。 d 是秘密的,而 n 是公眾都知道的。旺 哥將他的公鑰傳給陌哥,而將他的私鑰藏起來。
10 加密消息 假設陌哥想給旺哥送一個消息 m ,他知道旺 哥產生的 n 和 e 。他使用起先與旺哥約好的 格式將 m 轉換為一個小於 n 的整數 N ,比如 他可以將每一個字轉換為這個字的 Unicode 碼,然後將這些數字連在一起組成一個數 字。假如他的信息非常長的話,他可以將 這個信息分為幾段,然後將每一段轉換為 n 。 將 n 加密為 c 後就可以將它傳遞給旺哥。
11 解密消息 旺哥得到陌哥的消息 c 後就可以利用他的密鑰 d 來 解碼。他可以用公式來將 c 轉換為 n 得到 n 後,他 可以將原來的信息 m 重新復原。
12 數位簽章 RSA 也可以用來為一個消息署名。假如小陌想給 小旺傳遞一個署名的消息的話,那麼他可以為他 的消息計算一個散列值,然後用他的密鑰加密這 個散列值並將這個 “ 署名 ” 加在消息的後面。這個 消息只有用他的公鑰才能被解密。小旺獲得這個 消息後可以用小陌的公鑰解密這個散列值,然後 將這個數據與他自己為這個消息計算的散列值相 比較。假如兩者相符的話,那麼他就可以知道發 信人持有小陌的密鑰,以及這個消息在傳播路徑 上沒有被篡改過。
13 安全 假設偷聽者小賊獲得了小陌的公鑰 n 和 e 以及小旺 的加密消息 c ,但他無法直接獲得小陌的密鑰 d 。 要獲得 d ,最簡單的方法是從 c 算出 n ,然後將 n 分 解為 p 和 q ,這樣他可以計算 (p-1)(q-1) 並從 e 推算 出 d 。至今為止還沒有人找到一個多項式時間的計 算方法來分解一個大的整數的因子,但至今為止 也還沒有人能夠證明這種演算法不存在。 至今為止也沒有人能夠證明對 n 進行分解因式是唯 一的從 c 導出 n 的方法,但今天還沒有找到比它更 簡單的方法。(至少沒有公開的方法。)因此今 天一般認為只要 n 足夠大,那麼駭客就沒有辦法了。
14 安全 (cont) 假如 n 的長度小於或等於 256 位,那麼用一臺個人 電腦在幾個小時內就可以分解它的因子。 1999 年, 數百臺電腦合作分解了一個 512 位長的 n 。今天對 n 的要求是它至少要 1024 位長。 1994 年彼得 · 秀爾( Peter Shor )證明一臺量子電 腦可以在多項式時間內進行因式分解。假如量子 電腦有朝一日可以成為一種可行的技術的話,那 麼秀爾的演算法可以淘汰 RSA 和相關的演算法。 假如有人能夠找到一種有效的分解因式的演算法 的話,或者假如量子電腦可行的話,那麼在解密 和製造更長的鑰匙之間就會展開一場競爭。但從 原理上來說 RSA 在這種情況下是不可靠的。
15 密鑰生成 首先要使用可能性演算法來實驗隨即產生 的大的整數是否質數,這樣的演算法比較 快而且可以消除掉大多數非質數。假如有 一個數通過了這個測試的話,那麼要使用 一個精確的測試來保證它的確是一個質數。 除此之外這樣找到的 p 和 q 還要滿足一定的 要求,首先它們不能太靠近,此外 p-1 或 q-1 的因子不能太小,否則的話 N 也可以被很快 地分解。
16 密鑰生成 (cont) 此外尋找質數的演算法不能給攻擊者任何信息,這些質數 是怎樣找到的,尤其產生隨機數的軟體必須非常好。要求 是隨機和不可預測。這兩個要求並不相同。一個隨機過程 可能可以產生一個不相關數的系列,但假如有人能夠預測 出(或部分地預測出)這個系列的話,那麼它就已經不可 靠了。比如有一些非常好的隨機數演算法,但它們都已經 被發表,因此它們不能被使用,因為假如一個攻擊者可以 猜出 p 和 q 一半的位的話,那麼他們就已經可以輕而易舉地 推算出另一半。 此外密鑰 d 必須足夠大, 1990 年有人證明假如 p 大於 q 而小 於 2q (這是一個很經常的情況)而 d < n1/4/3 ,那麼從 n 和 e 可以很有效地推算出 d 。此外 e = 2 永遠不應該被使用。
17 加密合併 比起 DES 和其它對稱演算法來說 RSA 要慢 得多。實際上小旺一般使用一種對稱演算 法來加密他的信息,然後用 RSA 來加密比 較短的對稱密碼,然後將用 RSA 加密的對 稱密碼和用對稱演算法加密的消息送給小 陌。 這樣一來對隨機數的要求就更高了,尤其 對產生對稱密碼的要求非常高,否則的話 可以越過 RSA 來直接攻擊對稱密碼。
18 密鑰分配 和其它加密過程一樣,對 RSA 來說分配公鑰的 過程是非常重要的。分配公鑰的過程必須能夠抵 擋一個從中取代的攻擊。假設小賊交給小旺一個 公鑰,並使小旺相信這是小陌的公鑰,並且他可 以截下小陌和小旺之間的信息傳遞,那麼他可以 將他自己的公鑰傳給小旺,小旺以為這是小陌的 公鑰。可以將所有小旺傳遞給小陌的消息截下來, 將這個消息用他自己的密鑰解密,讀這個消息, 然後將這個消息再用小陌的公鑰加密後傳給小陌。 理論上小陌和小旺都不會發現小賊在偷聽他們的 消息。今天人們一般用數字認證來防止這樣的攻 擊。
19 時序攻擊法 1995 年有人提出了一種非常意想不到的攻 擊方式:假如小賊對小陌的硬體有充分的 瞭解,而且知道它對一些特定的消息加密 時所需要的時間的話,那麼他可以很快地 推導出 d 。這種攻擊方式之所以會成立,主 要是因為在進行加密時所進行的模指數運 算是一個位元一個位元進行的,而位元為 1 所花的運算比位元為 0 的運算要多很多,因 此若能得到多組訊息與其加密時間,就會 有機會可以反推出私鑰的內容。
20 參考來源 維基百科 逢甲資工專題
21 Thank you for listening