衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AES HWIP技術規格

jf_EksNQtU6 ? 來源:TrustZone ? 2023-08-03 10:46 ? 次閱讀

AES HWIP技術規格

一、概述

本文檔介紹了AES 硬件 IP 功能。高級加密標準 (AES) 是 OpenTitan 協議中使用的主要對稱加密和解密機制。AES 單元是一個加密加速器,它接受來自處理器的請求以加密或解密 16 字節的數據塊。它作為外設模塊連接到芯片互連總線,符合外設功能的要求指南。

1、特點

AES單元支持以下功能:

?在以下密碼塊模式下使用 AES-128/192/256 進行加密/解密:

?Electronic Codebook (ECB) mode,

?Cipher Block Chaining (CBC) mode,

?Cipher Feedback (CFB) mode (fixed data segment size of 128 bits, i.e., CFB-128),

?Output Feedback (OFB) mode, and

?Counter (CTR) mode.

?可以刪除對 AES-192 的支持以保存區域,并使用編譯時 Verilog 參數啟用/禁用

?使用面向域的掩碼 (DOM) 來加重側信道分析 (SCA) 的密碼核心的一階屏蔽,可以選擇使用編譯時 Verilog 參數禁用(有關更多詳細信息,請參閱下面的安全強化

? AES-16/12/14 模式下每 16 字節數據塊的 56/66/72 時鐘周期(未屏蔽實現)和 128/192/256 時鐘周期 (DOM) 的延遲 內部偽隨機數發生器 (PRNG) 的自動和軟件啟動重新設定種子,具有可配置的重新設定速率,導致最大熵消耗率范圍為 286 Mbit/s 至 0.035 Mbit/s(100 MHz 時)。

?加重控制路徑上的故障注入 (FI) 的對策(有關詳細信息,請參閱下面的安全強化)

?基于寄存器的數據和控制接口

?系統密鑰管理器接口,用于可選密鑰旁加載,不向連接到系統總線互連的處理器和其他主機公開密鑰材料。

?動態生成輪次密鑰,與通過寄存器接口提供的單個初始 128/192/256 位密鑰的實際加密/解密并行(有關更多詳細信息,請參閱下面的操作理論

該 AES 單元針對中等性能(16 個并行 S-Box,未屏蔽實現每輪 ~1 個周期,DOM 實現每輪 ~5 個周期)。對于高帶寬數據流,不需要高速、單周期操作。

ECB、CBC、CFB、OFB 和 CTR 以外的密碼模式超出了此版本的 AES 單元,但將來的版本可能會受支持。

2、說明

AES 單元是一個加密加速器,它接受來自處理器的請求以加密或解密 16B 數據塊。

?它支持電子碼本 (ECB) 模式下的 AES-128/192/256、

?密碼塊鏈接 (CBC) 模式、

?密碼反饋 (CFB) 模式(固定數據段大小為 128 位,即 CFB-128)、

?輸出反饋 (OFB) 模式

?計數器 (CTR) 模式。

有關這些密碼模式的詳細信息,請參閱分組密碼操作模式的建議。將來的版本中可能會添加其他密碼模式。

AES 單元作為外設模塊連接到芯片互連總線。與處理器的通信通過一組控制和狀態寄存器 (CSR) 進行。

這包括輸入/輸出數據和密鑰,以及狀態和控制信息。

AES 單元的未來版本可能包括一個單獨的接口,通過該接口,可能的系統密鑰管理器可以提供密鑰,而無需將其暴露給連接到系統總線互連的處理器或其他主機。(這樣更加合理,這樣就避免了在通路上通過信號檢測能獲取到密鑰,當然防側信道攻擊針對一般是處理器運算時,這個核發出的電磁信號來檢測出密鑰或者計算模式)

二、操作理論

AES 單元支持使用單個共享數據路徑在 ECB、CBC、CFB、OFB 和 CTR 模式下對 AES-128/192/256 進行加密和解密。

也就是說,它可以進行加密或解密,但不能同時進行兩者。

AES 單元具有密鑰擴展機制,可從通過寄存器接口提供的單個初始密鑰即時生成所需的圓形密鑰。這意味著處理器只需通過寄存器接口向 AES 單元提供初始加密密鑰。然后,AES 單元使用此密鑰生成所有整數密鑰,因為它們需要與實際加密/解密并行。與通過寄存器接口傳遞所有圓形密鑰相比,這種設計的優勢包括:

?降低存儲要求,減小電路面積:AES-15 只需要 128 個 3 位密鑰寄存器,而不是存儲 256 個 256 位整數密鑰:

?處理器向其寫入初始密鑰的一組寄存器,即用于加密的啟動密鑰,

?一組寄存器用于保存當前完整密鑰,以及

?一組寄存器,用于保存上一輪加密的完整密鑰,即用于解密的開始密鑰。

?更快的重新配置和密鑰切換:內核只需要執行 8 次寫入操作,而不是 AES-60 的 256 次寫入操作。

然而,在AES單元可以使用這個新密鑰執行ECB/CBC解密之前,每當處理器更改密鑰時,即時輪次密鑰生成就會以初始延遲為代價。在此階段,密鑰擴展機制以迭代方式計算解密的開始密鑰。此延遲階段的持續時間對應于加密一個 16B 塊所需的延遲(即 AES-12/14/16 的 128/192/256 周期)。計算出解密的開始密鑰后,它將存儲在專用的內部寄存器中供以后使用。然后,AES 單元可以在解密和加密之間切換,而不會產生額外的開銷。

對于加密或模式設置為 CFB、OFB 或 CTR,則更改密鑰時沒有此類初始延遲。如果密鑰切換后的下一個操作是 ECB 或 CBC 解密,AES 單元會首先使用密鑰計劃自動啟動密鑰擴展(要生成用于解密的啟動密鑰,實際數據路徑在該階段保持空閑狀態)。

AES 單元使用狀態寄存器向處理器指示何時準備好通過寄存器接口接收下一個輸入數據塊。當 AES 單元對數據塊執行加密/解密時,處理器提供下一個輸入數據塊是安全的。一旦上一個加密/解密完成并且新的輸入數據可用,AES 單元就會自動開始下一個數據塊的加密/解密。輸入寄存器的寫入順序無關緊要。

每個輸入寄存器必須至少寫入一次,AES單元才能自動啟動加密/解密。這是默認行為??梢酝ㄟ^將 CTRL_SHADOWED 中的MANUAL_OPERATION位設置為 . 在這種情況下,AES 單元僅在 TRIGGER 中的 START 位設置為(自動清除到下一次加密/解密啟動后)后才會開始加密/解密。110

類似地,AES 單元通過狀態寄存器指示處理器何時有新的輸出數據可供讀取。此外,輸出數據還有一個背壓機制。如果 AES 單元想要完成數據塊的加密/解密,但處理器尚未讀取以前的輸出數據,則 AES 單元將停止。它掛起并且不會丟棄數據。只有在讀取了先前的輸出數據并且可以安全地覆蓋相應的寄存器后,它才會繼續。讀取輸出寄存器的順序無關緊要。每個輸出寄存器必須至少讀取一次,AES單元才能繼續。這是默認行為。可以通過將 CTRL_SHADOWED 中的MANUAL_OPERATION位設置為 .在這種情況下,AES 單元永遠不會停止,只會覆蓋以前的輸出數據,而與是否已讀取數據無關。

1、功能框圖

此 AES 單元針對中等性能(未屏蔽實施每輪 ~1 個周期)。對于高帶寬數據流,不需要高速、單周期操作。

因此,AES 單元使用具有 128 位寬數據路徑的迭代密碼核心架構,如下圖所示。請注意,為簡單起見,下圖顯示了未屏蔽的實現。有關密碼核心的屏蔽實現的詳細信息,請參閱下面的安全強化)。

使用迭代架構允許以吞吐量為代價實現更小的電路面積。采用 128 位寬數據路徑允許在未屏蔽實現中分別在 AES-12/14/16 模式下實現每 16B 數據塊 128/192/256 個時鐘周期的延遲要求。

567e0d18-2df7-11ee-815d-dac502259ad0.png

在這里插入圖片描述

在密碼核心內部,實際密碼(左)和輪密鑰生成(右)的數據路徑在加密和解密之間共享。因此,圖中顯示的塊始終實現相應操作的正向和后向(反向)版本。例如,SubBytes 同時實現了 SubBytes 和 InvSubBytes。

除了實際的 AES 密碼內核外,AES 單元還具有一組控制和狀態寄存器 (CSR),處理器可通過 TL-UL 總線接口訪問,以及一個計數器模塊(僅用于 CTR 模式)。該計數器模塊根據分組密碼操作模式的建議(附錄 B.1)實現標準遞增功能,固定參數 m = 128。請注意,對于 AES,參數 b = 128,計數器增量為大端序。CFB 模式支持固定參數 s = 128 (CFB-128)。對 128 位以外的數據段大小的支持將需要大量額外的多路復用資源,因此無法提供。初始化向量 (IV) 寄存器和用于保存先前輸入數據的寄存器僅用于 CBC、CFB、OFB 和 CTR 模式。

2、AES算法原理

【密碼學基礎:AES加密算法】[1]

3、設計細節

本節討論 AES 模塊的不同設計細節。

1、數據路徑體系結構和操作

AES 單元實現【AES 算法】[2]。這允許在加密/解密之間更有效地共享密碼數據路徑,因為操作以相同的順序應用(更少的復用器,更簡單的控制),但要求在解密期間使用反向 MixColumns 在所有輪次中轉換輪密鑰,除了第一輪和最后一輪。

這種架構選擇旨在實現高效的密碼數據路徑共享和低面積占用空間。根據應用方案,其他體系結構可能會提供更合適的區域/性能權衡。例如,如果只使用 CFB、OFB 或 CTR 模式,則根本不使用反向密碼。此外,如果密鑰很少更改(例如在批量解密的情況下),則存儲所有整數密鑰而不是動態生成它們可能會有所回報。AES 單元的未來版本可能會提供編譯時參數,以便有選擇地實例化正向/反向密碼部分,以僅允許專用的僅加密/解密單元。

數據路徑中的所有子模塊都是純組合的。密碼和輪次密鑰生成中唯一的順序邏輯是狀態、完整密鑰和解密密鑰寄存器。

以下描述解釋了 AES 單元的工作原理,即 AES 密碼的操作如何映射到 AES 單元的數據路徑體系結構。斜體短語適用于不同分組密碼模式的特性。有關這些密碼模式的一般介紹,請參閱【分組密碼操作模式的建議】[3]

? 1、配置和初始密鑰通過一組控制和狀態寄存器 (CSR) 提供給 AES 單元,處理器可通過 TL-UL 總線接口訪問這些寄存器。處理器必須首先向CTRL_SHADOWED寄存器提供配置。然后跟隨初始鍵。每個密鑰寄存器必須至少寫入一次。寄存器的寫入順序無關緊要。

? 2、處理器分別在 CBC、CFB 和 OFB 模式或 CTR 模式下通過 TL-UL 總線接口向四個 IV 寄存器提供初始化矢量 (IV) 或初始計數器值。每個IV寄存器必須至少寫入一次。寄存器的寫入順序無關緊要。請注意,在運行時,AES單元在消耗當前IV值后自動更新IV寄存器。每當啟動新消息時,處理器必須通過 TL-UL 總線接口提供相應的 IV 值。在 ECB 模式下,無需提供 IV。在 ECB 模式下,IV 寄存器的內容將被忽略。

? 3、輸入數據通過四個 CSR 提供給 AES 單元。每個輸入寄存器必須至少寫入一次。寄存器的寫入順序無關緊要。

? 4、如果有新的輸入數據可用,AES 單元將通過執行以下操作自動啟動加密/解密。請注意,要使 AES 裝置在 CBC、CFB、OFB 或 CTR 模式下自動啟動,還必須準備好 IV。如果自上次 IV 更新(由處理器或 AES 單元本身完成)以來,所有 IV 寄存器至少寫入一次或均未寫入,則 IV 已準備就緒。AES 單元不會使用部分更新的 IV 自動啟動下一次加密/解密。通過將CTRL_SHADOWED中的MANUAL_OPERATION位設置為 ,AES 裝置可以在手動模式下操作。在手動模式下,每當觸發中的起始 位設置為 ,無論 IV 和輸入數據寄存器的狀態如何,AES 單元都會開始加密/解密。

? AES 單元將初始狀態加載到密碼內核內的狀態寄存器中。

?根據密碼模式,初始狀態是輸入數據和 IV 的組合。請注意,如果執行 CBC 解密,或者以 CFB、OFB 或 CTR 模式運行,則輸入數據也會被注冊(框圖中的“上一個數據”中的數據)。

?初始密鑰加載到密碼內核內的全密鑰寄存器中。請注意,如果執行 ECB/CBC 解密,則全密鑰寄存器將使用存儲在解密密鑰寄存器中的值加載。

? 5、加載狀態和完整密鑰寄存器后,AES 密碼核心通過將第一輪密鑰添加到初始狀態來開始加密/解密(繞過兩個數據路徑中的所有塊)。結果被存儲回國家登記冊。

? 6、然后,AES 密碼核心在使用 9/11/13 位密鑰時分別執行 128/192/256 輪加密/解密。在每個輪次中,密碼數據路徑執行以下四個轉換。有關更多詳細信息,請參閱 AES 規范。如果在 CTR 模式下運行,計數器模塊會迭代更新 IV,并行更新執行加密/解密的密碼核心。在內部,計數器模塊使用一個16位計數器,這意味著它需要8個時鐘周期來遞增存儲在IV寄存器中的128位計數器值。由于計數器值僅在第一輪中使用,并且由于單個塊的加密/解密需要 12/14/16 個周期,因此迭代計數器實現不會影響 AES 單元的吞吐量。

?子字節轉換:一種非線性字節替換,使用替換表 (S-Box) 對狀態的每個字節獨立運行。

? ShiftRows 轉換:狀態的最后三行的字節在不同的偏移量上循環移動。

? MixColumns 轉換:狀態的四列中的每一列都被視為 GF(2^8) 上的多項式,并單獨乘以另一個固定多項式。

? AddRoundKey Transformation:round鍵與MixColumns操作的輸出進行XOR運算,并存儲回狀態寄存器。128位整數密鑰本身是從Full Key寄存器中的當前值中提取的。同時,使用密鑰擴展模塊動態計算用于下一輪的完整密鑰。

? 7、最后,AES 密碼核心執行最后一輪加密/解密,其中跳過混合列操作。輸出被轉發到CSR中的輸出寄存器,但不會存儲回狀態寄存器。內部狀態寄存器使用偽隨機數據清除。

根據密碼模式,最后一輪的輸出可能會與IV寄存器中的值(CBC解密)或存儲在先前輸入數據寄存器中的值(CFB,OFB,CTR模式)進行異或運算,然后再轉發到CSR中的輸出寄存器。

如果在CBC模式下運行,IV寄存器將使用輸出數據(加密)或存儲在先前輸入數據寄存器中的值(解密)進行更新。

如果在 CFB 或 OFB 模式下運行,IV 寄存器將分別使用輸出數據或最終密碼輪的輸出(在與先前輸入數據進行 XOR 運算之前)進行更新。

具有單獨的輸入、輸出和內部狀態寄存器可防止通過 TL-UL 總線接口提取中間狀態,并允許將重新配置與操作重疊。當 AES 單元執行加密/解密時,處理器可以安全地將下一個輸入數據塊寫入 CSR 或從 CSR 讀取上一個輸出數據塊。狀態寄存器位于 AES 單元內部,不通過 TL-UL 總線接口公開。如果 AES 單元想要完成輸出數據塊的加密/解密,但處理器尚未讀取前一個數據塊,則 AES 單元將停止。它掛起并且不會丟棄數據。只有在讀取了先前的輸出數據并且可以安全地覆蓋相應的寄存器后,它才會繼續。讀取輸出寄存器的順序無關緊要。每個輸出寄存器必須至少讀取一次,AES單元才能繼續。相比之下,初始密鑰和控制寄存器只能在AES單元空閑時更新,這簡化了設計驗證(DV)。同樣,初始化向量 (IV) 寄存器只能在 AES 單元空閑時由處理器更新。如果 AES 設備繁忙且以 CBC 或 CTR 模式運行,則 AES 設備本身會更新 IV 寄存器。

AES單元的密碼核心架構源自Satoh等人提出的架構:“具有S-Box優化的緊湊型Rijndael硬件架構”[4]。110nm CMOS技術的預期電路面積約為12 - 22 kGE(未屏蔽實現,僅限AES-128)。啟用掩蔽的整個AES單元的預期電路面積約為110 kGE。

有關各個子模塊的說明,請參閱以下部分。

2、SubBytes / S-Box

SubBytes操作是一種非線性字節替換,使用替換表(S-Box)對狀態的每個字節獨立操作。它既用于加密數據路徑,也用于密鑰擴展數據路徑。AES單元總共并行實例化20個S盒(16個用于SubBytes,4個用于KeyExpand),每個S盒具有8位輸入和輸出。結合128位寬的數據路徑,這允許每次迭代執行一輪AES。

這種S盒及其反向器的設計會對電路面積、時序關鍵路徑、魯棒性和功率泄漏產生很大影響,這本身就是其研究的主題。S盒通過握手協議與AES單元的其余部分解耦,允許在需要時用不同的實現方式輕松替換它們。AES單元具有以下S-Box實現,可通過編譯時Verilog參數進行選擇。

3、ShiftRows

ShiftRows操作簡單地執行狀態矩陣的第1、2和3行的循環移位。因此,它可以使用3*4個32位2輸入多路復用器(加密/解密)來實現。

4、列混合變換

狀態的四列中的每一列都被認為是GF(2^8)上的多項式,并分別與另一個固定多項式相乘。整個操作可以使用36個2輸入XOR和16個4輸入XOR(全部為8位)、8個2輸入多路復用器(8位)以及78個2輸入和24個3輸入XOR門來實現。

5、秘鑰擴展

集成在AES單元中的密鑰擴展模塊(KEM)負責從初始密鑰生成各種圓形密鑰,用于加密和解密。KEM基于當前完整密鑰或初始密鑰(用于第一輪加密),與實際加密/解密并行生成下一個128/192/256位完整密鑰。然后,從該完整密鑰中提取實際的128位循環密鑰。

動態生成密鑰允許更低的存儲要求和更小的電路面積,但代價是每當密鑰發生變化時,在進行ECB/CBC解密之前的初始延遲。在此階段,KEM循環使用所有完整密鑰,以獲得解密的開始密鑰(等于最后一輪加密的密鑰)。該延遲階段的持續時間對應于加密一個16B塊所需的等待時間。在這個初始階段,密碼數據路徑保持空閑。下面的時序圖顯示了這一過程。

569f65b2-2df7-11ee-815d-dac502259ad0.png

在這里插入圖片描述

6、系統密鑰管理器接口

默認情況下,AES單元完全由處理器控制。處理器通過系統總線互連將輸入數據和初始密鑰寫入專用寄存器。

或者,處理器可以將AES單元配置為使用密鑰管理器經由密鑰側載接口提供的初始密鑰,而不將密鑰暴露給處理器或連接到系統總線互連的其他主機。為此,處理器必須將CTRL_SHADOWED中的SIDELOAD位設置為1。然后忽略處理器對初始密鑰寄存器Key_SHARE_0-Key_SHARE1_7的任何寫入操作。在正常/自動模式下,AES單元僅在側載密鑰標記為有效時才開始加密/解密。

為了更新側載密鑰,處理器必須1)等待AES單元變為空閑,2)等待密鑰管理器更新側載關鍵字并斷言有效信號,以及3)寫入CTRL_SHADOWED寄存器以啟動新消息。使用側載密鑰后,處理器必須觸發清除AES單元內的所有密鑰寄存器(請參閱下面的去初始化)。

三、安全強化

AES單元在體系結構、微觀體系結構和物理級別上采用不同的手段,以針對側通道分析和故障注入進行安全加固。

1、側通道分析

為了加劇側信道分析(SCA),AES單元實施以下對策。

1-密碼核心的一階掩碼

AES單元采用AES密碼核心的一階掩碼。更確切地說,密碼和密鑰擴展數據路徑都使用兩個共享。如下面的框圖所示,所有寄存器和數據路徑的寬度基本上都會翻倍。

56ccbc24-2df7-11ee-815d-dac502259ad0.png

在這里插入圖片描述

初始密鑰通過寄存器接口分為兩部分提供。輸入數據以未屏蔽的形式提供,并在密碼核心之外屏蔽,以獲得初始狀態的兩個份額。屏蔽輸入數據所需的偽隨機數據(PRD)由密碼核心的偽隨機數生成器(PRNG)提供。類似地,輸出狀態的兩個份額在密碼核心之外被組合以獲得輸出數據。

相同的PRNG還生成屏蔽子字節(16個屏蔽S盒)和屏蔽KeyExpand(4個屏蔽S框)所需的新隨機性。為S-Box選擇的掩蔽方案可以對SCA電阻、電路面積、每個周期和每個S-Box評估消耗的PRD比特的數量以及吞吐量有很大影響。屏蔽S-Box實現的選擇可以通過編譯時Verilog參數來控制。

默認情況下,AES單元對Gross等人提出的S盒使用面向域屏蔽(DOM):“面向域屏蔽:具有任意保護順序的緊湊屏蔽硬件實現”。所提供的實現具有每次S-Box評估5個時鐘周期的延遲。結果,在AES-128/192/256模式中,處理16字節數據塊的總等待時間分別從12/14/16增加到56/66/72時鐘周期。所提供的實現進一步在DOM S-Box實例之間轉發部分中間結果,以用于重新屏蔽目的。這允許在不影響SCA電阻的情況下減少與生成、緩沖和應用PRD相關的電路面積。

可替換地,Canright和Batina提出的屏蔽Canright S盒的兩個原始版本可以選擇:“一個非常緊湊的”完全屏蔽的“AES(校正)S盒”。這兩個版本是完全組合的(每個周期一次S盒評估)并且具有較低的占地面積,但它們對SCA的抵抗力明顯較低。

它們主要用于參考,但由于Moradi等人描述的相關性增強碰撞攻擊的潛在漏洞,不鼓勵使用它們:“相關性增強功率分析碰撞攻擊”。

每當提供新密鑰時(參見CTRL_AUX_SHADOWED.key_TOUCH_FORCES_RESEED),以及2)基于塊計數器。此塊計數器啟動自動重新設定操作的速率可以通過CTRL_SHADOWED.PRNG_reseed_rate進行配置。此外,軟件可以通過TRIGGER.PRNG_RESED手動啟動重新設定操作。

請注意,可以通過編譯時Verilog參數啟用/禁用屏蔽。當例如在CSRNG內部使用AES密碼核心來生成隨機數時,禁用屏蔽是可以接受的。禁用屏蔽時,還需要使用相應的編譯時Verilog參數選擇未屏蔽的S-Box實現。禁用屏蔽時,建議分別針對ASICFPGA目標使用未屏蔽的Canright或LUT S-Box實現。兩者都是完全組合的,并且允許每個時鐘周期進行一次S盒評估。

值得注意的是,由于輸入/輸出數據是以未屏蔽的形式通過寄存器接口提供/檢索的,因此AES單元不應用于形成身份梯形圖,其中一個AES運算的輸出用于形成梯形圖中下一個AES操作的密鑰。在OpenTitan中,Keccak消息驗證碼(KMAC)單元用于此目的。

2-完全并行數據路徑

任何一階屏蔽方案主要針對一階SCA進行保護。針對高階SCA的漏洞可能仍然存在。加劇高階攻擊的一種常見技術是增加系統中的噪聲,例如通過利用并行架構。為此,AES密碼核心使用128位并行數據路徑,總共有20個并行評估的S盒(16個在SubBytes內,4個在KeyExpand內)。

除了增加噪聲以提高對高階SCA的抵抗力外,全并行架構還實現了更高的性能和靈活性。它允許用戶無縫切換S-Box實現,以便試驗不同的掩蔽方案。為了將數據路徑與S-Boxes接口,使用了握手協議。

3-關于重置與非重置觸發器的注意事項

選擇觸發器類型來注冊密鑰等敏感資產可能會對漏洞產生影響,例如組合重置故障攻擊和SCA。根據OpenTitan非重置與重置失敗的基本原理,可以進行以下觀察:如果啟用屏蔽,密鑰和狀態值將存儲在AES單元內的兩個共享中。無論是個股的漢明權重還是漢明權重之和都與秘密資產的漢明重量成比例。

輸入/輸出數據和IV值(目前)沒有存儲在多個共享中,但這些數據不太重要,因為它們只使用一次。此外,它們被存儲在32位的存儲體中,與將例如8位寄存器假信號復位時相比,留下了更大的假設空間。此外,當通過TL-UL總線接口傳輸時,它們也可能被提取。

因此,AES單元僅使用復位觸發器。然而,所有主密鑰和數據寄存器在復位時都用偽隨機數據清除。

4-用偽隨機數據清除寄存器

重置后或由軟件啟動時,AES模塊內的所有主密鑰和數據寄存器都用偽隨機數據(PRD)清除。這有助于在寫入這些寄存器進行重新配置時以及在使用后清除寄存器時減少SCA泄漏。此外,在每次加密/解密的最后一輪期間,密碼核心內的狀態寄存器都用PRD清除。這防止了最后兩輪的狀態之間以及輸出和輸入數據之間的漢明距離泄漏。

2、故障注入

故障注入(FI)攻擊可以根據FI目標進行區分。

1-控制路徑

在加密設備中,控制路徑上的故障攻擊通常旨在干擾控制流,從而促進SCA或其他攻擊。AES的示例目標包括:切換到不太安全的操作模式(ECB),繼續處理相同的輸入數據,減少輪次/提前終止,跳過特定輪次,跳過輪次中的單個操作。為了防止控制路徑上的FI攻擊,AES單元執行以下對策。陰影控制寄存器:主控制寄存器實現為陰影寄存器。這意味著軟件必須執行兩個后續寫入操作才能執行更新。在內部,使用一個卷影副本,該副本不斷與實際寄存器進行比較。有關更多詳細信息,請參閱注冊工具文檔。

? FSM狀態的稀疏編碼:AES單元內的所有FSM都使用稀疏狀態編碼。多路復用器選擇器信號的稀疏編碼:所有主要多路復用器都使用稀疏編碼的選擇器信號。

用于握手和其他重要控制信號的稀疏編碼。

多軌控制邏輯:AES單元內的所有FSM都使用多個獨立和冗余的邏輯軌來實現。每個軌道精確地評估和驅動稀疏編碼的握手或其他重要控制信號的一個比特。不斷比較不同導軌的輸出,以檢測潛在故障。邏輯軌道的數量可以通過相對容易的RTL修改來擴大。默認情況下,使用三個獨立的邏輯軌道。

強化圓形計數器:與密碼核心FSM類似,內部圓形計數器通過多軌實現來防止FI。不斷比較不同軌道的輸出,以檢測圓形計數器中的潛在故障。

如果這些對策中的任何一個檢測到故障,就會觸發致命警報,內部FSM進入終端錯誤狀態,AES單元不會釋放更多數據并鎖定,直到重置。由于AES單元沒有自我復位的能力,因此在AES單元能夠再次運行之前,需要系統提供的復位。

STATUS.ALERT_FATAL_FAULT中報告了這種情況。沒有提供檢測到故障的詳細信息。

2-數據路徑

對數據路徑進行故障攻擊的目的通常是通過統計分析來提取密鑰上的信息。AES單元的當前版本沒有針對此類攻擊采取反措施,但未來版本很可能會采取反措施。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231178
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121155
  • 接口
    +關注

    關注

    33

    文章

    8691

    瀏覽量

    151911
  • 加速器
    +關注

    關注

    2

    文章

    807

    瀏覽量

    38087
  • AES
    AES
    +關注

    關注

    0

    文章

    104

    瀏覽量

    33271

原文標題:三、安全強化

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    IN6xx硬件AES介紹

    硬件AES
    橙群微電子
    發布于 :2023年12月04日 14:57:33

    SOC-AES系列廣播專業10路AES數字音頻光端機

    `廣播專業AES系列數字音頻光端機,采用先進的廣播和通信專業芯片。使用先進的FPGA、多路時分復用和時鐘恢復技術。輸入自動均衡,時鐘恢復,低抖動,透明傳輸完整AES格式信息。在1芯光纖上,傳輸10路
    發表于 03-13 22:54

    轉:熟悉AES加密

    通常對代碼的加密保護有硬件加密方式和軟件加密方式。AES是通常比較常用的一種有效加密方式什么是AES加密?從概念上來說高級加密標準(英語:Advanced Encryption Standard
    發表于 07-09 17:24

    靜態DAC技術規格是什么?

      所有DAC之間的共性就是技術規格的定義以及說明。這篇文章將會論述靜態DAC技術規格。靜態DAC技術
    發表于 08-21 08:13

    什么是AES算法? 怎樣快速實現AES算法?

    什么是AES算法?如何對AES算法進行優化?怎樣快速實現AES算法?
    發表于 04-28 06:51

    GPON 中的AES加密

    文章簡單的介紹了GPON 的體系結構與下行幀的結構,并著重介紹了AES 加密的流程、方法與具體算法,最后對GPON 中的AES 加密,解密方法,AES 計數器模式在GPON中的使用進行了詳細
    發表于 12-14 10:23 ?16次下載

    AES/EBU接口標準

    AES/EBU接口標準  AES和EBU一起開發的數字音頻傳輸接口標準:AES/EBU標準,即AES3-1992,ANSI S4.40-1992,或IEC-958標準。它是
    發表于 08-01 08:15 ?1.5w次閱讀
    <b class='flag-5'>AES</b>/EBU接口標準

    AES算法中S-box和列混合單元的優化及FPGA技術實現

    AES算法中S-box和列混合單元的優化及FPGA技術實現 由于其較高的保密級別,AES算法被用來替代DES和3-DES,以適應更為嚴苛的數
    發表于 04-23 09:34 ?3103次閱讀
    <b class='flag-5'>AES</b>算法中S-box和列混合單元的優化及FPGA<b class='flag-5'>技術</b>實現

    基于AES算法的加密模塊設計

    文中介紹了高級加密算法(AES)的基本原理,并給出了基于AES算法硬件加密模塊設計方案。通過Modelsim6.le對其進行仿真實現,仿真結果表明,該加密模塊能夠很好的實現AES算法
    發表于 02-21 15:52 ?0次下載
    基于<b class='flag-5'>AES</b>算法的加密模塊設計

    LORA6500AES 5w LORA AES加密無線數傳模塊V

    LORA6500AES 5w LORA AES加密無線數傳模塊 的資料
    發表于 09-05 17:46 ?26次下載

    AES和ECC的混合加密系統的設計

    AES和ECC的混合加密系統的設計
    發表于 10-31 09:04 ?11次下載
    <b class='flag-5'>AES</b>和ECC的混合加密系統的設計

    AES加密算法說明

    1 引 言 AES加密算法的一種優化的FPGA實現方法 隨著密碼分析水平,芯片處理能力和計算技術的不斷進步,des的安全強度已經難以適應新的安全需要,其實現速度、代碼大小和跨平臺性均難以繼續滿足
    發表于 11-30 01:31 ?2212次閱讀

    基于AES算法研究與設計

    FPCA硬件上存在的開發復雜度高且開發周期長等問題,采用高層次綜合( HLS)設計方法,使用高級程序語言描述并設計AES硬件加速算法。首先利用循環展開等提高運算并行度;其次使用資源平衡技術進行優化,充分利用片上存儲和電路資源;最后添加全流水
    發表于 12-03 09:49 ?7次下載
    基于<b class='flag-5'>AES</b>算法研究與設計

    AES加密協議是什么?AES加密協議的應用

    標準化過程:AES是在1997年由比利時密碼學家Joan Daemen和Vincent Rijmen共同提出的Rijndael算法基礎上發展起來的。經過嚴格的國際評審和對比測試,美國國家標準與技術
    的頭像 發表于 04-15 15:34 ?969次閱讀

    開源物聯網技術--AES加密功能技術分享

    一、AES加密功能 在物聯網行業中的應用 AES加密功能在物聯網行業中有著廣泛的應用。隨著物聯網技術的不斷發展,越來越多的設備連接到互聯網上,這也增加了數據泄露和網絡攻擊的風險。為了保護物聯網設備
    的頭像 發表于 09-11 14:50 ?782次閱讀
    開源物聯網<b class='flag-5'>技術</b>--<b class='flag-5'>AES</b>加密功能<b class='flag-5'>技術</b>分享
    南京百家乐的玩法技巧和规则| 百家乐赌场老千| 龙博百家乐官网的玩法技巧和规则 | 乐天堂百家乐娱乐场| 威尼斯人娱乐城骰宝| bet365娱乐城注册| 郸城县| 尊龙百家乐官网娱乐场| 百家乐视频裸聊| 百家乐小路是怎么画的| 大发888娱乐城动态| 临武县| 自贡百家乐官网赌场娱乐网规则| 百家乐技术交流群| bbin赌场| 河南省| 鼎龙百家乐官网的玩法技巧和规则 | 利来娱乐网| 百家乐官网手机版| 澳门百家乐心理| 威尼斯人娱乐城好不好| 百家乐技巧| 百家乐官网群sun811.com| 玩百家乐是否有技巧| 大发888娱乐场下载 游戏平台| 宾利百家乐官网游戏| 做生意摆什么好招财| 博九百家乐的玩法技巧和规则| 菲律宾太阳网| 百家乐官网赌场技巧网| 百家乐有无规律可循| 大发888免费送| 网络百家乐官网的陷阱| 百家乐系统分析器| 大发888公司赌场| 欢乐博百家乐官网娱乐城| 百家乐闲9点| 大发888官方 截图| 老k百家乐官网游戏| 百家乐新送彩金| 百家乐官网有多少局|