崔 蕾,邵天會(huì)
(煙臺(tái)職業(yè)學(xué)院,山東 煙臺(tái) 264670)
隨著數(shù)據(jù)的重要性日益增強(qiáng),數(shù)據(jù)安全越發(fā)得到人們的重視,大數(shù)據(jù)云存儲(chǔ)安全的重要性不言而喻,在針對云存儲(chǔ)數(shù)據(jù)加密方式中,隱式加密因?yàn)椴恍枰罔€,并且在保證安全性同時(shí)提高了加密解密效率,從而得到廣泛應(yīng)用,目前比較好的隱式加密算法(K,K)和(K,N)數(shù)據(jù)存儲(chǔ)方式,這兩種加密方式的改進(jìn)不乏優(yōu)秀的算法,但是往往保證了安全性卻損失了加密效率,改進(jìn)分割數(shù)據(jù)的處理方式是提高效率和保證數(shù)據(jù)安全性的關(guān)鍵環(huán)節(jié)。
改進(jìn)的加密方案主要在數(shù)據(jù)分割階段,首先將數(shù)據(jù)分割為等長度的N部分ri,將每個(gè)ri分割為K塊,再進(jìn)行(K,N)操作,把K塊進(jìn)行映射為N,其中K<=N,即(r1,r2,…rk)映射到集合(d1,d2,…dk),如圖1所示。
圖1 數(shù)據(jù)平均分割模塊圖
因此對每個(gè)ri進(jìn)行二次分割后構(gòu)成(r11,r12,…r1k),(r21,r22,…r2k),…(rn1,rn2,…rnk),如圖2所示。
圖2 數(shù)據(jù)子塊分割模型圖
因?yàn)槊總€(gè)ri為等長的N,因此每個(gè)rik可以構(gòu)成N個(gè)線性方程:
b11r11+b12r12+…+b1kr1k=e11
b21r11+b22r12+…+b2kr1k=e12
…
bn1r11+bn2r12+…+bnkr1k=e1n
其中bij是數(shù)域P中任意值,并且生成N個(gè)數(shù)據(jù)。
同理:
b11ri1+b12ri2+…+b1krik=ei1
b21ri1+b22ri2+…+b2krik=ei2
…
bn1ri1+bn2ri2+…+bnkrik=ein
存儲(chǔ)數(shù)據(jù)時(shí)對數(shù)據(jù)N冗余存儲(chǔ)操作,線性方程組表示為矩陣形式b*r=e:
我們從矩陣b中任意選取k*k方陣,不難得出系數(shù)b(k*k)矩陣是可逆的,令b系數(shù)不全為0,目前b和r中一列相關(guān),為了加強(qiáng)關(guān)聯(lián)性,b*r*b=e′(e′為新生成的矩陣),保證e和b,r中的每個(gè)行列值都相關(guān),因此增強(qiáng)了數(shù)據(jù)的關(guān)聯(lián)性,增加數(shù)據(jù)的安全性。因?yàn)閎(k*k)是可逆的,恢復(fù)數(shù)據(jù)r我們需要把其中的任意的k個(gè)數(shù)據(jù)進(jìn)行如下操作r=b-1*e′*b-1:
在分割數(shù)據(jù)階段可以借鑒MapReduce原理,構(gòu)造map函數(shù)[4],對數(shù)據(jù)進(jìn)行中間值的提取,對中間值進(jìn)行算法的二次分割,也就是進(jìn)行2次map操作,得到的數(shù)據(jù)結(jié)果我們終止reduce操作,提取Map數(shù)據(jù)結(jié)果進(jìn)行改進(jìn)的算法的運(yùn)算,這樣提高了數(shù)據(jù)分割的效率,并且適應(yīng)于大數(shù)據(jù)的操作,但是對于小數(shù)據(jù)來說,開銷沒有減少。
利用5個(gè)服務(wù)器進(jìn)行操作,其中4個(gè)用于存儲(chǔ)數(shù)據(jù),1個(gè)用來算法的執(zhí)行,四份數(shù)據(jù)被分成x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,d1,d2,d3,d4,同時(shí)把四份數(shù)據(jù)定為x=x1x2x3x4,y=y1y2y3y4,z=z1z2z3z4,d=d1d2d3d4,數(shù)據(jù)x,y,z,d分別存放在4個(gè)服務(wù)器中,負(fù)責(zé)計(jì)算的服務(wù)器進(jìn)行m=x*y*z*dmodp,n=(x+y+z+d)modp,k=(xy+xz+xd+yz+yd+zd)modp,j=(xyz+xyd+yzd+xzd)modp操作,其中p為大素?cái)?shù)。
計(jì)算過程中每個(gè)服務(wù)器都進(jìn)行四個(gè)方程的模運(yùn)算,例如計(jì)算j=(xyz+xyd+yzd+xzd)modp操作:
第一步:
1)server1計(jì)算w1=x1y1z1+x1y1d1+y1z1d1+x1z1d1,得到隨機(jī)數(shù)n1,將n1*w1,得到結(jié)果s1=n1*w1,n1x1y1z1,n1x1y1d1,n1y1z1d1,n1x1z1d1發(fā)到server5;
2)server2計(jì)算w2=x2y2z2+x2y2d2+y2z2d2+x2z2d2,得到隨機(jī)數(shù)n2,將n2*w2,得到結(jié)果s2=n2*w2,n2x2y2z2,n2x2y2d2,n2y2z2d2,n2x2z2d2發(fā)到server5;
3)同理分別在server3、server4計(jì)算w3,w4,得到隨機(jī)數(shù)n3,將n3*w3,n4*w4,得到s3,s4,發(fā)送到server5。
第二步:服務(wù)器server5進(jìn)行計(jì)算操作
1)s1*s2*s3*s4=n1w1n2w2n3w3n4w4相乘運(yùn)算;
2)將server1、server2、server3、server4發(fā)送到server5的數(shù)據(jù)進(jìn)行乘積運(yùn)算;
3)用1)減2)各項(xiàng)的和,得到s;
4)server5把結(jié)果s分成4份,r1,r2,r3,r4,并且滿足s=r1*r2*r3*r4,然后將r1發(fā)到server1,r2發(fā)到server2,r3發(fā)到server3,r4發(fā)到server4。
第三步:server1、server2、server3、server4分別計(jì)算r1/n1,r2/n2,r3/n3,r4/n4r4/n4,然后計(jì)算四個(gè)數(shù)的乘積,顯然得出(r1/n1)(r2/n2)(r3/n3)(r4/n4)=(r1*r2*r3*r4)/(n1*n2*n3*n4)=s/(n1*n2*n3*n4)=xyz+xyd+yzd+xzd。
同理進(jìn)行其他的運(yùn)算。
本實(shí)驗(yàn)硬件環(huán)境采用4臺(tái)主機(jī)作為存儲(chǔ)服務(wù)器,4臺(tái)主機(jī)配置相同,CPU為i7-7740X,主頻4.3Ghz,內(nèi)存16G,內(nèi)核數(shù)為4,線程為8,1臺(tái)主機(jī)作為計(jì)算機(jī)服務(wù)器, CPU為i7-7800X,主頻3.5Ghz(最高為4.0Ghz),內(nèi)存16G,內(nèi)核數(shù)為6,線程為12,1臺(tái)主機(jī)作為攻擊服務(wù)器,配置和計(jì)算機(jī)服務(wù)器相同。軟件環(huán)境操作系統(tǒng)采用win10、JDK1.8環(huán)境配置,開發(fā)工具Eclipse4.7.0,使用JAVA語言開發(fā),根據(jù)MapReduce原理構(gòu)造新的map函數(shù),應(yīng)用在4臺(tái)存儲(chǔ)服務(wù)器上,在計(jì)算服務(wù)器上對改進(jìn)的隱式加密算法進(jìn)行數(shù)據(jù)的計(jì)算。
從數(shù)據(jù)庫中抽取記錄數(shù)為870的記錄集,對記錄集進(jìn)行不同k,n值(2,3),(3,3),(2,4)的數(shù)據(jù)分塊,并對分塊后的數(shù)據(jù)進(jìn)行改進(jìn)的隱式加密算法運(yùn)算,p取值3,攻擊服務(wù)器對其中的2、3、4臺(tái)存儲(chǔ)服務(wù)器進(jìn)行數(shù)據(jù)竊取還原,不同的k,n取值進(jìn)行足夠多次數(shù)的數(shù)據(jù)竊取還原操作,通過結(jié)果分析得出折線圖3。
安全性分析,只要負(fù)責(zé)存儲(chǔ)的四個(gè)服務(wù)器不同時(shí)進(jìn)行合謀,其他的任何服務(wù)器之間合謀都不能夠產(chǎn)生數(shù)據(jù)的泄露,即使負(fù)責(zé)運(yùn)算的服務(wù)器和其中的3個(gè)負(fù)責(zé)存儲(chǔ)的服務(wù)器進(jìn)行合謀也無法獲得正確的數(shù)據(jù)。計(jì)算量分析,運(yùn)算在簡單的加法和乘法中進(jìn)行,沒有對數(shù)、乘方等復(fù)雜運(yùn)算,運(yùn)算的時(shí)間得到了保證。算法沒有進(jìn)行加密操作,因此沒有密鑰的產(chǎn)生,無需保存密鑰,同時(shí)也沒有產(chǎn)生加密字典,各個(gè)數(shù)據(jù)在不同的服務(wù)器存儲(chǔ),數(shù)據(jù)進(jìn)行二次分割后并且進(jìn)行了N冗余數(shù)據(jù)處理,每個(gè)數(shù)據(jù)的獲取難度增加到P的指數(shù)級,同時(shí)我們在進(jìn)行計(jì)算中沒有復(fù)雜的乘方等運(yùn)算,從而提高了運(yùn)算的速度,我們引進(jìn)了MapReduce思想進(jìn)行分割數(shù)據(jù),使整個(gè)算法的效率得到提高。