1. 程式人生 > >正確的理解加密晶片

正確的理解加密晶片

在過去幾年的工作中,用過N多次加密晶片,那個時候對加密晶片的理解就是,用一個微控制器晶片,兩端分別放好一樣的金鑰,然後自己定義一個通訊協議。兩邊通過協議交換一下資料,如果資料是想要的認為加密成功,否則就失敗停止工作。當接觸加密晶片這個行業之後,發現其實上述的這種加密方式,也可以應用,只是此方式比較容易破解,也容易跳過加密晶片。但是真正的加密晶片就不一樣了。下面我簡單描述一下我現在對加密晶片的一些觀點:

        1、比較簡單低成本的加密晶片(武漢瑞納捷RJGT102),晶片內部是用的純硬體的邏輯電路實現的。原理也是相互之間存放一樣的金鑰,用IIC(也可以別的通訊協議)介面進行資料互換。當互換之前都運用一些加密演算法(如:SHA-256),把金鑰加密一下,防止在IIC資料線上抓下資料規律。

        2、相對第一種加密晶片,這種晶片(武漢瑞納捷RJMU401)的保護作用更加強大,當然成本也會貴一些。這種加密晶片通常會自帶一個處理核心,並有一定的儲存空間,目的是可以將其他MCU的部分程式或者是主要資料、演算法放入加密晶片中。而加密晶片中會有很多加密演算法保護這些資料、程式碼(如:DES/AES/SM1/SM4/RSA/SM2/SM3等等)。並且此類晶片通常還有防篡改檢測電路、有防止外部惡意攻擊的措施(主要防止破片抄襲)。

         3、還有一些更加高階的加密晶片,他們的作用是由於保護一些互聯裝置、無線裝置。此類加密晶片除了需要具備以上兩點之外,還需要有一定的鑑權中心,提供金鑰管理裝置,用於金鑰產生、銷燬。金鑰產生由金鑰閘道器分發到加密晶片。從而實現遠端、不定時的更換金鑰。

        以上這些觀點僅代表個人,如果那些大神有更深的見解,請賜教!