网络安全笔记2——单钥密码体制
網(wǎng)絡(luò)安全筆記2——單鑰密碼體制
參考課程:中國(guó)大學(xué)MOOC《網(wǎng)絡(luò)安全》——北京航空航天大學(xué)
文章目錄
- 網(wǎng)絡(luò)安全筆記2——單鑰密碼體制
- 古典密碼
- 代換密碼
- 置換密碼
- 流密碼
- 分組密碼
- 概念
- Shannon的密碼設(shè)計(jì)思想
- 數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)
- 運(yùn)算步驟
- 注意事項(xiàng)
- DES算法詳細(xì)圖解
- S盒和P盒
- DES的安全性
- 高級(jí)加密標(biāo)準(zhǔn)(AES)
- 算法簡(jiǎn)介
- AES加密算法詳解(圖文解釋)
- AES對(duì)應(yīng)用密碼學(xué)的積極影響
- SM4密碼算法
- 基本運(yùn)算
- 加密算法
- 解密算法
- SM4的安全性
- 分組密碼的工作模式分類
- 電碼本模式(ECB)
- 密碼分組鏈接模式(CBC)
- 密碼反饋模式(CFB)
- 輸出反饋模式(OFB)
- 計(jì)數(shù)器模式(CTR)
- 分組密碼總結(jié)
密碼體制的語(yǔ)法定義
- 明文消息空間M:可能的明文字母串集合
- 密文消息空間C:可能的密文字母串集合
- 加密密鑰空間K:可能的加密密鑰集合
- 解密密鑰空間K’:可能的解密密鑰集合
- 有效的密鑰生成算法ζ:N → K × K’
- 加密算法E:M × K → C
- 解密算法D:C × K’ → M
- 密鑰生成算法:?整數(shù)1l,ζ(1l)輸出長(zhǎng)為l的密鑰對(duì):(ke,kd) ∈ K × K’
- 加密/解密過(guò)程:?m ∈ M,c ∈ C
c = Eke(m)
m = Dkd(c) = Dkd(Eke(m))
密鑰體制的分類
- 若ke=kd,則加密算法稱為單鑰加密體制(對(duì)稱加密體制或私鑰加密體制)
- 若ke≠kd,則加密算法稱為雙鑰加密體制(非對(duì)稱加密體制或公鑰加密體制)
單鑰密碼按照加解密運(yùn)算的特點(diǎn)分類
- 流密碼(Stream Cipher):數(shù)據(jù)逐比特加密,即數(shù)據(jù)流與密鑰流逐比特進(jìn)行異或(XOR)運(yùn)算;
- 分組密碼(Block Cipher):對(duì)數(shù)據(jù)分組進(jìn)行處理。
古典密碼
古典密碼學(xué)有兩大基本方法
- 置換密碼:明文字母保持不變,但順序被打亂。
- 代換密碼:明文字母被替換,但順序保持不變。
代換密碼主要包括:單表代換(一個(gè)明文字母對(duì)應(yīng)的密文字母是確定的);多表代換(一個(gè)明文字母可以表示為多個(gè)密文字母);弗納姆密碼:將每消息比特和相應(yīng)的密鑰比特進(jìn)行比特異或運(yùn)算
代換密碼
單表代換
凱撒密碼(單表代換)
維吉尼亞密碼(多表代換)
- 引入密鑰的概念:根據(jù)密鑰來(lái)決定用哪一行的密表來(lái)進(jìn)行代換。
- 使用詞組作為密鑰:詞組中每一個(gè)字母都作為索引來(lái)確定采用某個(gè)代換表,加密時(shí)需要循環(huán)使用代換表完成明文字母到密文字母的代換,最后所得到的密文字母序列即為密文。
弗納姆密碼(代換密碼)
弗納姆密碼(Vernam Cipher)的基本原理是:將明文與密鑰進(jìn)行模2加法運(yùn)算。如果M=C=K={0,1}*,則弗納姆密碼就是代換密碼的特例;如果密鑰串只使用一次,那么弗納姆密碼就是一次一密密碼。
弗納姆密碼也可以看成序列密碼(流密碼)的雛形。
置換密碼
置換密碼又稱換位密碼,是通過(guò)重新排列明文中元素的位置而不改變?cè)乇旧韥?lái)實(shí)現(xiàn)加密的體制,它廣泛應(yīng)用于現(xiàn)代分組密碼的構(gòu)造。
置換就是簡(jiǎn)單的換位,每次置換都可以用一個(gè)置換矩陣來(lái)表示,且都有一個(gè)與之對(duì)應(yīng)的逆置換矩陣。
流密碼
原理
- 明文m=m1,m2,… …ml
- 偽隨機(jī)序列k=k1,k2,… …kl
- 密文ci = Eki(mi)
- 解密過(guò)程與加密過(guò)程相同且互逆
- 流密碼的安全性完全依賴于偽隨機(jī)數(shù)的強(qiáng)度
有限狀態(tài)自動(dòng)機(jī)
- 若密鑰流是一個(gè)完全隨機(jī)的非周期序列,則我們可以用它來(lái)實(shí)現(xiàn)一次一密體制。
- 但實(shí)用中的流密碼大多采用有限存儲(chǔ)單元和確定性算法,可用有限狀態(tài)自動(dòng)機(jī)(Finite State Automation)來(lái)描述。
- 因此,由有限狀態(tài)機(jī)產(chǎn)生的序列是偽隨機(jī)序列。
流密碼的分類
同步流密碼
自同步流密碼
祖沖之密碼
2011年,我國(guó)商用密碼算法——祖沖之密碼算法(ZUC)被批準(zhǔn)成為新一代寬帶無(wú)線移動(dòng)通信系統(tǒng)(LTE)國(guó)際標(biāo)準(zhǔn),即4G的國(guó)際標(biāo)準(zhǔn)
我國(guó)向3GPP提交的算法標(biāo)準(zhǔn)包含如下內(nèi)容:
- 祖沖之密碼算法(ZUC):用于產(chǎn)生密鑰序列
- 128-EEA3:基于ZUC的機(jī)密性算法
- 123-EIA3:基于ZUC的完整性保護(hù)算法
分組密碼
概念
分組密碼(Block Cipher)是將明文消息編碼表示后的數(shù)字序列x1,x2,…,xi,劃分成長(zhǎng)為m的組x = (x0,x1,…,xm-1),各組(長(zhǎng)為m的矢量)分別在密鑰k = (k0,k1,…,kt-1)控制下變換成輸出長(zhǎng)度為n的數(shù)字序列y = (y0,y1,…,yn-1)(長(zhǎng)為n的矢量),其加密函數(shù)E:Vm × K → Vn,Vm和Vn是m、n維矢量空間,K為密鑰空間。
設(shè)計(jì)要求
Shannon的密碼設(shè)計(jì)思想
- 擴(kuò)散(diffusion)
將每位明文及密鑰數(shù)字的影響盡可能迅速地散布到較多個(gè)輸出的密文數(shù)字中,以便隱蔽明文數(shù)字的統(tǒng)計(jì)特性。產(chǎn)生擴(kuò)散的最簡(jiǎn)單方法是通過(guò)“置換(Permutation)”(比如:重新排列字符) - 混淆(confusion)
其目的在于使作用于明文的密鑰和密文之間的關(guān)系復(fù)雜化,使明文和密文之間,密文和密鑰之間的統(tǒng)計(jì)相關(guān)特性極小化,從而使統(tǒng)計(jì)分析攻擊不能奏效。通常的方法是“代換(Substitution)”
數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)
DES:Data Encryption Standard
DES數(shù)據(jù)加密標(biāo)準(zhǔn)是美國(guó)于1977年在全球范圍內(nèi)公開(kāi)的第一個(gè)現(xiàn)代單鑰加密算法,DES是一種分組密碼,其輸入的明文長(zhǎng)度為64bit,密鑰長(zhǎng)度為56bit,輸出的密文長(zhǎng)度為64bit。
運(yùn)算步驟
注意事項(xiàng)
- DES算法的加密和解密均采用上述3個(gè)步驟。
- 初始置換過(guò)程實(shí)際上為香農(nóng)信息論中的“擴(kuò)散(Diffusion)”;迭代運(yùn)算過(guò)程就是香農(nóng)信息論中的“混淆(Confusion)”。
- 如果加密時(shí)使用的輪密鑰次序?yàn)閗1,k2,…,k16,那么解密時(shí)使用的輪密鑰次序?yàn)閗16,k15,…,k1。
- DES采用Feistel網(wǎng)絡(luò)結(jié)構(gòu)。Feistel密碼結(jié)構(gòu)是一種對(duì)稱結(jié)構(gòu),滿足對(duì)合性。采用此結(jié)構(gòu)的密碼,其好處是加解密可以使用同一個(gè)芯片。
DES算法詳細(xì)圖解
S盒和P盒
- S盒的作用是混淆(Confusion),主要增加明文和密文之間的復(fù)雜度(包括非線性度等)。DES的安全性直接取決于S盒的安全性。
- P盒的作用是擴(kuò)散(Diffusion),目的是讓明文和密鑰的影響迅速擴(kuò)散到整個(gè)密文中。即一位的明文或密鑰的改變會(huì)影響到密文的多個(gè)比特。
- S盒和P盒的作用體現(xiàn)了Shannon的擴(kuò)散和混淆的密碼設(shè)計(jì)思想。
DES的安全性
1997年1月28日,美國(guó)RSA公司懸賞10000美元破譯DES。美國(guó)程序員RockeVerser用140天破譯成功。從此宣布了DES時(shí)代的終結(jié)。
2008年SciEngines公司的Rivyera將破解DES的時(shí)間縮減到1天以內(nèi),并一直保持著暴力破解DES的記錄。
于是,有人提出了TripleDES算法。
DES、TripleDES算法(3DES)已經(jīng)不再使用,需要提出新的、更安全的數(shù)據(jù)加密標(biāo)準(zhǔn)。
高級(jí)加密標(biāo)準(zhǔn)(AES)
AES: Advanced Encryption Standard
AES是美國(guó)聯(lián)邦政府采用的一種用來(lái)替代DES的加密標(biāo)準(zhǔn),其于2001年發(fā)布并在2002年成為有效的加密標(biāo)準(zhǔn),已經(jīng)被多方分析且廣為使用。
Rijndael是分組長(zhǎng)度和密鑰長(zhǎng)度均可變的分組密碼,其密鑰長(zhǎng)度和分組長(zhǎng)度可以獨(dú)立指定為128/192/256bit(都是64的倍數(shù))。
AES的密鑰長(zhǎng)度為128/192/256bit, 但分組長(zhǎng)度固定為128bit。
算法簡(jiǎn)介
AES加密算法詳解(圖文解釋)
AES對(duì)應(yīng)用密碼學(xué)的積極影響
- AES具有加長(zhǎng)可變的密鑰128/192/256b及數(shù)據(jù)分組長(zhǎng)度128b,為各種應(yīng)用要求提供了大范圍可選的安全強(qiáng)度。
- 128/192/256b密鑰對(duì)應(yīng)的加密輪數(shù)為10/12/14。
- 避免了多重加密(例如3DES)的使用,減少了實(shí)際應(yīng)用中的密鑰數(shù)量,可以簡(jiǎn)化安全協(xié)議和系統(tǒng)的設(shè)計(jì)。
- AES的廣泛使用將導(dǎo)致同樣強(qiáng)度的新型雜湊函數(shù)的出現(xiàn)。
SM4密碼算法
2006年,我國(guó)國(guó)家密碼管理局公布了無(wú)線局域網(wǎng)產(chǎn)品使用的SM4 (原名SMS4)密碼算法,這是我國(guó)第一次公布自己的商用密碼算法,旨在加密與保護(hù)靜態(tài)儲(chǔ)存和傳輸信道中的數(shù)據(jù)。
特點(diǎn)
- 分組密碼算法,分組長(zhǎng)度和密鑰長(zhǎng)度128bit, 32輪迭代
- 以字節(jié)為單位對(duì)數(shù)據(jù)進(jìn)行處理
- 解密算法與加密算法結(jié)構(gòu)相同,輪密鑰的使用順序相反
基本運(yùn)算
- 模2加和循環(huán)移位計(jì)算
32bit異或計(jì)算(⊕)和32bit循環(huán)左移(<<<) - 置換運(yùn)算: S盒(Sbox)
8bit輸入、8bit輸出的置換運(yùn)算,起混淆作用 - 非線性變換τ
以字為單位的非線性變換,由4個(gè)并行的S盒構(gòu)成 - 線性變換L
以字為單位的線性變換,起擴(kuò)散作用 - 合成變換T
由τ和L復(fù)合而成,起擴(kuò)散和混淆作用 - 輪函數(shù)F
非線性迭代結(jié)構(gòu),以字為單位進(jìn)行加密運(yùn)算
加密算法
解密算法
SM4的安全性
SM4廣泛應(yīng)用于無(wú)線局域網(wǎng)產(chǎn)品。從算法設(shè)計(jì)上看,SM4在計(jì)算過(guò)程中增加了非線性變換,理論上能大大加強(qiáng)算法的安全性。
近年來(lái),國(guó)內(nèi)外密碼學(xué)者對(duì)SM4進(jìn)行了充分的分析與實(shí)驗(yàn),致力于SM4的低復(fù)雜度實(shí)現(xiàn)、混合加密技術(shù)的商用化、SM4抗攻擊能力的增強(qiáng)等方面,這些研究成果對(duì)改進(jìn)SM4密碼和設(shè)計(jì)新密碼都是有幫助的。
至今, 我國(guó)國(guó)家密碼管理局仍然支持使用SM4密碼
分組密碼的工作模式分類
參考:分組密碼的模式——ECB、CBC、CFB、OFB、CTR
分組密碼算法只能加密固定長(zhǎng)度的分組,但需要加密的明文長(zhǎng)度可能會(huì)超過(guò)分組密碼的分組長(zhǎng)度,這就需要對(duì)分組密碼算法進(jìn)行迭代,以便將一段很長(zhǎng)的明文全部加密。迭代的方法就被稱為分組密碼的工作模式。
分組密碼的模式主要有以下5種:
- 電碼本模式(ECB:Electronic CodeBook mode)
- 密碼分組鏈接模式(CBC:Cipher Block Chaining mode)
- 密碼反饋模式(CFB:Cipher FeedBack mode)
- 輸出反饋模式(OFB:Output FeedBack mode)
- 計(jì)數(shù)器模式(CTR:CounTeR mode)
電碼本模式(ECB)
對(duì)連續(xù)排列的消息進(jìn)行加密(或解密)的最直接方式就是對(duì)它們逐段加密(或解密)。在這種情況下,消息分段恰好是消息分組。由于這種模式類似于在電報(bào)密碼本中查找指定的碼字,因此稱為電碼本模式(ECB, Electric Code Book)
- ECB加密: Ci ← E(Pi),i=1,2,…,m
- ECB解密: Pi ← D(Ci),i=1,2,…,m
注意: ECB模式是確定性的加密模式,也就是說(shuō),如果在相同的密鑰作用下,將P1,P2,…Pm加密2次,那么輸出的密文分組也是相同的。如果明文消息是可猜測(cè)的,那么攻擊者就會(huì)用試湊法猜測(cè)出明文。
因此, 在大多數(shù)應(yīng)用中, 建議不要使用ECB模式。
- 加密
- 解密
密碼分組鏈接模式(CBC)
密碼分組鏈接(CBC, Cipher Block Chaining)運(yùn)行模式是分組密碼算法。使用CBC模式,輸出是密碼分組的一個(gè)序列,這些密碼分組鏈接在一起使得每個(gè)密碼分組不僅依賴于所對(duì)應(yīng)的原文分組,而且依賴于所有以前的數(shù)據(jù)分組。
- 加密
- 解密
初始化向量
當(dāng)加密第一個(gè)明文分組時(shí),由于不存在“前一個(gè)密文分組”,因此需要事先準(zhǔn)備一個(gè)長(zhǎng)度為一個(gè)分組的比特序列來(lái)代替“前一個(gè)密文分組”,這個(gè)比特序列稱為初始化向量,通常縮寫(xiě)為IV。
- 一般來(lái)說(shuō),每次加密時(shí)都會(huì)隨機(jī)產(chǎn)生一個(gè)不同的比特序列來(lái)作為初始化向量。
- 由于IV的隨機(jī)性,密文分組Ci都將被隨機(jī)化,因此CBC的密文輸出是隨機(jī)化的。
- 發(fā)送給接收者的密文消息應(yīng)該包括IV。因此對(duì)于m個(gè)明文分組,CBC將輸出m+1個(gè)密文分組。
分組損壞和比特缺失的影響
- 假設(shè)CBC模式加密的密文分組中有一個(gè)分組損壞了,例如由于硬盤(pán)故障導(dǎo)致密文分組的值發(fā)生了改變等,這種情況下,只要密文分組的長(zhǎng)度沒(méi)有發(fā)生變化,則解密時(shí)最多只會(huì)有2個(gè)分組收到數(shù)據(jù)損壞的影響。
- 假設(shè)CBC模式加密的密文分組中有一些比特缺失了,例如由于通信錯(cuò)誤導(dǎo)致沒(méi)有收到某些比特等,那么此時(shí)即使缺失1比特,也會(huì)導(dǎo)致密文分組的長(zhǎng)度發(fā)生變化,此后的分組發(fā)生錯(cuò)位,這樣一來(lái),缺失比特的位置之后的密文分組也就全部無(wú)法解密。
密碼反饋模式(CFB)
密碼反饋模式(CFB,Cipher Feedback Mode)的特點(diǎn)是:將CFB模式輸出的密碼分組反饋至移位寄存器,作為分組密碼算法的輸入,經(jīng)分組加密算法加密后形成密鑰流分組,再與輸入明文分組相異或。
- 加密
- 解密
輸出反饋模式(OFB)
輸出反饋模式(OFB,Output Feedback Mode)的特點(diǎn)是:將分組密碼的輸出分組反饋回去,這些反饋分組經(jīng)分組加密后輸出一個(gè)密鑰流分組,再將密鑰流分組與明文分組相異或。
- 加密
- 解密
OFB模式和CFB模式的區(qū)別僅僅在于密碼算法的輸入。
CFB模式中,密碼算法的輸入是前一個(gè)密文分組,也就是將密文分組反饋到密碼算法中,因此被稱為“密文反饋模式”;
OFB模式中,密碼算法的輸入是密碼算法的前一個(gè)輸出,也就是將輸出反饋給密碼算法,因此被稱為“輸出反饋模式”。
計(jì)數(shù)器模式(CTR)
計(jì)數(shù)器模式(CTR, Counter) 的特征是:將計(jì)數(shù)器從初始值開(kāi)始計(jì)數(shù),所得到的值饋送給分組密碼算法。隨著計(jì)數(shù)的增加,分組密碼算法輸出連續(xù)的密鑰流分組,再將密鑰流與明文分組相異或。
- 加密
- 解密
計(jì)數(shù)器的生成方法,前8個(gè)字節(jié)為nonce,這個(gè)值在每次加密時(shí)必須時(shí)不同的。后8個(gè)字節(jié)為分組序號(hào),這個(gè)部分逐次累加。
OFB模式與CTR模式的對(duì)比
- 兩者都是流密碼。
- OFB模式是將加密的輸出反饋到輸入,CTR模式是將計(jì)數(shù)器的值用作輸入。
分組密碼總結(jié)
| DES | 64 bits | 56 bits | 16 | 密鑰太短且分組長(zhǎng)度不適應(yīng)64-bits總線 |
| AES | 128 bits | 128/192/256 bits | 10/12/14 | 安全 |
| SM4 | 128 bits | 128 bits | 32 | 安全 |
總結(jié)
以上是生活随笔為你收集整理的网络安全笔记2——单钥密码体制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机未解决难题
- 下一篇: 梦三国服务器每天维护几次,梦三国:都在抱