一種計算機存儲器的加密方法和解密方法
【技術領域】
[0001]本發明屬于計算機存儲安全技術領域,具體涉及一種非易失存儲器的加密方法和解密方法。
【背景技術】
[0002]非易失性存儲器(Non Volatile Memory)是最有前景取代傳統存儲器件(比如SRAM和DRAM)的存儲媒介,它有著集成度高、漏電功耗低、訪問速度快、非易失等特性,并已開始替代傳統的DRAM存儲器應用在移動設備系統中。雖然非易失性存儲器比DRAM的壽命要持久、漏電功耗低,但它的非易失特性使得其很容易受到外圍惡意程序的攻擊。非易失性存儲器在斷電后數據仍然保存,針對非易失性存儲器的一個很典型的攻擊就是物理攻擊,攻擊者很容易獲取存儲器里面的用戶機密信息,這就為非易失性存儲器在移動系統中的使用帶來了很大的挑戰。近年來非易失性存儲器得到學術界和工業界的廣泛關注,研究人員針對其性能改進做了大量優化工作,未來非易失性存儲器將在存儲器領域中占據主要角色,而存儲數據的安全性便成為人們關注的要點。
[0003]智能手機等移動設備日益普及,大量的用戶私密信息存儲在設備里,存儲信息的安全性急待解決。提高移動設備的數據安全性尤為重要。針對非易失性存儲器在移動系統中的安全性研究已經展開,S.Chhabra and D.Solihin, “1-nvmm: a securenon-volatile main memory system with incremental encrypt1n,,,The 38th AnnualInternat1nal Symposium on in Computer Architecture (ISCA), pp.177 - 188, IEEE,2011 (S.Chhabra and D.Solihin, 1-nvmm: —種基于增量加密的安全非易失內存系統,第38借計算機系統結構國際研討會2011,第177-188頁)于2011年提出名為i_NVMM的基于AES的加密算法。該技術采用AES算法加密在NVM的冷區數據,在結束應用程序是菜加密所有的數據。雖然1-NVMM加密技術能最小化延遲和能量開銷,而比冷區數據更敏感的熱區數據卻不受保護,存在很大的安全隱患。J.Kong and H.Zhou, “Improving privacy andlifetime of pcm-based main memory, ”
Internat1nal Conference on Dependable Systems and Networks (DSN), pp.333 - 342,IEEE, 2010( J.Kong and H.Zhou,改善基于相變存儲器內存的私密性和壽命,可靠性系統和網絡的國際會議2010,第333-342頁)介紹一個基于counter-mode XOR加密技術,為每個內存數據塊計算crypto-PAD代替直接與AES加密數據,然而該算法卻增加存儲代價。目前,現有技術并沒有考慮到移動系統中數據的訪存和數據特性,主要采用直接加密算法或者加密部分數據,但降低了系統的整體性能,如增加了功耗和增加了時延。
【發明內容】
[0004]本發明所要解決的技術問題是從操作系統中資源管理的層面,提供一種計算機存儲器的加密方法,它能降低存儲器數據加密所需的功耗;相應地,還提供一種計算機存儲器的解密方法,它降低系統的時延,保證系統快速響應。
[0005]要解決上述技術問題,本發明提供的一種計算機存儲器的加密方法,包括有以下步驟:
步驟1、將需要加密的數據劃分為多個數據塊;
步驟2、對每個數據小塊進行hash運算,對得到的結果做加密運算,得到數據塊對應的中間變量值(記為PAD值);
步驟3、判斷要寫入的數據的地址是否非易失性存儲器中頻繁寫的熱區;
步驟4、將熱區數據塊的PAD值放在緩存中;
步驟5、通過把數據塊的內容與其對應的PAD值做異或運算得到加密后的數據;
步驟6、將加密后的數據寫入非易失性存儲器的存儲單元。
[0006]本發明還提供的一種計算機存儲器的解密方法,包括有以下步驟:
步驟1、讀取要解密的數據塊;
步驟2、判斷要讀取的數據塊是否為熱區數據,如是,熱區數據則從緩存里讀取其對應的PAD值;否則,按加密過程的方法,去重新計算PAD值;
步驟3、通過把數據塊的內容與其對應的PAD值做異或運算得到最初的數據。
[0007]由于本發明的加密方法通過步驟4不斷地把屬于熱區的數據塊的PAD值緩存起來,避免了大量解密過程中PAD值的重計算操作,從而降低了系統功耗,延長了系統電池的壽命。由于本發明提出的加密算法的解密過程在步驟2中獲取PAD值時,與非易失性存儲器訪問數據能并行執行,減少了系統解密的時間,縮短系統響應的時延。
[0008]本發明具有如下的優點:避免了頻繁被寫的熱區數據塊PAD值的重計算操作,實現了系統功耗的節約;另外,PAD值的獲取與數據塊的訪問可以并行執行,實現了系統時延的降低即延長設備的壽命,能保證系統快速響應。
【附圖說明】
[0009]本發明的【附圖說明】如下:
圖1為本發明數據加密的流程圖;
圖2為本發明數據解密的流程圖;
圖3本發明的數據存儲狀態示意圖。
【具體實施方式】
[0010]下面結合附圖和實施例對本發明作進一步說明:
如圖1所示,本發明的數據加密流程如下:程序開始于步驟101;
在步驟102,根據具體應用程序,初始化熱區的起始邏輯地址、熱區長度,保存熱區起始物理地址的初始化;
在步驟103,數據分塊,將要寫入的數據分成大小相同的塊,數據塊可以設置為不同的大小尺寸,比如 128Bits,256Bits,512Bits,1024Bits 等;
在步驟104,判定要寫入的數據塊是否完成全部加密,若已完成,則執行步驟112,否則,執行步驟105 ;
在步驟105,對將要寫入的數據塊采用目前最廣泛使用的hash算法SHA (Secure HashAlgorithm,譯作安全雜湊算法),得到hash操作的輸出結果(記為Mid); Hash函數屬于很成熟的信息安全領域的加密算法,“An Overview of IncrementalHash Funct1n Based on Pair Block Chaining,,.Yunling, S., & Xianghua, M.1nformat1n Technology and Applicat1ns, (2010),Internat1nal Forum on (Vol.3,pp.332-335).1EEE.(“一個基于雙塊連接的增量hash函數綜述”,Yunling, S.,&Xianghua, M,國際信息技術和應用研討會2010,第332-335頁)于2010年7月做了一個基于雙鏈接的增量hash函數的綜述,也就是對hash函數做了理論,有效性,安全和應用方面的整體分析。
[0011]