亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

存儲器數據完整性保護的方法

文檔序號:6636390閱讀:1357來源:國知局
存儲器數據完整性保護的方法
【專利摘要】本發(fā)明提出一種內存數據完整性的保護方法。當系統(tǒng)需要將一個數據塊寫回內存時,首先產生新的counter分配給這個數據塊;然后應用計數器模式加密方法對數據塊加密;隨后將得到的密文數據塊和數據塊的地址輸入到帶密鑰的MAC函數中,MAC函數會產生一個輸出;最后根據MAC函數的輸出確定counter在內存中的存儲位置。本發(fā)明與傳統(tǒng)的內存數據完整性保護方案相比,它能夠以更低的存儲空間消耗、更小的計算資源占用,提供相同或者更高級別的內存數據完整性保護。
【專利說明】存儲器數據完整性保護的方法

【技術領域】
[0001]本發(fā)明屬于計算機數據存儲保護【技術領域】,涉及一種存儲器數據完整性保護的方法。

【背景技術】
[0002]科技的不斷發(fā)展,使得越來越多的數據存儲在內存中,特別是一些機密信息。攻擊者可以對內存發(fā)動多種王動攻擊,破壞存儲在內存中的數據的完整性,使系統(tǒng)運彳丁出現錯誤的結果。所以,需要對這些數據的完整性進行保護。目前保護內存數據完整性的常見方案是構建完整性保護樹,對從內存中取到的數據進行完整性驗證。但是,采用完整性保護樹進行完整性保護需要耗費大量的存儲空間存儲樹的內部節(jié)點,并且需要花費大量的時間對從內存中取到的數據塊進行完整性驗證,這會占用大量的系統(tǒng)計算資源。


【發(fā)明內容】

[0003]本發(fā)明提供一種隱藏數據塊和系統(tǒng)為這個數據塊分配的counter的地址間的映射關系的方法,以較低的存儲開銷和計算資源占用為內存數據提供完整性保護。
[0004]本發(fā)明的技術方案包括以下兩個部分:
[0005]當CPU將一個數據塊寫回內存時:
[0006]1.11首先,系統(tǒng)使用的counter自動增長,給這個數據塊分配新的counter,然后應用計數器模式加密方法對數據塊加密,以獲得相應的密文;
[0007]1.12將得到的密文形式的數據塊寫回內存;
[0008]1.13使用加密后的數據塊和這個數據塊的地址作為帶密鑰的MAC函數的輸入產生相應的輸出,根據這個輸出確定這個數據塊對應的counter在內存的最新存儲位置,如
(I);
[0009]1.14如果counter在緩存中不需要寫回內存,則不寫回;如果需要寫回內存,則將其寫回到根據1.13計算得出的結果確定的內存位置上,并且數據塊與它所對應的counter不是同時寫回內存。當counter需要寫回內存時,可以將多個counter批量寫回,使攻擊者無法分析出數據與counter的對應關系。使用的數據塊的地址是數據塊的物理地址。
[0010]addrco窗ter = Hkey (block I Iaddrblock) (I);
[0011]當CPU從內存中讀取一個數據塊時:
[0012]1.21直接從內存中讀取數據塊;
[0013]1.22同時,如果這個數據塊對應的counter在緩存中,貝U直接使用這個counter解密1.21中取到的數據塊;如果這個counter不在緩存中,則根據(I)計算系統(tǒng)為這個數據塊分配的counter在內存中的存儲位置,讀取這個counter,使用讀取到的counter對1.21中取到的數據塊進行解密;
[0014]將數據塊和數據塊的地址的連接作為帶密鑰的MAC函數的輸入,確保每次的輸入都是不同的,產生不同的輸出。如果產生沖突,采用通用的沖突消解方法處理。
[0015]可以在(I)中添加另一個非常短的輸入counterj,進一步消除MAC函數的輸入發(fā)生重復的可能性,counter」可以與數據以明文方式連接起來存儲,如(2)所示。相應的,在驗證數據完整性的步驟中,計算counter的存儲地址時也按照(2)計算:
addrcounter = Hkey (block | | counter」| | addrblock) (2)
[0016]系統(tǒng)使用計數器模式加密方法保護數據的機密性。
[0017]帶密鑰的MAC函數的輸入是密文形式的數據塊和數據塊的物理地址的連接。
[0018]本發(fā)明可以顯著的降低系統(tǒng)的存儲空間消耗?,F存的完整性保護方法都需要在內存中存儲完整性驗證樹的內部節(jié)點,會消耗大量的存儲空間。本發(fā)明只需要將系統(tǒng)為數據塊分配的counter存儲到內存。
[0019]本發(fā)明可以隱藏數據塊和counter的存儲地址間的映射關系。因為帶密鑰的MAC函數的輸出是均勻分布的,只要輸入不同,產生的輸出也是不同的。如果產生沖突,采用通用的沖突消除方法處理。
[0020]本發(fā)明可以顯著降低完整性保護方法導致的系統(tǒng)性能下降。當系統(tǒng)從內存中讀取一個數據塊時,如果對應的counter在片上,則直接使用這個counter ;如果對應的counter需要從內存中讀取,則計算counter在內存中的位置;不需要進行完整性檢查,直接解密即可,對系統(tǒng)的性能產生的負面影響較小。
[0021]本發(fā)明可以將一個非常短的輔助counter」引入帶密鑰的MAC函數的輸入中,進一步的降低MAC函數的輸入產生重復的可能,提高系統(tǒng)的安全性,counterj可以與明文數據連接起來存儲,如等式2。相應的,在驗證數據完整性的步驟中,計算counter的存儲地址也按照等式2計算。
[0022]addrcounter = Hkey (block | | counter」| | addrblock) (2)
[0023]本發(fā)明提出一種內存數據完整性的保護方法。當系統(tǒng)需要將一個數據塊寫回內存時,首先產生新的counter分配給這個數據塊;然后應用計數器模式加密方法對數據塊加密;隨后將得到的密文數據塊和數據塊的地址輸入到帶密鑰的MAC函數中,MAC函數會產生一個輸出;最后根據MAC函數的輸出確定counter在內存中的存儲位置。本發(fā)明與傳統(tǒng)的內存數據完整性保護方案相比,它能夠以更低的存儲空間消耗、更小的計算資源占用,提供相同或者更高級別的內存數據完整性保護。

【專利附圖】

【附圖說明】
[0024]圖1是本發(fā)明的系統(tǒng)體系框架圖。
[0025]圖2是CPU從內存中讀取一個數據塊的流程圖。
[0026]圖3是CPU將一個數據塊寫回內存的流程圖。

【具體實施方式】
[0027]下面結合附圖對本發(fā)明做進一步的說明。具體實現過程如下,結合圖1、2和3:
[0028]當CPU從內存中讀取一個數據塊時:
[0029]①系統(tǒng)從內存中讀取密文形式的數據塊;
[0030]②如果這個數據塊的counter在片上counter緩存中,轉到④;
[0031]③如果這個數據塊的counter不在片上counter緩存中,計算counter在內存中的位置,從內存中讀取counter ;
[0032]④應用計數器模式加密方法解密數據塊;
[0033]⑤程序結束。
[0034]當CPU將一個數據塊寫回內存時:
[0035]①系統(tǒng)為需要寫回的數據塊分配最新的counter ;
[0036]②應用計數器模式加密方法,加密數據塊;
[0037]③計算counter在內存中的存儲位置;
[0038]④將數據塊寫回內存;
[0039]⑤檢查這個最新的counter是否需要寫回內存?
[0040]⑥如果不需要寫回內存,則暫不寫回,轉到⑧;
[0041]⑦如果需要寫回內存,將多個counter —起寫回內存;
[0042]⑧程序結束。
[0043]如上面描述的那樣,當CPU從內存中讀取數據塊時,如果這個數據塊的counter在counter緩存中,則直接應用計數器模式加密方法進行解密;如果counter不在counter緩存中,則計算這個counter在內存中的存儲位置,從內存中讀取,然后再應用計數器模式加密方法進行解密。不需要在內存中存儲其他的額外數據,也不會在數據的關鍵路徑上添加完整性驗證延遲,降低了完整性保護方案導致的計算資源大量占用。
【權利要求】
1.一種保護內存存儲器數據完整性的方法,其特征在于隱藏數據塊和系統(tǒng)為這個數據塊分配的最新的counter的存儲地址之間的映射關系;具體包括以下兩個部分: 當CPU將一個數據塊寫回內存時:首先,系統(tǒng)使用的counter自動增長,給這個數據塊分配新的counter,然后應用計數器模式加密方法對數據塊加密,以獲得相應的密文;將得到的密文形式的數據塊寫回內存;使用加密后的數據塊和這個數據塊的地址作為帶密鑰的MAC函數的輸入產生相應的輸出,根據這個輸出確定這個數據塊對應的counter在內存的最新存儲位置,如式(I);如果counter在緩存中不需要寫回內存,則不寫回;如果需要寫回內存,則將其寫回到根據1.13計算得出的結果確定的內存位置上,并且數據塊與它所對應的counter不是同時寫回內存;當counter需要寫回內存時,可以將多個counter批量寫回,使攻擊者無法分析出數據與counter的對應關系;使用的數據塊的地址是數據塊的物理地址:
addrcounter = Hkey (block addrblock) (I); 當CPU從內存中讀取一個數據塊時:直接從內存中讀取數據塊;同時,如果這個數據塊對應的counter在緩存中,則直接使用這個counter解密取到的數據塊;如果這個counter不在緩存中,則根據計算系統(tǒng)為這個數據塊分配的counter在內存中的存儲位置,讀取這個counter,使用讀取到的counter對取到的數據塊進行解密。
2.如權利要求1所述的保護存儲器數據完整性的方法,其特征在于將數據塊和數據塊的地址的連接作為帶密鑰的MAC函數的輸入,確保每次的輸入都是不同的,產生不同的輸出;如果產生沖突,采用通用的沖突消解方法處理。
3.如權利要求1或2所述的保護存儲器數據完整性的方法,其特征在于,添加另一個非常短的輸入counter_i,進一步消除MAC函數的輸入發(fā)生重復的可能性,counter_i與數據以明文方式連接起來存儲;相應的,在驗證數據完整性的步驟中,計算counter的存儲地址時也按照式(2)計算:
addrcounter = Hkey (block | | counter_i | | addrblock) (2)。
【文檔編號】G06F12/06GK104463020SQ201410707362
【公開日】2015年3月25日 申請日期:2014年11月27日 優(yōu)先權日:2014年11月27日
【發(fā)明者】姚念民, 徐文霞, 譚國真, 戰(zhàn)福瑞, 陳炳才 申請人:大連理工大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1