1.一種面向云計(jì)算的矩陣乘法外包過(guò)程中安全加密方法,該方法由矩陣乘法外包軟件完成,矩陣乘法外包軟件由密鑰模塊、加密模塊、計(jì)算模塊、驗(yàn)證模塊、解密模塊組成,其中密鑰模塊、加密模塊、驗(yàn)證模塊、解密模塊安裝在用戶端,計(jì)算模塊安裝在云服務(wù)器端;其特征在于一種面向云計(jì)算的矩陣乘法外包過(guò)程中安全加密方法包括以下步驟:
第一步,改進(jìn)矩陣乘法外包軟件的密鑰模塊、加密模塊、解密模塊,從輸入文件讀入要進(jìn)行矩陣乘法計(jì)算的矩陣X和矩陣Y,X是維數(shù)m×n矩陣,Y是維數(shù)n×s矩陣,m,n,s是正整數(shù);
第二步,密鑰模塊根據(jù)矩陣規(guī)模生成密鑰,方法是:
2.1密鑰模塊根據(jù)矩陣的維數(shù)m,n,s的值選擇一個(gè)正整數(shù)k;
2.2密鑰模塊采用隨機(jī)函數(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的列向量;這4k個(gè)隨機(jī)向量構(gòu)成密鑰SK={a1,…,ak,b1,…,bk,c1,…,ck,d1,…,dk};
第三步,加密模塊利用密鑰加密矩陣乘法問(wèn)題,方法是:
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,即矩陣X′第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ì)算加密的矩陣乘法問(wèn)題,方法是:
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)證通過(guò),驗(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。
2.如權(quán)利要求1所述的一種面向云計(jì)算的矩陣乘法外包過(guò)程中安全加密方法,其特征在于所述k值的范圍為2≤k≤0.01×min(m,n,s),其中min(m,n,s)表示m,n,s中的最小值。