周 江,胡 屹
(1.四川司法警官職業(yè)學院司法信息系,四川德陽 618000;2.成都大學教務處,四川成都 610106)
一種磁盤數(shù)據(jù)快速銷毀算法
周 江1,胡 屹2
(1.四川司法警官職業(yè)學院司法信息系,四川德陽 618000;2.成都大學教務處,四川成都 610106)
介紹一種磁盤數(shù)據(jù)快速銷毀算法,算法的初始密鑰由單向散列算法、非對稱加密算法、隨機二進制填充和對稱加密算法進行混合處理后,磁盤上的數(shù)據(jù)在存儲時就可以處于一種理論上難以恢復的隨機加密狀態(tài).在進行數(shù)據(jù)銷毀時,只需要銷毀極少量數(shù)據(jù),就能夠在極短時間內(nèi)使大量數(shù)據(jù)不可恢復,從而實現(xiàn)磁盤數(shù)據(jù)的快速銷毀.
隨機二進制填充;混合處理;快速銷毀
磁盤數(shù)據(jù)恢復技術的研究和利用,使得數(shù)據(jù)銷毀技術在國防、軍事、國家安全等重要領域有著超乎尋常的作用.具體而言,數(shù)據(jù)銷毀是通過采用技術手段將磁盤存儲的數(shù)據(jù)予以徹底清除,以使數(shù)據(jù)不泄密、不外傳[1].現(xiàn)有的計算機磁盤存儲機制中,銷毀數(shù)據(jù)最有效的方法是數(shù)據(jù)覆寫.數(shù)據(jù)覆寫是對要清除的數(shù)據(jù)用無意義的數(shù)據(jù)進行覆寫[2].基于此,本研究設計了一種磁盤快速銷毀算法,本文將其稱作RAOD算法,利用該算法,可以使磁盤上存貯的數(shù)據(jù)在極短時間內(nèi)處于一種不可恢復的狀態(tài),從而達到磁盤數(shù)據(jù)快速銷毀的目的.
RAOD算法的基本思路是利用隨機二進制填充與混合強加密結合,使存儲數(shù)據(jù)的讀取完全依賴于非對稱公鑰和原始密鑰.一旦二者之一未曾獲得,那么未經(jīng)授權者即便獲得未銷毀的數(shù)據(jù),也是沒有任何用處的.
RAOD算法包括標準覆蓋算法、加密存貯算法、數(shù)據(jù)讀取算法、數(shù)據(jù)銷毀算法4個子算法.
1.2.1 加密存貯算法.
加密存貯算法的實質(zhì)是使用散列算法對原始密鑰進行預加密,使密鑰穩(wěn)定并且復雜,再進行不可逆的非對稱加密,然后依賴不可逆非對稱加密的結果進行隨機二進制填充和對稱分組加密,最后得到加密結果.數(shù)據(jù)讀取依賴于原始密鑰與非對稱公鑰,未經(jīng)授權者無法借助中間數(shù)據(jù)進行分析,從而保證數(shù)據(jù)處于安全狀態(tài).
數(shù)據(jù)加密存貯算法如圖1所示.
圖1 數(shù)據(jù)加密存貯算法示意圖
數(shù)據(jù)加密存貯算法具體步驟描述如下:
①生成非對稱加密公鑰存貯于磁盤,同時銷毀私鑰;
②數(shù)據(jù)擁有者產(chǎn)生并輸入原始密鑰K0;
③使用單向散列算法對K0進行運算得到二進制串K1;
④對K1使用非對稱公鑰進行加密運算,得到中間密鑰K2;
⑤根據(jù)K2值對明文M插入隨機二進制串,生成預備明文M';
⑥根據(jù)分組加密算法需要將預備明文M'分成為長度為m的預備明文組M'A1,M'A2,…,M'An,記錄分組數(shù)n;
⑦根據(jù)分組加密算法需要使用密鑰K2生成n組長度為m的密鑰得到密鑰組KA1,KA2,…,KAn;
⑧使用KAi對相應的預備明文組中的M'Ai進行加密,得到密文Ei,完成后將所有Ei連接成文件存貯在磁盤上,記為E.
⑨使用標準覆蓋算法對所有原始數(shù)據(jù)和中間數(shù)據(jù)進行完全銷毀.
1.2.2 數(shù)據(jù)讀取算法.
數(shù)據(jù)讀取算法是加密存貯的算法的逆過程,如圖2所示.
圖2 數(shù)據(jù)讀取算法示意圖
數(shù)據(jù)讀取算法的具體步驟描述如下:
①重復加密存貯算法的步驟②~④;
②將密文分成長度為m的n組密文E1,E2,…,En,記錄分組數(shù)n;
③重復加密存貯算法的步驟⑦;
④使用KAi對Ei進行解密操作得到預備明文組M'Ai.解密完成后將得到的預備明文組連接起來形預備明文M';
⑤利用K2值按照加密存貯算法步驟⑤的逆過程對預備明文M'進行二進制串丟棄操作得到明文M,數(shù)據(jù)恢復完成.
1.2.3 數(shù)據(jù)銷毀算法.
由于RAOD算法在數(shù)據(jù)存貯前就銷毀了非對稱私鑰,故僅需銷毀非對稱公鑰就意味著數(shù)據(jù)不可能恢復.假設一硬盤速度7 200 r/min,進行7次覆蓋就是對同一磁道進行7次寫,無需尋道時間,覆蓋需要的時間t=(60/7 200)s*7<0.1 s.
下面通過實例驗證RAOD算法,并對其安全性進行分析.
實例采用SHA-512單向散列算法,ECC-160非對稱加密算法和AES對稱加密算法進行組合,加密的明文長度為319 488 Byte.加密存貯過程如下:
1)準備.獲得ECC公鑰并銷毀私鑰,生成原始密鑰:“zxcsdfert345@#$”.
2)用SHA-512使原始密鑰變?yōu)?12 bit的二進制串K1,其十六進制值為:16dcefc1bb21973fb07bfd5f-497987f267707f853148073d56dc56a5c866268201f3a07bd0c7c76466f6e83d01385c8a4784791523e0f2686daa9908-c286e830.
3)使用ECC-160公鑰對K1進行加密,得到長度為 160 bit預加密密鑰K2,其十六進制值為:C9F2D3DB2969B9B6B28BB95F89014633E554177A.
4)將K2按字節(jié)轉(zhuǎn)換成十進制:201 242 211 219 41 105 185 182 178 139 185 95 137 1 70 51 229 84 23 122.對明文的第s位后循環(huán)添加隨機二制位(s依次是 2,0,1,2,…,1,7,8,1,3,9,…,1,2,2)直到超出明文范圍.此時,明文中已加入738 376 bit,明文M 變換為2 629 740 bit的預備明文M'.
5)M'按每組128 bit進行分組得到共20 544組,且最后一組只有108 bit,需填充20 bit滿足AES加密需要.
6)將K2 按照 ,Si=Si-1mod 160+f,的循環(huán)方法生成20 544組密鑰,每輪生成160個密鑰,f是取密鑰的輪數(shù).
7)使用KAi和M'Ai作為AES算法的輸入進行分組加密,得到密文組Ei,最后組合成密文E存貯.
根據(jù)對實例的分析,RAOD算法的威脅可能來自4個方面:密碼猜測與暴力破解;隨機二進制填充攻擊;攻擊對稱加密算法;攻擊非對稱加密算法.
2.2.1 密碼猜測暴力攻擊.
在算法實例中,從原始密鑰輸入結束到ECC-160加密成K2大約耗時280 ms,似乎可以進行暴力猜測,但這必需以獲得非對稱公鑰為前提.假設公鑰泄漏,那么猜測破解12 Byte ASCII可見字符集所花的時間T=0.28*9512s≈42萬億年,顯然不會成功.更何況選用的密鑰集可以是漢字或更大的字符集,密鑰集的增大使猜測難度成幾何級數(shù)增長.
需要說明的是,當公鑰銷毀成功時密鑰猜測就不可能進行了.
2.2.2 隨機二進制填充攻擊.
RAOD算法有利的一點是,其填充的隨機二進制值約占總信息量的28%,由算法可以看到,插入二進制位置重復,似乎可以使用差分分析方法縮減范圍,但是重復域為50~60個插入值大約240個二進制位,而在這個域里必需進行窮舉排除,運算次數(shù)可達C50230~ C60240>18050,顯然直接攻擊隨機二進制填充不可行.此外,RAOD算法中的二進制填充依賴于非對稱加密的K2,因此對二進制填充的攻擊轉(zhuǎn)化為非對稱加密的攻擊.
2.2.3 對稱加密算法攻擊.
據(jù)NIST計算,如果能夠制造1 s內(nèi)破解DES密碼的設備,那么用該設備來破解128 bit算法的密碼仍需要149萬億年[3].如果沒有正確的K2卻想要破解RAOD算法,所要破解的AES正是128 bit的對稱加密算法.根據(jù)前述分析,二進制填充對信息熵的破壞是無法繞過的,因此必須破解非對稱加密.
2.2.4 非對稱加密算法攻擊.
對實例中的ECC而言,還沒發(fā)現(xiàn)大的弱點可以用來進行有效攻擊[4].而RAOD算法要求數(shù)據(jù)加密前銷毀私鑰,僅需小于0.1 s就完成了對公鑰的銷毀.當公鑰和私鑰都不存在時,是完全不可能破解非對稱加密算法的.
2.3.1 優(yōu) 點.
RAOD算法中的具體加密算法可以任意選取,當一種算法不夠安全時,可以換用另一種安全的算法,因此RAOD算法本身是安全的.通常對于幾種安全加密算法組合的聯(lián)合破解的難度只能用無窮大來表述[5].要破解RAOD算法,只能破解非對稱算法,否則對算法其他點的攻擊都繞不過對非對稱算法.
2.3.2 弱 點.
由于RAOD算法僅需0.1 s就完成了對公鑰的銷毀,讓算法無法被攻破,這既是算法的優(yōu)點,同時也是算法的弱點.獲得非對稱公鑰并利用公鑰會減小破解整個算法的難度.當然根據(jù)公鑰破解非對稱加密算法本身就難度巨大,從這一點上來說,算法的弱點并不算弱.
磁盤數(shù)據(jù)快速銷毀一直是個難題,因為磁盤讀寫是耗時操作,而數(shù)據(jù)銷毀必需在短時間內(nèi)完成.本研究提出的磁盤數(shù)據(jù)快速銷毀算法其實質(zhì)是形成單向加密鏈,在數(shù)據(jù)存貯時做好銷毀的準備,需要時可以在最短時間內(nèi)完成銷毀.由于非對稱加密公鑰的關鍵性,因而可以對同一公鑰處理過的數(shù)據(jù)進行一次性批量快速銷毀.一旦公鑰銷毀成功,則數(shù)據(jù)就絕對安全,這也擴大了本算法的適用性.
:
[1]徐菁,朱有佃,賴凡.論磁性存儲介質(zhì)的數(shù)據(jù)銷毀技術[J].西南師范大學學報(自然科學版),2007,32(4):107-110.
[2]Garfinkel S L.Design Principle Sand Patterns for Computer Systems that areSimultaneously Secure andUsable[D].Boston:Massachusetts Institute of Technology,2005.
[3]侯整風,李嵐.橢圓曲線密碼系統(tǒng)(ECC)整體算法設計及優(yōu)化研究[J].電子學報,2004,32(11):1904-1906.
[4]韓雯.AES加密算法分析及其安全性研究[J].石油工業(yè)計算機應用,2008,16(2):46-48.
[5]王紅珍,李竹林.基于AES和ECC的混合加密系統(tǒng)的設計與實現(xiàn)[J].電子設計工程,2012,20(4):9-11.
Algorithm for Rapid Data Destruction
ZHOUJiang1,HUYi2
(1.Department of Judicial Information,Sichuan Judicial and Police Officers Professional College,Deyang 618000,China;2.Teaching Affairs Office,Chengdu University,Chengdu 610106,China)
How to destroy the data on magnetic disc rapidly is always a problem.An algorithm for rapid data destructionwasintroduced,inwhich initial passwordwasmixedly processedby one-way hash encryption algorithm,asymmetric encryption algorithm,random binary filling and symmetric encryption algorithm.This kind of hybrid encryption makes the data on magnetic disc to be at random and be hard to restore in theory.When the data needs to be destroyed ,there is just a small quantity of data which needs to be destroyed ,and then the large quantity of data will be unrecoverable in a very short time and thus the rapid destruction is realized.
binary random filling ;mixedly processed ;rapid destruction
TP311.1;TP309.2
A
1004-5422(2012)04-0357-03
2012-10-18.
周 江(1977—),男,碩士,講師,從事計算機信息安全與軟件開發(fā)技術研究.