6.1 密碼學(xué)歷史上的里程碑
6.1.1 凱撒密碼
- 簡(jiǎn)單的將字母表中的每個(gè)字母替換成其后的三個(gè)字母,是單一字母的替代置換密碼
6.1.2 美國(guó)內(nèi)戰(zhàn)
- 美國(guó)內(nèi)戰(zhàn)使用詞匯替代和置換的復(fù)雜組合搏熄,從而試圖破壞敵人的破譯企圖
6.1.3 Ultra與Enigma
6.2 密碼學(xué)基礎(chǔ)
6.2.1 密碼學(xué)的目標(biāo)
- 密碼系統(tǒng)基本目標(biāo): 機(jī)密性速警、完整性瘫寝、身份認(rèn)證和不可否認(rèn)性
1、機(jī)密性 - 機(jī)密性:確保存儲(chǔ)中或在傳輸中保持秘密狀態(tài)
- 對(duì)稱秘鑰密碼:密碼系統(tǒng)中所有用戶都使用一個(gè)共享的秘鑰
- 公鑰密碼系統(tǒng): 每個(gè)用戶都能夠使用公鑰和私鑰的組合密碼
2、完整性 - 完整性:確保數(shù)據(jù)在傳輸過(guò)程中不背修改
- 完整性通過(guò)傳輸消息時(shí)創(chuàng)建的數(shù)字簽名摘要來(lái)強(qiáng)制實(shí)施,公鑰和私鑰密碼都能實(shí)施完整性
3走越、身份認(rèn)證 - 身份認(rèn)證: 聲明的系統(tǒng)用戶身份進(jìn)行驗(yàn)證,是密碼系統(tǒng)的主要功能
4耻瑟、不可否認(rèn)性 - 不可否認(rèn)性為接受者提供了擔(dān)保旨指,保證消息確實(shí)來(lái)自發(fā)送者而不是來(lái)自偽裝成發(fā)送者的人
- 秘密秘鑰(對(duì)稱秘鑰)密碼系統(tǒng)不提供不可否認(rèn)性
- 公鑰(非對(duì)稱秘鑰)密碼系統(tǒng)提供不可否認(rèn)性
6.2.2密碼學(xué)概念
- 消息發(fā)送者使用密碼學(xué)算法將明文消息加密為密文消息,使用字母C表示
- 創(chuàng)建和實(shí)現(xiàn)秘密編碼和密碼的技術(shù)被稱為密碼輸
- 密碼術(shù)和密碼分析學(xué)被成為密碼學(xué)
- 編碼或解碼在硬件或軟件商的具體操作被成為密碼系統(tǒng)
6.2.3 密碼學(xué)的數(shù)學(xué)原理
- 二進(jìn)制數(shù)學(xué):
- 邏輯運(yùn)算: OR喳整、AND谆构、NOT、XOR框都、模函數(shù)搬素、單向函數(shù)、隨機(jī)數(shù)喂江、零知識(shí)證明升筏、分割知識(shí)、工作函數(shù)
- 分割知識(shí):單個(gè)解決方案中包含職責(zé)分離和兩人控制被稱為分割知識(shí)
- 工作函數(shù):從成本和/或時(shí)間方面來(lái)度量所有努力缀壤,就可以度量密碼學(xué)系統(tǒng)的強(qiáng)度
6.2.5 密碼
- 編碼與密碼:
編碼:密碼學(xué)系統(tǒng)中標(biāo)識(shí)詞匯或短語(yǔ)的符號(hào)
密碼:隱藏消息的真實(shí)含義 - 換位密碼:使用某種加密算法重新排列明文消息中的字母猪杭,從而形成密文消息
- 替代密碼:使用加密算法將明文消息中的每一個(gè)字符或比特都替換為不同的字符、如凱撒密碼
- 一次性填充:對(duì)明文消息的每個(gè)字母都使用一個(gè)不同的字母表妥衣,極為強(qiáng)大的替代密碼皂吮,一個(gè)不可破解的加密方案必須滿足如下要求:
1、加密秘鑰必須隨機(jī)生成
2税手、一次性填充必須進(jìn)行物理保護(hù)
3蜂筹、每個(gè)一次性填充必須只使用一次
4、秘鑰必須至少與被加密的消息一樣長(zhǎng)
一次性填充缺點(diǎn):只可用于短消息芦倒、分發(fā)和保護(hù)需要冗長(zhǎng)的秘鑰 - 分組密碼:按消息的"組塊"或分組進(jìn)行操作艺挪,并且對(duì)整個(gè)消息分組同時(shí)應(yīng)用加密算法
- 流密碼:對(duì)消息中的每一個(gè)字符或每一位操作,每次只處理一個(gè)/以為兵扬,如凱撒密碼
- 混淆與擴(kuò)散:
混淆:攻擊者不能通過(guò)繼續(xù)修改明文和分析產(chǎn)生的密文來(lái)確定秘鑰
擴(kuò)展:明文改變導(dǎo)致多種變化時(shí)麻裳,這個(gè)變化擴(kuò)散到整個(gè)密文中
6.3 現(xiàn)代密碼學(xué)
6.3.1 密鑰
- 現(xiàn)代密碼系統(tǒng)并不依賴其算法的安全性
- 現(xiàn)代密碼系統(tǒng)部依賴于保密的算法
- 現(xiàn)代密碼學(xué)系統(tǒng)依賴具體的用戶或用戶組專用的一個(gè)或多個(gè)秘鑰
6.3.2 對(duì)稱秘鑰算法
- 對(duì)稱秘鑰依賴一個(gè)共享的加密秘鑰,該秘鑰會(huì)分發(fā)給所有參與通信的成員
- 對(duì)稱秘鑰也被成為秘密秘鑰密碼學(xué)或私有秘鑰密碼學(xué)
- 對(duì)稱秘鑰的弱點(diǎn)
1:秘鑰分發(fā)是一個(gè)問(wèn)題: 對(duì)稱秘鑰建立通信之前器钟,通信參與必須具備一個(gè)安全的交換秘鑰的方法
2:對(duì)稱秘鑰密碼學(xué)并未實(shí)現(xiàn)不可否認(rèn)性
3: 這種算法不可擴(kuò)充
4:秘鑰必須經(jīng)常更新 - 對(duì)稱秘鑰密碼可擴(kuò)展性問(wèn)題: n個(gè)通信方之間完全連接需要的秘鑰總數(shù)為:n * (n -1 )/2
6.3.2 非對(duì)稱秘鑰算法
- 非對(duì)稱秘鑰算法也被成為公鑰算法津坑,每個(gè)用戶都有公鑰和私鑰
- 非對(duì)稱秘鑰的優(yōu)點(diǎn):
1: 新增用戶只需要生成一對(duì)公鑰-私鑰對(duì)
2:從非對(duì)稱系統(tǒng)中更容易刪除用戶
3:只有在用戶的私鑰被破壞時(shí),才需要進(jìn)行秘鑰重建
4:非對(duì)稱秘鑰加密提供了完整性傲霸、身份認(rèn)證和不可否認(rèn)性
5:秘鑰分發(fā)是一個(gè)簡(jiǎn)單的過(guò)程
6:不需要預(yù)先存在通信鏈接 -
對(duì)稱和非對(duì)稱密碼學(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 對(duì)稱密碼
- 常見(jiàn)對(duì)稱密碼系統(tǒng):DES(數(shù)據(jù)加密標(biāo)準(zhǔn))、3DES(三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn))梳凛、IDEA(國(guó)際數(shù)據(jù)加密算法)耿币、Blowfish、Skipjack伶跷、AES(高級(jí)加密標(biāo)準(zhǔn))
6.4.1 數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)
- DES是一個(gè)64位的分組密碼掰读,具有五種操作模式
1、電子代碼本模式(ECB):安全性最差叭莫,每次處理一個(gè)64位分組蹈集,簡(jiǎn)單的使用秘鑰對(duì)這個(gè)分組進(jìn)行加密
2、密碼分組鏈接模式(CBC):未加密文本的每個(gè)分組使用DES算法加密前雇初,都與前一密文分組進(jìn)行異或操作拢肆,缺點(diǎn)是錯(cuò)誤傳播
3、密碼回饋模式(CFB):流密碼形式的CBC、針對(duì)實(shí)時(shí)生成的數(shù)據(jù)進(jìn)行操作
4郭怪、輸出回饋模式(OFC):
5支示、計(jì)數(shù)模式(CTR):每次操作后都增加的計(jì)數(shù)
6.4.2 三重?cái)?shù)據(jù)加密算法(3DES)
- 3DES有四個(gè)版本:
1、使用三個(gè)不同的秘鑰對(duì)明文加密三次
2鄙才、使用三個(gè)秘鑰颂鸿,但是將第二個(gè)加密操作替換成解密操作
3、知使用兩個(gè)秘鑰
4攒庵、使用兩個(gè)秘鑰嘴纺、中間使用解密操作
6.4.3 國(guó)際數(shù)據(jù)加密算法(IDEA)
- 針對(duì)DES算法的秘鑰長(zhǎng)度不夠開(kāi)發(fā)的,采用128位的秘鑰進(jìn)行操作浓冒,
6.4.4 Blowfish
- Blowfish擴(kuò)展了IDEA的秘鑰長(zhǎng)度栽渴,可使用變長(zhǎng)秘鑰,BlowFish比IDEA和DES更快的算法
6.4.5 Skipjack
- 對(duì)64位的文本分組操作稳懒,使用80位的秘鑰
- 沒(méi)有被密碼學(xué)團(tuán)隊(duì)普通接受闲擦,因?yàn)橥泄艹绦蛴擅绹?guó)政府控制
6.4.6 高級(jí)加密協(xié)議(AES)
- 使用128、192场梆、和256位加密墅冷,支持128分組處理
-
對(duì)稱加密算法記憶表
image.png
6.4.7 對(duì)稱秘鑰管理
1、創(chuàng)建和分發(fā)對(duì)稱密碼
- 離線分發(fā):一方向另一方提供包括秘鑰的一張紙或一份存儲(chǔ)介質(zhì)
- 公鑰加密:使用公鑰加密建立初始的通信鏈接或油,在鏈接中交換秘鑰
- Diffie-Hellman算法:在不安全的鏈路中交換秘鑰
2俺榆、存儲(chǔ)和銷(xiāo)毀對(duì)稱秘鑰 - 永遠(yuǎn)不要將加密秘鑰存儲(chǔ)在存放加密數(shù)據(jù)一起
- 敏感秘鑰考慮兩個(gè)人分別持有秘鑰的一般
3、秘鑰托管 - 公平密碼系統(tǒng):私鑰分成多分装哆,交給獨(dú)立的第三方
- 托管加密標(biāo)準(zhǔn):向政府提供解密密文的技術(shù)手段
6.4.8 密碼生命周期
- 確定組織可以接受和使用的加密算法
- 基于傳輸信息的敏感性確認(rèn)算法可接受的秘鑰長(zhǎng)度
- 列出可以使用的安全傳輸協(xié)議(SSL和TLS)