在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3130|回复: 21

[原创] 嵌入式设备中支持国密算法的方法(三)——移植Openssl库的步骤说明

[复制链接]
发表于 2019-6-26 09:09:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本篇文章是介绍国密算法在嵌入式设备中应用方法系列文章的第三篇,介绍移植openssl库到嵌入式设备中的具体方法,当然最终的目的还是使我们的设备能支持国密算法。同上一篇文章中介绍的miracl密码库相比,openssl库的应用更加广泛,资料支持度更好,但是代码体量要大于miracl库。需要再次说明的是,同miracl库一样,openssl的库也并不能直接提供国密算法的接口,我们是利用库中相应的API接口(如椭圆曲线等)来构建自己的国密算法,下面我们具体介绍移植的步骤。
    第一步 获取库
作为应用广泛的开源密码库,可以轻松获取源码,https://www.openssl.org/source/ ,若是对openssl库的使用不太熟悉,可以借助使用手册来了解用法:
图片1.jpg
    第二步 利用openssl构建SM算法库
我们构建一个新的工程用以实现国密算法,由于linux下通过makefile编译项目的方式不太直观,我们使用windoes环境下VSstudio编译环境来演示。
首先将openssl库的源码添加到工程文件夹的路径下,其次要在代码中增加文件包含,如下图:
图片2.jpg
图片3.jpg

    编译正确之后,开始着手构建SM算法的源码了,这一部分的代码是基于国密算法的原理,利用openssl库的接口构建的,这需要开发者了解国密算法原理。限于篇幅,本例中仅截取了作者实现的API,如下图
图片4.jpg
整体代码完成之后,我们可以选择生动态库或静态库供调用。此外,若是开发者准备在linux环境下使用gcc或某一嵌入式设备指定的编译工具来完成上述操作,则需要完成更多的工作,比较重要的是,开发者需要手动完成整个编译过程,这需要清楚openssl代码库本身的文件依赖关系,这部分内容作者不做更多介绍。
    第三步 将生成的库添加到个人的设备代码中
    在上一步中,作者成功完成了国密SM2(对称算法)的动态库制作,如下图:
图片5.jpg
为了便于介绍,作者整体的库制作过程和测试过程都是在windows环境下完成的,此处生成的.dll动态库也仅能在windows pc下运行。若是开发者在linux环境下完成上述操作,则应该生成.so为后缀的动态库文件,才能成功的添加到嵌入式设备中运行。
这一步代码的实现要根据各自嵌入式硬件设备的特点来实现,在这里不做过多介绍!


发表于 2019-6-27 10:47:34 | 显示全部楼层
综合楼主前两篇文章的介绍,对移植Openssl库的方法有了一定的了解,谢谢楼主的分享!
发表于 2019-6-28 08:37:14 | 显示全部楼层
这几篇文章讲的很好,已经对国密算法加密有了初步了解,谢谢楼主。
发表于 2019-6-28 09:08:07 | 显示全部楼层
楼主的文章对于我们这些小白来说实在是太深奥了,也只能默默地观望了
发表于 2019-6-28 09:23:53 | 显示全部楼层
国密算法SM2非对称使用上跟RSA类似,SM1、SM4、SM7是对称算法使用跟3DES类似,SM3是数据摘要,类似SHA-256,这些使用大多可以百度查到基本使用方式
发表于 2019-6-28 17:03:06 | 显示全部楼层
国密算法的优势是什么?是不是说安全等级高?
头像被屏蔽
发表于 2019-6-28 21:16:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2019-6-29 22:36:00 来自手机 | 显示全部楼层
国密算法是我国自主研发创新的一套数据加密处理系列算法,广泛应用于嵌入式物联网等相关领域。前提是算法密钥必须要保证安全性,因此将国密算法嵌入到硬件加密芯片中结合使用才能保证安全。
头像被屏蔽
发表于 2019-6-30 08:05:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2019-7-1 09:19:28 | 显示全部楼层
好象openssl库各方面都比miracl密码库要更好用,那是不是说openssl库就可以完全替代miracl密码库呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-9 21:04 , Processed in 0.027673 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表