6.1 密碼學(xué)歷史上的里程碑
6.1.1 凱撒密碼
- 簡單的將字母表中的每個字母替換成其后的三個字母,是單一字母的替代置換密碼
6.1.2 美國內(nèi)戰(zhàn)
- 美國內(nèi)戰(zhàn)使用詞匯替代和置換的復(fù)雜組合,從而試圖破壞敵人的破譯企圖
6.1.3 Ultra與Enigma
6.2 密碼學(xué)基礎(chǔ)
6.2.1 密碼學(xué)的目標(biāo)
- 密碼系統(tǒng)基本目標(biāo): 機密性、完整性、身份認(rèn)證和不可否認(rèn)性
1、機密性 - 機密性:確保存儲中或在傳輸中保持秘密狀態(tài)
- 對稱秘鑰密碼:密碼系統(tǒng)中所有用戶都使用一個共享的秘鑰
- 公鑰密碼系統(tǒng): 每個用戶都能夠使用公鑰和私鑰的組合密碼
2、完整性 - 完整性:確保數(shù)據(jù)在傳輸過程中不背修改
- 完整性通過傳輸消息時創(chuàng)建的數(shù)字簽名摘要來強制實施,公鑰和私鑰密碼都能實施完整性
3、身份認(rèn)證 - 身份認(rèn)證: 聲明的系統(tǒng)用戶身份進(jìn)行驗證,是密碼系統(tǒng)的主要功能
4、不可否認(rèn)性 - 不可否認(rèn)性為接受者提供了擔(dān)保,保證消息確實來自發(fā)送者而不是來自偽裝成發(fā)送者的人
- 秘密秘鑰(對稱秘鑰)密碼系統(tǒng)不提供不可否認(rèn)性
- 公鑰(非對稱秘鑰)密碼系統(tǒng)提供不可否認(rèn)性
6.2.2密碼學(xué)概念
- 消息發(fā)送者使用密碼學(xué)算法將明文消息加密為密文消息,使用字母C表示
- 創(chuàng)建和實現(xiàn)秘密編碼和密碼的技術(shù)被稱為密碼輸
- 密碼術(shù)和密碼分析學(xué)被成為密碼學(xué)
- 編碼或解碼在硬件或軟件商的具體操作被成為密碼系統(tǒng)
6.2.3 密碼學(xué)的數(shù)學(xué)原理
- 二進(jìn)制數(shù)學(xué):
- 邏輯運算: OR、AND、NOT、XOR、模函數(shù)、單向函數(shù)、隨機數(shù)、零知識證明、分割知識、工作函數(shù)
- 分割知識:單個解決方案中包含職責(zé)分離和兩人控制被稱為分割知識
- 工作函數(shù):從成本和/或時間方面來度量所有努力,就可以度量密碼學(xué)系統(tǒng)的強度
6.2.5 密碼
- 編碼與密碼:
編碼:密碼學(xué)系統(tǒng)中標(biāo)識詞匯或短語的符號
密碼:隱藏消息的真實含義 - 換位密碼:使用某種加密算法重新排列明文消息中的字母,從而形成密文消息
- 替代密碼:使用加密算法將明文消息中的每一個字符或比特都替換為不同的字符、如凱撒密碼
- 一次性填充:對明文消息的每個字母都使用一個不同的字母表,極為強大的替代密碼,一個不可破解的加密方案必須滿足如下要求:
1、加密秘鑰必須隨機生成
2、一次性填充必須進(jìn)行物理保護
3、每個一次性填充必須只使用一次
4、秘鑰必須至少與被加密的消息一樣長
一次性填充缺點:只可用于短消息、分發(fā)和保護需要冗長的秘鑰 - 分組密碼:按消息的"組塊"或分組進(jìn)行操作,并且對整個消息分組同時應(yīng)用加密算法
- 流密碼:對消息中的每一個字符或每一位操作,每次只處理一個/以為,如凱撒密碼
- 混淆與擴散:
混淆:攻擊者不能通過繼續(xù)修改明文和分析產(chǎn)生的密文來確定秘鑰
擴展:明文改變導(dǎo)致多種變化時,這個變化擴散到整個密文中
6.3 現(xiàn)代密碼學(xué)
6.3.1 密鑰
- 現(xiàn)代密碼系統(tǒng)并不依賴其算法的安全性
- 現(xiàn)代密碼系統(tǒng)部依賴于保密的算法
- 現(xiàn)代密碼學(xué)系統(tǒng)依賴具體的用戶或用戶組專用的一個或多個秘鑰
6.3.2 對稱秘鑰算法
- 對稱秘鑰依賴一個共享的加密秘鑰,該秘鑰會分發(fā)給所有參與通信的成員
- 對稱秘鑰也被成為秘密秘鑰密碼學(xué)或私有秘鑰密碼學(xué)
- 對稱秘鑰的弱點
1:秘鑰分發(fā)是一個問題: 對稱秘鑰建立通信之前,通信參與必須具備一個安全的交換秘鑰的方法
2:對稱秘鑰密碼學(xué)并未實現(xiàn)不可否認(rèn)性
3: 這種算法不可擴充
4:秘鑰必須經(jīng)常更新 - 對稱秘鑰密碼可擴展性問題: n個通信方之間完全連接需要的秘鑰總數(shù)為:n * (n -1 )/2
6.3.2 非對稱秘鑰算法
- 非對稱秘鑰算法也被成為公鑰算法,每個用戶都有公鑰和私鑰
- 非對稱秘鑰的優(yōu)點:
1: 新增用戶只需要生成一對公鑰-私鑰對
2:從非對稱系統(tǒng)中更容易刪除用戶
3:只有在用戶的私鑰被破壞時,才需要進(jìn)行秘鑰重建
4:非對稱秘鑰加密提供了完整性、身份認(rèn)證和不可否認(rèn)性
5:秘鑰分發(fā)是一個簡單的過程
6:不需要預(yù)先存在通信鏈接 -
對稱和非對稱密碼學(xué)系統(tǒng)比較:
image.png
6.3.4 散列算法
- 常用的散列算法:
1 、消息摘要2(MD2)
2、消息摘要5(MD5)
3、安全散列算法(SHA-0,SHA-1,SHA-2)
4、基于散列的消息身份認(rèn)證代碼(HMAC)
6.4 對稱密碼
- 常見對稱密碼系統(tǒng):DES(數(shù)據(jù)加密標(biāo)準(zhǔn))、3DES(三重數(shù)據(jù)加密標(biāo)準(zhǔn))、IDEA(國際數(shù)據(jù)加密算法)、Blowfish、Skipjack、AES(高級加密標(biāo)準(zhǔn))
6.4.1 數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)
- DES是一個64位的分組密碼,具有五種操作模式
1、電子代碼本模式(ECB):安全性最差,每次處理一個64位分組,簡單的使用秘鑰對這個分組進(jìn)行加密
2、密碼分組鏈接模式(CBC):未加密文本的每個分組使用DES算法加密前,都與前一密文分組進(jìn)行異或操作,缺點是錯誤傳播
3、密碼回饋模式(CFB):流密碼形式的CBC、針對實時生成的數(shù)據(jù)進(jìn)行操作
4、輸出回饋模式(OFC):
5、計數(shù)模式(CTR):每次操作后都增加的計數(shù)
6.4.2 三重數(shù)據(jù)加密算法(3DES)
- 3DES有四個版本:
1、使用三個不同的秘鑰對明文加密三次
2、使用三個秘鑰,但是將第二個加密操作替換成解密操作
3、知使用兩個秘鑰
4、使用兩個秘鑰、中間使用解密操作
6.4.3 國際數(shù)據(jù)加密算法(IDEA)
- 針對DES算法的秘鑰長度不夠開發(fā)的,采用128位的秘鑰進(jìn)行操作,
6.4.4 Blowfish
- Blowfish擴展了IDEA的秘鑰長度,可使用變長秘鑰,BlowFish比IDEA和DES更快的算法
6.4.5 Skipjack
- 對64位的文本分組操作,使用80位的秘鑰
- 沒有被密碼學(xué)團隊普通接受,因為托管程序由美國政府控制
6.4.6 高級加密協(xié)議(AES)
- 使用128、192、和256位加密,支持128分組處理
-
對稱加密算法記憶表
image.png
6.4.7 對稱秘鑰管理
1、創(chuàng)建和分發(fā)對稱密碼
- 離線分發(fā):一方向另一方提供包括秘鑰的一張紙或一份存儲介質(zhì)
- 公鑰加密:使用公鑰加密建立初始的通信鏈接,在鏈接中交換秘鑰
- Diffie-Hellman算法:在不安全的鏈路中交換秘鑰
2、存儲和銷毀對稱秘鑰 - 永遠(yuǎn)不要將加密秘鑰存儲在存放加密數(shù)據(jù)一起
- 敏感秘鑰考慮兩個人分別持有秘鑰的一般
3、秘鑰托管 - 公平密碼系統(tǒng):私鑰分成多分,交給獨立的第三方
- 托管加密標(biāo)準(zhǔn):向政府提供解密密文的技術(shù)手段
6.4.8 密碼生命周期
- 確定組織可以接受和使用的加密算法
- 基于傳輸信息的敏感性確認(rèn)算法可接受的秘鑰長度
- 列出可以使用的安全傳輸協(xié)議(SSL和TLS)

