TWI609289B - 用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法、系統及處理器 - Google Patents
用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法、系統及處理器 Download PDFInfo
- Publication number
- TWI609289B TWI609289B TW101149324A TW101149324A TWI609289B TW I609289 B TWI609289 B TW I609289B TW 101149324 A TW101149324 A TW 101149324A TW 101149324 A TW101149324 A TW 101149324A TW I609289 B TWI609289 B TW I609289B
- Authority
- TW
- Taiwan
- Prior art keywords
- cipher
- tree
- node
- mac
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Description
本發明係有關平臺,更特別係有關但不專獨地受限於用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法及裝置。
記憶體鑑認的先前方案會苦於在重播保護樹之各種層級之處理間之固有的寫入後讀取相依性。此重播保護之密碼學是以子節點的密碼處理要到父節點之密碼處理完成之後才能開始這樣的方式工作。因此,此架構有很高的管線氣泡傾向,並且在最糟的情況中,還可能會導致受保護的記憶體區域有相較於未受保護之記憶體區域三倍的記憶體潛時。視工作負載而定,所增加的潛時可能會大大地對平臺之電力/效能特性造成不利的衝擊。
依據本發明之一實施例,係特地提出一種處理器,其包含:用於移除在密碼處理之期間內在一個密碼樹中之一或多個階層之間的寫入後讀取相依性的邏輯,其中對於該密碼樹的一個子節點的該密碼處理係要與該密碼樹的一個父節點一起作管線處理。
100‧‧‧記憶體保護邏輯
105‧‧‧未中位址
110‧‧‧最末階快取(LLC)
120、231、233、235、237、239、241、243、245、261、263、265、267、269、271、273、275‧‧‧襯墊
130‧‧‧密碼
140‧‧‧種源
142‧‧‧位址(空間獨特性)
144‧‧‧每列計數符
150、530‧‧‧記憶體
200‧‧‧方塊圖
205‧‧‧受信賴界限
210~218、230、232、234、236、238、240、242、244‧‧‧計數符
220~224‧‧‧中間元資料列
250~254‧‧‧葉元資料列
260、262、264、266‧‧‧版本
268、270、272、274‧‧‧訊息鑑認碼(MAC)
280~286‧‧‧經加密資料列
300‧‧‧驗證操作;流程
310‧‧‧步驟;發佈記憶體請求
315‧‧‧步驟;檢查記憶體請求是否已完成
320‧‧‧步驟;檢查元資料節點是否已回傳
330‧‧‧步驟;產生MAC
332‧‧‧步驟;檢查MAC產生是否已完成
334‧‧‧步驟;檢查驗證是否已完成
340‧‧‧步驟;揚起(raise)安全性例外
350‧‧‧步驟;將經解密資料傳遞給處理器
400‧‧‧流程
410‧‧‧步驟;加密資料列,並產生新的MAC
415‧‧‧步驟;檢查是否已完成更新
420‧‧‧步驟;將資料列逐出到主記憶體
500‧‧‧系統或平臺
510‧‧‧處理器
512‧‧‧處理核心
514‧‧‧記憶體控制集線器(MCH)
516‧‧‧快取記憶體
517、522、524、526‧‧‧介面
520‧‧‧晶片組
530‧‧‧記憶體
532‧‧‧依電性記憶體
534‧‧‧非依電性記憶體
540‧‧‧GPU或顯示器裝置
550、560‧‧‧匯流排
572‧‧‧匯流排橋
574‧‧‧模組
580‧‧‧模組;非依電性記憶體
582‧‧‧模組;大容量儲存裝置
584‧‧‧模組;鍵盤/滑鼠
586‧‧‧模組;網路介面
從下文之對主旨的詳細說明中,本發明的數個實施例之特徵和優點將會變得明顯可見,其中:圖1例示出依據本發明之一實施例的記憶體保護邏輯之方塊圖;圖2例示出依據本發明之一實施例的記憶體保護邏輯之方塊圖;圖3例示出依據本發明之一實施例的一個驗證操作;圖4例示出依據本發明之一實施例的一個更新操作;並且圖5依據本發明之一實施例,例示出一個系統,用以實施於本文中所揭露之方法。
於此所說明的本發明之數個實施例係以隨附圖式中之範例方式而非以限制方式例示。為求例示簡明,例示在這些圖中的元件並不必然係依比例繪製。例如,一些元件的尺寸可能會相對於其他元件被放大以求明晰。此
外,在被認為是合適的地方,有些參考標號係於這些圖中被重複,以指出對應或類似的元件。於本說明書中之對本發明之「一個實施例」或「一實施例」之指涉係指配合此實施例所說明的一個特定特徵、結構或特性係包括在本發明的至少一個實施例中。因此,於本說明書通篇中之多處的「在一個實施例中」此詞語的出現並不必然全係指涉同一個實施例。
本發明的數個實施例提供用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法及裝置。為便於例示,在本發明的一個實施例中,係將未加密的敏感性資料稱為簡樸文本,並將經加密資料稱為密碼文本。對於記憶體資訊之保護包括但不受限於機密性保護、仿造保護和重播保護。
在本發明的一個實施例中,機密性保護(Confidentiality Protection,CP)避免攻擊者從密碼文本中復原出簡樸文本。主記憶體模組(例如,一個動態隨機存取記憶體(dynamic random access memory,DRAM))的持有時間對於保證就安全考量而言沒有資料損失這方面是很重要的,因為DRAM可能會持有應該要保持在未公開狀態的重要敏感性資料。例如,冷開機攻擊是一種潛在性攻擊,當中,具有對此系統之實體取用途徑的攻擊者可竭盡所能地使用DRAM持有時間來從主記憶體中復原出敏感性資料。
在另一個實施例中,用來嚴實地加密驅動器的
密碼金鑰可係駐於DRAM中。因為DRAM內容係逐漸被拭除,所以這些內容在關機之後的一小段期間內是可取用的。藉由冷卻DRAM晶片,對這些DRAM內容的取用時間可被進一步地從幾秒鐘增加到到數分鐘。這使得攻擊者能夠藉由將經冷卻的DRAM晶片從一部電腦移到另一部而成功地從DRAM中讀取出碟片密碼金鑰,藉此破解嚴實的驅動器加密。
在本發明的一個實施例中,仿造保護(Forgery Protection,FP)或完整性(Integrity)保護避免攻擊者致使對密碼文本的任何隱藏性修改。例如,資料可能會是透過硬體或傳輸錯誤而被不經意地修改、或者是出於蓄意的惡意目的而被修改。在這兩種情況中之無論何者中,結果都會是相當令人出乎意料的。例如,這可能會致使執行流程毀壞,而洩漏出儲存在DRAM中的密碼機密。
在本發明的一個實施例中,重播保護(Replay Protection,RP)消除了對密碼文本的任何未檢測到的短暫替代。舉例來說,利用重播(Replay)攻擊,網頁(Web)應用程式可被輕易地剝削來致使惡意結果。例如,當使用者正利用一個網頁應用程式而進行金融交易以驗證其登入憑證(例如通行密碼)時,駭客可捕獲這些封包,並在網路交通中重播這些封包一段時間且得以取用此使用者的金融帳戶。此駭客亦可變更先前封包的順序,以修改程式行為,致使令人不快的後果。
本發明的數個實施例提供一種密碼方案,其移
除在密碼樹之各種層級之間的寫入後讀取相依性。在本發明的一個實施例中,一個子節點的密碼處理係可與父節點的密碼處理一起作管線處理。以此方式,係可有效地使用密碼管線,並且這可大大地減少潛時。在本發明的一個實施例中,此系統經由加密和鑑認技術而具有對其記憶體內容的強健硬體保護,這些加密和鑑認技術係特別設計來藉由藉著所佈署之密碼技術確保一般處理器或中央處理單元(Central Processing Unit,CPU)執行流程未經更改,而獲取更高效能度量。藉此,此系統可藉由在不犧牲密碼強度的情況下節省晶粒區域而減少成本。
在本發明的一個實施例中,此平臺的安全敏感性資料或記憶體內容係利用一個適當的加密/解密(Encryption/Decryption)演算法而被加密。在本發明的一個實施例中,係在最末階快取(Last Level Cache,LLC)和此平臺之外部記憶體之間設置加密引擎。
在本發明的一個實施例中,無論何時,只要資料被從處理器晶片或平臺中之模組中逐出,此資料都會被加密並儲存在此平臺之主記憶體中。藉此,在本發明的一個實施例中,可消除攻擊者在處理器晶片之界限外觀察到簡樸文本資料的可能性。此加密/解密演算法包括但不受限於以XEX[在互斥或(exclusive OR,XOR)後之加密後之XOR]為基礎的扭擰模式,其具有加密之密碼文本偷竊(Cipher Text Stealing,XTS)模式以加密資料列(Data-line)。
在本發明的一個實施例中,係針對此加密/解密演算法而使用計數符模式加密。圖1例示出依據本發明之一實施例的記憶體保護邏輯100之方塊圖。在本發明的一個實施例中,此記憶體保護邏輯100利用密碼襯墊(cryptographic pad)120而加密或解密來自LLC 110的一個記憶體列(memory line)。例如,在本發明的一個實施例中,此記憶體列已以每列獨特密碼襯墊120作過XOR以對其加密或解密。
密碼襯墊120係利用使用每列獨特種源140的密碼130所產生,每列獨特種源140在時間性和空間性上都是獨特的。為了獲得種源140的時間獨特性,係使用每列計數符144。此每列計數符是在每次有一個記憶體列被寫回到記憶體150中時增量,並且此計數符係作用為記憶體資料列的一個版本。為了獲得種源140的空間獨特性,係使用記憶體列的列位址或未中位址105。
此記憶體加密確保資料之機密性有被維持。在本發明的一個實施例中,係藉由加密敏感性記憶體內容並藉由創造出一個雜湊或訊息鑑認碼(Message Authentication Code MAC,MAC)且將這些MAC儲存在一個樹狀結構中而將其加密,來提供重播保護。
圖2例示出依據本發明之一實施例的記憶體保護邏輯之方塊圖200。係配合圖1來論述圖2。為求例示簡明,係將儲存資料的快取記憶體列稱為資料列,並將儲存MAC的快取記憶體列稱為MAC列。方塊圖200例示
出一個有效的計數符樹組織,其提供記憶體機密性、完整性和重播保護,同時並需求相較於先前技術之計數符樹重播保護演算法而言相當微小的低效能負擔。
為求例示簡明,圖2係例示出在記憶體中的一個128百萬位元組(Megabyte,MB)的受保護區域。階級0(L0)例示晶粒上計數符,L1係用於下一個階段的立即節點,以此類推。LN例示此樹的葉節點或最末節點。例如,計數符L0C0 210、L0C1 212、L0C2 214、L0C3 216和L0CN 218例示數量為N個的晶粒上計數符。這些計數符係在受信賴界限205之內,因為它們無法由攻擊者輕易取用。
在本發明的一個實施例中,一個專用的晶粒上SRAM儲存這些晶粒上計數符,這些晶粒上計數符係作用為此樹的根基。這些晶粒上計數符係被用作一個輸入,以在第一階中間元資料列中產生MAC。這會確保第一階元資料列在它們駐於記憶體中時無法被竄改。藉此,這會確保中間元資料列或資料列本身當中沒有任何一者可被修改且作為完整性缺失而不被檢測到。
這些晶粒上計數符各係與一個中間元資料列或節點相關聯。例如,中間元資料列220、222和224例示出這些中間元資料列分別與晶粒上計數符L0C0 210、L0C1 212和L0CN 218相關聯。各個中間元資料列儲存一個計數符,並且在此示例中,係假設各個計數符具有57個位元,並被用作對於儲存在下一個更高階計數符階層之MAC
的一個輸入。各個中間元資料列亦在此中間列本身上儲存一個MAC。於階層N被儲存在一個中間列中的MAC係如下運算出:LNMAC=MAC(LN-1C∥LNData)
LNMAC是於階層N被儲存在一個中間節點處的MAC,LN-1C是於階層N-1的針對這個節點的計數符值,並且LNData是於此階層被儲存在此列中的資料。
對於在階層N的一個中間節點,MAC係在被儲存於此列中的這些計數符上,利用來自先前階層(N-1)的計數符作為對上面所例示之MAC生成函數之輸入,而運算出。例如,對於中間階層1,此MAC係在儲存於這個階層中的這些計數符上運算出,使用對應的晶粒上計數符作為輸入。在本發明的一個實施例中,各個計數符被設為一個值,此值大到足以在系統的壽命期內避免計數符回捲。
係將中間元資料列222例示為包含L1C0 230、襯墊231、L1C1 232、襯墊233、L1C2 234、襯墊235、L1C3 236、襯墊237、L1C4 238、襯墊239、L1C5 240、襯墊241、L1C6 242、襯墊243、L1C7 244、襯墊245。在本發明的一個實施例中,襯墊231、233、235、237、239、241、243和245例示在中間元資料列222中的MAC。
葉樹節點或葉元資料列與中間元資料列在它們所儲存的資料方面有所不同。葉元資料列250、252和254例示與中間元資料列220、222和224相關聯的葉元
資料列。各個葉樹節點或葉元資料列儲存版本和在經加密資料列上所運算出的MAC。此版本係被用作一個輸入,以對每列密碼襯墊提供時間獨特性,其接著被用來加密資料列。MAC係在儲存於記憶體中的這些經加密列上直接被運算出來(每個資料列一個)。
例如,葉元資料列252儲存對應於主記憶體中之四個經加密資料列280、282、284和286的四個版本V0 260、V1 262、V2 264、V3 266以及四個MAC 268、270、272和274。與中間節點類似,各個葉元資料亦含有在此列本身上利用來自在先前階層之對應中間元資料列的計數符所運算出的一個MAC。在這些中間列中的MAC係用來確保在那個階層儲存在那個列中的計數符之完整性。
在這個樹狀結構中的階層之數量係基於(但不受限於)受重播/完整性保護區域的大小、MAC和所使用的計數符大小和晶粒上目標。例如,對於256MB的受重播/完整性保護區域、56位元的MAC大小、57位元的計數符/版本大小、和16KB的晶粒上目標而言,在此樹中的階層之數量可被計算為是4層。
圖3例示出依據本發明之一實施例的一個驗證操作300。在本發明的一個實施例中,在將從記憶體中所讀出的一個資料列饋給到處理器之前,此列需要針對完整性和反重播而受到驗證。這確保資訊了的完整性。
在步驟310中,此流程與所請求之資料列一起地針對此樹的所有的中間節點和葉節點而發佈記憶體請求
。步驟315檢查對中間節點或葉節點中之任何一者的記憶體請求是否已完成。若答案為非,則此流程300回到步驟315。若答案為是,則流程300來到步驟320,並檢查先前階層上的元資料節點是否已自記憶體回傳。例如,對於階層N節點,步驟320檢查N-1節點是否已回傳。這是有需要的,因為驗證此列中之MAC會需要先前階層中的計數符。
若先前階層上的元資料節點在步驟320中尚未回傳,則流程300回到步驟320以繼續等待。若先前階層上的元資料節點在步驟320中已回傳,則流程300來到步驟330,並利用來自先前階層的計數符和來自目前階層的資料產生MAC。在本發明的一個實施例中,針對一個資料列,步驟330進行使所請求之資料列佇列等候以作解密的一個額外步驟。
對於階層1中間元資料節點,MAC產生可係在節點從記憶體回傳後即刻開始,因為在這個階層,用於MAC產生的計數符係可在晶粒上SRAM中取得。在步驟332,流程300檢查是否已針對此樹中的至少一個階層完成MAC產生。若答案為否,則流程300回到步驟332。若答案為是,則此流程來到步驟334並檢查針對在步驟332中所識別出的這(些)階層的驗證是否已完成。在這個驗證階段中,流程300判定是否有任何不匹配。若答案為否,則流程300在步驟350中將經解密資料傳遞給處理器,並且流程300結束。若答案為是,則揚起(raise)一
個安全性例外並且流程300結束。
流程300並不需要在可開始驗證階段之前先在步驟332中等待MAC產生在所有階段都完成。當針對一個階層的MAC產生結束時,因此,可針對那個階層開始作驗證,並且在任何階層的錯誤都會觸發一個安全性例外。一旦在所有階層的驗證都成功,經解密的資料便被傳遞給處理器。在任何階層的驗證錯誤都會指出在此資料列駐於晶片外記憶體中時對此資料列的重播或修改,並且因此,安全性例外會被揚起。此驗證操作300可施用於讀取操作,亦可施用於寫入操作。然而,寫入操作並不需要解密所請求之資料,因為資料已經是簡樸文本形式。
圖4例示出依據本發明之一實施例的一個更新操作。在一個成功的驗證循環之後,此樹必須被更新,以反映出由處理器所寫入的新的經更新資料。
在步驟410,流程400加密被從LLC逐出的資料列,並在更新在產生MAC中所使用的先前階層中之計數符後針對各個中間階層產生一個新的MAC。在步驟415,流程400檢查是否已針對所有的中間節點和葉節點完成更新。若答案為否,流程400回到步驟415。若答案為是,流程400將此資料列逐出到主記憶體,並且流程400結束。
第5圖依據本發明之一實施例,例示一種系統或平臺500,用以實施於本文中所揭露之方法。系統500包括但不受限於桌上型電腦、平板電腦、膝上型電腦、易
網機、筆記型電腦、個人數位助理(personal digital assistant,PDA)、伺服器、工作站、手機、行動運算裝置、智慧型電話、網際網路(Internet)設備或任何其他類型的運算裝置。在另一個實施例中,用來實施於本文中所揭露之方法的系統500可係一個單晶片系統(system on a chip,SOC)系統。
處理器510具有一個處理核心512,用以執行系統500之指令。處理核心512包括但不受限於用於提取指令的提取邏輯、用於解碼指令的解碼邏輯、用於執行指令的執行邏輯、及其他諸如此類者。處理器510具有一個快取記憶體516,用以快取系統500的指令和/或資料。在本發明的另一個實施例中,快取記憶體516包括但不受限於處理器510內的第一階、第二階和第三階快取記憶體或快取記憶體的任何其他組態。在本發明的一個實施例中,處理器510具有動態功率管理邏輯,用以判定最佳設定,在本發明的一個實施例中,於此最佳設定中系統500係處於會在使系統能量耗用作小化的同時給予相同或較大效能的一個狀態中。
記憶體控制集線器(memory control hub,MCH)514進行使處理器510能夠取用記憶體530和與記憶體530通訊的功能,記憶體530包括一個依電性記憶體依電性記憶體532和/或一個非依電性記憶體非依電性記憶體534。依電性記憶體532包括但不受限於同步動態隨機存取記憶體(Synchronous Dynamic Random Access Memory,
SDRAM)、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、RAMBUS動態隨機存取記憶體(RAMBUS Dynamic Random Access Memory,RDRAM))、和/或任何其他類型的隨機存取記憶體裝置。非依電性記憶體534包括但不受限於NAND快閃記憶體、相變記憶體(phase change memory,PCM)、唯讀記憶體(read only memory,ROM)、電氣式可拭除可規劃唯讀記憶體(electrically erasable programmable read only memory,EEPROM)、或任何其他類型的非依電性記憶體裝置。
記憶體530儲存資訊和要由處理器510執行的指令。記憶體530可亦在處理器510執行指令之時儲存暫時變數或其他中間資訊。晶片組520經由點對點(Point-to-Point,PtP)介面517和522與處理器510連接。晶片組520使得處理器510能夠連接系統500中的其他模組。在本發明的另一個實施例中,晶片組520是一個平臺控制器集線器(platform controller hub,PCH)。在本發明的一個實施例中,介面517和522係依據一個PtP通訊協定,像是英特爾(Intel®)快速路徑互連(QuickPath Interconnect,QPI)或其他諸如此類者,而操作。晶片組520連接至一個GPU或一個顯示器裝置540,其包括但不受限於液晶顯示器(liquid crystal display,LCD)、陰極射線管(cathode ray tube,CRT)顯示器、或任何其他形式的視覺顯示器裝置。在本發明的另一個實施例中,GPU 540並不連接至晶片組520,且係處理器510的一部分(
未示於圖中)。
此外,晶片組520連接至一或多個匯流排550和560,其使各種模組574、580、582、584和586互連。若在匯流排速度或通訊協定中有不匹配,匯流排550和560可係經由一個匯流排橋572而被互連在一起。晶片組520與一個非依電性記憶體580、一或多個大容量儲存裝置582、一個鍵盤/滑鼠584、和一個網路介面586耦接,但並不受限於這些項目。大容量儲存裝置582包括但不受限於固態驅動器、硬碟驅動器、通用序列匯流排快閃記憶體驅動器、或任何其他形式的電腦資料儲存媒體。網路介面586係利用任何類型的習知網路介面標準實施,包括但不受限於乙太網(Ethernet)介面、通用序列匯流排(universal serial bus,USB)介面、週邊部件互連(Peripheral Component Interconnect,PCI)快捷(Express)介面、無線介面和/或任何其他適當類型的介面。無線介面係依據但不受限於IEEE 802.11標準及其相關家族、家庭插件AV(Home Plug AV,HPAV)而操作、超寬頻(Ultra Wide Band,UWB)、藍牙(Bluetooth)、WiMax、或任何形式的無線通訊協定。
雖然示於第5圖中的這些模組係繪示為在系統500內的分立方塊,但由這些方塊中的一些所進行的功能係可被整合在單一個半導體電路內,或是可被利用二或更多個分立積體電路實施。在本發明的另一個實施例中,系統500可包括多於一個的處理器/處理核心。
於本文中所揭露之方法係可被實施在硬體、軟體、韌體或前述各項之任何其他組合中。雖然已說明所揭露之主旨的這些實施例的數個範例,熟於相關技藝者會可輕易識出,實施所揭露之主旨的許多其他方法係可被替代使用。在前面的說明中,已描述所揭露之主旨的許多面向。為作解釋的目的,已提出具體的數目、系統和組態,以提供對主旨的通盤瞭解。然而,對於得益於本揭露內容的熟於相關技藝者而言,可明顯看出,本主旨係可在沒有這些具體細節的情況下實行。在其他情況中,習知的特徵、部件或模組已被省略、簡化、組合、或拆開,以免混淆所揭露之主旨。
於本文中所使用的「可操作」一詞係指此裝置、系統、協定等等係在此裝置或系統處於電源關閉狀態中時能夠操作或適於操作以供用於其所欲功能。所揭露之主旨的各種實施例係可被實施在硬體、韌體、軟體、或前述各項之組合中,並且可係參考或配合程式碼,像是指令、函式、程序、資料結構、邏輯、應用程式、設計表示、或用於設計之模擬、仿擬、和製造的格式,來描述,其在由一個機器取用時會導致此機器進行任務、定義抽象資料類型或低階硬體上下文、或產生結果。
示於圖式中的技術可係利用儲存和執行於一或多個運算裝置,例如一般用途電腦或運算裝置,上的碼和資料而實施。這樣的運算裝置利用機器可讀媒體,例如機器可讀儲存媒體(例如:磁碟;光碟;隨機存取記憶體;
唯讀記憶體;快取記憶體裝置;相變記憶體)和機器可讀通訊媒體(例如:電氣式、光學、聲學或其他形式的傳播信號--像是載波、紅外線信號、數位信號等等),而(內部地和與經由網路其他運算裝置地)儲存和傳遞碼和資料。
雖然已參考數個例示實施例而描述所揭露之主旨,但本說明並非意欲要被解讀成一種限制型態。對這些例示實施例以及本主旨之其他實施例之對於熟於本主旨所屬技藝者而言是很明顯可見的各種修改體係被認為是落於所揭露之主旨的範疇中。
231、233、235、237、239、241、243、245、261、263、265、267、269、271、273、275‧‧‧襯墊
200‧‧‧方塊圖
205‧‧‧受信賴界限
210~218、230、232、234、236、238、240、242、244‧‧‧計數符
220~224‧‧‧中間元資料列
250~254‧‧‧葉元資料列
260、262、264、266‧‧‧版本
268、270、272、274‧‧‧訊息鑑認碼(MAC)
280~286‧‧‧經加密資料列
Claims (15)
- 一種用以提供低負擔密碼架構之處理器,其包含:用於移除在密碼處理之期間內在一個密碼樹中之一或多個階層之間的寫入後讀取相依性的邏輯,其中對於該密碼樹的一個子節點的該密碼處理係要與該密碼樹的一個父節點一起作管線處理,其中用於移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯係用於進行下列動作:針對該密碼樹之與一個所請求資料列相關聯的所有節點而發佈一個記憶體請求;接收對於針對該密碼樹之該等節點中之一節點的該記憶體請求之完成判定來自一其他節點的一個計數符值,該其他節點所具有的階層是該一節點的緊接前一個階層;以及反應於判定出來自該其他節點的該計數符值,利用所判定出的該計數符值和來自在該密碼樹中與該一節點相同之階層的資料,而針對該一節點產生一個訊息鑑認碼(MAC)。
- 如申請專利範圍第1項之處理器,其中用於移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯進一步係用於進行下列動作:利用所產生之該MAC進行對該一節點的驗證; 反應於利用所產生之該MAC而成功驗證該一者,傳送所請求之該資料列的經解密資料;以及反應於利用所產生之該MAC而未成功驗證該一者,發佈一個安全性例外。
- 如申請專利範圍第2項之處理器,其中用於移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯進一步係用於進行下列動作:把要被從一最末階快取(LLC)逐出的資料加密;更新來自該其他節點的該計數符值;以及針對該其他節點產生另一個MAC。
- 如申請專利範圍第3項之處理器,其中用於移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯進一步係用於進行下列動作:將該資料從該LLC逐出到一個記憶體。
- 如申請專利範圍第1項之處理器,其中該密碼樹是一個混成梅凱爾(Merkel)樹,並且其中該密碼樹的各個節點包含數個訊息鑑認碼(MAC)和多個計數符值的一個組合。
- 一種具有低負擔密碼架構之系統,其包含:一個最末階快取(LLC)記憶體;以及用於移除在密碼處理之期間內在一個密碼樹中之一或多個階層之間的寫入後讀取相依性的邏輯,其中對於該密 碼樹的一個子節點的該密碼處理係要與該密碼樹的一個父節點一起作管線處理,其中用於移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯係用於進行下列動作:針對該密碼樹之與一個所請求資料列相關聯的所有節點而發佈一個記憶體請求;接收對於針對該密碼樹之該等節點中之一節點的該記憶體請求之完成;以及判定來自另一個節點的一個計數符值,該另一個節點所具有的階層是該一節點的緊接前一個階層反應於判定出來自該其他節點的該計數符值,利用所判定出的該計數符值和來自在該密碼樹中與該一節點相同之階層的資料,而針對該一節點產生一個訊息鑑認碼(MAC)。
- 如申請專利範圍第6項之系統,其中用於移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯進一步係用於進行下列動作:利用所產生之該MAC進行對該一節點的驗證;反應於利用所產生之該MAC而成功驗證該一者,傳送所請求之該資料列的經解密資料;以及反應於利用所產生之該MAC而未成功驗證該一者,發佈一個安全性例外。
- 如申請專利範圍第7項之系統,其中用於移除在 該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯進一步係用於進行下列動作:把要被從該LLC記憶體逐出的資料加密;更新來自該其他節點的該計數符值;以及針對該其他節點產生另一個MAC。
- 如申請專利範圍第8項之系統,其中用於移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性的邏輯進一步係用於進行下列動作:將該資料從該LLC逐出到一個記憶體。
- 如申請專利範圍第6項之系統,其中該密碼樹是一個混成梅凱爾(Merkel)樹,並且其中該密碼樹的各個節點包含數個訊息鑑認碼(MAC)和多個計數符值的一個組合。
- 一種用以提供低負擔密碼架構之方法,其包含下列步驟:移除在密碼處理之期間內在一個密碼樹中之一或多個階層之間的寫入後讀取相依性,其中對於該密碼樹的一個子節點的該密碼處理係要與該密碼樹的一個父節點一起作管線處理,其中移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性之步驟包含:針對該密碼樹之與一個所請求資料列相關聯的所有節 點而發佈一個記憶體請求;接收對於針對該密碼樹之該等節點中之一節點的該記憶體請求之完成;以及判定來自另一個節點的一個計數符值,該另一個節點所具有的階層是該一節點的緊接前一個階層反應於判定出來自該其他節點的該計數符值,利用所判定出的該計數符值和來自在該密碼樹中與該一節點相同之階層的資料,而針對該一節點產生一個訊息鑑認碼(MAC)。
- 如申請專利範圍第11項之方法,其中移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性之步驟包含:利用所產生之該MAC進行對該一節點的驗證;反應於利用所產生之該MAC而成功驗證該一者,傳送所請求之該資料列的經解密資料;以及反應於利用所產生之該MAC而未成功驗證該一者,發佈一個安全性例外。
- 如申請專利範圍第12項之方法,其中移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性之步驟包含:把要被從一個最末階快取(LLC)記憶體中逐出的資料加密;更新來自該其他節點的該計數符值;以及針對該其他節點產生另一個MAC。
- 如申請專利範圍第13項之方法,其中移除在該密碼處理之期間內在該密碼樹中之該一或多個階層之間的該寫入後讀取相依性之步驟包含:將該資料從該LLC逐出到一個記憶體。
- 如申請專利範圍第11項之方法,其中該密碼樹是一個混成梅凱爾(Merkel)樹,並且其中該密碼樹的各個節點包含數個訊息鑑認碼(MAC)和多個計數符值的一個組合。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067590 WO2013100965A1 (en) | 2011-12-28 | 2011-12-28 | A low-overhead cryptographic method and apparatus for providing memory confidentiality, integrity and replay protection |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201346637A TW201346637A (zh) | 2013-11-16 |
TWI609289B true TWI609289B (zh) | 2017-12-21 |
Family
ID=48698208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101149324A TWI609289B (zh) | 2011-12-28 | 2012-12-22 | 用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法、系統及處理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9053346B2 (zh) |
TW (1) | TWI609289B (zh) |
WO (1) | WO2013100965A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160239685A1 (en) * | 2013-07-31 | 2016-08-18 | Hewlett-Packard Development Company, L.P. | Hybrid secure non-volatile main memory |
US9442864B2 (en) | 2013-12-27 | 2016-09-13 | Intel Corporation | Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes |
US10185842B2 (en) | 2015-03-18 | 2019-01-22 | Intel Corporation | Cache and data organization for memory protection |
US9710675B2 (en) * | 2015-03-26 | 2017-07-18 | Intel Corporation | Providing enhanced replay protection for a memory |
US9798900B2 (en) | 2015-03-26 | 2017-10-24 | Intel Corporation | Flexible counter system for memory protection |
US9792229B2 (en) | 2015-03-27 | 2017-10-17 | Intel Corporation | Protecting a memory |
US9678894B2 (en) * | 2015-03-27 | 2017-06-13 | Intel Corporation | Cache-less split tracker architecture for replay protection trees |
US10108557B2 (en) * | 2015-06-25 | 2018-10-23 | Intel Corporation | Technologies for memory confidentiality, integrity, and replay protection |
US9904805B2 (en) * | 2015-09-23 | 2018-02-27 | Intel Corporation | Cryptographic cache lines for a trusted execution environment |
US10243990B1 (en) | 2016-09-23 | 2019-03-26 | Apple Inc. | Systems and methods for detecting replay attacks on security space |
US10528485B2 (en) | 2016-09-30 | 2020-01-07 | Intel Corporation | Method and apparatus for sharing security metadata memory space |
US10733313B2 (en) * | 2018-02-09 | 2020-08-04 | Arm Limited | Counter integrity tree for memory security |
KR20190029280A (ko) * | 2017-09-12 | 2019-03-20 | 삼성전자주식회사 | 트리 구조를 이용하는 무결성 검증 방법 및 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030044007A1 (en) * | 2001-08-24 | 2003-03-06 | Broadcom Corporation | Methods and apparatus for accelerating ARC4 processing |
US20100250965A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm |
TW201112853A (en) * | 2009-01-29 | 2011-04-01 | Qualcomm Inc | Multimedia management system for seamless multimedia content mobility |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138230A (en) * | 1993-10-18 | 2000-10-24 | Via-Cyrix, Inc. | Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline |
JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
US20060277395A1 (en) * | 2005-06-06 | 2006-12-07 | Fowles Richard G | Processor performance monitoring |
US7895421B2 (en) * | 2007-07-12 | 2011-02-22 | Globalfoundries Inc. | Mechanism for using performance counters to identify reasons and delay times for instructions that are stalled during retirement |
US7987343B2 (en) * | 2008-03-19 | 2011-07-26 | International Business Machines Corporation | Processor and method for synchronous load multiple fetching sequence and pipeline stage result tracking to facilitate early address generation interlock bypass |
TWI414994B (zh) * | 2009-09-24 | 2013-11-11 | Ind Tech Res Inst | 可重組態處理裝置及其系統 |
-
2011
- 2011-12-28 WO PCT/US2011/067590 patent/WO2013100965A1/en active Application Filing
- 2011-12-28 US US13/976,930 patent/US9053346B2/en not_active Expired - Fee Related
-
2012
- 2012-12-22 TW TW101149324A patent/TWI609289B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030044007A1 (en) * | 2001-08-24 | 2003-03-06 | Broadcom Corporation | Methods and apparatus for accelerating ARC4 processing |
TW201112853A (en) * | 2009-01-29 | 2011-04-01 | Qualcomm Inc | Multimedia management system for seamless multimedia content mobility |
TW201116009A (en) * | 2009-01-29 | 2011-05-01 | Qualcomm Inc | Link management for multimedia content mobility |
US20100250965A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm |
Also Published As
Publication number | Publication date |
---|---|
WO2013100965A1 (en) | 2013-07-04 |
TW201346637A (zh) | 2013-11-16 |
US9053346B2 (en) | 2015-06-09 |
US20140040632A1 (en) | 2014-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI609289B (zh) | 用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法、系統及處理器 | |
US9092644B2 (en) | Method and system for protecting memory information in a platform | |
US11374967B2 (en) | Systems and methods for detecting replay attacks on security space | |
KR102013841B1 (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
TWI493951B (zh) | 保護對稱加密鑰的系統及方法 | |
EP3274848B1 (en) | Providing enhanced replay protection for a memory | |
CN107408192B (zh) | 保护存储器 | |
EP3758287B1 (en) | Deterministic encryption key rotation | |
US11171774B2 (en) | System for synchronizing a cryptographic key state through a blockchain | |
CN103154963A (zh) | 对地址的加扰和对需存储于存储设备中的写入数据的加密 | |
TW200823927A (en) | Method and system to provide security implementation for storage devices | |
KR102488636B1 (ko) | 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치 | |
WO2019029393A1 (zh) | 一种存储数据加解密装置及方法 | |
US9935768B2 (en) | Processors including key management circuits and methods of operating key management circuits | |
US20170093823A1 (en) | Encrypting Observable Address Information | |
US11019098B2 (en) | Replay protection for memory based on key refresh | |
CN113449349A (zh) | 平台安全机制 | |
CN103154967A (zh) | 修改元素的长度以形成加密密钥 | |
US11995006B2 (en) | Algebraic and deterministic memory authentication and correction with coupled cacheline metadata | |
CN109583196B (zh) | 一种密钥生成方法 | |
TW201243731A (en) | Authenticator, authenticatee and authentication method | |
Liu et al. | Off-chip memory encryption and integrity protection based on AES-GCM in embedded systems | |
Izzo et al. | A secure and authenticated host-to-memory communication interface | |
TW202403773A (zh) | 半導體裝置及用以管理其之安全操作的系統與方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |