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

用于數(shù)據(jù)存儲的完整性保護的制作方法

文檔序號:11450702閱讀:1214來源:國知局
用于數(shù)據(jù)存儲的完整性保護的制造方法與工藝

本公開涉及數(shù)據(jù)存儲、存儲高速緩存和密碼學的完整性保護。



技術實現(xiàn)要素:

根據(jù)一個實施方式,提供了一種用于保護存儲系統(tǒng)的完整性的方法,所述存儲系統(tǒng)分成多個存儲塊,每個存儲塊具有本地序列號。該方法維持針對每個所述存儲塊的年齡計數(shù)器;維持針對每個所述存儲塊的機會計數(shù)器;維持針對所述存儲系統(tǒng)的歷元計數(shù)器;將數(shù)據(jù)寫入所選擇的存儲塊中;增加所選擇的所述存儲塊的所述本地序列號;如果所選擇的所述存儲塊的所述本地序列號溢出,則更新針對所選擇的所述存儲塊的所述機會計數(shù)器;基于全局序列號和所述本地序列號,計算所選擇的所述存儲塊中的消息認證碼(mac);如果針對任何未選擇的存儲塊的機會計數(shù)器與針對所述未選擇的存儲塊的歷元計數(shù)器的lsb不匹配,則更新針對所述未選擇的存儲塊的所述年齡計數(shù)器和所述機會計數(shù)器;以及計算針對執(zhí)行所述更新的任何存儲塊的新的mac。

在一個實現(xiàn)方式中,1)在對應的年齡計數(shù)器溢出之后以及2)在將數(shù)據(jù)寫入對應的存儲塊期間,適時地更新所述mac中的每一者。

鑒于參照附圖的對各個實施方式和/或方面的詳細描述,本公開的前述、附加方面和實施方式對于本領域普通技術人員將是顯而易見的,接下來提供對各個實施方式和/或方面的詳細描述。

附圖說明

閱讀以下具體實施方式部分并參照附圖,本公開的前述和其它優(yōu)點將變得顯而易見。

圖1是全局序列號的示意圖。

圖2是使用具有機會計數(shù)器的本地序列號的示例的流程圖。

雖然本公開容易進行各種修改和替選形式,但是已經(jīng)在附圖中示出作為示例的具體實施方式或實現(xiàn)方式,并且將在此詳細描述。然而,應當理解,本公開不旨在受限于所公開的特定形式。而是,本公開旨在覆蓋落入由所附權利要求限定的本發(fā)明的精神和范圍內的所有修改、等同物和替選物。

具體實施方式

位于不安全設備上的存儲系統(tǒng)的完整性保護通常通過計算加密完整性保護值或消息認證碼(mac)并與數(shù)據(jù)一起存儲來完成。因此,未經(jīng)授權的第三方不能修改寫入在存儲器中的信息。

mac算法,有時稱為鍵控(加密)散列函數(shù)(然而,加密散列函數(shù)僅是生成mac的可能方式之一),接受作為輸入的密鑰和待認證的任意長度的數(shù)據(jù),并輸出mac(有時稱為標簽)。通過允許檢驗者(同樣具有密鑰的人)檢測數(shù)據(jù)內容的任何更改,mac值保護數(shù)據(jù)完整性及數(shù)據(jù)真實性。

當存儲器被真實地更新時,重新計算mac。為了防止回放先前的真實值,將唯一值(如計數(shù)器或序列號)添加到認證輸入。

當數(shù)據(jù)高速緩存向外部存儲器寫出高速緩存行時,也使用mac。在這種情況下,為了防止攻擊者回放先前的數(shù)據(jù)段,將序列號與存儲器中的各高速緩存行進行關聯(lián)。因此,攻擊者無法捕獲外部存儲器的圖像,并且在存儲器已經(jīng)更新后,用先前捕獲的版本替換存儲器內的高速緩存行。

通常,為了避免在將新數(shù)據(jù)寫入存儲器時的長時間的延遲,存儲器被分成存儲塊,并且利用每個存儲塊存儲mac。塊可以是一個高速緩存行或更大的存儲空間。因此,只需要在單獨的、較小的存儲塊上執(zhí)行認證算法。然而,需要針對每個存儲塊維持單獨的序列號。序列號需要足夠大以防止其太頻繁地到期(溢出)。當序列號到期時,需要再續(xù)鍵(rekey)加密完整性算法,這導致針對所有數(shù)據(jù)塊重新計算mac。在刷新過程期間,存儲系統(tǒng)不可訪問,導致訪問延遲。因此,大的序列號是優(yōu)選的,但是對于大量的塊,需要存儲和維持大量的序列號數(shù)據(jù)。

現(xiàn)有的解決方案是針對每個存儲塊維持小的本地序列號,并維持全局歷元計數(shù)器。歷元計數(shù)器和本地序列號被級聯(lián)以形成應用于完整性算法的序列號。然而,每當更新歷元計數(shù)器時,都需要更新每個mac。在刷新過程中無法訪問存儲系統(tǒng)。

需要減少存儲要求以維持序列號,同時最小化刷新事件和訪問延遲。需要在正常數(shù)據(jù)更新期間或在后臺中適時地更新mac,使得當更新歷元計數(shù)器時仍然可以訪問存儲器。

在一個實施方式中,參照圖1,全局序列號100包括本地序列號101和全局歷元計數(shù)器102。本地序列號101被分為兩個字段:機會計數(shù)器110和年齡計數(shù)器115。針對每個外部高速緩存行或存儲塊來維持本地序列號101的實例。密鑰初始化時,所有本地序列號重置為零。

全局歷元計數(shù)器102是對于所有塊的全局計數(shù)器。在數(shù)據(jù)塊的正常更新(寫入)期間,機會計數(shù)器110允許mac在年齡計數(shù)器115溢出之后適時地更新。機會計數(shù)器110還允許mac離線刷新到新的歷元值。

年齡計數(shù)器、機會計數(shù)器和歷元計數(shù)器的寬度可以被調整以折中歷元更新的頻率、離線完整性檢驗刷新到新的歷元值的頻率以及機會歷元更新相對于計數(shù)器值的存儲器存儲要求。

作為示例,32位全局序列號可以包括4位年齡計數(shù)器和2位機會計數(shù)器。

歷元計數(shù)器102和年齡計數(shù)器被級聯(lián)以形成用于計算完整性保護值的全序列號。通過將全局歷元計數(shù)器102與本地機會計數(shù)器110進行比較,推斷歷元計數(shù)器的最低有效位(lsb)。

每次將高速緩存行寫入外部存儲器時,將機會計數(shù)器110與歷元計數(shù)器102的lsb進行比較。如果它們相匹配,則年齡計數(shù)器增加1。如果年齡計數(shù)器回繞(進位到機會計數(shù)器中),歷元計數(shù)器增加1。當歷元計數(shù)器增值時,需要檢驗所有本地序列號,并且具有與新歷元的lsb匹配的機會計數(shù)器的每一行都需要立即用新的序列號重新計算其mac。

當歷元計數(shù)器改變時,機會計數(shù)器允許mac的離線更新或刷新。后臺進程或線程可以更新本地序列號,使得機會計數(shù)器與當前歷元同步。當高速緩存不忙時,即在低優(yōu)先級進程上時,可能發(fā)生這種情況。每當執(zhí)行mac刷新操作時,年齡計數(shù)器重置為零,以最小化對歷元更新的需要。當行被寫回到存儲器中并且機會計數(shù)器與當前歷元不匹配時,在計算mac之前機會計數(shù)器被設置為匹配,且年齡計數(shù)器重置為零。因此,對應于該行的mac適時地刷新。

通過寫入高速緩存行并驗證mac,來執(zhí)行外部高速緩存行mac值的刷新過程。使用更新的全局序列號,來計算新的mac。

當歷元計數(shù)器超過預定閾值時,可選地以不同的閾值對處理器產生中斷,以在計數(shù)器到期之前提示主動再續(xù)鍵操作。

可選地,后臺進程檢驗機會計數(shù)器并針對任何即將到期的機會計數(shù)器(例如,距離歷元的lsb為1比特的存儲塊)更新mac。在后臺進程期間,任何存儲塊mac都可以根據(jù)預先確定的策略進行更新。這使得在刷新命中之前高速緩存行可以適時更新的時間最大化,并仍然允許刷新作為后臺進程運行。

圖2示出了當在步驟201處啟動對存儲塊i的更新認證碼時的實施方式的示例性流程圖。如果步驟203確定,在步驟203處針對塊i的機會計數(shù)器與歷元計數(shù)器的lsb不同,則本地序列號來自不同的歷元,然后步驟205將針對塊i的機會計數(shù)器設置為歷元計數(shù)器的lsb,并將針對塊i的年齡計數(shù)器重置為零。另外,本地序列號處于當前歷元中,并且在步驟207處,針對塊i的年齡計數(shù)器增值。如果在步驟209處年齡沒有溢出(即,沒有進位),則在步驟211處,用新的序列號更新存儲塊i。如果在步驟209處年齡溢出(即重置到零),則需要在步驟213處更新歷元計數(shù)器,針對塊i的機會計數(shù)器被設置為歷元計數(shù)器的lsb,并且年齡被重置為0。存儲塊i被相應地更新。除了在步驟213處剛更新的存儲塊(其被步驟215跳過)之外,在步驟219處檢驗所有存儲塊j。如果在步驟219處針對塊j的機會計數(shù)器等于歷元計數(shù)器的lsb,則機會計數(shù)器已經(jīng)落后于由機會計數(shù)器中的位數(shù)所表示的歷元數(shù)(在本例中,4個歷元,因為機會計數(shù)器為2位),并且存儲塊j的mac需要在步驟221處刷新。如果在步驟219處針對塊j的機會計數(shù)器不等于歷元計數(shù)器的lsb,則不需要對塊j更新,并且通過在步驟217處增加j的值來檢驗下一個塊。

上述實施方式也可以用于加密的存儲系統(tǒng)。

盡管已經(jīng)分別描述了上述算法(包括參照上述流程圖的那些算法),但是應當理解,本文公開的任何兩種或更多種算法可以以任何組合進行組合。本文描述的任何方法、算法、實現(xiàn)方式或過程可以包括由以下項執(zhí)行的機器可讀指令:(a)處理器,(b)控制器,和/或(c)任何其它合適的處理設備。本文公開的任何算法、軟件或方法可以包含在存儲在非暫時性有形介質上的軟件中,該非暫時性有形介質例如是閃速存儲器、cd-rom、軟盤、硬盤驅動器、數(shù)字通用光盤(dvd)、或其它存儲設備,但是本領域普通技術人員將容易地理解,整個算法和/或其各部分可替選地由除控制器之外的設備執(zhí)行和/或以公知方式包含在固件或專用硬件中(例如,它可以由專用集成電路(asic)、可編程邏輯器件(pld)、現(xiàn)場可編程邏輯器件(fpld)、離散邏輯等來實施)。而且,本文描述的任何流程圖中表示的機器可讀指令中的一些或全部可以手動實施,而不由控制器、處理器或類似的計算設備或機器自動執(zhí)行。此外,盡管參照本文示出的流程圖描述了特定算法,但是本領域普通技術人員將容易地理解,可以替選地使用實現(xiàn)示例的機器可讀指令的許多其它方法。例如,可以改變塊的執(zhí)行順序,和/或可以改變、去除或組合所描述的一些塊。

應當注意,本文所說明和討論的算法具有執(zhí)行特定功能并彼此交互的各種模塊。應當理解,為了描述,這些模塊僅基于它們的功能被分離,并且表示計算機硬件和/或存儲在計算機可讀介質上的用于在適當?shù)挠嬎阌布蠄?zhí)行的可執(zhí)行軟件代碼。不同模塊和單元的各種功能可以組合或者分離為硬件和/或存儲在如上的非暫時性計算機可讀介質上的軟件作為以任何方式的模塊,并且可以單獨使用或組合使用。

盡管已經(jīng)示出和描述了本公開的具體實現(xiàn)方式和應用,但是應當理解,本公開不限于本文公開的精確構造和組合,以及從前面的描述,各種修改、變化和變型是顯而易見的而不脫離如所附權利要求限定的發(fā)明的精神和范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1