分布等,或其組合。
[0021] 邏輯28可W利用任意計算出的和/或檢索的信息來進行判定。所述信息可W對應 于,例如,數據的類型(例如,指令、程序數據等)。邏輯28例如可W在大量存儲器(例如,數W 十億字節計的存儲器)上檢查程序數據,從而確定W特定頻率出現的典型模式,包括相對普 通的模式、相對模糊的模式等,或其組合。另外,邏輯28可W從存儲裝置(例如,存儲器、服務 器等)、從數據結構(例如,表等)等或其組合中檢索關于典型模式的信息。在一個例子中,通 常存儲于存儲器14中、被取出然后被解密的程序數據可包括比一(1)比特更多的零(0)比 特。因此,邏輯28可W識別在用于程序數據的緩存行中通常會遇到零(0)比特多于一(1)比 特,并使用模式來判定未加密數據是否包括所述多個比特的隨機分布。
[0022] 另外,對于認證操作(例如使用密碼登錄到計算平臺),可能遇到布爾真-假測試 (例如,32比特)。邏輯28可W通過針對典型的=十二比特真-假測試識別一個將設定為一 (1)的第一比特、設定為零(0)的第二比特W及設定為零(0)的剩余=十比特包括在內的比 特序列,來確定所述多個比特包括模式。另外,邏輯28可W通過識別傾向于共享相同的緩存 行(例如,基于數據類型)的相關模式,來確定所述多個比特包括模式。例如,邏輯28可W識 別指令數據(例如,X86指令等)會傾向于與其它指令數據(例如,X86指令等)共享相同的緩 存行,程序數據會傾向于與其它程序數據共享緩存行,指令數據會傾向于相對于程序數據 位于不同的緩存行,等等,或其組合。邏輯28還可W識別,針對一種類型的數據的比特序列 會傾向于一起出現。例如,HTML比特序列(例如,HTML模式)會傾向于一起出現,ASCII比特序 列(例如,ASCII模式)會傾向于一起出現,MPEG比特序列(例如,MPEG模式)傾向于一起出現, AfrAfr 寸寸O
[0023] 另外,邏輯28可W從存儲器12檢索指令集(例如,X86指令集),并使用對應的值(例 如,字節值)來判定未加密數據是否包括所述多個比特的隨機分布。因此,存儲器控制器22 可W驗證未加密緩存行是否包括指令的有效流,例如X86指令、操作碼的有效流,W進行所 述判定。例如,邏輯28可W通過識別在未加密數據中用于基本操作(例如,移動、加法等)的 指令來判定多個比特是否包括模式。雖然邏輯28可能針對整個指令集匹配模式,但邏輯28 也可W捜索指令集的至少一部分,例如針對X86指令集的字節值"00"、"Ff'和/或巧B",其可 能頻繁地和/或重復地出現在對應結構(例如,X86結構)的緩存行中。
[0024] 因此,邏輯28可W通過識別W-頻率出現在未加密數據中的比特序列來進行所述 判定。邏輯28還可W對比特序列出現在未加密數據中的實例的數量進行計數。另外,當實例 的數量滿足闊值時,邏輯28可W判定所述未加密數據不包括所述多個比特的隨機分布。例 如,邏輯28可W針對對緩存行進行的取得來應用下述示例性啟發式規則,例如,從DRAM取得 設及"BoBiB2-'B63"的64字節緩存行到存儲器控制器28,其中"BoBiB2-'B63"可W對應于程序 代碼或文本段: COU IlI Sa 0 1:袖、j mO -63 I 1:;13嚴 ^ 汾投;二^ "FP,價 B; ^ ^。別r
[0025] 供義觸奪牛 i'f ?謝沿' >二^' '9//紋;汾沿8 ;i'ke 義8巧〇說孩薩註記君護巧壞戶過縱 Da化妃鄉卿接good; |說紛tk化紛processof
[0026] 邏輯28可W通過識別指令集的典型值(例如,x86中的字節值"00"、"FF"和/或 巧B")來判定所述多個比特是否包括模式。在該例子中,當計數大于或等于闊值9時,邏輯28 可W判定未加密數據包括未損壞的(例如,適當的、有效的等)非隨機指令。因此,存儲器控 制器22可W驗證未加密緩存行是否包括指令的有效流,例如,x86指令、操作代碼等的有效 流,從而進行所述判定。
[0027] 因此,當未加密數據包括滿足闊值的一個或多個典型比特序列(例如,模式)時,邏 輯28可W判定未加密數據不包括所述多個比特的隨機分布。相反,當未加密數據不包括滿 足闊值的一個或多個典型比特序列時,邏輯28可W判定未加密數據包括所述多個比特的隨 機分布。因此,當闊值不被滿足時,邏輯28可W判定未加密數據被損壞(例如,不適當的、無 效的等)。闊值例如可W被預先確定和/或被設定為任意值。另外,闊值設定可W針對特定類 型的模式、模式的組合、等等,或上述各項的組合。另外,可W對模式進行加權,例如用W解 釋相對普通的模式、相對模糊的模式等或其組合。
[0028] 另外,邏輯28可W在已解密的數據塊中檢測程序數據、指令等的一個或多個典型 模式,并將典型模式的實例與將W隨機分布的比特出現序列的可能性進行比較。注意,遇到 模式的幾率對于有效明文會相對較高,并且/或者隨機噪聲創建可識別模式的可能性會相 對較低。另外,邏輯28可W實現概率函數來判定未加密數據是否包括所述多個比特的隨機 分布。例如,所述函數可W包括概率密度函數來驗證和/或測試未加密數據是否包括所述多 個比特的隨機分布。因此,例如,邏輯28可W對未加密數據實現后驗概率密度函數來進行所 述判定。
[0029] 邏輯28可W在任何時候就未加密數據是否包括所述多個比特的隨機分布來進行 判定。例如,邏輯28可W在從存儲器12取得數據(例如,密文數據)之后進行所述判定,也可 W在解密器26將數據解密W生成未加密數據(例如,明文數據)之后進行所述判定。所述取 得可W例如響應于緩存未命中(cache miss)。注意,對存儲于存儲器12中的加密數據的至 少一比特的改變可能引起據其生成的未加密數據出現隨機,運是因為在密文數據中的至少 一比特的改變可能引起在對應的未加密數據中的大約百分之五十的比特改變,其中所述改 變可能在基本整個數據塊上擴散。
[0030] 例如,如果原始明文數據是被加密W形成密文數據的全零數據塊,則對密文數據 的改變可能引起平均大約百分之五十的比特改變為一,其中對應的明文數據的比特可能W 隨機分布出現(例如,在基本整個數據塊上的隨機比特翻轉)。可W例如通過翻轉(flip) - 個或多個比特、插入比特、刪除比特、交換比特、修改密文數據等或其組合來改變密文數據, 并且邏輯28可W判定對應的已解密的明文數據包括在數據塊的比特的總數的大約一半的 比特差異。因此,加密器24可W將程序數據的64字節緩存行加密成密文數據的單個數據塊, 其中對密文數據的作為結果的51化k特中的一個或多個比特的改變會引起在對應的明文數 據的512比特中的大約256個位置處的比特差異,運可在基本整個已解密的明文數據塊上擴 散。因此,邏輯28可W基于相對隨機和/或高賭的已解密的明文結果來識別對密文數據進行 的惡意的n比特改變(例如,二比特改變、全比特改變等)。
[0031] 此外,邏輯28可W實現完整性動作,來防止在未加密數據損壞時訪問未加密數據。 例如,邏輯28可W通過禁止將未加密數據轉發給緩存20、通過防止訪問對應于未加密數據 的存儲器位置、通過使得存儲器中的位置被擦除,等等,或其組合,來防止訪問。另外,邏輯 28可W引起通知(例如,包括數據副本、存儲器位置等)被發布。所述通知可W例如被發布給 預先確定的位置(例如,調試環境、日志等)、個人(管理員、編程者、設備擁有者等)等,從而 實現預防動作。另外,處理器14可W通過烙斷保險絲和/或利用其它管忍上(on-die)非易失 性存儲器來內部地記錄存儲器損壞侵害。對此,例如當斷電時,處理器忍片可能回憶起攻擊 嘗試,并在多個檢測到的攻擊嘗試滿足預先確定的攻擊闊值時采取動作,例如,關機、變得 不可操作等。
[0032] 另外,邏輯28可W使得內部固件運行,W防止訪問損壞的數據,所述內部固件可不 依賴于處理器14內部的存儲器。例如,粉。16、18可W運行例如來自ROM的微代碼,訓方止訪 問損壞的數據。微代碼可W用于采取校正動作,例如,發現存儲器12為什么損壞、將存儲器 12改變回到先前的未損壞狀態、重置裝置10,等等,或其組合。另外,邏輯28可W通過將損壞 定位到存儲器12的一個或多個塊上而防止訪問損壞數據。例如,邏輯28可W使得微代碼定 位未損壞的存儲器位置,并允許執行未損壞的程序數據和/或指令。因此,邏輯28可W使得 微代碼執行并殺死損壞的應用,用剩余的未損壞應用來恢復OS的功能,等等,或其組合。
[0033] 邏輯28還可W在未加密數據被加密并被存儲于存儲器12之前做出判定。在一個例 子中,前加密判定邏輯(例如,算法、硬件邏輯、電路邏輯等)可能與后解密損壞檢測邏輯(算 法、硬件邏輯、邏輯等)相同,W確保每個存儲器操作方向(例如,存儲器讀取、存儲器寫入 等)可W對相同的明文數據產生相同的判定。另外,邏輯28可W判定原始的未加密數據包括 多個比特的隨機分布,并且作為響應,可W使得與未加密數據相關聯的完整性值被預先生 成,且將該完整性值在相對地定制的自組織基礎上(on a relatively tailored ad hoc basis)存儲在存儲器12中。
[0034] 完整性值可W包括關于在未加密數據中識別出的多個比特的隨機分布是對加密 數據進行修改的結果還是由解密器26進行合法解密的結果來進行驗證和/或測試的任意 值。例如,完整性值可W包括完整性檢查值(ICV)(例如,散列)、消息認證碼(MAC)(例如,當 使用相同的消息、密鑰和初始化向量時,產生相同MAC)、消息完整性代碼(MIC)(例如,如果 使用相同算法,則產生相同MIC)、簽名(例如,利用密鑰對偶中的私鑰產生)等或其組合。因 此,邏輯28可W應用下述示例性啟發性規則,例如作為上述示例性啟發性規則的例子的繼 續: Else: I^tch message authentication c<xJe (MA(.',} from DRAM 四乂:; invalid
[0035] Log 化e e打'or m ha'rtiwa?防 and rebo礎.machine else Da化妃化grky is good; pa說da化於proce絲餅'
[0036] 邏輯28可W在從存儲器12取得數據(例如,密文數據)之后W及在解密器26對數據 進行解密W生成未加密數據(例如,明文數據)之后,就未加密數據是否包括多個比特的隨 機分布進行進一步的判定(例如,第二判定,等等)。所述取得例如可W響應于緩存未命中。 另外,當未加密數據包括多個比特的隨機分布時,邏輯28可W從存儲器12取得完整性值,例 如在檢查W確定是否存在之后,并可W基于所述完整性值來判定未加密數據是否被損壞。 例如,邏輯28可W利用未加密數據(例如,消息、明文數據等)計算散列值(例如,摘要),并將 所述散列值與取得的整體性值(例如,128比特ICV、MAC等)進行比較,從而驗證未加密數據 是否是原始數據的合法解密結果。如果測試失敗,例如由于比較失配(comparison mismatch),則邏輯28可W判定未加密數據被損壞,并可W防止訪問未加密數據,記錄該事 件,將存儲器損壞通知給軟件,將存儲器損壞通知給固件等,或其組合。
[0037] 當數據不包括所述多個比特的隨機分布時,邏輯28可W允許訪問未加密數據。例 如,可W基于識別模式,基于闊值,基于概率函數,等等,或其組合,將未加密數據置于緩存 20中。例如,可W將未損壞的未加密數據傳遞給最后一級緩存行。因此,未損壞的數據可W 是對于核屯、16、18為可訪問的。
[0038] 邏輯28還可W將至少一比特的改變的擴散最大化。例如,在電子碼書巧CB)模式中 的AES可W在固定塊大小(例如,128比特)上擴展,該固定塊大小可能比緩存行的原子單位 (例如,64字節)更短,并可W將擴散最小化。邏輯28可W在原子單位上實現加密,W將所述 多個比特的隨機分布最大化,其中至少一比特的改變可能W比特總