嵌入式设备中支持国密算法的方法

现在国密系列算法的应用已不单单局限于金融和电信等领域,诸如车载设备,消费类电子设备等愈来愈多的产品开始要求有国密算法的支持。可是国密算法的开源资料和应用案例少之又少,如何快速高效的在本身的设备中加入国密算法已经成为众多开发者必需要面对的难题。如今为你们准备了一个系列文章,介绍嵌入式设备中移植国密算法的方法。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,那么经过上面两种移植支持库的形式就实现不了了,这种状况下咱们就要使用专门进行加密运算的加密芯片了。使用加密芯片的开发流程要比上述两种方式容易不少,咱们只须要在硬件设计上添加加密芯片,即完成了开发,使用时也只须要发送固定格式的指令来调用加密芯片的功能便可。

以上三种方法各有优缺点,下一期详细介绍三种实现方法。

相关文章
相关标签/搜索