郎登何
(重慶電子工程職業(yè)學(xué)院,重慶 401331)
責(zé)任編輯:魏雨博
云計(jì)算建立在資源虛擬化數(shù)據(jù)中心的基礎(chǔ)之上,通過(guò)協(xié)商與用戶建立服務(wù)層協(xié)議,以服務(wù)的形式向用戶提供按需的、可擴(kuò)展的、滿足QoS要求的計(jì)算資源,而用戶只需付費(fèi)即可。在這樣的一種環(huán)境中,用戶不再需要自備一臺(tái)功能完善的個(gè)人PC來(lái)處理自己的數(shù)據(jù)和運(yùn)算,而是通過(guò)使用簡(jiǎn)單的、功能有限的上網(wǎng)設(shè)備,例如手機(jī)、PAD等與云建立聯(lián)系,可以把數(shù)據(jù)信息存入云中,或從云中獲取強(qiáng)大的計(jì)算能力或是使用最新版本的服務(wù),從而可以隨時(shí)隨地進(jìn)行相應(yīng)的工作。而企業(yè)也不需要再維護(hù)自己的數(shù)據(jù)中心,而是可以租用云中的可擴(kuò)展存貯及計(jì)算資源,從而可以更專心于自己的業(yè)務(wù)。
云計(jì)算具有如此強(qiáng)大的優(yōu)勢(shì),但因?yàn)樵朴?jì)算特有的數(shù)據(jù)和應(yīng)用外包、虛擬化、多租戶跨域共享等特點(diǎn),帶來(lái)了前所未有的安全挑戰(zhàn)。
云計(jì)算加密系統(tǒng)已經(jīng)成為云計(jì)算安全的重點(diǎn)研究領(lǐng)域[1-2],而加密系統(tǒng)中密鑰和算法又是加密系統(tǒng)最為關(guān)注的部分,本文運(yùn)用點(diǎn)集拓?fù)淙悍中巫兓玫姆椒▽?shí)現(xiàn)密鑰生成,這比不同密鑰的隨機(jī)生成更具有發(fā)散性與隨機(jī)性,因此采用該方法生成的密鑰進(jìn)行加密更在很大程度上能加強(qiáng)云計(jì)算數(shù)據(jù)交互的安全性。如人臉、語(yǔ)音、指紋等生物特征點(diǎn),在相關(guān)可控和不可控點(diǎn)集拓?fù)渥儞Q方法驅(qū)動(dòng)下都可以成為相應(yīng)的可信加密/解密算法和密鑰。
云計(jì)算是定制與交付服務(wù)的超級(jí)計(jì)算,其最大的優(yōu)點(diǎn)是虛擬服務(wù)平臺(tái)高效且定制服務(wù)總類豐富,具有廣闊的市場(chǎng)應(yīng)用前景,但是安全性問(wèn)題一直是云計(jì)算的一大難點(diǎn)[3]。云計(jì)算的不安全性表現(xiàn)在多個(gè)方面,比如信息體的偽造、變?cè)?、假冒、抵賴、木馬攻擊、病毒損毀等,這些使得云計(jì)算的應(yīng)用推廣受到阻礙。
其實(shí)不信任、不安全對(duì)云計(jì)算的危害不僅發(fā)生在服務(wù)定制和交付這兩個(gè)出入口,也發(fā)生在中間過(guò)程,即服務(wù)的組織、加工、整理、包裝等過(guò)程,因此在整個(gè)云空間,云可信、云安全對(duì)正常的網(wǎng)絡(luò)社會(huì)經(jīng)濟(jì)秩序構(gòu)成了巨大的挑戰(zhàn)[3]。圖1描述了云計(jì)算安全防護(hù)體系結(jié)構(gòu)。
圖1 云計(jì)算安全防護(hù)體系結(jié)構(gòu)圖
要實(shí)現(xiàn)可控、可信、可驗(yàn)證的云計(jì)算安全系統(tǒng)必須保證基礎(chǔ)架構(gòu)安全,用戶數(shù)據(jù)安全級(jí)運(yùn)營(yíng)管理安全。作為云計(jì)算的使用者來(lái)說(shuō),用戶數(shù)據(jù)安全是最為關(guān)注的問(wèn)題,保護(hù)用戶信息的可用性、保密性和完整性是云計(jì)算必須攻克的難題,而身份驗(yàn)證、訪問(wèn)授權(quán)、訪問(wèn)控制及加密則是用戶數(shù)據(jù)安全需要解決的具體問(wèn)題。
本文從云計(jì)算加密系統(tǒng)方面展開(kāi)研究,密鑰生成是加密系統(tǒng)最關(guān)鍵的部分,其次是加密算法,采用點(diǎn)集拓?fù)浞中巫兓玫拿荑€生成隨機(jī)性強(qiáng)、安全性高,而且分形變幻效率高,適合作為密鑰生成運(yùn)算方法。同時(shí)采用人臉、語(yǔ)音、指紋等生物特征點(diǎn)作為分形變幻的數(shù)據(jù)源[4],具有唯一性,進(jìn)一步提高了加密系統(tǒng)的安全性,能給不同用戶數(shù)據(jù)打上用戶特有標(biāo)簽,有助于保護(hù)用戶數(shù)據(jù)隱私。
2.1.1 隨機(jī)碼生成
在密碼學(xué)中,隨機(jī)序列的作用不言而喻,它的生成一般使用偽隨機(jī)生成器,包括給定長(zhǎng)度為K的一個(gè)隨機(jī)二進(jìn)制序列(稱為種子SEED)作為算法的輸入,算法輸出一個(gè)看上去似乎隨機(jī)的二進(jìn)制序列[5]。
隨機(jī)數(shù)是指用數(shù)學(xué)遞推公式所產(chǎn)生的隨機(jī)數(shù)。不同的開(kāi)發(fā)環(huán)境提供的生成隨機(jī)數(shù)的函數(shù)和方法不同。在典型情況下,它會(huì)輸出一個(gè)均勻分布在0和1區(qū)間內(nèi)的偽隨機(jī)變量的值。隨機(jī)數(shù)發(fā)生器是在計(jì)算機(jī)中產(chǎn)生隨機(jī)數(shù)的方法,經(jīng)常采用如下公式
式中:b,c,d為正整數(shù),d稱為由式(1)所產(chǎn)生的隨機(jī)序列的種子,an是隨機(jī)數(shù)序列。
由式(1)可以看出,所產(chǎn)生的隨機(jī)序列的值與b,c,d有一定的關(guān)系。這種只在一定程度上滿足隨機(jī)性的序列稱為偽隨機(jī)數(shù)。用這個(gè)公式產(chǎn)生0~65 536的a1,a2,…,an隨機(jī)數(shù)序列,故稱為232步長(zhǎng)的倍增諧和隨機(jī)數(shù)發(fā)生器[6]。
2.1.2 點(diǎn)集拓?fù)淙簩?duì)象的模型
如圖2所示,點(diǎn)集“拓?fù)淙赫摗睂?duì)象可以表示為由矩形框包圍點(diǎn)集的對(duì)象BioTPM[N]。
圖2 點(diǎn)集拓?fù)淙簩?duì)象運(yùn)算模型
點(diǎn)集拓?fù)淙赫撨\(yùn)算模型說(shuō)明如下:
1)設(shè)定基準(zhǔn)點(diǎn)和基準(zhǔn)方向點(diǎn)
設(shè)定該對(duì)象模型的基準(zhǔn)點(diǎn)和基準(zhǔn)方向點(diǎn)步驟,圖2中的P、D所示,子集也如此。
2)設(shè)定坐標(biāo)系
設(shè)定該對(duì)象模型的坐標(biāo)系,如圖2中xOy坐標(biāo)系所示,子集也如此。
3)設(shè)定環(huán)運(yùn)算特征
點(diǎn)集“拓?fù)淙赫摗睂?duì)象運(yùn)算特征表示為,首先進(jìn)行加法交換群位移操作,再進(jìn)行乘法對(duì)稱群旋轉(zhuǎn)操作,也可在該乘法對(duì)稱群旋轉(zhuǎn)操作的同時(shí)增加乘法對(duì)稱群翻轉(zhuǎn)操作。當(dāng)然規(guī)則要事先確定,子集也如此。在圖2中,位移方向由P、D連線的箭頭指示,位移量由P、D箭頭連線長(zhǎng)度Move[N]指示,Move[N]是BioTPM[N]到BioTPM[N+1]的基準(zhǔn)點(diǎn)P位移值;旋轉(zhuǎn)由 Round[N]弧線箭頭指示,旋轉(zhuǎn)量由Round[N]弧長(zhǎng)指示,Round[N]是BioTPM[N+1]的旋轉(zhuǎn)值。
需要說(shuō)明的是,先設(shè)定加法位移后,再乘法旋轉(zhuǎn),該兩項(xiàng)操作為一次組合操作,在“群論”中稱為環(huán)運(yùn)算。該環(huán)運(yùn)算次數(shù)為MRNumber[N]。圖2只進(jìn)行了一次加法位移和乘法旋轉(zhuǎn),因此MRNumber[N]值為1,該環(huán)的運(yùn)算次數(shù)不改變點(diǎn)集“拓?fù)淙赫摗睂?duì)象的屬性。
上述基于點(diǎn)集“拓?fù)淙赫摗睂?duì)象的定義中,涉及該環(huán)運(yùn)算特征參數(shù)的確定,即加法位移量Move[N]、乘法旋轉(zhuǎn)量 Round[N]、環(huán)運(yùn)算次數(shù) MRNumber[N]。同時(shí),該點(diǎn)集“拓?fù)淙赫摗睂?duì)象的非線性變換和變幻要求該環(huán)運(yùn)算特征參數(shù)非線性。Move[N]、Round[N]、MRNumber[N]的初始化值來(lái)自于節(jié)點(diǎn)“子集自組織”,這些值的確定是點(diǎn)集拓?fù)淙赫撨\(yùn)算的關(guān)鍵點(diǎn)。
2.1.3 點(diǎn)集拓?fù)淙悍中巫兓铆h(huán)運(yùn)算
特征圖像點(diǎn)的集合用G[K]表示,G[K]中又有子集G1[K],G2[K],…,Gn[K],設(shè)定 Gn[K]為最后一個(gè)子集。提取自組織于集合G[K]的兩個(gè)子集G1[K]、Gn[K],參與基于混沌的散列運(yùn)算。設(shè)定位移量 Move[K]是子集G1[K]的散列運(yùn)算值、乘法旋轉(zhuǎn)量Round[K]是Gn[K]的散列運(yùn)算值、環(huán)運(yùn)算次數(shù) MRNumber[K]是 G1[K]⊕Gn[K]或 G1[K]%Gn[K]的散列運(yùn)算值。
基于群特征的運(yùn)算是點(diǎn)集“拓?fù)淙骸狈中巫兓铆h(huán)運(yùn)算,設(shè)定點(diǎn)集“拓?fù)淙骸狈中巫兓铆h(huán)運(yùn)算由單位拓?fù)淙悍中巫兓铆h(huán)運(yùn)算構(gòu)成,是該單位群的加法運(yùn)算。設(shè)定單位群是連續(xù)的單位環(huán)運(yùn)算。其中,單位環(huán)運(yùn)算是單位點(diǎn)集拓?fù)淙涵h(huán)運(yùn)算的簡(jiǎn)稱,是該點(diǎn)集先加法位移后,再乘法旋轉(zhuǎn)的運(yùn)算,而該分形變幻則是反復(fù)的“單位環(huán)”運(yùn)算。具體運(yùn)算流程如圖3所示。
圖3 點(diǎn)集拓?fù)淙悍中巫兓铆h(huán)運(yùn)算流程圖
“單位群”加法運(yùn)算的數(shù)學(xué)規(guī)定如下:
1)1個(gè)“單位群”+0個(gè)“單位群”=1個(gè)“單位群”,即進(jìn)行該連續(xù)的“單位環(huán)”運(yùn)算。
2)1個(gè)“單位群”+1個(gè)“單位群”=2個(gè)“單位群”,即進(jìn)行2連續(xù)的“單位環(huán)”運(yùn)算。
3)1個(gè)“單位群”+K個(gè)“單位群”=K+1個(gè)“單位群”,即K+1連續(xù)的“單位環(huán)”運(yùn)算。
點(diǎn)集拓?fù)淙悍中巫兓铆h(huán)運(yùn)算的流程步驟如下:
1)輸入集合G[K]及子集 G1[K],G2[K],…,Gn[K],初始化1個(gè)“單位群”運(yùn)算;
2)設(shè)定子集G1[K]為集合G[K]的自組織對(duì)象;
3)設(shè)定子集Gn[K]為集合G[K]的自組織對(duì)象;
4)設(shè)定Move[K]是G1[K]的散列運(yùn)算值,Round[K]是 Gn[K]的散列運(yùn)算值,MRNumber[K]是G1[K]⊕ Gn[K]或 G1[K]%Gn[K]的散列運(yùn)算值;
5)設(shè)定K個(gè)“單位群”運(yùn)算的循環(huán),K的初始化值為1;
6)設(shè)定1個(gè)“單位群”即一個(gè)連續(xù)環(huán)運(yùn)算及其運(yùn)算規(guī)則,循環(huán)次數(shù)為MRNumber[N]次;
7)設(shè)定K個(gè)“單位群”運(yùn)算的循環(huán)限制值;
8)輸出K個(gè)“單位群”運(yùn)算的點(diǎn)集“拓?fù)淙骸狈中巫兓铆h(huán)運(yùn)算值。
2.1.4 密鑰生成
運(yùn)用VC++實(shí)現(xiàn)點(diǎn)集拓?fù)浞中巫兓眠\(yùn)算如圖4所示。
圖4 點(diǎn)集拓?fù)浞中巫兓妹荑€生成程序運(yùn)行圖
打開(kāi)選擇特征數(shù)據(jù),本文選擇指紋圖像作為特征數(shù)據(jù),然后選擇變幻次數(shù),選擇100次,然后選擇保存路徑及保存名字,最后選擇應(yīng)用,變幻結(jié)果立即生成,且存入保存路徑的log.log文件中。
變幻結(jié)果如圖5所示,顯示由子集G1[K]和G[K]組成集合G[K]一系列數(shù)據(jù),其中m和m′分別表示G1和G2作平移旋轉(zhuǎn)操作的次數(shù)。從開(kāi)始到結(jié)束顯示每一系列數(shù)據(jù)都不同,呈現(xiàn)很大的變幻隨機(jī)性。
Move[K]、Round[K]、MRNumber[K]數(shù)值范圍從Move[1]=1、Round[1]=0、MRNumber[1]=3,直到100次單位點(diǎn)集“拓?fù)淙骸狈中巫兓铆h(huán)運(yùn)算,呈現(xiàn)Move[100]=6、Round[100]=0、MRNumber[100]=3。文件列從子集G1[2]和G2[2]組成的集合G[2]系列數(shù)據(jù)開(kāi)始,到子集 G1[101]和 G2[101]組成的集合 G[101]系列數(shù)據(jù)結(jié)束,是100組集合G[K]變幻數(shù)據(jù),第1組集合是初始數(shù)據(jù)。
圖5 密鑰生成結(jié)果圖(截圖)
利用此分形變幻的隨機(jī)序列作為密鑰對(duì)數(shù)據(jù)進(jìn)行加密,具有非常高的安全性,密鑰的生成以指紋圖像作為輸入特征值,具有唯一性、可靠性及更高的辨識(shí)性。
加密的過(guò)程就是根據(jù)密鑰和明文生成密文的過(guò)程[7-8],密鑰由指紋圖像經(jīng)過(guò)點(diǎn)集拓?fù)浞中巫兓枚?,密文由加密算法而得,具體過(guò)程如圖6所示。
圖6 加密過(guò)程圖
2.2.1 橢圓加密算法
本文采用橢圓機(jī)密算法,它與傳統(tǒng)的基于大質(zhì)數(shù)因子分解困難性的加密方法不同,橢圓加密算法ECC(Elliptic Curve Cryptosystems)通過(guò)橢圓曲線方程式的性質(zhì)產(chǎn)生密鑰,ECC 164位的密鑰產(chǎn)生一個(gè)安全級(jí),相當(dāng)于RSA 1 024位密鑰提供的保密強(qiáng)度,而且計(jì)算量較小,處理速度更快,存儲(chǔ)空間和傳輸帶寬占用較少,因此常被用于安全級(jí)高的加密系統(tǒng)中[9]。
橢圓曲線即三次平滑代數(shù)平面曲線(Smooth Algebraic Plane Curve),可在適當(dāng)?shù)淖鴺?biāo)下,表達(dá)成Weierstrass方程式
除了特殊系數(shù),一般而言,可在適當(dāng)?shù)淖鴺?biāo)下,表示為
在系數(shù)K上的平面圖形,其中E也包括無(wú)限遠(yuǎn)點(diǎn)O。
令E:y2=(x3+ax+b)mod p為一橢圓曲線,令P和Q為E(FP)上的兩點(diǎn),假設(shè)點(diǎn)Q由點(diǎn)P生成。在E上的離散對(duì)數(shù)問(wèn)題就是要解Q=[k]P的K值。
令E為定義在FP上的橢圓曲線,則E(FP)的個(gè)數(shù)滿足#E(Fp)=p+1+t,其中誤差項(xiàng) |t|<2,則
給定私有密鑰k,K=k·#E(Fp),就可計(jì)算出經(jīng)過(guò)加密后的公開(kāi)密鑰K,其中p的值越大,安全性越好,但加密速度變慢,一般而言,p取200 bit左右。
2.2.2 橢圓加密實(shí)現(xiàn)
首先通過(guò)點(diǎn)集拓?fù)渥兓脤⒅讣y圖像生成密鑰,然后將密鑰和要加密的明文,通過(guò)橢圓加密算法生成密文,密文通過(guò)相同的密鑰進(jìn)行解密,恢復(fù)原文,依據(jù)此功能,通過(guò)VC++開(kāi)發(fā)程序,程序界面圖如圖7所示。
圖7 橢圓加密程序運(yùn)行圖(截圖)
如圖7所示,對(duì)明文12981進(jìn)行橢圓加密,加密的密鑰來(lái)自于點(diǎn)集拓?fù)浞中巫兓眠\(yùn)算,加密后的密文為(646034,519257840)(672986,519297773),點(diǎn)擊“解密”按鈕,恢復(fù)為原文12981。采用此加密方法具有速度快、安全性高的優(yōu)點(diǎn)。
本文重點(diǎn)介紹了點(diǎn)集拓?fù)淙悍中巫兓眠\(yùn)算的指紋特征密鑰生成過(guò)程,隨機(jī)碼生成一直是加密過(guò)程的重要組成部分,該方法將數(shù)學(xué)的點(diǎn)集拓?fù)渑c分形變幻運(yùn)算兩者結(jié)合,采用該方法生成密鑰,隨機(jī)性高,不易被破解,而且算法速率高,具有一定的創(chuàng)新性和研究?jī)r(jià)值,同時(shí)采用安全性好且速度快的橢圓加密算法,完成明文至密文的加密過(guò)程。
本文只對(duì)云計(jì)算安全的數(shù)據(jù)加密系統(tǒng)進(jìn)行了研究,而對(duì)身份認(rèn)證、入侵檢測(cè)等保證用戶數(shù)據(jù)安全沒(méi)有做展開(kāi)研究,這是后續(xù)云計(jì)算安全研究中應(yīng)當(dāng)著重關(guān)注的問(wèn)題,同時(shí)也需要對(duì)基礎(chǔ)架構(gòu)安全和運(yùn)營(yíng)管理安全等方面進(jìn)行資料收集與調(diào)研,加強(qiáng)云計(jì)算安全防護(hù)體系。
[1]王培海.基于Android的移動(dòng)云存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011,35(15):94-97.
[2]ARSHAD J,TOWNEND P.Cloud computing security:opportunities and pitfalls[J].International Journal of Grid and High Performance Computing,2012,4(1):52-66.
[3]Overall cloud computing security risk assessment analysis[EB/OL].[2012-12-01]http://wenku.baidu.com/view/3caee9f04693daef5ef 73d02.html.
[4]ZHU Huahong,HE Qianhua,TANG Hong,et al.Voiceprint-biometric template design and authentication based on cloud computing security[C]//Proc.2011 International Conference on Cloud and Service Computing.Hong Kong,China:[s.n.],2011:302-308.
[5]黃汝維,桂小林,余思,等.云環(huán)境中支持隱私保護(hù)的可計(jì)算加密方法[J].計(jì)算機(jī)學(xué)報(bào),2011,34(12):2391-2402.
[6]朱和貴,張祥德,楊連平,等.基于人體指紋特征的隨機(jī)序列發(fā)生器[J].計(jì)算機(jī)研究與發(fā)展,2009,46(11):1862-1867.
[7]梁宇,路勁,劉笠熙,等.一種云計(jì)算環(huán)境下的加密模糊檢索方案[J].計(jì)算機(jī)科學(xué),2011,38(10):99-105.
[8]徐劍,周福才,陳旭,等.云計(jì)算中基于認(rèn)證數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)外包認(rèn)證模型[J].通信學(xué)報(bào),2011,32(7):153-160.
[9]LI Jin,WANG Qian,WANG Cong,et al.Fuzzy keyword search over encrypted data in cloud computing[EB/OL].[2012 -12 -05]http://www.docin.com/p-360587334.html.