許俊良
(北京信息職業(yè)技術(shù)學(xué)院,北京,100018)
在互聯(lián)網(wǎng)輻射范圍日漸寬泛及通信技術(shù)不斷成熟的大背景下,電子信息化數(shù)據(jù)量正在逐漸增大,并且不斷充斥于社會(huì)的各個(gè)領(lǐng)域、各個(gè)方面;但需指出的是,與之伴隨而來的安全性問題,也正在變得越發(fā)凸顯,所以,為了能夠更好地對(duì)信息泄露等問題進(jìn)行應(yīng)對(duì),迫切需要一種能夠?qū)?shù)據(jù)實(shí)施加密的新技術(shù)、新手段、新方式。有報(bào)道指出,通過對(duì)混沌系統(tǒng)相對(duì)應(yīng)的初值敏感性進(jìn)行合理化利用,有助于密鑰復(fù)雜性、穩(wěn)定性的提高,進(jìn)而可達(dá)到提高數(shù)據(jù)加密安全性、科學(xué)性的目的;但需強(qiáng)調(diào)的是,此方法無論是在加密上,還是在解密上,都需要過長的操作時(shí)間,故整體效率不高。另有學(xué)者圍繞非對(duì)稱數(shù)據(jù),以環(huán)形拓?fù)浣Y(jié)構(gòu)對(duì)其實(shí)施加密,但在實(shí)際運(yùn)算過程中,需有一個(gè)延遲時(shí)間,故會(huì)使加密的效率有一定程度的下降。針對(duì)上述情況,本文探討了一種新型且實(shí)用性強(qiáng)的數(shù)據(jù)加密技術(shù),即把多種加密算法相融合(如RSA、Blowfish 等),將常規(guī)技術(shù)當(dāng)中的多種問題有效解決到,如非對(duì)稱算法加解、密有著較低的效率,密鑰較難進(jìn)行管理,以及對(duì)稱算法所存在的安全性問題等?,F(xiàn)就此種混合算法的具體應(yīng)用探討如下。
針對(duì)此算法而言,其實(shí)為一種比較典型且常用的對(duì)稱加密算法,在對(duì)字符串(64 比特長度)實(shí)施加密時(shí),可以在較短時(shí)間內(nèi)完成;還需指出的是,此算法可以準(zhǔn)確且快速地加、解密,且根據(jù)實(shí)際情況及需要,調(diào)整密鑰的長度。
在圍繞數(shù)據(jù)實(shí)施加、解密操作時(shí),如果采用Blowfish加密算法,通常情況表,需要完成如下步驟:其一,圍繞加密算法相對(duì)應(yīng)的密鑰,對(duì)其實(shí)施預(yù)處理,在設(shè)計(jì)Blowfish加密算法過程中,其會(huì)將Blowfish 算法的源密鑰(sbox 與pbox)予以提供,并且維持不變,各用戶在實(shí)際使用時(shí),所采用的是同一套源密鑰(sbox 與pbox)。在加密數(shù)據(jù)過程中,需提前準(zhǔn)備一個(gè)密鑰,并且將其組合于源密鑰(sbox與pbox),從中生成所需要的子密鑰(key-sbo 與key-pbox)。其二,借助子密鑰對(duì)數(shù)據(jù)展開加密操作。圖1 是加密的基本流程(Blowfish 加密算法)。
圖1 Blowfish算法加密操作的基本流程
從此圖中得知,因Blowfish 實(shí)為一種具有對(duì)稱性特征的加密算法,因此,雜解密過程中,也需要進(jìn)行密鑰預(yù)處理,以此來生成所需要的子密鑰(key-sbo 與key-pbox),只不過借助子密鑰實(shí)施解密、加密等操作的順序是相反的。在整個(gè)Blowfish 加密算法架構(gòu)當(dāng)中,因不能明確加密密鑰的長度,因此,可對(duì)其長短進(jìn)行調(diào)整,盡管這給用戶進(jìn)行密鑰的設(shè)計(jì)提供了切實(shí)便利,但在數(shù)據(jù)安全方面,也帶來了巨大隱患。因選擇密鑰及保密是Blowfish 加密算法實(shí)施解密、加密等操作的核心所在,因此,需圍繞Blowfish 加密算法,在選擇其密鑰及進(jìn)行保密上,給予適當(dāng)?shù)馗倪M(jìn)與優(yōu)化。
在整個(gè)非對(duì)稱加密算法體系當(dāng)中,RSA 算法實(shí)為其中成熟度最高且實(shí)用性最理想的公鑰加密算法,其作為一種常用的非對(duì)稱算法,在密碼體制上,所采取的是公開加密密鑰方式。針對(duì)此種體制來講,即為選用一種在加、解密密鑰上并不相同的加密算法方式,且借助不可逆算法(數(shù)學(xué)當(dāng)中),使得借助已知的加密算法密鑰,或者是解密算法密鑰,不能將另一算法密鑰推導(dǎo)出來的方法,可通過將其加密算法密鑰予以公開的方式,來實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)、準(zhǔn)確傳輸。針對(duì)RSA 公鑰加密算法來考量,其關(guān)鍵在于借助因式(2個(gè)大素?cái)?shù)乘積),對(duì)np 類問題進(jìn)行分解,以此使加、解密密鑰之間形成良好的不可求解性。另外,還需強(qiáng)調(diào)的是,RSA 加密算法在實(shí)際操作中,可借助若干相關(guān)數(shù)據(jù),且與2個(gè)大素?cái)?shù)相聯(lián)合,生成與加密算法相對(duì)應(yīng)的私、公鑰,對(duì)于其中的公鑰來講,多用作對(duì)數(shù)據(jù)實(shí)施加密,而私鑰主要用于對(duì)數(shù)據(jù)進(jìn)行解密。表1 為RSA 加密算法的基本組成。
表1 RSA算法的組成
從此表中發(fā)現(xiàn),第一步需要做的便是對(duì)2個(gè)素?cái)?shù)進(jìn)行選擇,即P 與Q,為了使破解難度得到提高,通常情況下,會(huì)對(duì)較大位數(shù)并且有著相同位數(shù)的素?cái)?shù)進(jìn)行選取;需強(qiáng)調(diào)的是,P 與Q 之間的乘積,與公共模數(shù)N 對(duì)等;針對(duì)歐拉函數(shù)F(N)而言,應(yīng)與(P-1)(Q-1)對(duì)等;對(duì)于公鑰E 來講,其所代表的是一個(gè)隨機(jī)數(shù),不僅滿足1 <E <F(N),并且還與F(N)互質(zhì);針對(duì)私鑰D 來分析,其所代表的則為D=E-1(mod(P-1)(Q-1)),其中,mod 表示的是求余;設(shè)定C、m 分別表示的密文與明文,加、解密方法分別是c ≡mE-mod(N)、m ≡cDmod(N)。其中,對(duì)于公鑰來考量,其由N 與E 所構(gòu)成,而對(duì)于私鑰來講,則由N 與D 所構(gòu)成。
在整個(gè)RSA 公鑰加密算法架構(gòu)當(dāng)中,若僅有一組密鑰,那么僅可以實(shí)現(xiàn)一個(gè)單反向上的信息傳遞(從一方傳送給另外一方),要想實(shí)現(xiàn)彼此互轉(zhuǎn)信息,通常情況下,需要≥2組密鑰。圖2 為用戶間進(jìn)行加密數(shù)據(jù)傳遞的流程圖(基于RSA 加密算法)。
圖2 用戶之間進(jìn)行信息傳遞的流程圖
需指出的是,伴隨人們?cè)谇筚|(zhì)因數(shù)能力上的日漸增強(qiáng),為了能夠最大程度提高RSA 加密算法的整體安全性,在具體的公共模數(shù)N 上,復(fù)雜度需要超過600 比特,所以,在加密過程中,往往有著非常高的數(shù)據(jù)運(yùn)算代價(jià),而且還有著較低的加、解密效率,一般來講,較之對(duì)稱性加密算法的效率,要低數(shù)百倍之多,且伴隨大數(shù)分解因數(shù)技術(shù)的持續(xù)推新,公共模數(shù)N 在具體的長度上,也會(huì)持續(xù)性增加,因而對(duì)數(shù)據(jù)格式標(biāo)準(zhǔn)化構(gòu)建造成不利影響。
從上述可知,采用RSA、Blowfish 算法對(duì)數(shù)據(jù)實(shí)施加密,各有不足,故本文將這兩種方法相聯(lián)合,且將MD5 算法引入,以此對(duì)密文實(shí)施數(shù)字簽名操作,與此同時(shí),還對(duì)文件的完整性進(jìn)行細(xì)致檢查,預(yù)防發(fā)生數(shù)據(jù)丟失情況,促進(jìn)加密數(shù)據(jù)傳輸安全性的提高,并促進(jìn)其加、解密效率的強(qiáng)化。現(xiàn)設(shè)定用戶A 需將一些數(shù)據(jù)信息傳輸給用戶B,而M 是數(shù)據(jù)信息。
1.3.1 發(fā)送端操作的基本流程
針對(duì)用戶A 而言,在將數(shù)據(jù)信息M 發(fā)送給用戶B 時(shí),不僅要將MD5 算法、Blowfish 加密算法準(zhǔn)備好,而且還需將用戶B 相對(duì)應(yīng)的公鑰(RSA 加密算法)同時(shí)準(zhǔn)備好,圖3 是發(fā)送端操作的基本流程。從中可知,對(duì)于用戶A 發(fā)送端來講,應(yīng)首先借助Blowfish 加密算法,圍繞電子文件,實(shí)施加密處理,獲得所需要的公文密文;然后將密鑰(Blowfish加密算法)借助RSA 加密算法公鑰(由公網(wǎng)所接收)實(shí)施加密,如此一來,便能夠獲得更加符合要求的Blowfish 密鑰密文;最后借助MD5 算法,將公文密文當(dāng)作對(duì)象,實(shí)施數(shù)字簽名操作,這樣便能夠?qū)?shù)據(jù)傳輸完成與否進(jìn)行檢驗(yàn);需強(qiáng)調(diào)的是,因所加密的為公文密文,即便對(duì)MD5 算法進(jìn)行暴力迫切,也僅能從中獲得公文密文,故有著非常高的安全性。
圖3 發(fā)送端操作的基本流程
1.3.2 接收端進(jìn)行操作的基本流程
對(duì)于用戶B 來講,需要對(duì)多種數(shù)據(jù)進(jìn)行接收,除了有摘要用的哈希函數(shù)、公文密文之外,還有簽名塊、MD5 算法公鑰等,具體流程見圖4所示。首先,應(yīng)對(duì)公文密文來源是否完整、安全進(jìn)行驗(yàn)證,圍繞簽名塊,用MD5 算法公鑰對(duì)其實(shí)施解密,并將其對(duì)比于公文密文(經(jīng)哈希函數(shù)摘要過),若相同,則有著安全的來源,并且文件處于完整狀態(tài),相反,需重新進(jìn)行發(fā)送(發(fā)送端);針對(duì)私鑰(RSA 加密算法)而言,需對(duì)密鑰密文實(shí)施解密操作,這樣便能得到基于Blowfish 加密算法的密鑰;最后借助Blowfish 加密算法相對(duì)應(yīng)的密鑰,圍繞公文密文,實(shí)施解密操作,便能最終得到電子文件M。
圖4 接收端操作的基本流程
以各數(shù)據(jù)量為對(duì)象(不僅有0.5、1、2G,而且還有5、10、20G),實(shí)施加、解密操作,且開展多次實(shí)驗(yàn),各數(shù)據(jù)加密算法進(jìn)行加、解密操作的時(shí)間見表2。
表2 加解密時(shí)間(s)
將混合加密算法對(duì)比于DES 加密算法,由于前者較后者的操作步驟更多,且需借助非對(duì)稱加密算法RSA 來分配、管理Blowfish 加密算法相對(duì)應(yīng)的密鑰,因此,所需加解密操作時(shí)間更多;但需說明的是,在混合算法當(dāng)中,因Blowfish 算法的加解密時(shí)間自身就短于DES 算法,故伴隨數(shù)據(jù)量的持續(xù)擴(kuò)充,混合算法在具體的效率上,會(huì)最終大于DES 算法。而把混合算法對(duì)比于DH 算法,得知前者的效率為后者的100 倍之多,因非對(duì)稱算法需要計(jì)算大素?cái)?shù),故會(huì)有著非常大的計(jì)算量,因此,在對(duì)那些大數(shù)據(jù)量的文件實(shí)施加密時(shí),DH 算法其實(shí)并不適用。
2.2.1 檢驗(yàn)平衡性
在數(shù)據(jù)平衡方面,為了能夠?qū)旌纤惴ǖ哪芰M(jìn)行檢驗(yàn),本文統(tǒng)計(jì)了各算法密文字符的ASCII 值(即DH、DES、混合算法),最終得知,混合算法在實(shí)施加密后,其在具體的密文各字符分布上,較為均衡,而對(duì)于其他兩種算法來講,各個(gè)字符在具體分布上,較為分散,并且波動(dòng)也較大。對(duì)ASCII 值的分布規(guī)律進(jìn)行深入剖析,且借助日常生活當(dāng)中各個(gè)字符的使用頻率,對(duì)其分布規(guī)律進(jìn)行統(tǒng)計(jì),如此一來,便能夠破譯密碼;需強(qiáng)調(diào)的是,若無法將其頻率分布給予改變,那么便有可能被破解,但本文所設(shè)計(jì)的混合加密算法,便能較好地對(duì)此種情況進(jìn)行預(yù)防。
2.2.2 檢驗(yàn)暴力破解方法
在現(xiàn)實(shí)當(dāng)中,為了能夠?qū)旌纤惴ㄔ趯?duì)抗破譯當(dāng)中的效能進(jìn)行檢驗(yàn),可采取暴力破譯的方式來對(duì)其所具有的安全性進(jìn)行檢驗(yàn)。本文以多媒體視頻、文本文件、數(shù)據(jù)(200K)作為對(duì)象,分別采用混合算法及DH、DES 加密算法實(shí)施加密操作,并基于FTP 協(xié)議,使其在特定的局域網(wǎng)當(dāng)中進(jìn)行傳遞,另外,經(jīng)Sniffer(第三方數(shù)據(jù)抓包工具)來截取數(shù)據(jù),后圍繞此類數(shù)據(jù),實(shí)施暴力破解操作。將臺(tái)式機(jī)(英特爾i7-10700K 處理器)當(dāng)作暴力破解數(shù)據(jù)包,設(shè)定好時(shí)間(15min),對(duì)其開展重復(fù)性破譯(連續(xù)5 次),最終結(jié)果見表3。
表3 暴力破解的結(jié)果
從此表中的數(shù)據(jù)得知,混合算法對(duì)于數(shù)據(jù)所具有的保密效果,要明顯優(yōu)于單純的DH、DES 算法?;跀?shù)據(jù)加密的基本原理層面來分析,混合加密算法所用Blowfish 加密算法在安全性上,要明顯優(yōu)于DES 加密算法,且其借助RSA加密算法,能夠較好地管理Blowfish 加密算法的密鑰,故有助于安全性的強(qiáng)化。需指出的是,DH、DES 算法在核心理論上基本相似,均以大素?cái)?shù)難以被分解質(zhì)因數(shù)這一理論而得,而對(duì)于混合加密算法來講,則增加了一層加密,即Blowfish 算法,故安全性更高。
綜上,伴隨互聯(lián)網(wǎng)覆蓋范圍越發(fā)寬廣,用戶信息安全問題越發(fā)受到社會(huì)的關(guān)注。需強(qiáng)調(diào)的是,因互聯(lián)網(wǎng)自身具有典型的共享特性,因此,基于互聯(lián)網(wǎng)架構(gòu)下,所傳輸?shù)臄?shù)據(jù)易被追蹤,而且還容易遭到竊取,故需要強(qiáng)化數(shù)據(jù)傳輸?shù)男逝c安全性。而通過研究非對(duì)稱、對(duì)稱數(shù)據(jù)加密算法,并將其優(yōu)點(diǎn)相融合,展開混合算法的設(shè)計(jì),經(jīng)實(shí)驗(yàn)得知,其較之單純的DH、DES 算法,無論是在安全性上,還是在加解密效率上,均更優(yōu),更適用于計(jì)算機(jī)網(wǎng)絡(luò)安全的維護(hù)。