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

Slides:



Advertisements
Similar presentations
不定積分 不定積分的概念 不定積分的定義 16 不定積分的概念 16.1 不定積分的概念 以下是一些常用的積分公式。
Advertisements

第一單元 建立java 程式.
公開金鑰密碼系統 (Public-Key Cryptosystems)
9-1 網路安全的基本原則 9-2 資料機密性 9-3 資料完整性 9-4 系統可用性 9-5 網路攻擊 9-6 網路防護
密碼學概論 Speaker:謝凱評.
第八章:電腦網路的安全性 章節目標: 了解網路安全的原則: 實際的安全性: 密碼學以及機密上的應用 認證 訊息完整性 金鑰分送 防火牆
第六章 加密技術應用 6-1 建立信任關係 6-2 對稱金鑰加密技術 6-3 不對稱金鑰加密技術 6-4 雜湊加密技術 6-5 加密工具程式
Chapter 6 資料加密標準. 學習目標 回顧 DES 的發展歷史。 定義 DES 的基本結構。 描述 DES 建構元件的詳細情形。 描述回合金鑰產生程序。 分析 DES 。
質數的應用 – RSA加密演算法 (一個價值21億美元的演算法)
認識倍數(一) 設計者:建功國小 盧建宏.
第四章 數列與級數 4-1 等差數列與級數 4-2 等比數列與級數 4-3 無窮等比級數 下一頁 總目錄.
6.3 DES分析 評論者使用放大鏡來分析 DES,測量區塊加密法之某些預期特性強度的測試已經進行,DES 的元件也被仔細審查是否符合建構的準則。 本節討論主題 特性 設計準則 DES 的弱點.
5.1 自然對數函數:微分 5.2 自然對數函數:積分 5.3 反函數 5.4 指數函數:微分與積分 5.5 一般底數的指數函數和應用 5.6 反三角函數:微分 5.7 反三角函數:積分 5.8 雙曲函數.
公開鑰匙加密演算法 密碼學大革命 public key所想要解決的問題 public key密碼系統特性
密碼學 黃胤誠.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
公開金鑰密碼系統 Public Key Cryptosystem
網站建置與資訊安全 電子商務資訊安全.
2-3 基本數位邏輯處理※.
資訊安全基礎 by Chuck Easttom 第 7 章 加密.
密碼學與網路安全 第8章 數論介紹.
電子商務基本概念 電子商務的定義 1-1 電子商務的特性 1-2 電子商務的演進 1-3.
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
Chapter 5 現代對稱式金鑰加密法.
SQL Stored Procedure SQL 預存程序.
SSL加解密原理 姓名:林子鈞 指導老師:梁明章老師
基礎密碼學 非對稱式金鑰加密法 樹德科技大學 資訊工程系 林峻立 助理教授.
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
基礎密碼學 數位簽章及其應用 樹德科技大學 資訊工程系 林峻立 助理教授.
A Survey of the Security of RSACryptosystem
密碼學概論 電機四 b 吳秉寰.
李开祥 郭雪丽 马高峰 杨洋 孙凤英 陈静 Copyright © 2007 西安交通大学电子商务系
FPGA計算浮點數的方法 姓名:蔡秉旂.
Chap3 Linked List 鏈結串列.
Introduction to FinTech
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
密碼學 Chapter 4 基於電腦的非對稱性金鑰密碼學演算法
資訊安全─入門手冊 第 12 章 加密.
Topic Introduction—RMI
第一單元 建立java 程式.
3.3 換位加密法 換位加密法並不是更換符號,而是改變符號的位置。 注意 換位加密法就是重新安排符號的順序。
學習單元:N6 數的性質 學習單位:N6-3 用短除法求H.C.F. 和 L.C.M. 學習重點 : 1. 複習因數分解法求
數學 近似值 有效數值.
資訊安全 與 線上付款機制 Part 1: 網路資訊安全.
Definition of Trace Function
小學四年級數學科 8.最大公因數.
密碼學 Chapter 3 基於電腦的對稱性金鑰密碼學演算法
緩衝區溢位攻擊 學生:A 羅以豪 教授:梁明章
3.3 換位加密法 換位加密法並不是更換符號,而是改變符號的位置。 注意 換位加密法就是重新安排符號的順序。
挑戰C++程式語言 ──第8章 進一步談字元與字串
應用加密技術 A 譚惠心 指導教授:梁明章教授.
資訊安全技術 課程簡介.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
電子商務交易安全 A 楊凱翔.
電子商務資訊安全 網路資訊安全.
網路安全技術 A 林建宏 指導教授:梁明章老師
第九章 布林代數與邏輯設計.
10394: Twin Primes ★★★☆☆ 題組:Problem Set Archive with Online Judge
※歡迎挑戰,兩人(隊)中先完成連線即算過關!
1-1 二元一次式運算.
資料表示方法 資料儲存單位.
非負矩陣分解法介紹 報告者:李建德.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
Chapter 4 Multi-Threads (多執行緒).
11621 : Small Factors ★★☆☆☆ 題組:Problem Set Archive with Online Judge
第三章 比與比例式 3-1 比例式 3-2 連比例 3-3 正比與反比.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

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

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

公開金鑰密碼學 公開金鑰密碼學是整個密碼學最重大的發展,也是整個密碼學演進史唯一真正的變革 使用兩把金鑰:公開金鑰和私密金鑰 也稱為非對稱加密,兩端使用不一樣的金鑰 公開金鑰演算法是以數學函數為基礎,而非替代和重排

為什麼要使用公開金鑰加密? 解決兩大金鑰的議題: 公開金鑰加密是由菲迪和赫爾曼在1976年於史丹佛大學公開發表 金鑰分送 數位簽章 安全單位更早之前也已提出類似的概念,但未公開

公開金鑰密碼學 公開金鑰/雙金鑰/非對稱密碼學使用兩把金鑰: 公開金鑰:公開並用於加密訊息、確認簽章(即是解密) 私密金鑰:只由接收端擁有,用來解密訊息、簽署(建立)簽章(即是加密) 非對稱式因為 加密訊息或確認簽章之金鑰無法解密訊息或建立簽章

公開金鑰密碼學

公開金鑰密碼學

公開金鑰的特徵 非對稱演算法的加密是依賴一把金鑰,並且用另一把不同但相關的金鑰來解密,這些演算法具有以下重要的特性: 若只知道密碼系統的演算法和加密金鑰,無法經由計算得到解密金鑰 對於已加密的密文而言,搭配另一把金鑰可以快快的解密 兩把金鑰的任一把可用來加密,另一把可用來解密(對某些演算法而言)

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

公開金鑰密碼系統的應用 廣義的三大應用: 有些演算法適合這三種應用,而有些只能用在其中的一或兩種應用 加密/解密:傳送者以接收者的公開金鑰加密訊息 數位簽章:傳送者以自己的私密金鑰「簽署」訊息 交換金鑰:通訊雙方合作交換通訊金鑰 有些演算法適合這三種應用,而有些只能用在其中的一或兩種應用

公開金鑰的安全性 公開金鑰加密也會受到暴力法攻擊,雖然反制的對策也相同:使用更長的金鑰。不過,公開金鑰系統依靠某些反向的數學函數,這些函數的計算複雜度可能超過線性成長於金鑰位元數。所以金錀的大小必須 大得足夠抵擋暴力攻擊。 小得足以不會太難解密和加密。 另一種類型的攻擊,是找出某些方法而以公開金鑰計算出私密金鑰 (並未有數學證明此法無可破解!) 最後一種針對公開金鑰系統的特殊攻擊方式,屬於「可能訊息」攻擊法 假設欲傳送的明文是DES的56位元金鑰,則不論公開金鑰的金鑰長度有多長,只要加密256 種明文而得到256種密文即查表解密。這種攻擊法會簡化暴力攻擊而針對56位元金鑰。若要阻止這種攻擊,能在訊息之後加上一些隨機位元

RSA RSA是1977年由Ron Rivest、Adi Shamir、和Len Adleman在MIT所發展 是目前最好也最廣為使用的公開金鑰架構 使用指數運算式,將明文加密成二進位值小於整數n的區塊 n的大小通常是1024個位元 (故n 小於等於21024  1)

RSA演算法 傳送者與接收者都必須知道n值,傳送者知道e值,而只有接收者知道d值 Rivest、Shamir、Adleman發展的方法使用指數運算式,將明文加密成二進位值小於整數n的區塊 區塊大小必須要小於或等於log2(n) 實際上的區塊大小是i個位元(2i < n ≦ 2i+1) 某些明文區塊M和密文區塊C是以如下形式加密、解密: 傳送者與接收者都必須知道n值,傳送者知道e值,而只有接收者知道d值

RSA演算法 RSA演算法若要滿足公開金鑰加密,就必須符合以下要求: e和d之間的關係可以表示為: 若M < n、Med mod n = M,就有可能找出e、d、n的值 若M < n,要計算Me mod n和Cd mod n就相對容易 知道e和n而要找出d是不可行 e和d之間的關係可以表示為:

RSA演算法

RSA範例 - 產生金鑰 選擇質數:p=17 & q=11 計算 n = pq =17 × 11=187 選擇 e: gcd(e,160)=1; e=7 者出 d: de=1 mod 160 且 d < 160; d=23,使用擴充歐幾里德演算法即可算出。 公布公開金鑰 PU={7,187} 保持私密金鑰 PR={23,187} 的安全

RSA範例 - 加/解密

模數算數的指數運算 RSA的加密和解密都有整數的指數運算和取n同餘 以取n同餘來減小計算過程的中間值,讓計算變得實際可行

模數算數的指數運算 c = 0; f = 1 for 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

以公開金鑰加速運算 要以公開金鑰加速RSA演算法,通常要選擇特定的e值 e值最常見的選擇是65537(216 + 1)、3、17 這些選擇只有兩個1位元,因此能將數值乘法所需執行的指數減到最少 但太小的公開金鑰(例如e = 3)會讓RSA容易受到攻擊

產生RSA金鑰 RSA使用必須: 必須從夠大的集合選擇這些質數 p、q 決定質數p和q之後,要選擇e值並且計算d值,或者選擇d值、計算e值 選擇像是gcd(ø(n),e) = 1的e值,並且計算d ≡ e-1(mod ø(n))

RSA的安全性 4種可以攻擊RSA演算法的方法: 暴力法:要試過所有可能的私密金鑰 數學攻擊法:共有數種方式,其效果都等同於分解兩質數的乘積 計時攻擊法:這些方法依靠解密演算法的執行時間 選定明文攻擊法:這種類型的攻擊會刺探RSA演算法的特性

因數分解的問題 三種以數學運算攻擊RSA的方法: 將n分解成兩個質因數,最後算出 d ≡ e-1 (mod ø(n)) 不需要先算出p和q而直接算出ø(n) 不需要先算出 ø(n)而直接算出d 大部分RSA密碼破解的焦點,是將n分解成兩個質因數

計時攻擊法 刺探者能經由記錄電腦解密的時間長短,而算出私密金鑰 Paul Kocher在1990年代中期所發展 計時攻擊不只適用於RSA,也適用其他的公開金鑰密碼系統 簡單的反制方法: 固定指數運算時間 隨機延遲 障眼法(在指數運算前將密文乘上某一隨機數字)

選定密文攻擊 (略) 基本的RSA演算法容易遭受選定密文攻擊 攻擊者選定了一些密文,然後給予對應的明文,並以目標的私密金鑰解密 然後選擇以目標私密金鑰處理過的資料區塊,就能得到破解密碼所需要的資訊 CCA攻擊RSA的簡單例子會利用如下的RSA特性:

總結 公開金鑰密碼學的原則 RSA 演算法 實作 安全性