信息安全工程師考點(diǎn)梳理(2):第2章密碼學(xué)基礎(chǔ)與應(yīng)用-密碼學(xué)的基本概念
2.1.1 密碼學(xué)的基本安全目標(biāo)
2.1.1.1 保密性
保密性是確保信息僅被合法用戶訪問,而不被泄露給非授權(quán)的用戶、實(shí)體或過程,或供其利用的特性。
常用的保密技術(shù)包括:防偵收(使對(duì)手偵收不到有用的信息)、防輻射(防止有用信息以各種途徑輻射出去)、數(shù)據(jù)加密(在密鑰的控制下,用加密算法對(duì)信息進(jìn)行加密處理。即使對(duì)手得到了加密后的信息也會(huì)因?yàn)闆]有密鑰而無法讀懂有效信息)、物理保密(利用各種物理方法,如限制、隔離、掩蔽、控制等措施,保護(hù)信息不被泄露)等。
2.1.1.2 完整性
完整性是指所有資源只能由授權(quán)方或以授權(quán)的方式進(jìn)行修改,即信息未經(jīng)授權(quán)不能進(jìn)行改變的特性。
完整性與保密性不同,保密性要求信息不被泄露給未授權(quán)的人,而完整性則要求信息不致受到各種原因的破壞。影響網(wǎng)絡(luò)信息完整性的主要因素有:設(shè)備故障、誤碼(傳輸、處理和存儲(chǔ)過程中產(chǎn)生的誤碼,定時(shí)的穩(wěn)定度和精度降低造成的誤碼,各種干擾源造成的誤碼)、認(rèn)為攻擊、計(jì)算機(jī)病毒等。
2.1.1.3 可用性
可用性是指所有資源在適當(dāng)?shù)臅r(shí)候可以由授權(quán)方訪問,即信息可被授權(quán)實(shí)體訪問并按需求使用的特性。
2.1.2 密碼體制
密碼技術(shù)的基本思想是偽裝信息,使未授權(quán)者不能理解它的真實(shí)含義。所謂偽裝就是對(duì)數(shù)據(jù)進(jìn)行一組可逆的數(shù)學(xué)變換。偽裝前的原始數(shù)據(jù)稱為明文(Plaintext),偽裝后的數(shù)據(jù)稱為密文(Ciphertext),偽裝的過程稱為加密(Encryption)。加密在加密密鑰(Key)的控制下進(jìn)行。用于對(duì)數(shù)據(jù)加密的一組數(shù)學(xué)變換稱為加密算法。發(fā)信者將明文數(shù)據(jù)加密成密文,然后將密文數(shù)據(jù)送入網(wǎng)絡(luò)傳輸或存入計(jì)算機(jī)文件,而且只給合法收信者分配密文,這一過程稱為解密(Decryption)。解密在解密密鑰的控制下進(jìn)行。用于解密的一組數(shù)學(xué)變換成為解密算法,而且解密算法是加密算法的逆。因?yàn)閿?shù)據(jù)以密文形式在網(wǎng)絡(luò)中傳輸或存入計(jì)算機(jī)文件,而且只給合法收信者分配密鑰。這樣,即使密文被非法竊取,因?yàn)槲词跈?quán)者沒有密鑰而不能得到明文,因此未授權(quán)者也不能理解它的真實(shí)含義,從而達(dá)到確保數(shù)據(jù)秘密性的目的。同樣,因?yàn)槲词跈?quán)者沒有密鑰也不能偽造出合理的明密文,因而篡改數(shù)據(jù)必然被發(fā)現(xiàn),從而達(dá)到確保數(shù)據(jù)真實(shí)性的目的。與能夠檢測(cè)發(fā)現(xiàn)篡改數(shù)據(jù)的道理相同,如果密文數(shù)據(jù)中發(fā)生了錯(cuò)誤或毀壞也將能夠檢測(cè)發(fā)現(xiàn),從而達(dá)到確保數(shù)據(jù)完整性的目的。
一個(gè)密碼系統(tǒng),通常簡(jiǎn)稱為密碼體制(Cryptosystem),由五部分組成(如圖2-1)。
(1)明文空間M,它是全體明文的集合。
(2)密文空間C,它是全體密文的集合。
(3)密鑰空間K,它是全體密鑰的集合。其中每一個(gè)密文K均由加密密鑰Ke和解密密鑰Kd組成,即K=<Ke,Kd>。
(4)加密算法E,它是一族由M到C的加密變換。
(5)加密算法D,它是一族由C到M的解密變換。
對(duì)于每一個(gè)確定的密鑰,加密算法將確定一個(gè)具體的加密變換,解密算法將確定一個(gè)具體的解密變換,而且解密變換就是加密變換的逆變換。對(duì)于明文空間M中的每一個(gè)明文M,加密算法E在密鑰Ke的控制下將明文M加密成密文C:C=E(M,Ke)(2—1)而解密算法D在密鑰Kd的控制下將密文C解密出同一明文M: M=D(C,Kd)=D(E(M,Ke),Kd) (2—2)

圖2—1 密碼體制
如果一個(gè)密碼體制的Kd=Ke,或由其中一個(gè)很容易推出另一個(gè),則成為單密鑰密碼體制或稱密碼體制或傳統(tǒng)密碼體制。否則稱為雙密鑰密碼體制。進(jìn)而,如果在計(jì)算機(jī)上Kd不能由Ke推出,這樣將Ke公開也不會(huì)損害Kd的安全,于是便可將Ke公開。這種密碼體制稱為公開密鑰密碼體制,簡(jiǎn)稱為公鑰密鑰體制。
密碼分析者攻擊密碼的方法主要有以下三種。
(1)窮舉攻擊。
(2)數(shù)學(xué)分析攻擊。
(3)基于物理的攻擊。
簡(jiǎn)單功耗分析攻擊(Simplepower Analysis attocks,SPA)和差分功耗分析攻擊(Differential Power Analysis,DPA)。
理論上,如果能夠利用足夠的資源,那么任何實(shí)際可使用的密碼又都是可破譯的。
2.1.3 古典密碼
1.置換密碼
把明文中的字母重新排列,字母本身不變,但其位置改變了,這樣變成的密碼稱為置換密碼。
2.代替密碼
首先構(gòu)造一個(gè)或多個(gè)密文字母表,然后用密文字母表中的字母或字母組來代替明文字母或字母組,各字母或字母組的相對(duì)位置不變,但其本身改變了。這樣編成的密碼成為代替密碼。
(1) 加法密碼
加法密碼的映射函數(shù)為f(ai)=bi+aj j=i+k mod n (2—3)
其中,ai∈A,k是滿足0<k<n的正整數(shù)。
著名的加法密碼是古羅馬的凱薩大帝(Caesar)使用過的一種密碼。Caesar密碼取k=3,因此其密文字母表就是把明文字母表循環(huán)右移3位后得到的字母表。例如:
A={A,B,C,D,E,F(xiàn),G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}
B={D,E,F(xiàn),G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A,B,C}
明文:MING CHEN WU DIAN FA DONG FAN GONG
密文:PLQJ FKHQ ZX GLDQ ID GRQJ IDQ JRQJ
(2)乘法密碼
乘法密碼的映射函數(shù)為f(ai)=bi=ai j=ik mod n (2—4)
(3)仿射密碼
乘法密碼和加法密碼相結(jié)合便構(gòu)成仿射密碼。
簡(jiǎn)單代替密碼很容易被破譯,其原因在于只使用一個(gè)密文字母表,從而使得明文中的每一個(gè)字母都只用唯一的一個(gè)密文字母表來代替。提高代替密碼強(qiáng)度的一種方法是采用多個(gè)密文字母表,使明文中的每一個(gè)字母都有多種可能的字母來代替。
3.代數(shù)密碼
這說明要編制Ver密碼,只需要把明文和密鑰表示成二元序列,再把它們按位模2相加便可。
2.2.2 DES算法
數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)。設(shè)計(jì)目標(biāo)是,勇于加密保護(hù)靜態(tài)存儲(chǔ)和傳輸信道中的數(shù)據(jù),安全使用10—15年。
DES綜合運(yùn)用了置換、代替、代數(shù)等多種密碼技術(shù)。
DES是一種分組密碼。明文、密文和密鑰的分組長(zhǎng)度都是64位。
DES是面向二進(jìn)制的密碼算法。因而能夠加解密任何形式的計(jì)算機(jī)數(shù)據(jù)。
DES是對(duì)合運(yùn)算,因而加密和解密共用同一算法,從而使工程實(shí)現(xiàn)的工作量減半。
2.2.2.1 DES的加密過程
(1)64位密鑰經(jīng)子密鑰產(chǎn)生算法產(chǎn)生出16個(gè)子密鑰:K1,K2,…,K16,分別供第一次,第二次,…,第十六次加密迭代使用。
(2)64位明文首先經(jīng)過初始置換IP(initial permutation),將數(shù)據(jù)打亂重新排列并分成左右兩半。左邊32位構(gòu)成L0,左邊32位構(gòu)成R0。
(3)由加密函數(shù)f實(shí)現(xiàn)自密鑰k1對(duì)R0的加密,結(jié)果為32位的數(shù)據(jù)組F(R0,K1)。F(R0,K1)再與L0模2相加,又得到一個(gè)32位數(shù)據(jù)組L0⊕f(R,K1)。以L0⊕f(R0,K1)作為第二次加密迭代的R1,以R0作為第二次加密迭代的L1。至此,第一次加密迭代結(jié)束。
(4)第二次加密迭代至第十六次加密迭代分別用子密鑰K2,…,K16進(jìn)行,其過程與第一次加密迭代相同。
(5)第十六次加密迭代結(jié)束后,產(chǎn)生一個(gè)64位的數(shù)據(jù)組。以其左邊32位作為R16,以其右邊32位作為L(zhǎng)16,兩者合并再經(jīng)過逆初始置換IP-1,將數(shù)據(jù)重新排列,便得到64位密文。至此加密過程全部結(jié)束。
綜合可將DES的加密過程用如下的數(shù)學(xué)公式描述:
Li=Ri-1
Ri=li-1?f(Ri-1,Ki)
I=1,2,3,…,16
2.2.2.7 DES的安全性
DES在總的方面是極其成功的,但同時(shí)也不可避免地存在著一些弱點(diǎn)和不足。
1.密鑰較短
面對(duì)計(jì)算能力高速發(fā)展的形式,DES采用56位密鑰,顯然短了一些。如果密鑰的長(zhǎng)度再長(zhǎng)一些,將會(huì)更安全。
2.存在弱密鑰
DES存在一些弱密鑰和半弱密鑰。
2.2.2.8 三重DES
3DES有三個(gè)顯著的優(yōu)點(diǎn)。首先它的密鑰長(zhǎng)度是168位,完全能夠抵抗窮舉攻擊。其次是相當(dāng)安全,而且經(jīng)過實(shí)驗(yàn)檢驗(yàn)。其三,由于3DES的底層加密算法與DES相同,所以,許多現(xiàn)有的DES軟硬件產(chǎn)品都能方便地實(shí)現(xiàn)3DES,因此,使用方便。3DES的根本缺點(diǎn)在于用軟件實(shí)現(xiàn)該算法的比較慢。