專利名稱:基于不等長計(jì)數(shù)器的存儲器保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種計(jì)算機(jī)安全保護(hù)方法,具體的說是一種基于不等長計(jì)數(shù)器的存儲器保護(hù)方法。
背景技術(shù):
數(shù)據(jù)機(jī)密性是指阻止攻擊者對數(shù)據(jù)的非法獲得與理解,數(shù)據(jù)完整性是指對抗對手主動(dòng)攻擊,防止信息被未經(jīng)授權(quán)的篡改,它們是安全體系結(jié)構(gòu)和存儲安全領(lǐng)域的重要研究內(nèi)容。保護(hù)數(shù)據(jù)機(jī)密性主要是通過加密,加密方法主要分為對稱密鑰加密法和非對稱密鑰加密法。前者加密和解密使用相同密匙;后者加密和解密使用不同密匙,即一方公鑰,一方私鑰。對稱密鑰加密法分為流加密和塊加密,流加密是以位為加密的基本單位,通過密鑰流和明文逐位異或(XOR)獲得密文,典型流加密方法是一次一密的號碼簿(OTP,one-timepad)加密;后者是以數(shù)據(jù)塊為單位進(jìn)行加密,典型塊加密法的模式有電子編碼簿(ECB,electronic code book),加密塊鏈(CBC, Cipher Block Chaining)和計(jì)數(shù)器模式(countermode)加密等。計(jì)數(shù)器模式加密是通過CPU維護(hù)的計(jì)數(shù)器產(chǎn)生counter來加密數(shù)據(jù)塊,以AES(Advanced Encryption Standard)為加密引擎的加密過程是當(dāng)新產(chǎn)生或修改數(shù)據(jù)塊時(shí),counter+1,將其和數(shù)據(jù)塊地址等信息相連接后用CPU內(nèi)保密的對稱密匙進(jìn)行AES加密,生成加密用的pad,再將pad和cache行XOR后得到密文,最后將密文和counter保存在內(nèi)存中;解密時(shí)從內(nèi)存中取出counter并和數(shù)據(jù)塊地址等信息連接,用CPU私匙對其再次進(jìn)行AES加密,同時(shí)開始從內(nèi)存取密文,當(dāng)AES加密和取密文都完成后,將pad和密文XOR得到cache行明文。相對ECB和CBC等直接對數(shù)據(jù)加密的方式,counter模式加密可隱藏解密延遲,為目前加密的主流方法,應(yīng)用較廣,但此方法要求每個(gè)數(shù)據(jù)塊都有唯一的counter值,這要耗費(fèi)大量的主存空間。一些保護(hù)存儲器完整性的機(jī)制也應(yīng)用counter模式加密。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供了一種降低保存counter所需要的主存開銷,同時(shí)降低溢出的可能性的基于不等長計(jì)數(shù)器的存儲器保護(hù)方法。本發(fā)明的目的是這樣實(shí)現(xiàn)的基于計(jì)數(shù)器模式加密進(jìn)行數(shù)據(jù)加密,根據(jù)內(nèi)存訪問頻率來動(dòng)態(tài)調(diào)整counter的長度,當(dāng)內(nèi)存塊訪問頻率高時(shí),增加counter長度;當(dāng)內(nèi)存塊訪問頻率低時(shí),減少counter長度;要實(shí)現(xiàn)基于不等長計(jì)數(shù)器的存儲器保護(hù)機(jī)制,有三個(gè)主要過程初始化、數(shù)據(jù)塊讀寫和數(shù)據(jù)頁遷移;(I)初始化在內(nèi)存中劃分出熱區(qū)和非熱區(qū),熱區(qū)保存的是訪問頻率高的數(shù)據(jù)塊和對應(yīng)counter ;非熱區(qū)保存訪問頻率低的塊和對應(yīng)的counter ;為內(nèi)存中的每個(gè)頁設(shè)置一個(gè)局部計(jì)數(shù)器,當(dāng)頁內(nèi)的塊每寫一次時(shí),相應(yīng)counter加I ;
(2)數(shù)據(jù)塊讀寫數(shù)據(jù)塊讀寫要進(jìn)行加解密,加密模式基于計(jì)數(shù)器模式加密;當(dāng)新產(chǎn)生的cache行被寫回內(nèi)存時(shí),要寫到非熱區(qū);當(dāng)修改后的數(shù)據(jù)塊被寫回內(nèi)存時(shí),寫到它讀取的區(qū),即從非熱區(qū)讀取的,則寫到非熱區(qū),從熱區(qū)讀取的,則寫到熱區(qū);(3)數(shù)據(jù)頁遷移數(shù)據(jù)頁遷移有遷入到熱區(qū)和遷出到非熱區(qū)兩個(gè)過程,在處理器中維護(hù)一個(gè)結(jié)構(gòu)來統(tǒng)計(jì)每個(gè)頁的寫回頻率,并設(shè)置遷入的閾值,閾值為人為設(shè)定的寫回頻率;當(dāng)非熱區(qū)中頁的寫回頻率達(dá)到閾值時(shí),要進(jìn)行遷入;當(dāng)熱區(qū)空間已滿,在遷入前要在熱區(qū)選擇一個(gè)寫回頻率最低的頁遷出。所述的熱區(qū)的counter長度長,所述的非熱區(qū)的counter長度短,熱區(qū)和非熱區(qū)具有不同的密鑰。本發(fā)明的方法的主要特點(diǎn)如下(I)存儲counter的開銷較小。因?yàn)殡m然熱區(qū)中counter較長,但熱區(qū)占整個(gè)要保護(hù)內(nèi)存空間的比例很小,大部分空間為非熱區(qū),其中的counter較短,因此總體上counter的主存開銷較小。(2) counter溢出的次數(shù)較少。因訪問頻率較高的塊都被移到熱區(qū),由程序的局部訪問特性,在某段時(shí)間內(nèi),大部分的訪問集中在熱區(qū),熱區(qū)的counter數(shù)值增長很快,但counter長度足夠長,不容易溢出;同時(shí)熱區(qū)外的數(shù)據(jù)塊訪問次數(shù)較少,非熱區(qū)的counter增長較慢,因此雖counter短也不容易溢出。
圖I是不等長計(jì)數(shù)器保護(hù)機(jī)制結(jié)構(gòu)圖;圖2不等長計(jì)數(shù)器保護(hù)機(jī)制遷入過程;圖3不等長計(jì)數(shù)器保護(hù)機(jī)制遷出過程。
具體實(shí)施例方式結(jié)合圖I。圖中上部為處理器,它是可信區(qū),可防止軟件和硬件攻擊,處理器內(nèi)有處理器核心、L2-cache、加密引擎及計(jì)數(shù)器等部件,圖下部為內(nèi)存,它是不可信區(qū),可能受到硬件攻擊,它包括非熱區(qū)和熱區(qū),每個(gè)區(qū)都有多個(gè)頁(Page),一個(gè)頁有多個(gè)密文塊(EB)及計(jì)數(shù)器值(ctr或ctr’ ),熱區(qū)所占空間小,ctr長;非熱區(qū)所占空間大,ctr短。結(jié)合圖2。從非熱區(qū)讀出頁及對應(yīng)的計(jì)數(shù)器值(ctr);用非熱區(qū)密匙對頁進(jìn)行計(jì)數(shù)器模式解密獲得明文塊;熱區(qū)的計(jì)數(shù)器(C)對頁內(nèi)每個(gè)明文塊生成新計(jì)數(shù)器值(ctr’ );用熱區(qū)密匙、ctr’和addr組成的加密種子對明文塊進(jìn)行計(jì)數(shù)器模式加密;將加密頁和ctr’映射到熱區(qū)。結(jié)合圖3。從熱區(qū)讀出頁及對應(yīng)的計(jì)數(shù)器值(ctr’);用熱區(qū)密匙對頁進(jìn)行計(jì)數(shù)器模式解密獲得明文塊;非熱區(qū)的計(jì)數(shù)器(C’ )對頁內(nèi)每個(gè)明文塊生成新計(jì)數(shù)器值(ctr);用非熱區(qū)密匙、ctr和addr組成的加密種子對明文塊進(jìn)行計(jì)數(shù)器模式加密;將加密頁和ctr映射到非熱區(qū)
權(quán)利要求
1.一種基于不等長計(jì)數(shù)器的存儲器保護(hù)方法,其特征是基于計(jì)數(shù)器模式加密進(jìn)行數(shù)據(jù)加密,根據(jù)內(nèi)存訪問頻率來動(dòng)態(tài)調(diào)整counter的長度,當(dāng)內(nèi)存塊訪問頻率高時(shí),增加counter長度;當(dāng)內(nèi)存塊訪問頻率低時(shí),減少counter長度;要實(shí)現(xiàn)基于不等長計(jì)數(shù)器的存儲器保護(hù)機(jī)制,有三個(gè)主要過程初始化、數(shù)據(jù)塊讀寫和數(shù)據(jù)頁遷移; (1)初始化 在內(nèi)存中劃分出熱區(qū)和非熱區(qū),熱區(qū)保存的是訪問頻率高的數(shù)據(jù)塊和對應(yīng)counter ;非熱區(qū)保存訪問頻率低的塊和對應(yīng)的counter ;為內(nèi)存中的每個(gè)頁設(shè)置一個(gè)局部計(jì)數(shù)器,當(dāng)頁內(nèi)的塊每寫一次時(shí),相應(yīng)counter加I ; (2)數(shù)據(jù)塊讀寫 數(shù)據(jù)塊讀寫要進(jìn)行加解密,加密模式基于計(jì)數(shù)器模式加密;當(dāng)新產(chǎn)生的cache行被寫回內(nèi)存時(shí),要寫到非熱區(qū);當(dāng)修改后的數(shù)據(jù)塊被寫回內(nèi)存時(shí),寫到它讀取的區(qū),即從非熱區(qū)讀取的,則寫到非熱區(qū),從熱區(qū)讀取的,則寫到熱區(qū); (3)數(shù)據(jù)頁遷移 數(shù)據(jù)頁遷移有遷入到熱區(qū)和遷出到非熱區(qū)兩個(gè)過程,在處理器中維護(hù)一個(gè)結(jié)構(gòu)來統(tǒng)計(jì)每個(gè)頁的寫回頻率,并設(shè)置遷入的閾值,閾值為人為設(shè)定的寫回頻率;當(dāng)非熱區(qū)中頁的寫回頻率達(dá)到閾值時(shí),要進(jìn)行遷入;當(dāng)熱區(qū)空間已滿,在遷入前要在熱區(qū)選擇一個(gè)寫回頻率最低的頁遷出。
2.根據(jù)權(quán)利要求I所述的基于不等長計(jì)數(shù)器的存儲器保護(hù)方法,其特征是所述的熱區(qū)的counter長度長,所述的非熱區(qū)的counter長度短,熱區(qū)和非熱區(qū)具有不同的密鑰。
全文摘要
本發(fā)明提供的是一種基于不等長計(jì)數(shù)器的存儲器保護(hù)方法?;谟?jì)數(shù)器模式加密進(jìn)行數(shù)據(jù)加密,根據(jù)內(nèi)存訪問頻率來動(dòng)態(tài)調(diào)整計(jì)數(shù)器counter的長度,當(dāng)內(nèi)存塊訪問頻率很高時(shí),增加counter長度;當(dāng)內(nèi)存塊訪問頻率很低時(shí),減少counter長度;要實(shí)現(xiàn)基于不等長計(jì)數(shù)器的存儲器保護(hù)機(jī)制,有三個(gè)主要過程初始化、數(shù)據(jù)塊讀寫和數(shù)據(jù)頁遷移。本發(fā)明減小了存儲counter的開銷,同時(shí)counter溢出的次數(shù)較少。
文檔編號G06F12/14GK102629236SQ201210040960
公開日2012年8月8日 申請日期2012年2月22日 優(yōu)先權(quán)日2012年2月22日
發(fā)明者姚念民, 馬海峰 申請人:哈爾濱工程大學(xué)