專(zhuān)利名稱(chēng):基于密鑰池的云存儲(chǔ)加解密方法
基于密鑰池的云存儲(chǔ)加解密方法技術(shù)領(lǐng)域
本發(fā)明屬于安全技術(shù)領(lǐng)域,涉及密文云存儲(chǔ)的文件加密方法,可用于互聯(lián)網(wǎng)分布式云存儲(chǔ)。
背景技術(shù):
隨著社會(huì)信息化的快速發(fā)展帶來(lái)的數(shù)據(jù)海量劇增,基于互聯(lián)網(wǎng)分布式云存儲(chǔ)應(yīng)用越來(lái)越廣泛。大容量文件傳輸和存儲(chǔ)服務(wù)正在各行各業(yè)承擔(dān)起越來(lái)越重要的角色。分布式云存儲(chǔ)平臺(tái)是將文件存儲(chǔ)在網(wǎng)絡(luò)云中,文件的安全性和隱私性將是整個(gè)云存儲(chǔ)平臺(tái)安全的重點(diǎn),因此對(duì)文件加密存儲(chǔ)成為解決安全問(wèn)題的首選。而現(xiàn)今普遍采用的加密方式或多或少存在著安全系數(shù)的問(wèn)題。如何實(shí)現(xiàn)一種高安全級(jí)別的加密方法一直以來(lái)都是云存儲(chǔ)平臺(tái)對(duì)文件安全存儲(chǔ)的一個(gè)重要的課題。
當(dāng)前,基于如DES、AES等的對(duì)稱(chēng)加密算法因其加密、解密速度較快而被普遍應(yīng)用在文件傳輸和存儲(chǔ)中。然而,由于對(duì)稱(chēng)加解密算法的加密和解密都采用同一把密鑰,容易帶來(lái)密鑰泄露,安全性得不到保障。以ECC、RSA算法為代表的非對(duì)稱(chēng)加密算法在安全性上具有更高的強(qiáng)度,公私鑰對(duì)更富靈活性。不過(guò),非對(duì)稱(chēng)加解密算法普遍存在的問(wèn)題就是運(yùn)算量大,因而它并不適用于大文件的加解密。發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出一種基于密鑰池的云存儲(chǔ)加解密方法,將密鑰池引入文件加密中,使用多把密鑰對(duì)文件進(jìn)行對(duì)稱(chēng)加密和對(duì)密鑰進(jìn)行非對(duì)稱(chēng)加密,結(jié)合非對(duì)稱(chēng)和對(duì)稱(chēng)加解密算法以保證文件和密鑰的安全,提高云存儲(chǔ)平臺(tái)的安全性。
本申請(qǐng)發(fā)明的實(shí)現(xiàn)步驟如下
一種基于密鑰池的云存儲(chǔ)加解密方法,使用對(duì)稱(chēng)加解密與非對(duì)稱(chēng)加解密相結(jié)合, 分別加密文件和加密密鑰;隨機(jī)生成一個(gè)多密鑰的密鑰池,每把密鑰用非對(duì)稱(chēng)加解密算法進(jìn)行加密,構(gòu)成密文密鑰池,密文密鑰池存儲(chǔ)在該用戶(hù)所在的云端分布式云存儲(chǔ)服務(wù)器中; 加密文件時(shí),在源端把文件切分成若干塊;從密文密鑰池中按密鑰抽取算法取出一把密鑰 KEYTffOi, 1 ^ i ^ N, N為該用戶(hù)密鑰總數(shù);用用戶(hù)的私鑰KEY私鑰和非對(duì)稱(chēng)加解密算法解密后,得到密鑰KEYONEi ;使用對(duì)稱(chēng)加密算法加密該文件塊;解密文件時(shí),按密鑰抽取算法, 找到加密文件塊的相應(yīng)密鑰KEYTWOi,使用非對(duì)稱(chēng)加解密算法解密后,得到密鑰KEYONEi ; 使用對(duì)稱(chēng)加密算法解密該密文文件塊;再把解密后每個(gè)文件塊合并成原來(lái)的文件。
所述的云存儲(chǔ)加解密方法,所述的構(gòu)成密文密鑰池方法,按照變換規(guī)則,生成多把密鑰,形成一個(gè)密鑰池,用非對(duì)稱(chēng)加密算法的公鑰KEY公鑰對(duì)每把密鑰進(jìn)行加密,構(gòu)成密文密鑰池,存儲(chǔ)在云端分布式云存儲(chǔ)服務(wù)器。
所述的云存儲(chǔ)加解密方法,所述密鑰抽取算法包括線(xiàn)性抽取方式和非線(xiàn)性抽取方式。
所述的云存儲(chǔ)加解密方法,所述文件在用戶(hù)端被切片成固定大小的M塊文件塊; 對(duì)每一文件塊分別用不同密鑰加密;在密文密鑰池中按密鑰抽取算法抽取一把密文密鑰 KEYTWOi,用非對(duì)稱(chēng)加解密算法的私鑰解密生成密鑰KEYONEi,再用密鑰KEYONEi作為對(duì)稱(chēng)加密算法的密鑰對(duì)該文件塊進(jìn)行加密,分布存儲(chǔ)到密文云存儲(chǔ)平臺(tái)中。
所述的云存儲(chǔ)加解密方法,用戶(hù)可根據(jù)需要更新該用戶(hù)密文密鑰池,更新方法包括以下步驟
(1)用戶(hù)在終端隨機(jī)生成新的公私鑰對(duì)(NEWKEYmj5,NEffKEY^);
(2)從云存儲(chǔ)服務(wù)器獲取該用戶(hù)密文密鑰池中所有的密鑰KEYTWOi (1 ^ i彡N), 取i等于1 ;
(3)用老的私鑰(ΚΕΥ Λ )和非對(duì)稱(chēng)加密算法(ECC或RSA)對(duì)密文密鑰KEYTWOi進(jìn)行解密,生成明文密鑰KEYONEi ;
(4)用新的公鑰(NEWKEY公和非對(duì)稱(chēng)加密算法(ECC或RSA)對(duì)明文密鑰KEYONEi 進(jìn)行加密,生成新的密文密鑰KEYTWOi ;
(5)i自加1,跳到(3)步驟,直到循環(huán)N次,把所有密文密鑰更新,跳到(6)步驟;
(6)把更新后的密鑰池和新生成的公鑰NEWKEY4,更新到云存儲(chǔ)服務(wù)器。
所述的云存儲(chǔ)加解密方法,用戶(hù)可根據(jù)需要添加該用戶(hù)密文密鑰池中密鑰的數(shù)量,添加方法包括以下步驟(1)用戶(hù)在終端按照密鑰隨機(jī)生成算法,按需要生成一把或多把新密鑰NEWKEYONEi,1彡i彡L,L為大于等于1的整數(shù);
(2)從云存儲(chǔ)平臺(tái)中獲取該用戶(hù)密文密鑰池里的公鑰KEY4,;
(3)采用非對(duì)稱(chēng)加密算法用KEY4,加密所有新生成的NEWKEYONEi,1彡i彡L,并添加到云存儲(chǔ)服務(wù)器的密文密鑰池中;
(4)原密文密鑰池的密鑰總數(shù)為N,添加L把密鑰之后,總的密鑰數(shù)變成N+L。
本申請(qǐng)發(fā)明的有益效果是,用于基于個(gè)人用戶(hù)的密文云存儲(chǔ)領(lǐng)域,對(duì)文件塊進(jìn)行高安全級(jí)別的加密解密,保證文件的安全性和隱私性,提升個(gè)人云存儲(chǔ)平臺(tái)的可信賴(lài)性。在云存儲(chǔ)平臺(tái)中存儲(chǔ)的是該用戶(hù)的密文密鑰池和若干密文文件塊,不存儲(chǔ)任何形式的明文, 構(gòu)建成密文云存儲(chǔ)平臺(tái)。
圖1是本申請(qǐng)發(fā)明的密鑰池生成流程。
圖2是本申請(qǐng)發(fā)明的密鑰抽取算法。
圖3是本申請(qǐng)發(fā)明的文件分塊加密流程。
圖4是本申請(qǐng)發(fā)明的文件分塊解密流程。
圖5是本申請(qǐng)發(fā)明的更新密文密鑰池流程。
圖6是本申請(qǐng)發(fā)明的新密文密鑰添加流程。
具體實(shí)施方式
實(shí)施例1、密文密鑰池的生成
密鑰池的生成流程參照?qǐng)D1,下面介紹密鑰池生成的具體過(guò)程。
(1)取原始字符串χ
為了使生成的密鑰更加無(wú)序隨機(jī),密鑰生成算法采用盡可能多的隨機(jī)參數(shù)作為初 始種子。χ=用戶(hù)名(注冊(cè)用戶(hù)名)+當(dāng)前時(shí)間(表示為年月日時(shí)分秒毫秒)+用戶(hù)密碼的 MD5碼。并對(duì)χ做去符號(hào)處理,即是將χ中所有非字母和非數(shù)字的字符去棹。(2)設(shè)控制因子為k(隨機(jī)生成),k需要滿(mǎn)足(2a)為整數(shù);(2b) 0 ^ k ^ 127(3)對(duì)字符串中的每一字符x[i] (1彡i彡length (χ)即字符串χ的長(zhǎng)度)循環(huán)(3a)若i模2余數(shù)為1,即對(duì)所有的奇數(shù)位的字符χ [i],進(jìn)行如下轉(zhuǎn)化計(jì)算如果(x[i]+k> 127),則 χ [i] = χ [i] +k-127 ;否貝丨J,則x[i] = x[i]+k。(3b)若i模2余數(shù)為0,即對(duì)所有的偶數(shù)位的字符x[i],進(jìn)行如下轉(zhuǎn)化計(jì)算如果(x[i]+i> 127),則 χ[i] = χ[i] +i-127 ;否貝丨J,則x[i] = x[i]+i。如上轉(zhuǎn)化也可用如下公式表示
權(quán)利要求
1.一種基于密鑰池的云存儲(chǔ)加解密方法,其特征在于,使用對(duì)稱(chēng)加解密與非對(duì)稱(chēng)加解密相結(jié)合,分別加密文件和加密密鑰;隨機(jī)生成一個(gè)多密鑰的密鑰池,每把密鑰用非對(duì)稱(chēng)加解密算法進(jìn)行加密,構(gòu)成密文密鑰池,密文密鑰池存儲(chǔ)在該用戶(hù)所在的云端分布式云存儲(chǔ)服務(wù)器中;加密文件時(shí),在源端把文件切分成若干塊;從密文密鑰池中按密鑰抽取算法取出一把密鑰KEYTW0i,l彡i彡N,N為該用戶(hù)密鑰總數(shù);用用戶(hù)的私鑰KEY·和非對(duì)稱(chēng)加解密算法解密后,得到密鑰KEYONEi ;使用對(duì)稱(chēng)加密算法加密該文件塊;解密文件時(shí),按密鑰抽取算法,找到加密文件塊的相應(yīng)密鑰KEYTWOi,使用非對(duì)稱(chēng)加解密算法解密后,得到密鑰 KEYONEi ;使用對(duì)稱(chēng)加密算法解密該密文文件塊;再把解密后每個(gè)文件塊合并成原來(lái)的文件。
2.根據(jù)權(quán)利要求1所述的云存儲(chǔ)加解密方法,其特征在于,所述的構(gòu)成密文密鑰池方法,按照變換規(guī)則,生成多把密鑰,形成一個(gè)密鑰池,用非對(duì)稱(chēng)加密算法的公鑰KEY4,對(duì)每把密鑰進(jìn)行加密,構(gòu)成密文密鑰池,存儲(chǔ)在云端分布式云存儲(chǔ)服務(wù)器。
3.根據(jù)權(quán)利要求1所述的云存儲(chǔ)加解密方法,其特征在于,所述密鑰抽取算法包括線(xiàn)性抽取方式和非線(xiàn)性抽取方式。
4.根據(jù)權(quán)利要求1至3任一所述的云存儲(chǔ)加解密方法,其特征在于,所述文件在用戶(hù)端被切片成固定大小的M塊文件塊;對(duì)每一文件塊分別用不同密鑰加密;在密文密鑰池中按密鑰抽取算法抽取一把密文密鑰KEYTWOi,用非對(duì)稱(chēng)加解密算法的私鑰解密生成密鑰 KEYONEi,再用密鑰KEYONEi作為對(duì)稱(chēng)加密算法的密鑰對(duì)該文件塊進(jìn)行加密,分布存儲(chǔ)到密文云存儲(chǔ)平臺(tái)中。
5.根據(jù)權(quán)利要求1所述的云存儲(chǔ)加解密方法,其特征在于,用戶(hù)可根據(jù)需要更新該用戶(hù)密文密鑰池,更新方法包括以下步驟(1)用戶(hù)在終端隨機(jī)生成新的公私鑰對(duì)NEWKEY Λ 、NEWKEY 公鑰;(2)從云存儲(chǔ)服務(wù)器獲取該用戶(hù)密文密鑰池中所有的密鑰KEYTWOi,1彡i彡N,取i等于1 ;(3)用老的私鑰KEYiif^n非對(duì)稱(chēng)加密算法對(duì)密文密鑰KEYTWOi進(jìn)行解密,生成明文密鑰 KEYONEi ;(4)用新的公鑰NEWKEY4,和非對(duì)稱(chēng)加密算法對(duì)明文密鑰KEYONEi進(jìn)行加密,生成新的密文密鑰KEYTWOi ;(5)i自加1,跳到(3)步驟,直到循環(huán)N次,把所有密文密鑰更新,跳到(6)步驟;(6)把更新后的密鑰池和新生成的公鑰NEWKEY4,更新到云存儲(chǔ)服務(wù)器。
6.根據(jù)權(quán)利要求1所述的云存儲(chǔ)加解密方法,其特征在于,用戶(hù)可根據(jù)需要添加該用戶(hù)密文密鑰池中密鑰的數(shù)量,添加方法包括以下步驟(1)用戶(hù)在終端按照密鑰隨機(jī)生成算法,按需要生成一把或多把新密鑰NEWKEYONEi,1 ^ i ^ L, L為大于等于1的整數(shù);(2)從云存儲(chǔ)平臺(tái)中獲取該用戶(hù)密文密鑰池里的公鑰KEY4,;(3)采用非對(duì)稱(chēng)加密算法用KEY4,加密所有新生成的NEWKEYONEi,1彡i彡L,并添加到云存儲(chǔ)服務(wù)器的密文密鑰池中;(4)原密文密鑰池的密鑰總數(shù)為N,添加L把密鑰之后,總的密鑰數(shù)變成N+L。
全文摘要
本發(fā)明公開(kāi)了一種基于密鑰池的云存儲(chǔ)加解密方法,使用對(duì)稱(chēng)加解密與非對(duì)稱(chēng)加解密相結(jié)合,分別加密文件和加密密鑰;隨機(jī)生成一個(gè)多密鑰的密鑰池,每把密鑰用非對(duì)稱(chēng)加解密算法進(jìn)行加密,構(gòu)成密文密鑰池,密文密鑰池存儲(chǔ)在該用戶(hù)所在的云端分布式云存儲(chǔ)服務(wù)器中;加密文件時(shí),在源端把文件切分成若干塊;從密文密鑰池中按密鑰抽取算法取出一把密鑰KEYTWOi,用用戶(hù)的私鑰KEY私鑰和非對(duì)稱(chēng)加解密算法解密后,得到密鑰KEYONEi;使用對(duì)稱(chēng)加密算法加密該文件塊。對(duì)文件塊進(jìn)行高安全級(jí)別的加密解密,保證文件的安全性和隱私性,提升個(gè)人云存儲(chǔ)平臺(tái)的可信賴(lài)性。在云存儲(chǔ)平臺(tái)中存儲(chǔ)的是該用戶(hù)的密文密鑰池和若干密文文件塊。
文檔編號(hào)H04L29/08GK102546181SQ20121000360
公開(kāi)日2012年7月4日 申請(qǐng)日期2012年1月9日 優(yōu)先權(quán)日2012年1月9日
發(fā)明者于菊珍, 林燕, 王凱東 申請(qǐng)人:西安電子科技大學(xué)