720 likes | 919 Views
密碼學. Chapter 3 基於電腦的對稱性金鑰密碼學演算法 Computer-based Symmetric Key Cryptographic Algorithms (Part 1). 前言. 電腦執行加密是十分簡單與快速的。對稱性金鑰密碼學受歡迎已相當久,最近則是非對稱性金鑰密碼學受到更多的注目。 然而,在實際上大多仍是使用對稱性與非對稱性金鑰密碼學的組合。. 演算法型態和模式. 電腦的密碼學包含兩種概念 演算法型態 定義加密步驟中明文的大小 演算法模式 定義密碼學演算法的細節. 演算法型態. 從明文產生密文有兩種基本方式 串流密碼 區塊密碼.
E N D
密碼學 Chapter 3 基於電腦的對稱性金鑰密碼學演算法 Computer-based Symmetric Key Cryptographic Algorithms (Part 1)
前言 • 電腦執行加密是十分簡單與快速的。對稱性金鑰密碼學受歡迎已相當久,最近則是非對稱性金鑰密碼學受到更多的注目。 • 然而,在實際上大多仍是使用對稱性與非對稱性金鑰密碼學的組合。
演算法型態和模式 • 電腦的密碼學包含兩種概念 • 演算法型態 • 定義加密步驟中明文的大小 • 演算法模式 • 定義密碼學演算法的細節
演算法型態 • 從明文產生密文有兩種基本方式 • 串流密碼 • 區塊密碼
串流密碼 • 串流密碼技術是將明文中每個位元逐一加密,解密也是同樣規則。 • 加解密過程耗費時間 • 使用XOR邏輯函數 • XOR是可反推的──使用兩次後,它會產生原始值。這在密碼學中非常有用。 輸入1 輸入2 輸出 0 0 0 0 1 1 1 0 1 1 1 0
區塊密碼 • 區塊密碼技術為一次加密一個明文區塊 • 解密也是一次只針對一個密文區塊 • 密碼分析者可藉由重複的區塊來破解訊息 • 重複的明文區塊進行加密會得到重複的密文區塊 • 可使用鏈結模式來代替解決破解的問題
在發送端的加密過程 明文 FOUR _AND_ FOUR 加密 加密 加密 VFa% ^yT1x VFa% 密文
在接收端的解密過程 密文 VFa% ^yT1x VFa% 解密 解密 解密 FOUR _AND_ FOUR 明文
混淆與擴散 • 夏儂 (Claude Shannon) 提出混淆與擴散的概念 • 混淆 • 確保密文中沒有任何線索可以導出原始明文 • 替代技術 • 擴散 • 藉由分佈明文橫越行列來增加多餘的明文 • 換位技術(排列技術)
演算法模式 • 使用區塊密碼 • 電子碼冊(ECB) • 密碼區塊鏈結(CBC) • 使用區塊密碼且動作如同串流密碼 • 密碼回饋(CFB) • 輸出回饋(OFB)
電子碼冊模式(ECB) • 最簡單的操作模式 • 輸入的明文訊息被分割成每區塊64位元 • 每區塊被獨立的加密 • 只適合加密小訊息 • 因為重複的明文區塊較少出現
密碼區塊鏈結模式(CBC) • 確保一個明文區塊在輸入端重複出現時,這相同的明文區塊在輸出會產生元全不同的密文區塊 • 相同的明文區會得到不同的密文區塊 • 使用回饋機制來達成 • 每一個區塊被用來修正下一個區塊的加密
CBC模式-加密過程 初始化向量(區塊)
密碼回饋(CFB) • 不是所有的應用都可以使用資料區塊方式處理 • 例如終端機的連線過程需要加密 • 終端機的資料傳輸通常以字元(8位元)為單位 • 資料加密單位(通常為8位元)會小於一個區塊大小(通常為64位元)
CFB模式-加密過程 步驟 1 64位元 步驟 2 步驟 3
CFB模式-解密過程 密文 j位元 密文 j位元 密文 j位元 明文 j位元 明文 j位元 明文 j位元
輸出回饋(OFB) • 與密碼回饋(CFB)模式類似 • 唯一差異 • CFB的下一級加密過程採用密文來加密 • OFB的下一級加密過程採用加密後IV的輸出值
OFB模式-解密過程 密文 j位元 密文 j位元 密文 j位元 明文 j位元 明文 j位元 明文 j位元
對稱性密碼學總覽 • 對稱性密碼學指使用一個金鑰 • 加密與解密都使用相同的金鑰 • 問題點 • 金鑰的協議(同意使用的金鑰方式,金鑰交換) • 金鑰的分配(多人通訊則金鑰數量大增)
資料加密標準 • 資料加密標準(Data Encryption Standard, DES) • 運用於密碼學演算法超過三十年 • DES起源於1972年,由當時的美國國家標準局(NBS)現為美國國家表準技術局(NIST)從事的一個保護電腦和電腦之間通訊資料的計畫 • 1974年NBS發現可以考慮改寫IBM的Lucifer • 1975年NBS公佈演算法的細節 • 1976年結束,美國聯邦政府決定採用此演算法並重新命名為資料加密標準(DES),其他機構也正式承認並採用
基本原理 • DES是一種區塊密碼 • 加密資料的基本單位是64位元 • 加解密使用相同的演算法與金鑰 • 金鑰的長度為56位元
基本原理 • DES是基於兩個密碼學的基礎特質 • 替代(混淆) • 換位(擴散) • DES由16個步驟組成,每個步驟又被稱為一個回合
金鑰的產生 原始金鑰中每8個位元被丟棄(有陰影的位元位置被丟棄)
DES的概略步驟 • 64位元的明文區塊被送出給初始排列(Initial Permutation, IP)函數 • 初始排列(IP)運用於明文 • 初始排列(IP)產生排列區塊的兩個分支,分別為左明文(Left Plain Text, LPT)和右明文(Right Plain Text, RPT) • 每一個LPT和RPT經過16個回合的加密過程,每一個加密過程皆含有一把自己的金鑰 • LPT和RPT被重新結合。一個最後排列(Final Permutation, FP)用來運作於這個組合的區塊 • 這個過程產生64位元的密文
初始排列(IP) • 初始排列(IP)只會發生一次,而且只會發生在第一回合前 • 它描述如何做換位 • 主要的目的是用來混淆原始明文區塊的位元位置
IP概念 初始排列表(IP)
區塊分割 • 完成換位後,64位元的排列文區塊被分割成兩個半區塊 • 每個半區塊由32位元組成 • 左區塊(Left Plain Text, LPT) • 右區塊(Right Plain Text, RPT)
回合運算 • 進行16次回合的運算 • 由5個步驟組成 • 金鑰轉換 • 擴增排列 • S-box替代 • P-box排列 • XOR和交換
金鑰轉換 • 每回合都會由初始的56位元金鑰產生48位元的子金鑰(sub-key) • 56位元的金鑰分割成兩半(各28位元),並依回合不同各對半區左移1或2個位置 • 位移後從56位元選擇48位元進行金鑰的縮減 • 金鑰轉換過程包含排列和選擇原始56位元金鑰的一個48位元子集合,稱為縮減排列
縮減排列範例 48位元
擴增排列 • 對右明文(RPT)從32位元擴增到48位元 • 在擴增的過程中,並位元進行排列
擴增排列 32位元RPT被分割成8個4位元區塊
擴增排列 RPT過增排列過程 由4位元擴增程6位元,擴增的部份由前後的區塊位元取得
擴增排列 RPT擴增排列表:48位元
S-box替代 • S-box替代是一個過程,接受縮減金鑰和擴增RPT進行XOR運作的48位元輸入,而使用替代技術來產生32位元的輸出 • 使用8個S-box表來進行運算
S-box表 S-box 1 S-box 2 S-box 3
S-box表 S-box 4 S-box 5 S-box 6
S-box表 S-box 7 S-box 8