混合加密算法在云計(jì)算中的應(yīng)用
為了使存儲(chǔ)在云中的數(shù)據(jù)更加安全,根據(jù)云計(jì)算的特點(diǎn),采用混合加密的方式對(duì)傳統(tǒng)加密算法進(jìn)行重新設(shè)計(jì)。在設(shè)計(jì)過程中,主要利用云計(jì)算存儲(chǔ)容量大、運(yùn)算速度快、并行性強(qiáng)的特性,結(jié)合傳統(tǒng)加密算法的特征,改進(jìn)設(shè)計(jì)了密鑰加密法、二次加密法和分組混合加密法。
一、基礎(chǔ)加密算法
1、對(duì)稱加密算法
在對(duì)稱密碼加密系統(tǒng)中,各項(xiàng)元素是一個(gè)五元組集合CS={M,C,K,e,d),其中M={m)表示明文消息的集合,C一(c)表示密文消息的集合,K一{k}表示密鑰的集合,e表示一個(gè)確定的加密映射,即M六K生成C的過程,矗表示一個(gè)確定的解密映射,即C*K生成M的過程。在整個(gè)加解密過程中,密鑰k既在加密過程中使用也在解密過程中使用。對(duì)稱加密算法的工作過程如圖1所示。

在對(duì)稱加密算法中,加密過程和解密過程的算法本身是公開的。只要獲得具體的密鑰k,任何人都可以破譯密文。常見的對(duì)稱加密算法有DES加密算法、三重DES加密算法、AES、IDEA、RC5等。本文選用DES算法作為混合加密算法的基礎(chǔ)進(jìn)行研究。
DES算法的主體運(yùn)算由初始置換和FEISTEL網(wǎng)絡(luò)組成。因此,DES算法的運(yùn)算速度比其他成熟的加密算法更快,同時(shí)由于56比特密鑰較短,常見的攻擊方法往往針對(duì)這一特點(diǎn)。
2、公鑰加密算法
公鑰密碼學(xué)的思想是要尋找到這樣{種系統(tǒng),從加密函數(shù)e計(jì)算解密d在計(jì)算上是不可行的。在這樣的系統(tǒng)下,就可以公布加密密鑰ek。讓任何人都可以對(duì)數(shù)據(jù)進(jìn)行加密,而只有私鑰dk的持有人才能對(duì)密文進(jìn)行脫密。在結(jié)構(gòu)上,公鑰加密算法與對(duì)稱加密算法一樣,也是由一個(gè)五元組集合CS={M,C,K,e,d)組成,對(duì)于明文空間M、密文空間C、加密過程e、解密過程矗都沒有特殊的區(qū)別,最主要的區(qū)別是密鑰K。在對(duì)稱加密算法中,密鑰K只有一個(gè),既作為加密用,也用于脫密。而公鑰加密算法中,加密過程使用的公鑰ek與脫密過程使用的私鑰矗。有一定的關(guān)聯(lián),但卻完全不一樣,如圖2所示。

公鑰加密算法本身都是基于NP難的單向陷門函數(shù)進(jìn)行設(shè)計(jì),例如,RSA算法依靠的是大整數(shù)素因子分解問題,ELGamal是基于有限域上的離散對(duì)數(shù)問題等。本文以RSA算法為例介紹公鑰加密算法。
與DES算法相比,RSA加密算法的強(qiáng)度更高,但是加密中使用到大素?cái)?shù),因此整個(gè)加密過程耗時(shí)相對(duì)比較長,限制了它的推廣使用。
二、云計(jì)算中的混合加密算法
1、密鑰加密法
A. Kerkhoff曾經(jīng)提出了密碼分析學(xué)的一個(gè)基礎(chǔ)假設(shè),通常被稱為Kerkhoff原理:假設(shè)對(duì)手知道密碼系統(tǒng)的所有細(xì)節(jié),包括算法本身原理及其實(shí)現(xiàn)過程,那么加密系統(tǒng)本身的安全性就完全依賴于密鑰的安全性‘4]。在此情況下,要求在設(shè)計(jì)加密系統(tǒng)時(shí)需要更加專注于密鑰的保護(hù)。若是密鑰本身易于被破解,整個(gè)加密系統(tǒng)的安全性就會(huì)大打折扣。如果能對(duì)密鑰進(jìn)一步加強(qiáng)保護(hù),防止密鑰本身被破解,則可以在一定程度上達(dá)到保護(hù)密鑰的目的。因此,密鑰加密法便應(yīng)運(yùn)而生。密鑰加密法是指對(duì)密鑰愚進(jìn)行再一次加密。如圖3所示。

密鑰加密系統(tǒng)所含元素與傳統(tǒng)對(duì)稱加密算法和公鑰加密算法一樣,也是5元組集合CS={M,C,K,e,d)。密鑰加密法中,原來的密鑰k既是明文m加密的密鑰,又是密鑰加密法中的明文。密鑰dk通過二次加密密鑰ek,加密形成新的密鑰密文C。在脫密過程中,首先將密鑰密文c脫密,形成原文密鑰ek,再使用密鑰k對(duì)密文進(jìn)行脫密。
在密鑰加密系統(tǒng)中,加密過程使用傳統(tǒng)加密方法,所以,加密的強(qiáng)度依賴加密算法原本的強(qiáng)度。本文采用的DES算法已被美國政府采納使用35年,依然沒有尋找到算法本身的破綻。因此,在算法本身可信的情況之下,對(duì)于密鑰的保護(hù)尤其顯得重要。對(duì)密鑰的再一次加密,不僅有利于密鑰的保存,也從另外一個(gè)方面加強(qiáng)了算法本身的安全性。
2、二次加密法
隨著加密算法的研究和發(fā)展,人們已經(jīng)認(rèn)識(shí)到DES算法最大的缺陷是使用了較短的密鑰。為了克服這個(gè)缺點(diǎn),Tuchman在1979年提出了三重DES(記為TDES)加密算法,使用168比特的較長密鑰。并在1985年成為金融應(yīng)用標(biāo)準(zhǔn),1999年加入美國國家標(biāo)準(zhǔn)和技術(shù)研究局(NIST)的數(shù)據(jù)加密標(biāo)準(zhǔn)。由此可見,多重加密算法對(duì)于加密強(qiáng)度和密鑰保護(hù)都能起到一定的作用。
在三重DES算法中,加密密鑰為K=(ki,k2,k3。),則由明文m生成密文c的加密過程為:
C=TDESk(m)一DESk3(DESk21 (DESk,(m)))
相應(yīng)的脫密過程為:
C=TDESk-1(m)一DESk3-1(DESk(DESki(m)))
在這樣的設(shè)計(jì)下,不僅加密強(qiáng)度更大,而且對(duì)已經(jīng)過DES算法加密的數(shù)據(jù)具有良好的兼容性。鑒于此,本文根據(jù)云計(jì)算中計(jì)算集群運(yùn)算能力強(qiáng)的特點(diǎn),設(shè)計(jì)了二次加密法。在二次加密算法中,加密密鑰為K=(ki,k2,k3),其中,ki為DES算法中的密鑰,k2為RSA算法中的公鑰,k3為RSA算法中的私鑰,因此,在二次加密法中加密脫密過程是一個(gè)復(fù)雜的過程,依次依序進(jìn)行加密,如圖4所示。

首先對(duì)明文,咒使用DES算法加密成中間密文cl,再使用RSA算法的公鑰對(duì)中間密文加密成最終密文c。脫密過程是加密過程的逆過程,首先是使用RSA算法中的私鑰對(duì)最終密文c脫密生成中間密文C1,再使用DES算法中的密鑰脫密成最終明文m。
密文的安全性由兩個(gè)不同結(jié)構(gòu)、不同組成的加密算法作為基礎(chǔ),基于不同的NP難計(jì)算問題,比單一的加密算法安全性更好。同時(shí),在加密過程中使用兩套不同的密鑰系統(tǒng),因此,在入侵者破解密鑰時(shí),即使入侵者破解了其中一組密鑰,依然還有另外一組密鑰對(duì)密文進(jìn)行保護(hù),使得入侵者無法獲取整個(gè)密文本身相對(duì)應(yīng)的明文內(nèi)容。
二次加密算法加密強(qiáng)度大、耗時(shí)相對(duì)較高,另外,有大量中間密文需要存儲(chǔ)和計(jì)算,所以會(huì)占用大量的存儲(chǔ)空間和計(jì)算資源。由于云計(jì)算中計(jì)算集群和存儲(chǔ)集群能力都比較強(qiáng),這些特點(diǎn)可以支撐云計(jì)算完成二次加密算法所特有的加密過程。
3、分組混合加密法
傳統(tǒng)加密方法可以分為流密碼和分組密碼兩種不同的方式。V ernam 一次一密體制是流密碼中最著名的例子。Vernam加密算法是消息比特和密鑰比特的簡單異或運(yùn)算。由于密鑰流是隨機(jī)獨(dú)立生成的,并且只用于加密一個(gè)消息流m,因此被稱為一次一密。這樣的加密算法有一個(gè)非常大的優(yōu)點(diǎn),就是能夠證明它在唯密文攻擊的情況下是安全的。
分組密碼是傳統(tǒng)加密算法的另外一種方式,例如DES、三重DES、Blowfish等都是典型的分組加密算法。這些加密算法首先都是把明文本身按照一定長度分組,再對(duì)每一組明文分別與密鑰進(jìn)行計(jì)算加密。脫密過程正好相反,先對(duì)每一組密文脫密,然后在重新組合成明文。在這種情況下,可以使得分組加密算法的密鑰相對(duì)流密碼長度小很多。
根據(jù)分組加密方法的思想,同時(shí)結(jié)合云計(jì)算中計(jì)算處理器眾多的特點(diǎn),可以將明文按照I:I的長度重新進(jìn)行分組,將其中一部分利用DES算法進(jìn)行加密,與此同時(shí),把另一部分利用公鑰加密算法中的RSA算法進(jìn)行加密。具體的加密過程如圖5所示。

在加密過程中,首先將需要加密的明文m按照I:I的比例,均分成為mi和中間明文m2,中間明文mi經(jīng)過已經(jīng)成熟的對(duì)稱加密方法DES,利用密鑰ki進(jìn)行加密,形成密文cl;m2經(jīng)過公鑰加密算法RSA,利用RSA算法中的公鑰k2進(jìn)行加密,形成密文C2。脫密過程是加密過程的逆過程,對(duì)于密文cl使用DES算法中的私鑰ki進(jìn)行脫密,脫密形成中間明文mi,同時(shí),對(duì)密文C2使用RSA算法中的私鑰k3進(jìn)行脫密,脫密形成中間明文m1。整合中間明文m1和m2,最終形成明文m。
在云計(jì)算中,利用云計(jì)算的計(jì)算能力強(qiáng)、計(jì)算集群多的特點(diǎn),分組混合加密算法加密過程P可分解到不同的計(jì)算集群分別進(jìn)行加密,不僅可以將加密控制在一個(gè)加密周期以內(nèi),同時(shí)還能保證加密算法取得良好的加密效果。
小知識(shí)之云計(jì)算
云計(jì)算(cloud computing)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。







