博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式设备中支持国密算法的方法
阅读量:6497 次
发布时间:2019-06-24

本文共 904 字,大约阅读时间需要 3 分钟。

hot3.png

如今国密系列算法的应用已不仅仅局限于金融和电信等领域,诸如车载设备,消费类电子设备等越来越多的产品开始要求有国密算法的支持。但是国密算法的开源资料和应用案例少之又少,如何快速高效的在自己的设备中加入国密算法已经成为众多开发者必须要面对的难题。现在为大家准备了一个系列文章,介绍嵌入式设备中移植国密算法的方法。

简单来说,分为三种方法:

1、移植Miracl库

2、移植Openssl库

3、使用加密芯片

下面进行简介:

1、移植Miracl库

    MIRACL(Multiprecision Integer and Rational Arithmetic C/c++ Library)是一套数运算函数库,用来设计与大数运算相关的密码学之应用,包含了RSA 公开密码学、AES、DSAECC同时支持Diffie-Hellman密钥交换和数字签名功能。我们可以将这个库移植到我们的工程中,并在此基础上实现SM2,SM3,SM4的功能。

2、移植Openssl库

Openssl同样是支持加密算法的库,相比于Miracl,Openssl应用更加广泛,同时还支持常用的密钥和证书封装管理功能,支持SSL协议。

使用Openssl库来使我们的嵌入式设备支持国密算法的功能,其开发步骤和使用Miracl库的步骤类似,我们只需要将Openssl库中密码算法库的部分移植到我们的程序中,利用其函数接口,开发出国密算法的功能即可。

3、算法支持芯片

我们都知道国密算法是国家密码局制定标准的一系列算法,即SM1,SM2,SM3,SM4等。其中SM1是对称加密算法是采用硬件实现的,假如我们的应用需求中必须使用SM1,那么通过上面两种移植支持库的形式就实现不了了,这种情况下我们就要使用专门进行加密运算的加密芯片了。使用加密芯片的开发流程要比上述两种方式容易很多,我们只需要在硬件设计上添加加密芯片,即完成了开发,使用时也只需要发送固定格式的指令来调用加密芯片的功能即可。

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

转载于:https://my.oschina.net/u/2955002/blog/3055004

你可能感兴趣的文章
Struts2部分
查看>>
2014-8-4阿里电话面试
查看>>
这些小工具让你的Android 开发更高效
查看>>
T-SQL注意事项(1)——SET NOCOUNT ON的去与留
查看>>
Spring4新的javaConfig注解
查看>>
移动端的交互设计软件JustinMind
查看>>
DotNetCore 定时服务 HangFire
查看>>
Centos7安装Git
查看>>
Struts2学习笔记(九)——数据校验
查看>>
web系统压力测试
查看>>
我爱我家-北京-mysql
查看>>
win32 进程崩溃时禁止弹出错误对话框
查看>>
FZU 2110 Star 数学
查看>>
POJ 2886Who Gets the Most Candies?(线段树)
查看>>
【Java拾遗】Java transient关键字
查看>>
java批量生成excel文件
查看>>
python机器学习入门(Day3:Pandas)
查看>>
Cassandra操作入门
查看>>
salt 使用state文件来配置zabbix客户端文件
查看>>
求逆序对
查看>>