安全啟動和安全升級的實現

MicroStoneTech發表於2024-04-08

CMAC原理
CMAC(Cipher-based Message Authentication Code)是一種基於密碼演算法的訊息認證碼,用於驗證訊息的完整性和真實性。它的基本實現原理是透過對訊息和金鑰進行計算得到一個固定長度的二進位制串。這個二進位制串是透過對訊息進行加密得到的,使用了一個稱為CBC-MAC的技術,其中CBC表示密碼塊鏈模式,MAC表示訊息認證碼。
在CMAC的實現中,首先將訊息劃分為多個固定長度的塊。然後使用密碼演算法對每個塊進行加密,並將加密結果與下一個塊進行異或運算。對最後一個塊進行特殊處理,如果長度不足,則補充填充位。最後一步是對加密結果進行再加密,得到最終的CMAC。
具體來說,以AES128為例,它的工作原理如下:
1.選擇一個隨機的128位金鑰K,用於生成AES的子秘鑰。
2.將訊息劃分為多個128位的塊。
3.計算每個塊的初始向量和金鑰的異或結果,得到每個塊的加密結果。
4.對每個加密結果進行異或運算,並將異或結果與下一個塊進行異或運算,得到每個塊的密文。
5.將密文進行拼接,得到最終的密文序列。
6.6.計算密文序列的MAC值T,作為訊息的認證碼。
透過以上步驟,可以得到一個固定長度的二進位制串作為訊息的認證碼。這個認證碼可以用於驗證訊息的完整性和真實性,防止訊息被篡改或偽造

相關文章