嵌入式設備中支持國密算法的方法

現在國密系列算法的應用已不單單侷限於金融和電信等領域,諸如車載設備,消費類電子設備等愈來愈多的產品開始要求有國密算法的支持。可是國密算法的開源資料和應用案例少之又少,如何快速高效的在本身的設備中加入國密算法已經成爲衆多開發者必需要面對的難題。如今爲你們準備了一個系列文章,介紹嵌入式設備中移植國密算法的方法。c++

簡單來講,分爲三種方法:算法

一、移植Miracl庫函數

二、移植Openssl庫加密

三、使用加密芯片spa

下面進行簡介:設計

一、移植Miracl庫接口

    MIRACL(Multiprecision Integer and Rational Arithmetic C/c++ Library)是一套數運算函數庫,用來設計與大數運算相關的密碼學之應用,包含了RSA 公開密碼學、AES、DSAECC同時支持Diffie-Hellman密鑰交換和數字簽名功能。咱們能夠將這個庫移植到咱們的工程中,並在此基礎上實現SM2,SM3,SM4的功能。ip

二、移植Openssl庫ssl

Openssl一樣是支持加密算法的庫,相比於Miracl,Openssl應用更加普遍,同時還支持經常使用的密鑰和證書封裝管理功能,支持SSL協議。ci

使用Openssl庫來使咱們的嵌入式設備支持國密算法的功能,其開發步驟和使用Miracl庫的步驟相似,咱們只須要將Openssl庫中密碼算法庫的部分移植到咱們的程序中,利用其函數接口,開發出國密算法的功能便可。

三、算法支持芯片

咱們都知道國密算法是國家密碼局制定標準的一系列算法,即SM1,SM2,SM3,SM4等。其中SM1是對稱加密算法是採用硬件實現的,假如咱們的應用需求中必須使用SM1,那麼經過上面兩種移植支持庫的形式就實現不了了,這種狀況下咱們就要使用專門進行加密運算的加密芯片了。使用加密芯片的開發流程要比上述兩種方式容易不少,咱們只須要在硬件設計上添加加密芯片,即完成了開發,使用時也只須要發送固定格式的指令來調用加密芯片的功能便可。

以上三種方法各有優缺點,下一期詳細介紹三種實現方法。

相關文章
相關標籤/搜索