一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

AES HWIP技術(shù)規(guī)格

jf_EksNQtU6 ? 來源:TrustZone ? 2023-08-03 10:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

AES HWIP技術(shù)規(guī)格

一、概述

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

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 的支持以保存區(qū)域,并使用編譯時 Verilog 參數(shù)啟用/禁用

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

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

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

?基于寄存器的數(shù)據(jù)和控制接口

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

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

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

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

2、說明

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

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

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

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

?輸出反饋 (OFB) 模式

?計數(shù)器 (CTR) 模式。

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

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

這包括輸入/輸出數(shù)據(jù)和密鑰,以及狀態(tài)和控制信息。

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

二、操作理論

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

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

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

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

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

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

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

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

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

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

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

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

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

1、功能框圖

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

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

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

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

在這里插入圖片描述

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

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

2、AES算法原理

【密碼學基礎(chǔ):AES加密算法】[1]

3、設(shè)計細節(jié)

本節(jié)討論 AES 模塊的不同設(shè)計細節(jié)。

1、數(shù)據(jù)路徑體系結(jié)構(gòu)和操作

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

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

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

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

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

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

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

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

? AES 單元將初始狀態(tài)加載到密碼內(nèi)核內(nèi)的狀態(tài)寄存器中。

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

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

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

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

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

? ShiftRows 轉(zhuǎn)換:狀態(tài)的最后三行的字節(jié)在不同的偏移量上循環(huán)移動。

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

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

? 7、最后,AES 密碼核心執(zhí)行最后一輪加密/解密,其中跳過混合列操作。輸出被轉(zhuǎn)發(fā)到CSR中的輸出寄存器,但不會存儲回狀態(tài)寄存器。內(nèi)部狀態(tài)寄存器使用偽隨機數(shù)據(jù)清除。

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

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

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

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

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

有關(guān)各個子模塊的說明,請參閱以下部分。

2、SubBytes / S-Box

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

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

3、ShiftRows

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

4、列混合變換

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

5、秘鑰擴展

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

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

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

在這里插入圖片描述

6、系統(tǒng)密鑰管理器接口

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

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

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

三、安全強化

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

1、側(cè)通道分析

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

1-密碼核心的一階掩碼

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

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

在這里插入圖片描述

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

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

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

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

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

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

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

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

2-完全并行數(shù)據(jù)路徑

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

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

3-關(guān)于重置與非重置觸發(fā)器的注意事項

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

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

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

4-用偽隨機數(shù)據(jù)清除寄存器

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

2、故障注入

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

1-控制路徑

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

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

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

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

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

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

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

2-數(shù)據(jù)路徑

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

審核編輯:湯梓紅

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

    關(guān)注

    68

    文章

    19899

    瀏覽量

    235425
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5435

    瀏覽量

    124604
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9005

    瀏覽量

    153785
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    827

    瀏覽量

    39139
  • AES
    AES
    +關(guān)注

    關(guān)注

    0

    文章

    107

    瀏覽量

    33560

原文標題:三、安全強化

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    IN6xx硬件AES介紹

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

    SOC-AES系列廣播專業(yè)10路AES數(shù)字音頻光端機

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

    轉(zhuǎn):熟悉AES加密

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

    靜態(tài)DAC技術(shù)規(guī)格是什么?

      所有DAC之間的共性就是技術(shù)規(guī)格的定義以及說明。這篇文章將會論述靜態(tài)DAC技術(shù)規(guī)格。靜態(tài)DAC技術(shù)規(guī)
    發(fā)表于 08-21 08:13

    什么是AES算法? 怎樣快速實現(xiàn)AES算法?

    什么是AES算法?如何對AES算法進行優(yōu)化?怎樣快速實現(xiàn)AES算法?
    發(fā)表于 04-28 06:51

    GPON 中的AES加密

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

    AES/EBU接口標準

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

    AES算法中S-box和列混合單元的優(yōu)化及FPGA技術(shù)實現(xiàn)

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

    基于AES算法的加密模塊設(shè)計

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

    LORA6500AES 5w LORA AES加密無線數(shù)傳模塊V

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

    AES和ECC的混合加密系統(tǒng)的設(shè)計

    AES和ECC的混合加密系統(tǒng)的設(shè)計
    發(fā)表于 10-31 09:04 ?11次下載
    <b class='flag-5'>AES</b>和ECC的混合加密系統(tǒng)的設(shè)計

    AES加密算法說明

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

    基于AES算法研究與設(shè)計

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

    AES加密協(xié)議是什么?AES加密協(xié)議的應用

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

    開源物聯(lián)網(wǎng)技術(shù)--AES加密功能技術(shù)分享

    一、AES加密功能 在物聯(lián)網(wǎng)行業(yè)中的應用 AES加密功能在物聯(lián)網(wǎng)行業(yè)中有著廣泛的應用。隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的設(shè)備連接到互聯(lián)網(wǎng)上,這也增加了數(shù)據(jù)泄露和網(wǎng)絡(luò)攻擊的風險。為了保護物聯(lián)網(wǎng)設(shè)備
    的頭像 發(fā)表于 09-11 14:50 ?1335次閱讀
    開源物聯(lián)網(wǎng)<b class='flag-5'>技術(shù)</b>--<b class='flag-5'>AES</b>加密功能<b class='flag-5'>技術(shù)</b>分享