本發(fā)明涉及數(shù)據(jù)加密,具體地,涉及一種區(qū)塊鏈數(shù)據(jù)加密解密方法及系統(tǒng)。
背景技術:
1、區(qū)塊鏈是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式,其中,共識機制是區(qū)塊鏈系統(tǒng)中實現(xiàn)不同節(jié)點之間建立信任、獲取權益的數(shù)學算法。區(qū)塊鏈本質上是一個去中心化的數(shù)據(jù)庫,同時作為底層技術,是一串使用密碼學方法相關聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個數(shù)據(jù)塊中包含了一批次網(wǎng)絡交易的信息,用于驗證其信息的有效性和生成下一個區(qū)塊。由于區(qū)塊鏈上的數(shù)據(jù)無法刪除和篡改,當用戶發(fā)現(xiàn)部分地址或交易信息泄露時已經(jīng)為時已晚,無法采取挽救措施,因此與傳統(tǒng)領域相比,區(qū)塊鏈的隱私保護問題更加重要。
2、大部分區(qū)塊鏈環(huán)境數(shù)據(jù)上鏈都是明文上鏈或通過哈希上鏈。在密文情況下是對整條報文進行加密,然后上鏈。
3、哈希上鏈需要在其他地方存儲明文數(shù)據(jù),在數(shù)據(jù)隱私保護方面存在不安全性,在數(shù)據(jù)共享上存在隱私數(shù)據(jù)泄露,這樣操作進行數(shù)據(jù)共享時顆粒度太大,會導致一些隱私數(shù)據(jù)泄露。
4、對整體報文加密在實現(xiàn)數(shù)據(jù)共享上無法做到細顆粒度的共享,造成一些隱私數(shù)據(jù)的泄露,而且如果秘鑰泄露會導致整個報文數(shù)據(jù)被破譯。
5、而申請?zhí)枮?01410782683.0的中國發(fā)明專利申請:《數(shù)據(jù)加密和解密的方法、裝置以及通信系統(tǒng)》,其技術方案具體為:將待加密數(shù)據(jù)進行分段,產(chǎn)生分段數(shù)據(jù);針對所述待加密數(shù)據(jù)隨機選擇加密算法;隨機生成與所述加密算法對應的密鑰;利用所述加密算法和密鑰對所述待加密數(shù)據(jù)進行加密,得到加密后的分段數(shù)據(jù);將所述加密后的分段數(shù)據(jù)進行打包,得到加密后的分段數(shù)據(jù)塊;組合打包所述加密后的分段數(shù)據(jù)塊,得到最終密文。該方案應用于通信領域,并且對加密數(shù)據(jù)只是做簡單的分段處理,數(shù)據(jù)的安全性還有待提高。
技術實現(xiàn)思路
1、本發(fā)明為解決現(xiàn)有技術區(qū)塊鏈數(shù)據(jù)傳輸存在數(shù)據(jù)安全性有待提高的技術問題,本發(fā)明提供了一種區(qū)塊鏈數(shù)據(jù)加密解密方法及系統(tǒng),本發(fā)明采用的技術方案是:
2、本發(fā)明第一方面提供了一種區(qū)塊鏈數(shù)據(jù)加密方法,包括以下步驟:
3、a1,對用戶請求數(shù)據(jù)進行分切處理,依次得到m個數(shù)據(jù)包;
4、a2,根據(jù)所述m個數(shù)據(jù)包的生成時間,對所述m個數(shù)據(jù)包分別進行時間戳標記處理,得到m個包含時間戳的數(shù)據(jù)包;
5、a3,對所述m個包含時間戳的數(shù)據(jù)包分別進行密鑰加密處理,依次得到m個加密數(shù)據(jù)包;
6、a4,根據(jù)所述m個加密數(shù)據(jù)包的生成時間,對所述m個加密數(shù)據(jù)包分別進行時間戳標記處理,得到m個包含時間戳的加密數(shù)據(jù)包;
7、a5,對所述m個包含時間戳的加密數(shù)據(jù)包分別采用進行二次加密處理,得到包括m個加密數(shù)據(jù)二次包及其對應的m個哈希值的最終密文;
8、其中,所述用戶請求數(shù)據(jù)包括模型名、表名、字段名以及用戶名;m為正整數(shù)。
9、作為一種優(yōu)選方案,在步驟a1中,對用戶請求數(shù)據(jù)進行分切處理,得到m個數(shù)據(jù)包的方法包括:
10、對用戶請求數(shù)據(jù)進行分切處理,得到m=3個數(shù)據(jù)包,并分別記作第一數(shù)據(jù)包、第二數(shù)據(jù)包以及第三數(shù)據(jù)包;
11、對用戶請求數(shù)據(jù)進行分切處理,得到第一數(shù)據(jù)包、第二數(shù)據(jù)包以及第三數(shù)據(jù)包的具體方法為:
12、通過預設序列將所述用戶請求數(shù)據(jù)分切為n個數(shù)據(jù)段;
13、摘取x個數(shù)據(jù)段組成第一數(shù)據(jù)包;
14、摘取y個數(shù)據(jù)段組成第二數(shù)據(jù)包;
15、摘取z個數(shù)據(jù)段組成第三數(shù)據(jù)包;
16、其中,x、y以及z均為正整數(shù),且x+y+z=n。
17、作為一種優(yōu)選方案,所述第一數(shù)據(jù)的x個數(shù)據(jù)段在所述用戶請求數(shù)據(jù)中的位置互不相鄰;所述第二數(shù)據(jù)的y個數(shù)據(jù)段在所述用戶請求數(shù)據(jù)中的位置互不相鄰;所述第三數(shù)據(jù)的z個數(shù)據(jù)段在所述用戶請求數(shù)據(jù)中的位置互不相鄰。
18、作為一種優(yōu)選方案,通過預設序列將所述用戶請求數(shù)據(jù)分切為n個數(shù)據(jù)段的具體方法為:
19、通過預設序列將所述用戶請求數(shù)據(jù)無規(guī)則不等分地分切為n個數(shù)據(jù)段,所述n個數(shù)據(jù)段對應的字節(jié)數(shù)互不相等。
20、作為一種優(yōu)選方案,在步驟a3中,對所述m個包含時間戳的數(shù)據(jù)包分別進行密鑰加密處理,依次得到m個加密數(shù)據(jù)包的方法包括:
21、將數(shù)據(jù)包的時間戳結合所述模型名、表名、字段名以及用戶名通過預設的哈希函數(shù)生成對應的密鑰,最后通過對應的密鑰對數(shù)據(jù)包進行密鑰加密處理,得到對應的加密數(shù)據(jù)包。
22、作為一種優(yōu)選方案,在步驟a5中,所述二次加密處理的方法具體為:
23、a51,將加密數(shù)據(jù)包的時間戳作為隨機數(shù)種子,生成對應的一個64byte的隨機數(shù);
24、a52,根據(jù)生成的隨機數(shù)生成調(diào)度因子,隨機選取隨機數(shù)的8個比特位并按順序組合起來,生成一個無符號整型u,然后對無符號整型u進行取余計算,得到取余結果;
25、a53,根據(jù)所述取余結果確定雜湊算法,使用確定好的雜湊算法對所述隨機數(shù)進行計算,生成新的64byte的隨機數(shù);
26、a54,將新的64byte隨機數(shù)分成8組,每組8byte;通過異或運算計算1組+2組+3組+4組+5組+6組+7組+8組,以得到一個8byte的調(diào)度因子;
27、a55,利用所述8byte的調(diào)度因子對對應的加密數(shù)據(jù)包進行若干種加密算法的組合加密,得到對應的加密數(shù)據(jù)二次包以及哈希值。
28、本發(fā)明第二方面提供了一種區(qū)塊鏈數(shù)據(jù)加密系統(tǒng),包括第一智能合約模塊、分切處理模塊、第一標記處理模塊、第一加密模塊、第二標記處理模塊、區(qū)塊鏈發(fā)布端以及第二加密模塊;
29、所述第一智能合約模塊用于將用戶請求數(shù)據(jù)發(fā)送到所述分切處理模塊進行分切處理;
30、所述分切處理模塊用于對用戶請求數(shù)據(jù)進行分切處理,依次得到m個數(shù)據(jù)包;
31、所述第一標記處理模塊用于根據(jù)所述m個數(shù)據(jù)包的生成時間,對所述m個數(shù)據(jù)包分別進行時間戳標記處理,得到m個包含時間戳的數(shù)據(jù)包;
32、所述第一加密模塊用于對所述m個包含時間戳的數(shù)據(jù)包分別進行密鑰加密處理,依次得到m個加密數(shù)據(jù)包;
33、所述第二標記處理模塊用于根據(jù)所述m個加密數(shù)據(jù)包的生成時間,對所述m個加密數(shù)據(jù)包分別進行時間戳標記處理,得到m個包含時間戳的加密數(shù)據(jù)包;
34、所述區(qū)塊鏈發(fā)布端用于將所述m個包含時間戳的加密數(shù)據(jù)包發(fā)送到所述第二加密模塊;所述第二加密模塊部署于云服務器;
35、所述第二加密模塊用于對所述m個包含時間戳的加密數(shù)據(jù)包分別進行二次加密處理,得到m個加密數(shù)據(jù)二次包以及m個哈希值。
36、本發(fā)明第三方面還提供了一種區(qū)塊鏈數(shù)據(jù)解密方法,包括以下步驟:
37、b1,最終密文中的所述m個加密數(shù)據(jù)二次包根據(jù)對應的m個哈希值,找到對應的加密算法,并通過加密算法的逆運算得到所述m個包含時間戳的加密數(shù)據(jù)包;
38、b2,去除所述m個包含時間戳的加密數(shù)據(jù)包對應的時間戳,得到所述m個加密數(shù)據(jù)包;
39、b3,對所述m個加密數(shù)據(jù)包分別進行密鑰解密處理,得到所述m個包含時間戳的數(shù)據(jù)包;
40、b4,去除所述m個包含時間戳的數(shù)據(jù)包對應的時間戳,得到所述m個數(shù)據(jù)包;
41、b5,將所述m個數(shù)據(jù)包進行合并處理,得到所述用戶請求數(shù)據(jù)。
42、作為一種優(yōu)選方案,在所述步驟b3中,所述密鑰解密處理的方法具體為:
43、b31,利用加密數(shù)據(jù)包對應的用戶公鑰和解密私鑰計算出一個值p;
44、b32,利用所述值p與加密數(shù)據(jù)包對應的時間戳、模型名、表名、字段名、用戶名一起進行hash計算出一個解密密鑰;
45、b33,利用所述解密密鑰對對應的加密數(shù)據(jù)包進行解密,得到對應的數(shù)據(jù)包。
46、本發(fā)明第四方面還提供了一種區(qū)塊鏈數(shù)據(jù)解密系統(tǒng),包括區(qū)塊鏈接收端、第一解密模塊、第一標記去除模塊、第二智能合約模塊、第二解密模塊、第二標記去除模塊以及合并處理模塊;
47、所述區(qū)塊鏈接收端用于接收最終密文,并將最終密文發(fā)送至第一解密模塊;
48、所述第一解密模塊用于將最終密文中的m個加密數(shù)據(jù)二次包根據(jù)對應的m個哈希值,找到對應的加密算法,并通過加密算法的逆運算得到m個包含時間戳的加密數(shù)據(jù)包;
49、所述第一標記去除模塊用于去除所述m個包含時間戳的加密數(shù)據(jù)包對應的時間戳,得到m個加密數(shù)據(jù)包
50、所述第二智能合約模塊用于將所述m個加密數(shù)據(jù)包發(fā)送到所述第二解密模塊進行密鑰解密處理;
51、所述第二解密模塊用于對所述m個加密數(shù)據(jù)包分別進行密鑰解密處理,得到m個包含時間戳的數(shù)據(jù)包;
52、所述第二標記去除模塊用于去除所述m個包含時間戳的數(shù)據(jù)包對應的時間戳,得到所述m個數(shù)據(jù)包
53、所述合并處理模塊用于將所述m個數(shù)據(jù)包進行合并處理,得到用戶請求數(shù)據(jù)。
54、與現(xiàn)有技術相比,本發(fā)明技術方案的有益效果是:
55、本發(fā)明提供了一種區(qū)塊鏈數(shù)據(jù)加密解密方法及系統(tǒng),采用區(qū)塊鏈調(diào)用智能合約將用戶請求數(shù)據(jù)發(fā)送給分切處理模塊進行分切處理,分切模塊首先將待傳輸?shù)臄?shù)據(jù)分切為第一數(shù)據(jù)包、第二數(shù)據(jù)包和第三數(shù)據(jù)包,利用三個數(shù)據(jù)進行時間戳標記以及雙重加密處理,提高了加密強度,極大提高了數(shù)據(jù)隱私保護方面安全性,在數(shù)據(jù)共享上隱私數(shù)據(jù)泄露風險大幅降低,這樣操作進行數(shù)據(jù)共享時即便泄露部分數(shù)據(jù),也不會導致完整隱私數(shù)據(jù)泄露。
56、本發(fā)明提供的加解密算法利用復雜的多種雜湊算法實現(xiàn)對加密強度的極大提升,采用目前的軟件對于該雜湊算法難以破解,極大提供了數(shù)據(jù)傳輸安全性。