基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)及讀取方法
【專利摘要】本發(fā)明公開了一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法,包括步驟:S1、生成摘要信息;采用消息摘要算法對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行簽名處理,從而生成摘要信息;S2、加密數(shù)據(jù);采用密鑰生成函數(shù)生成的隨機(jī)密鑰,對(duì)所述需要存儲(chǔ)的數(shù)據(jù)進(jìn)行加密處理,從而獲得相應(yīng)的密文;S3、隱藏隨機(jī)密鑰;對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行隱藏處理,從而獲得所述密文的隨機(jī)密鑰信息;S4、存儲(chǔ)密文;將步驟S2中獲得的所述密文存儲(chǔ)到分布式文件系統(tǒng)中;S5、存儲(chǔ)相關(guān)信息;將步驟S1中生成的所述摘要信息、步驟S3中獲得的所述隨機(jī)密鑰信息并與文件名一同存儲(chǔ)到開源數(shù)據(jù)庫(kù)中。本發(fā)明還對(duì)應(yīng)公開了一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法。
【專利說明】基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)及讀取方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及密碼學(xué)【技術(shù)領(lǐng)域】,尤其涉及一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)及讀取方法。
【背景技術(shù)】
[0002]加密算法主要應(yīng)用的有兩種:對(duì)稱加密算法和非對(duì)稱加密算法。
[0003]對(duì)稱加密算法的特點(diǎn)是算法公開、計(jì)算量小、加密速度快、加密效率高;不足之處是,加密和解密使用相同的密鑰,安全性得不到保證,且密鑰難于管理。
[0004]而非對(duì)稱加密算法使用兩把完全不同但又是完全匹配的一對(duì)鑰匙一公鑰和私鑰。在使用非對(duì)稱加密算法加密文件時(shí),只有使用匹配的一對(duì)公鑰和私鑰,才能完成對(duì)明文的加密和解密過程。非對(duì)稱加密的缺點(diǎn)是加解密速度慢且效率非常低,不適用對(duì)大量的數(shù)據(jù)進(jìn)行加解密。
[0005]目前大部分系統(tǒng)應(yīng)用中的數(shù)據(jù)源較多、數(shù)據(jù)量巨大、尤其對(duì)時(shí)間效率要求很高。因此,加密速度快和效率高的加密算法更適合于對(duì)海量數(shù)據(jù)的加解密。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法及其對(duì)應(yīng)的數(shù)據(jù)安全讀取方法,適合于對(duì)海量數(shù)據(jù)的加解密,并能充分保證海量數(shù)據(jù)存儲(chǔ)/讀取中數(shù)據(jù)的完整性和保密性。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法,包括步驟:
[0008]S1、生成摘要信息;采用消息摘要算法對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行簽名處理,從而生成摘要信息;
[0009]S2、加密數(shù)據(jù);采用密鑰生成函數(shù)生成的隨機(jī)密鑰,對(duì)所述需要存儲(chǔ)的數(shù)據(jù)進(jìn)行加密處理,從而獲得相應(yīng)的密文;
[0010]S3、隱藏隨機(jī)密鑰;對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行隱藏處理,從而獲得所述密文的隨機(jī)密鑰信息;
[0011]S4、存儲(chǔ)密文;將步驟S2中獲得的所述密文存儲(chǔ)到分布式文件系統(tǒng)中;
[0012]S5、存儲(chǔ)相關(guān)信息;將步驟SI中生成的所述摘要信息、步驟S3中獲得的所述隨機(jī)密鑰信息并與文件名一同存儲(chǔ)到開源數(shù)據(jù)庫(kù)中。
[0013]作為上述技術(shù)方案的改進(jìn),在所述SI中,利用所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)生成所述摘要信息;其中,所述屬性包括用戶密碼信息。
[0014]在本發(fā)明的另一實(shí)施例中,所述步驟S3具體包括步驟:
[0015]S31、采用Hash函數(shù)對(duì)步驟SI中生成的所述摘要信息進(jìn)行處理,獲得加密密鑰;
[0016]S32、利用所述加密密鑰對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行加密,從而獲得所述密文的隨機(jī)密鑰信息。
[0017]在本發(fā)明的又一實(shí)施例中,所述步驟S3具體包括步驟:
[0018]S31、采取SHA加密算法對(duì)所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)進(jìn)行摘要處理,獲得摘要值(字節(jié)數(shù)組),并利用用戶密碼信息對(duì)所述摘要值進(jìn)行加密,從而獲得所述摘要信息;
[0019]S32、采用Hash函數(shù)對(duì)步驟S31中生成的所述字節(jié)數(shù)組進(jìn)行處理,獲得一個(gè)N位加密密鑰;
[0020]S33、利用所述N位加密密鑰對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行加密,從而獲得所述密文的隨機(jī)密鑰信息。
[0021]作為上述技術(shù)方案的改進(jìn),在所述開源數(shù)據(jù)庫(kù)中,采用具有三列單元的M表進(jìn)行存儲(chǔ);所述三列單元分別包括行關(guān)鍵字key、時(shí)間戳T及列族Md ;所述行關(guān)鍵字key用于存儲(chǔ)文件名;Md包含hKey和mD兩個(gè)標(biāo)簽,分別保存隨機(jī)密鑰信息和摘要信息;采用hKey為全O表示無需加密的數(shù)據(jù),而mD用于檢查數(shù)據(jù)的完整性。
[0022]本發(fā)明實(shí)施例還公開了一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法,適用于讀取如權(quán)利要求1所述的存儲(chǔ)方法存儲(chǔ)的數(shù)據(jù),包括步驟:
[0023]S01、讀取密文;從分布式文件系統(tǒng)中讀取密文;
[0024]S02、讀取相關(guān)信息;從開源數(shù)據(jù)庫(kù)中讀取相關(guān)信息,所述相關(guān)信息包括文件名、摘要信息和隨機(jī)密鑰信息;
[0025]S03、獲取隨機(jī)密鑰;對(duì)讀取的所述隨機(jī)密鑰信息進(jìn)行隱藏反向處理,從而獲取隨機(jī)密鑰;
[0026]S04、解密數(shù)據(jù);利用步驟S03獲取的所述隨機(jī)密鑰對(duì)步驟SOl讀取的密文進(jìn)行解密處理,從而獲得相應(yīng)的數(shù)據(jù);
[0027]S05、檢查完整性;采取所述消息摘要算法對(duì)步驟S04中獲得的所述數(shù)據(jù)進(jìn)行簽名處理,從而生成數(shù)字摘要信息;并將所述數(shù)字摘要信息與步驟SOl中獲取的所述摘要信息進(jìn)行對(duì)比以判斷所述數(shù)據(jù)的完整性。
[0028]作為上述技術(shù)方案的改進(jìn),在所述步驟S02和步驟S03之間,還包括步驟:
[0029]判斷數(shù)據(jù)類型:通過步驟S02獲取的隨機(jī)密鑰信息來判斷步驟SOl中讀取的密文是否需要解密:若所述隨機(jī)密鑰信息為0,則轉(zhuǎn)至執(zhí)行步驟S05 ;若所述隨機(jī)密鑰信息不為O,則繼續(xù)步驟S03。
[0030]在本發(fā)明的另一實(shí)施例中,所述步驟S03具體包括步驟:
[0031]S031、采用Hash函數(shù)以及用戶密碼信息對(duì)步驟S02中讀取的所述摘要信息進(jìn)行反處理,從而獲得加密密鑰;
[0032]S032、利用所述加密密鑰對(duì)步驟S02中讀取的所述隨機(jī)密鑰信息進(jìn)行解密,從而獲得所述密文的隨機(jī)密鑰。
[0033]在本發(fā)明的又一實(shí)施例中,所述步驟S03具體包括步驟:
[0034]S031、采取SHA加密算法和用戶密碼信息對(duì)所述摘要信息進(jìn)行反處理,獲得一個(gè)字節(jié)數(shù)組;
[0035]S032、采用Hash函數(shù)對(duì)步驟S031中生成的所述字節(jié)數(shù)組進(jìn)行處理,獲得一個(gè)N位加密密鑰;
[0036]S033、利用所述N位加密密鑰對(duì)步驟S02中讀取的所述隨機(jī)密鑰信息進(jìn)行解密,從而獲得所述密文的隨機(jī)密鑰。
[0037]與現(xiàn)有技術(shù)相比,本發(fā)明公開的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)及讀取方法,通過密碼學(xué)的方法來實(shí)現(xiàn),選取恰當(dāng)?shù)募用芩惴ê拖⒄惴ǎ艹浞直WC海量數(shù)據(jù)存儲(chǔ)中據(jù)的完整性和保密性,還具有如下有益效果:
[0038](I)高安全性。每一次對(duì)數(shù)據(jù)進(jìn)行加密所用的密鑰都不一樣,起到每密一次的作用;即使經(jīng)過加密的其中一個(gè)密文被破解了,其他的加密文件采用了不同的密鑰,仍然十分安全。
[0039](2)易于管理。每個(gè)用戶每次使用對(duì)稱加密算法時(shí),只需要使用其他人不知道的惟一密鑰甚至都不需要密碼,用戶使用和管理非常方便。
[0040](3)密碼更改便捷。當(dāng)出于系統(tǒng)安全角度對(duì)安全策略作出調(diào)整需要用戶更改密碼時(shí),無需對(duì)所有經(jīng)過加密的數(shù)據(jù)進(jìn)行解密,也無需要用新更改的密鑰進(jìn)行重新加密,在保證效率的同時(shí)也給用戶帶來便捷。
【專利附圖】
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0042]圖1是本發(fā)明實(shí)施例1中一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的流程圖。
[0043]圖2是圖1所示的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的具體流程示意圖。
[0044]圖3本發(fā)明實(shí)施例2中一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的流程圖。
[0045]圖4是圖3所示的數(shù)據(jù)安全存儲(chǔ)方法中生成隨機(jī)密鑰信息的具體流程示意圖。
[0046]圖5本發(fā)明實(shí)施例3中一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的流程圖。
[0047]圖6是圖5所示的數(shù)據(jù)安全存儲(chǔ)方法中生成隨機(jī)密鑰信息的具體流程示意圖。
[0048]圖7是本發(fā)明實(shí)施例4中一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法的流程圖。
[0049]圖8是圖7所示的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的具體流程示意圖。
[0050]圖9本發(fā)明實(shí)施例5中一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法的流程圖。
[0051]圖10本發(fā)明實(shí)施例6中一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法的流程圖。
【具體實(shí)施方式】
[0052]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0053]實(shí)施例1
[0054]參見圖1,是本發(fā)明實(shí)施例提供的一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的流程圖。該基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法包括步驟:
[0055]S1、生成摘要信息;采用消息摘要算法對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行簽名處理,從而生成摘要信息;
[0056]S2、加密數(shù)據(jù);采用密鑰生成函數(shù)生成的隨機(jī)密鑰,對(duì)所述需要存儲(chǔ)的數(shù)據(jù)進(jìn)行加密處理,從而獲得相應(yīng)的密文;
[0057]S3、隱藏隨機(jī)密鑰;對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行隱藏處理,從而獲得所述密文的隨機(jī)密鑰信息;
[0058]S4、存儲(chǔ)密文;將步驟S2中獲得的所述密文存儲(chǔ)到分布式文件系統(tǒng)DFS中;
[0059]S5、存儲(chǔ)相關(guān)信息;將步驟SI中生成的所述摘要信息、步驟S3中獲得的所述隨機(jī)密鑰信息并與文件名一同存儲(chǔ)到開源數(shù)據(jù)庫(kù)DB中。
[0060]由于目前大部分核心存儲(chǔ)的數(shù)據(jù)是加密的,如果得不到相應(yīng)的密鑰信息,其中加密的信息只是一串看不懂的亂碼。對(duì)于完整性,本實(shí)施例對(duì)需要存儲(chǔ)的數(shù)據(jù)預(yù)先生成一個(gè)摘要信息,這樣當(dāng)讀取數(shù)據(jù)的時(shí)候,就能夠利用摘要信息驗(yàn)證數(shù)據(jù)的完整性。此外,為了方便對(duì)密鑰信息的操作,將密文和密鑰信息分別存儲(chǔ),使得對(duì)密鑰信息的任何操作都不會(huì)對(duì)密文造成影響。圖2顯示了本實(shí)施例的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的具體操作過程。
[0061]另外,在本實(shí)施例中,為了將密鑰信息和摘要信息存入開源數(shù)據(jù)庫(kù)DB中,設(shè)計(jì)了 M表的結(jié)構(gòu)。M表主要有三列,分別是行關(guān)鍵字key用于存儲(chǔ)文件名,時(shí)間戳T及列族Md,Md包含hKey和mD兩個(gè)標(biāo)簽分別保存密鑰信息和摘要信息。此外,對(duì)于不需要加密的數(shù)據(jù)來說,采用hKey為全O來加以區(qū)別,而mD則正常使用檢查數(shù)據(jù)的完整性。
[0062]本實(shí)施例采用分布式文件系統(tǒng)DFS,適合海量數(shù)據(jù)存儲(chǔ),特別是要適合于應(yīng)用電力系統(tǒng)中的EMS能量管理系統(tǒng),其數(shù)據(jù)采集和存儲(chǔ)的頻率非常高,一般的關(guān)系數(shù)據(jù)庫(kù)遠(yuǎn)遠(yuǎn)不能滿足負(fù)荷。此外,關(guān)系數(shù)據(jù)庫(kù)隨數(shù)據(jù)量急速增長(zhǎng),其查詢的效率下降明顯,而本實(shí)施例使用開源數(shù)據(jù)庫(kù)DB能保持原來的高效率,是一種可伸縮的分布存儲(chǔ)系統(tǒng),且在調(diào)用海量數(shù)據(jù)的情況下,依然能保持高性能,保證了數(shù)據(jù)的可靠性。
[0063]實(shí)施例2
[0064]參見圖3,是本發(fā)明實(shí)施例提供的一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的流程圖。本實(shí)施例的該基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法包括步驟:
[0065]S1、生成摘要信息;采用消息摘要算法對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行簽名處理,從而生成摘要信息;
[0066]在該步驟中,優(yōu)選為利用所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)生成所述摘要信息;其中,所述屬性包括用戶密碼信息,這樣當(dāng)用戶修改了密碼信息后,隨機(jī)密鑰信息隨之改變,卻不需要對(duì)所有的密文重新加密,提高了效率,降低了復(fù)雜性。此外,對(duì)于用戶和系統(tǒng)來說,只有密鑰信息需要管理,簡(jiǎn)化了密鑰的管理。使用隨機(jī)填充數(shù)主要防止字典攻擊和預(yù)先計(jì)算攻擊。
[0067]S2、加密數(shù)據(jù);采用密鑰生成函數(shù)生成的隨機(jī)密鑰,對(duì)所述需要存儲(chǔ)的數(shù)據(jù)進(jìn)行加密處理,從而獲得相應(yīng)的密文;
[0068]S31、采用Hash函數(shù)對(duì)步驟SI中生成的所述摘要信息進(jìn)行處理,獲得加密密鑰;
[0069]S32、利用所述加密密鑰對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行加密,從而獲得所述密文的隨機(jī)密鑰信息;
[0070]S4、存儲(chǔ)密文;將步驟S2中獲得的所述密文存儲(chǔ)到分布式文件系統(tǒng)DFS中;
[0071]S5、存儲(chǔ)相關(guān)信息;將步驟SI中生成的所述摘要信息、步驟S32中獲得的所述隨機(jī)密鑰信息并與文件名一同存儲(chǔ)到開源數(shù)據(jù)庫(kù)DB中。
[0072]結(jié)合圖4,本實(shí)施例與實(shí)施例1的數(shù)據(jù)安全存儲(chǔ)方法流程基本一致,不同的是,本實(shí)施例利用加密密鑰對(duì)隨機(jī)密鑰進(jìn)行加密的方式來實(shí)現(xiàn)對(duì)隨機(jī)密鑰進(jìn)行信息隱藏,從而獲得對(duì)應(yīng)密文的隨機(jī)密鑰信息,以解決對(duì)稱加密算法的密鑰管理問題。而且所使用的加密密鑰為采用Hash函數(shù)對(duì)步驟SI中生成的所述摘要信息進(jìn)行處理而得到的。而SI中生成的所述摘要信息為利用消息摘要算法對(duì)所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性(例如,可包括用戶密碼信息)及一個(gè)隨機(jī)填充數(shù)計(jì)算生成。
[0073]實(shí)施例3
[0074]參見圖5,是本發(fā)明實(shí)施例提供的一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法的流程圖。本實(shí)施例的該基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法包括步驟:
[0075]S1、生成摘要信息;采用消息摘要算法對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行簽名處理,從而生成摘要信息;
[0076]在該步驟中,優(yōu)選為利用所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)生成所述摘要信息;其中,所述屬性包括用戶密碼信息。
[0077]S2、加密數(shù)據(jù);采用密鑰生成函數(shù)生成的隨機(jī)密鑰,對(duì)所述需要存儲(chǔ)的數(shù)據(jù)進(jìn)行加密處理,從而獲得相應(yīng)的密文;
[0078]S31、采取SHA加密算法對(duì)所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)進(jìn)行摘要處理,獲得摘要值(字節(jié)數(shù)組),并利用用戶密碼信息對(duì)所述摘要值進(jìn)行加密,從而獲得所述摘要信息;
[0079]S32、采用Hash函數(shù)對(duì)步驟S31中生成的所述字節(jié)數(shù)組進(jìn)行處理,獲得一個(gè)N位加密密鑰;
[0080]S33、利用所述N位加密密鑰對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行加密,從而獲得所述密文的隨機(jī)密鑰信息;
[0081]S4、存儲(chǔ)密文;將步驟S2中獲得的所述密文存儲(chǔ)到分布式文件系統(tǒng)DFS中;
[0082]S5、存儲(chǔ)相關(guān)信息;將步驟SI中生成的所述摘要信息、步驟S33中獲得的所述隨機(jī)密鑰信息并與文件名一同存儲(chǔ)到開源數(shù)據(jù)庫(kù)DB中。
[0083]結(jié)合圖6,本實(shí)施例與實(shí)施例1的數(shù)據(jù)安全存儲(chǔ)方法流程基本一致,不同的是,本實(shí)施例利用一個(gè)N位加密密鑰對(duì)隨機(jī)密鑰進(jìn)行加密的方式來實(shí)現(xiàn)對(duì)隨機(jī)密鑰進(jìn)行信息隱藏,從而獲得對(duì)應(yīng)密文的隨機(jī)密鑰信息,以解決對(duì)稱加密算法的密鑰管理問題。而且所使用的N位加密密鑰為采用Hash函數(shù)對(duì)經(jīng)SHA加密算法對(duì)所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)進(jìn)行處理而得到的一個(gè)字節(jié)數(shù)組進(jìn)行處理而得到的。
[0084]實(shí)施例4
[0085]參見圖7,是本發(fā)明實(shí)施例提供的一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法的流程圖。該基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法適用于讀取采用實(shí)施例1所述的數(shù)據(jù)安全存儲(chǔ)方法存儲(chǔ)的數(shù)據(jù),具體包括步驟:
[0086]S01、讀取密文;從分布式文件系統(tǒng)中讀取密文;
[0087]S02、讀取相關(guān)信息;從開源數(shù)據(jù)庫(kù)中讀取相關(guān)信息,所述相關(guān)信息包括文件名、摘要信息和隨機(jī)密鑰信息;
[0088]S03、獲取隨機(jī)密鑰;對(duì)讀取的所述隨機(jī)密鑰信息進(jìn)行隱藏反向處理,從而獲取隨機(jī)密鑰;
[0089]S04、解密數(shù)據(jù);利用步驟S03獲取的所述隨機(jī)密鑰對(duì)步驟SOl讀取的密文進(jìn)行解密處理,從而獲得相應(yīng)的數(shù)據(jù);
[0090]S05、檢查完整性;采取所述消息摘要算法對(duì)步驟S04中獲得的所述數(shù)據(jù)進(jìn)行簽名處理,從而生成數(shù)字摘要信息;并將所述數(shù)字摘要信息與步驟SOl中獲取的所述摘要信息進(jìn)行對(duì)比以判斷所述數(shù)據(jù)的完整性。如果兩者不一樣,則說明存儲(chǔ)中的數(shù)據(jù)被篡改了,若兩者一樣,則說明儲(chǔ)存中的數(shù)據(jù)正常。
[0091]優(yōu)選的,在所述步驟S02和步驟S03之間,還包括步驟:判斷數(shù)據(jù)類型:通過步驟S02獲取的隨機(jī)密鑰信息來判斷步驟SOl中讀取的密文是否需要解密:若所述隨機(jī)密鑰信息為0,則轉(zhuǎn)至執(zhí)行步驟S05 ;若所述隨機(jī)密鑰信息不為0,則繼續(xù)步驟S03。
[0092]如圖8所示,當(dāng)讀取數(shù)據(jù)時(shí),主要有兩部分工作:獲取保密的信息和完整性檢查。首先從開源數(shù)據(jù)庫(kù)DB和分布式文件系統(tǒng)DFS中獲取相應(yīng)的數(shù)據(jù),然后根據(jù)密鑰信息確定分布式文件系統(tǒng)DFS中數(shù)據(jù)是否為密文并根據(jù)實(shí)際情況進(jìn)行相應(yīng)處理,最后校驗(yàn)數(shù)據(jù)的完整性,以確定數(shù)據(jù)的完整性。具體過程如圖8所示。
[0093]實(shí)施例5
[0094]參見圖9,是本發(fā)明實(shí)施例提供的一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法的流程圖。該基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法適用于讀取采用實(shí)施例2所述的數(shù)據(jù)安全存儲(chǔ)方法存儲(chǔ)的數(shù)據(jù),具體包括步驟:
[0095]S01、讀取密文;從分布式文件系統(tǒng)中讀取密文;
[0096]S02、讀取相關(guān)信息;從開源數(shù)據(jù)庫(kù)中讀取相關(guān)信息,所述相關(guān)信息包括文件名、摘要信息和隨機(jī)密鑰信息;
[0097]S031、采用Hash函數(shù)以及用戶密碼信息對(duì)步驟S02中讀取的所述摘要信息進(jìn)行反處理,從而獲得加密密鑰;
[0098]S032、利用所述加密密鑰對(duì)步驟S02中讀取的所述隨機(jī)密鑰信息進(jìn)行解密,從而獲得所述密文的隨機(jī)密鑰;
[0099]S04、解密數(shù)據(jù);利用步驟S032獲取的所述隨機(jī)密鑰對(duì)步驟SOl讀取的密文進(jìn)行解密處理,從而獲得相應(yīng)的數(shù)據(jù);
[0100]S05、檢查完整性;采取所述消息摘要算法對(duì)步驟S04中獲得的所述數(shù)據(jù)進(jìn)行簽名處理,從而生成數(shù)字摘要信息;并將所述數(shù)字摘要信息與步驟SOl中獲取的所述摘要信息進(jìn)行對(duì)比以判斷所述數(shù)據(jù)的完整性。如果兩者不一樣,則說明存儲(chǔ)中的數(shù)據(jù)被篡改了,若兩者一樣,則說明儲(chǔ)存中的數(shù)據(jù)正常。
[0101]優(yōu)選的,在所述步驟S02和步驟S031之間,還包括步驟:判斷數(shù)據(jù)類型:通過步驟S02獲取的隨機(jī)密鑰信息來判斷步驟SOl中讀取的密文是否需要解密:若所述隨機(jī)密鑰信息為0,則轉(zhuǎn)至執(zhí)行步驟S05 ;若所述隨機(jī)密鑰信息不為0,則繼續(xù)步驟S031。
[0102]實(shí)施例6
[0103]參見圖10,是本發(fā)明實(shí)施例提供的一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法的流程圖。該基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法適用于讀取采用實(shí)施例3所述的數(shù)據(jù)安全存儲(chǔ)方法存儲(chǔ)的數(shù)據(jù),具體包括步驟:
[0104]S01、讀取密文;從分布式文件系統(tǒng)中讀取密文;
[0105]S02、讀取相關(guān)信息;從開源數(shù)據(jù)庫(kù)中讀取相關(guān)信息,所述相關(guān)信息包括文件名、摘要信息和隨機(jī)密鑰信息;
[0106]S031、采取SHA加密算法和用戶密碼信息對(duì)所述摘要信息進(jìn)行反處理,獲得一個(gè)字節(jié)數(shù)組;
[0107]S032、采用Hash函數(shù)對(duì)步驟S031中生成的所述字節(jié)數(shù)組進(jìn)行處理,獲得一個(gè)N位加密密鑰;
[0108]S033、利用所述N位加密密鑰對(duì)步驟S02中讀取的所述隨機(jī)密鑰信息進(jìn)行解密,從而獲得所述密文的隨機(jī)密鑰;
[0109]S04、解密數(shù)據(jù);利用步驟S033獲取的所述隨機(jī)密鑰對(duì)步驟SOl讀取的密文進(jìn)行解密處理,從而獲得相應(yīng)的數(shù)據(jù);
[0110]S05、檢查完整性;采取所述消息摘要算法對(duì)步驟S04中獲得的所述數(shù)據(jù)進(jìn)行簽名處理,從而生成數(shù)字摘要信息;并將所述數(shù)字摘要信息與步驟SOl中獲取的所述摘要信息進(jìn)行對(duì)比以判斷所述數(shù)據(jù)的完整性。如果兩者不一樣,則說明存儲(chǔ)中的數(shù)據(jù)被篡改了,若兩者一樣,則說明儲(chǔ)存中的數(shù)據(jù)正常。
[0111]優(yōu)選的,在所述步驟S02和步驟S031之間,還包括步驟:判斷數(shù)據(jù)類型:通過步驟S02獲取的隨機(jī)密鑰信息來判斷步驟SOl中讀取的密文是否需要解密:若所述隨機(jī)密鑰信息為0,則轉(zhuǎn)至執(zhí)行步驟S05 ;若所述隨機(jī)密鑰信息不為0,則繼續(xù)步驟S031。
[0112]具體的,結(jié)合實(shí)施例3說明本實(shí)施例如何實(shí)現(xiàn)步驟S05的數(shù)據(jù)(消息)完整性的檢查。在實(shí)施例3的數(shù)據(jù)存儲(chǔ)放方法中,先用SHA算法對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行摘要,然后再把摘要值(字符數(shù)組)用信源(用戶密碼信息)的私鑰加密,從而形成摘要信息以存儲(chǔ)在開元數(shù)據(jù)庫(kù)DB中。在讀取該數(shù)據(jù)時(shí),先將步驟S04讀取的明文(數(shù)據(jù))用同樣的SHA算法進(jìn)行摘要,形成“準(zhǔn)簽體”。并用信源(用戶密碼信息)的公鑰對(duì)步驟S02中的摘要信息進(jìn)行解密,解密出的“簽體”與“準(zhǔn)簽體”進(jìn)行比較,如果相同就認(rèn)為數(shù)據(jù)(消息)是完整的,否則數(shù)據(jù)(消息)不完整。
[0113]綜上所述,本發(fā)明公開的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)及讀取方法,通過密碼學(xué)的方法來實(shí)現(xiàn),選取恰當(dāng)?shù)募用芩惴ê拖⒄惴?,能充分保證海量數(shù)據(jù)存儲(chǔ)中據(jù)的完整性和保密性,還具有如下有益效果:
[0114](I)高安全性。每一次對(duì)數(shù)據(jù)進(jìn)行加密所用的密鑰都不一樣,起到每密一次的作用;即使經(jīng)過加密的其中一個(gè)密文被破解了,其他的加密文件采用了不同的密鑰,仍然十分安全。
[0115](2)易于管理。每個(gè)用戶每次使用對(duì)稱加密算法時(shí),只需要使用其他人不知道的惟一密鑰甚至都不需要密碼,用戶使用和管理非常方便。
[0116](3)密碼更改便捷。當(dāng)出于系統(tǒng)安全角度對(duì)安全策略作出調(diào)整需要用戶更改密碼時(shí),無需對(duì)所有經(jīng)過加密的數(shù)據(jù)進(jìn)行解密,也無需要用新更改的密鑰進(jìn)行重新加密,在保證效率的同時(shí)也給用戶帶來便捷。
[0117]以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法,其特征在于,包括步驟: 51、生成摘要信息;采用消息摘要算法對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行簽名處理,從而生成摘要信息; 52、加密數(shù)據(jù);采用密鑰生成函數(shù)生成的隨機(jī)密鑰,對(duì)所述需要存儲(chǔ)的數(shù)據(jù)進(jìn)行加密處理,從而獲得相應(yīng)的密文; 53、隱藏隨機(jī)密鑰;對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行隱藏處理,從而獲得所述密文的隨機(jī)密鑰信息; 54、存儲(chǔ)密文;將步驟S2中獲得的所述密文存儲(chǔ)到分布式文件系統(tǒng)中; 55、存儲(chǔ)相關(guān)信息;將步驟SI中生成的所述摘要信息、步驟S3中獲得的所述隨機(jī)密鑰信息并與文件名一同存儲(chǔ)到開源數(shù)據(jù)庫(kù)中。
2.如權(quán)利要求1所述的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法,其特征在于,在所述SI中,利用所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)生成所述摘要信息;其中,所述屬性包括用戶密碼信息。
3.如權(quán)利要求2所述的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法,其特征在于,所述步驟S3具體包括步驟: 531、采用Hash函數(shù)對(duì)步驟SI中生成的所述摘要信息進(jìn)行處理,獲得加密密鑰; 532、利用所述加密密鑰對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行加密,從而獲得所述密文的隨機(jī)密鑰信息。
4.如權(quán)利要求1所述的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法,其特征在于,所述步驟S3具體包括步驟: 531、采取SHA加密算法對(duì)所述需要存儲(chǔ)的數(shù)據(jù)的各種屬性及一個(gè)隨機(jī)填充數(shù)進(jìn)行摘要處理,獲得字節(jié)數(shù)組,并利用用戶密碼信息對(duì)所述字節(jié)數(shù)組進(jìn)行加密,從而獲得所述摘要信息; 532、采用Hash函數(shù)對(duì)步驟S31中生成的所述字節(jié)數(shù)組進(jìn)行處理,獲得一個(gè)N位加密密鑰; 533、利用所述N位加密密鑰對(duì)步驟S2中生成的所述隨機(jī)密鑰進(jìn)行加密,從而獲得所述密文的隨機(jī)密鑰信息。
5.如權(quán)利要求1所述的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全存儲(chǔ)方法,其特征在于,在所述開源數(shù)據(jù)庫(kù)中,采用具有三列單元的M表進(jìn)行存儲(chǔ);所述三列單元分別包括行關(guān)鍵字key、時(shí)間戳T及列族Md ;所述行關(guān)鍵字key用于存儲(chǔ)文件名;Md包含hKey和mD兩個(gè)標(biāo)簽,分別保存隨機(jī)密鑰信息和摘要信息;采用hKey為全O表示無需加密的數(shù)據(jù),而mD用于檢查數(shù)據(jù)的完整性。
6.一種基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法,適用于讀取如權(quán)利要求1所述的存儲(chǔ)方法存儲(chǔ)的數(shù)據(jù),其特征在于,包括步驟: 501、讀取密文;從分布式文件系統(tǒng)中讀取密文; 502、讀取相關(guān)信息;從開源數(shù)據(jù)庫(kù)中讀取相關(guān)信息,所述相關(guān)信息包括文件名、摘要信息和隨機(jī)密鑰信息; 503、獲取隨機(jī)密鑰;對(duì)讀取的所述隨機(jī)密鑰信息進(jìn)行隱藏反向處理,從而獲取隨機(jī)密鑰; 504、解密數(shù)據(jù);利用步驟S03獲取的所述隨機(jī)密鑰對(duì)步驟SOl讀取的密文進(jìn)行解密處理,從而獲得相應(yīng)的數(shù)據(jù); 505、檢查完整性;采取所述消息摘要算法對(duì)步驟S04中獲得的所述數(shù)據(jù)進(jìn)行簽名處理,從而生成數(shù)字摘要信息;并將所述數(shù)字摘要信息與步驟SOl中獲取的所述摘要信息進(jìn)行對(duì)比以判斷所述數(shù)據(jù)的完整性。
7.如權(quán)利要求6所述的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法,其特征在于,在所述步驟S02和步驟S03之間,還包括步驟: 判斷數(shù)據(jù)類型:通過步驟S02獲取的隨機(jī)密鑰信息來判斷步驟SOl中讀取的密文是否需要解密:若所述隨機(jī)密鑰信息為0,則轉(zhuǎn)至執(zhí)行步驟S05 ;若所述隨機(jī)密鑰信息不為0,則繼續(xù)步驟S03。
8.如權(quán)利要求6所述的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法,其特征在于,所述步驟S03具體包括步驟: 5031、采用Hash函數(shù)以及用戶密碼信息對(duì)步驟S02中讀取的所述摘要信息進(jìn)行反處理,從而獲得加密密鑰; 5032、利用所述加密密鑰對(duì)步驟S02中讀取的所述隨機(jī)密鑰信息進(jìn)行解密,從而獲得所述密文的隨機(jī)密鑰。
9.如權(quán)利要求6所述的基于分布式系統(tǒng)基礎(chǔ)架構(gòu)的數(shù)據(jù)安全讀取方法,其特征在于,所述步驟S03具體包括步驟: . 5031、采取SHA加密算法和用戶密碼信息對(duì)所述摘要信息進(jìn)行反處理,獲得一個(gè)字節(jié)數(shù)組; . 5032、采用Hash函數(shù)對(duì)步驟S031中生成的所述字節(jié)數(shù)組進(jìn)行處理,獲得一個(gè)N位加密密鑰; . 5033、利用所述N位加密密鑰對(duì)步驟S02中讀取的所述隨機(jī)密鑰信息進(jìn)行解密,從而獲得所述密文的隨機(jī)密鑰。
【文檔編號(hào)】H04L29/06GK104410493SQ201410626012
【公開日】2015年3月11日 申請(qǐng)日期:2014年11月7日 優(yōu)先權(quán)日:2014年11月7日
【發(fā)明者】關(guān)澤武, 郭曉斌, 許愛東, 蔣屹新, 陳華軍, 蒙家曉, 楊航, 張福錚, 刑濤, 吳爭(zhēng)榮 申請(qǐng)人:南方電網(wǎng)科學(xué)研究院有限責(zé)任公司, 海南電網(wǎng)公司