亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種面向云計(jì)算的矩陣乘法外包過程中安全加密方法與流程

文檔序號(hào):12490885閱讀:508來源:國(guó)知局
一種面向云計(jì)算的矩陣乘法外包過程中安全加密方法與流程

本發(fā)明屬于云計(jì)算安全領(lǐng)域,更為具體地講,涉及一種面向云計(jì)算的矩陣乘法外包過程中安全加密方法。



背景技術(shù):

云計(jì)算為用戶提供經(jīng)濟(jì)高效的計(jì)算方案,用戶可以共享云服務(wù)器的計(jì)算資源和存儲(chǔ)資源,使用戶的計(jì)算能力不再受限于他們的設(shè)備。因此,一些計(jì)算資源不足的用戶可以按使用量付費(fèi)的方式把大規(guī)模的計(jì)算發(fā)送到計(jì)算能力強(qiáng)大的云服務(wù)器處理進(jìn)而節(jié)約計(jì)算成本。用戶把自己的計(jì)算任務(wù)發(fā)送給第三方計(jì)算的方式稱為外包計(jì)算。

盡管外包計(jì)算具有諸多的好處,但是直接把計(jì)算交給云服務(wù)器處理存在一些新的安全問題和挑戰(zhàn)。外包計(jì)算的任務(wù)中經(jīng)常包含一些敏感信息如金融交易記錄、顧客信息、個(gè)人身體健康數(shù)據(jù)等,但云服務(wù)器總是不可信的。因此,外包計(jì)算的最主要的問題是安全問題,即如何保護(hù)外包計(jì)算任務(wù)的輸入輸出數(shù)據(jù)的隱私。用戶端在外包計(jì)算前要對(duì)輸入數(shù)據(jù)加密,對(duì)云服務(wù)器端返回的結(jié)果進(jìn)行解密。其次,云服務(wù)器端的操作細(xì)節(jié)對(duì)用戶端是不透明的。云服務(wù)端可能為了自己的經(jīng)濟(jì)利益,減少計(jì)算次數(shù);同時(shí),黑客可以通過各種攻擊方式控制云服務(wù)器,從而篡改數(shù)據(jù),不按照協(xié)議執(zhí)行,甚至不執(zhí)行,返回錯(cuò)誤的結(jié)果。因此,檢驗(yàn)云服務(wù)器端返回結(jié)果的正確性是外包計(jì)算第二個(gè)問題。

現(xiàn)階段安全外包計(jì)算重點(diǎn)關(guān)注計(jì)算復(fù)雜度高且數(shù)據(jù)量大的科學(xué)計(jì)算。例如大規(guī)模的矩陣乘法、矩陣求逆、線性方程組以及線性規(guī)劃、序列比較等。

矩陣乘法計(jì)算問題的計(jì)算形式為Z=XY,其中X是維數(shù)m×n矩陣,Y是維數(shù)n×s矩陣,Z是維數(shù)m×s矩陣,m,n,s是矩陣的維數(shù)大小。矩陣X、Y為輸入數(shù)據(jù),矩陣Z是輸出數(shù)據(jù)(計(jì)算結(jié)果)。針對(duì)矩陣乘法安全外包計(jì)算算法,2014年,Lei等人在期刊Information Sciences卷280頁205–217上發(fā)表“Achieving security,robust cheating resistance,and high-efficiency for outsourcing large matrix multiplication computation to a malicious cloud”(面向惡意云的安全、防欺騙、高效外包大規(guī)模矩陣乘法計(jì)算)。矩陣乘法外包軟件完成,矩陣乘法外包軟件如圖1所示,由五個(gè)模塊組成,五個(gè)模塊為密鑰模塊、加密模塊、計(jì)算模塊、驗(yàn)證模塊、解密模塊。其中密鑰模塊、加密模塊、驗(yàn)證模塊、解密模塊安裝在用戶端。計(jì)算模塊安裝在云服務(wù)器端。密鑰模塊根據(jù)矩陣規(guī)模生成密鑰,把密鑰發(fā)送到加密模塊以及解密模塊。加密模塊利用密鑰對(duì)矩陣乘法問題加密生成加密的矩陣乘法問題,并把加密的矩陣乘法問題發(fā)送到計(jì)算模塊。計(jì)算模塊接收加密的矩陣乘法問題,計(jì)算加密的矩陣乘法問題,將計(jì)算結(jié)果發(fā)送給驗(yàn)證模塊。驗(yàn)證模塊對(duì)計(jì)算模塊返回的計(jì)算結(jié)果進(jìn)行驗(yàn)證,若計(jì)算結(jié)果通過驗(yàn)證,把計(jì)算結(jié)果發(fā)送給解密模塊,否則,返回給計(jì)算模塊重新計(jì)算。解密模塊利用密鑰對(duì)通過驗(yàn)證的計(jì)算結(jié)果解密獲得最終的計(jì)算結(jié)果。該方案包括以下步驟:

第一步,構(gòu)造矩陣乘法外包軟件,從輸入文件讀入要進(jìn)行矩陣乘法計(jì)算的矩陣X和矩陣Y,X是維數(shù)m×n矩陣,Y是維數(shù)n×s矩陣,m,n,s是正整數(shù)。

第二步,密鑰模塊根據(jù)矩陣規(guī)模生成密鑰。

2.1密鑰模塊根據(jù)m,n,s的值,其中m,n,s為矩陣的維數(shù)大小,生成1,2,…,m的置換函數(shù)π1,1,2,…,n的置換函數(shù)π2,1,2,…,s的置換函數(shù)π3

2.2密鑰模塊根據(jù)置換函數(shù)π1,π2,π3隨機(jī)選取m+n+s個(gè)隨機(jī)值r1,...,rm,rm+1,...,rm+n,rm+n+1,...,rm+n+s。根據(jù)公式(1)、(2)、(3)分別生成m個(gè)維數(shù)為m×m的初等轉(zhuǎn)換矩陣A1,…,Ae,…,Am(1≤e≤m),n個(gè)維數(shù)為n×n初等轉(zhuǎn)換矩陣B1,…,Bf,…,Bn(1≤f≤n),s個(gè)維數(shù)為s×s初等轉(zhuǎn)換矩陣C1,…,Cg,…,Cs(1≤g≤s)。

其中Ae(i1,j1)為矩陣Ae第i1行第j1列元素,Bf(i2,j2)為矩陣Bf第i2行第j2列元素,Cg(i3,j3)為矩陣Cg第i3行第j3列元素。

2.3密鑰模塊計(jì)算P1=A1×A2×…×Am,P1-1=A1-1×A2-1×…×Am-1,P2=B1×B2×…×Bn,P2-1=B1-1×B2-1×…×Bn-1,P3=C1×C2×…×Cs,P3-1=C1-1×C2-1×…×Cs-1。

2.4以上生成的參數(shù)構(gòu)成密鑰SK={P1,P2,P3,π1,π2,π3,r1,...,rm+n+s}。

第三步,加密模塊利用密鑰加密矩陣乘法問題。

3.1加密模塊計(jì)算X′=P1×X×P2-1,其中矩陣X′第i4行第j4列元素為也就是說,矩陣X′第i4行第j4列元素為矩陣X第π1(i4)行第π2(j4)列元素乘以獲得。

3.2加密模塊計(jì)算Y′=P2×Y×P3-1,其中矩陣Y′第i5行第j5列元素為也就是說,矩陣Y′第i5行第j5列元素為矩陣Y第π2(i5)行第π3(j5)列元素乘以獲得。

3.3加密模塊把加密的矩陣X′和Y′發(fā)送給云服務(wù)器端的計(jì)算模塊。

第四步,計(jì)算模塊計(jì)算加密的矩陣乘法問題。

4.1計(jì)算模塊從用戶端的加密模塊接收加密的矩陣X′和Y′后,計(jì)算Z′=X′×Y′。

4.2將計(jì)算結(jié)果Z′發(fā)送給用戶端的驗(yàn)證模塊。

第五步,驗(yàn)證模塊驗(yàn)證計(jì)算結(jié)果。

5.1驗(yàn)證模塊生成l個(gè)隨機(jī)向量ri(i∈[1,l]),其中ri為維數(shù)s×1的列向量,l值大小由驗(yàn)證模塊隨機(jī)選擇。

5.2驗(yàn)證模塊驗(yàn)證X′×(Y′×ri)是否等于Z′×ri。

5.3若相等,表示驗(yàn)證通過,驗(yàn)證模塊接受計(jì)算結(jié)果Z′,轉(zhuǎn)第六步;否則,拒絕計(jì)算結(jié)果Z′,轉(zhuǎn)第四步。

第六步,解密模塊解密最終的計(jì)算結(jié)果。

6.1根據(jù)密鑰P1,P3和通過驗(yàn)證的計(jì)算結(jié)果Z′,解密模塊計(jì)算Z=P1-1×Z′×P3,獲得計(jì)算結(jié)果Z。

由第三步3.1和3.2看出,這種矩陣乘法外包方案只保護(hù)了輸入矩陣X和Y中非零元素的隱私,忽略了零元素個(gè)數(shù)的保護(hù),導(dǎo)致了數(shù)據(jù)隱私泄露。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)泄露數(shù)據(jù)隱私的不足,提供一種面向云計(jì)算的矩陣乘法安全外包過程中安全加密方法,相比現(xiàn)有的方案,能更好地保護(hù)矩陣乘法輸入數(shù)據(jù)隱私。

本發(fā)明面向云計(jì)算的矩陣乘法外包過程中安全加密方法通過改進(jìn)背景技術(shù)矩陣乘法安全外包計(jì)算算法中矩陣乘法外包軟件完成。改進(jìn)后的矩陣乘法外包軟件也由密鑰模塊、加密模塊、計(jì)算模塊、驗(yàn)證模塊、解密模塊組成。其中密鑰模塊、加密模塊、驗(yàn)證模塊、解密模塊安裝在用戶端。計(jì)算模塊安裝在云服務(wù)器端。

本發(fā)明技術(shù)方案是:

第一步,改進(jìn)矩陣乘法外包軟件,改進(jìn)后的矩陣乘法外包軟件也由密鑰模塊、加密模塊、計(jì)算模塊、驗(yàn)證模塊、解密模塊組成,其中計(jì)算模塊、驗(yàn)證模塊沒有改變,密鑰模塊、加密模塊、解密模塊都與背景技術(shù)矩陣乘法外包軟件中的相應(yīng)模塊不同。把密鑰模塊、加密模塊、驗(yàn)證模塊、解密模塊安裝在用戶端,計(jì)算模塊安裝在云服務(wù)器端。加密模塊利用密鑰對(duì)矩陣乘法問題加密生成加密的矩陣乘法問題,并把加密的矩陣乘法問題發(fā)送到計(jì)算模塊。計(jì)算模塊接收加密的矩陣乘法問題,計(jì)算加密的矩陣乘法問題,將計(jì)算結(jié)果發(fā)送給驗(yàn)證模塊。驗(yàn)證模塊對(duì)計(jì)算模塊返回的計(jì)算結(jié)果進(jìn)行驗(yàn)證,若計(jì)算結(jié)果通過驗(yàn)證,把計(jì)算結(jié)果發(fā)送給解密模塊,否則,返回給計(jì)算模塊重新計(jì)算。解密模塊利用密鑰對(duì)通過驗(yàn)證的計(jì)算結(jié)果解密獲得最終的計(jì)算結(jié)果。從輸入文件讀入要進(jìn)行矩陣乘法計(jì)算的矩陣X和矩陣Y。

第二步,密鑰模塊根據(jù)矩陣規(guī)模生成密鑰。

2.1密鑰模塊根據(jù)矩陣的維數(shù)m,n,s的值選擇一個(gè)正整數(shù)k,k值的范圍為2≤k≤0.01×min(m,n,s),其中min(m,n,s)表示m,n,s中的最小值。

2.2密鑰模塊生成采用隨機(jī)函數(shù)(如Matlab語言和C語言中的srand和rand函數(shù))生成4k個(gè)隨機(jī)向量a1,…,ak,b1,…,bk,c1,…,ck,d1,…,dk,其中a1,…,ak為維數(shù)為m×1的列向量,b1,…,bk,c1,…,ck為維數(shù)為n×1的列向量,d1,…,dk為維數(shù)為s×1的列向量。以上生成的向量構(gòu)成密鑰SK={a1,…,ak,b1,…,bk,c1,…,ck,d1,…,dk}。

第三步,加密模塊利用密鑰加密矩陣乘法問題。

3.1加密模塊生成矩陣Z1和Z2

3.2加密模塊計(jì)算X′=X+Z1,其中矩陣X′第i6行第j6列元素為X′(i6,j6)=X(i6,j6)+Z1(i6,j6)(1≤i6≤m,1≤j6≤n),也就是說,第i6行第j6列元素為矩陣X第i6行第j6列元素加上矩陣Z1第i6行第j6列元素獲得。

3.3加密模塊計(jì)算Y′=Y(jié)+Z2,其中矩陣Y′第i7行第j7列元素為Y′(i7,j7)=Y(jié)(i7,j7)+Z2(i7,j7)(1≤i7≤n,1≤j7≤s),也就是說,矩陣Y′第i7行第j7列元素為矩陣Y第i7行第j7列元素加上矩陣Z2第i7行第j7列元素獲得。

3.4加密模塊把加密的矩陣X′和Y′發(fā)送給云服務(wù)器端的計(jì)算模塊。

第四步,計(jì)算模塊計(jì)算加密的矩陣乘法問題。

4.1計(jì)算模塊從用戶端的加密模塊接收加密的矩陣X′和Y′后,計(jì)算Z′=X′×Y′。

4.2將計(jì)算結(jié)果Z′發(fā)送給用戶端的驗(yàn)證模塊。

第五步,驗(yàn)證模塊驗(yàn)證計(jì)算結(jié)果。

5.1驗(yàn)證模塊生成l個(gè)隨機(jī)向量ri(i∈[1,l]),其中ri為維數(shù)s×1的列向量,l值大小由驗(yàn)證模塊隨機(jī)選擇。

5.2驗(yàn)證模塊驗(yàn)證X′×(Y′×ri)是否等于Z′×ri

5.3若相等,表示驗(yàn)證通過,驗(yàn)證模塊接受計(jì)算結(jié)果Z′,轉(zhuǎn)第六步;否則,拒絕計(jì)算結(jié)果Z′,轉(zhuǎn)第四步。

第六步,解密模塊解密最終的計(jì)算結(jié)果。

6.1解密模塊計(jì)算矩陣S:

6.2解密模塊計(jì)算Z=Z′-S,獲得計(jì)算結(jié)果Z。

采用本發(fā)明可以達(dá)到以下技術(shù)效果:

為了保護(hù)輸入矩陣的隱私,本發(fā)明在第三步3.3和3.4加密模塊對(duì)輸入矩陣X、Y分別加上矩陣Z1和Z2,加密了矩陣X、Y中的每個(gè)元素,保護(hù)了每個(gè)元素的隱私,包括零元素的個(gè)數(shù),更好地保護(hù)了輸入數(shù)據(jù)的隱私。

附圖說明

圖1為背景技術(shù)矩陣乘法外包軟件的邏輯結(jié)構(gòu)圖。

圖2為本發(fā)明的流程圖。

具體實(shí)施方式

下面對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行描述。如圖2所示,本發(fā)明包括以下步驟:

第一步,改進(jìn)矩陣乘法外包軟件,從輸入文件讀入要計(jì)算的矩陣X和矩陣Y。

第二步,密鑰模塊根據(jù)矩陣規(guī)模生成密鑰:

2.1,密鑰模塊確定正整數(shù)k。

2.2,密鑰模塊隨機(jī)生成4k個(gè)向量a1,…,ak,b1,…,bk,c1,…,ck和d1,…,dk

第三步,加密模塊對(duì)矩陣乘法問題加密:

3.1,加密模塊根據(jù)第二步2.2密鑰SK={a1,…,ak,b1,…,bk,c1,…,ck,d1,…,dk}生成矩陣Z1和Z2。

3.2,矩陣X加上矩陣Z1,實(shí)現(xiàn)對(duì)矩陣X的加密。

3.3,矩陣Y加上矩陣Z2,實(shí)現(xiàn)對(duì)矩陣Y的加密。

3.4,加密模塊把加密的矩陣X′和Y′發(fā)送給云服務(wù)器端的計(jì)算模塊。

第四步,計(jì)算模塊計(jì)算加密的矩陣乘法問題:

4.1,云服務(wù)器的計(jì)算模塊執(zhí)行對(duì)Z′=X′×Y′的計(jì)算。

4.2,將Z′發(fā)送給用戶端的驗(yàn)證模塊。

第五步,驗(yàn)證模塊驗(yàn)證計(jì)算結(jié)果:

5.1,驗(yàn)證模塊生成l個(gè)隨機(jī)向量ri。

5.2,驗(yàn)證模塊驗(yàn)證X′×(Y′×ri)是否等于Z′×ri

5.3,若相等,表示驗(yàn)證通過,驗(yàn)證模塊接受計(jì)算結(jié)果Z′,轉(zhuǎn)第六步;否則,拒絕計(jì)算結(jié)果Z′,轉(zhuǎn)第四步。

第六步,解密模塊解密最終的計(jì)算結(jié)果:

6.1,解密模塊根據(jù)第二步2.2密鑰SK={a1,…,ak,b1,…,bk,c1,…,ck,d1,…,dk}計(jì)算矩陣S。

6.2,計(jì)算Z=Z′-S,獲得最終的計(jì)算結(jié)果Z。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1