社区导航

 

搜索
查看: 382|回复: 18

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

[复制链接]

58

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-25 11:09 | 显示全部楼层 |阅读模式

本篇文章是介绍国密算法在嵌入式设备中应用方法系列文章的第三篇,介绍移植openssl库到嵌入式设备中的具体方法,当然最终的目的还是使我们的设备能支持国密算法。同上一篇文章中介绍的miracl密码库相比,openssl库的应用更加广泛,资料支持度更好,但是代码体量要大于miracl库。需要再次说明的是,同miracl库一样,openssl的库也并不能直接提供国密算法的接口,我们是利用库中相应的API接口(如椭圆曲线等)来构建自己的国密算法,下面我们具体介绍移植的步骤。

第一步 获取库

作为应用广泛的开源密码库,可以轻松获取源码,https://www.openssl.org/source/ ,若是对openssl库的使用不太熟悉,可以借助使用手册来了解用法:

图片1.png

第二步 利用openssl构建SM算法库

我们构建一个新的工程用以实现国密算法,由于linux下通过makefile编译项目的方式不太直观,我们使用windoes环境下VSstudio编译环境来演示。

首先将openssl库的源码添加到工程文件夹的路径下,其次要在代码中增加文件包含,如下图:

图片2.png

图片3.png

 

编译正确之后,开始着手构建SM算法的源码了,这一部分的代码是基于国密算法的原理,利用openssl库的接口构建的,这需要开发者了解国密算法原理。限于篇幅,本例中仅截取了作者实现的API,如下图:

图片4.png

整体代码完成之后,我们可以选择生动态库或静态库供调用。此外,若是开发者准备在linux环境下使用gcc或某一嵌入式设备指定的编译工具来完成上述操作,则需要完成更多的工作,比较重要的是,开发者需要手动完成整个编译过程,这需要清楚openssl代码库本身的文件依赖关系,这部分内容作者不做更多介绍。

第三步 将生成的库添加到个人的设备代码中

在上一步中,作者成功完成了国密SM2(对称算法)的动态库制作,如下图:

图片5.png

为了便于介绍,作者整体的库制作过程和测试过程都是在windows环境下完成的,此处生成的.dll动态库也仅能在windows pc下运行。若是开发者在linux环境下完成上述操作,则应该生成.so为后缀的动态库文件,才能成功的添加到嵌入式设备中运行。

这一步代码的实现要根据各自嵌入式硬件设备的特点来实现,在这里不做过多介绍!

 



此内容由EEWORLD论坛网友王宇宙原创,如需转载或用于商业用途需征得作者同意并注明出处



回复

使用道具 举报

66

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-27 11:09 | 显示全部楼层

综合楼主前两篇文章的介绍,对移植Openssl库的方法有了一定的了解,谢谢楼主的分享!
 



回复

使用道具 举报

73

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-27 11:17 | 显示全部楼层

这几篇文章讲的很好,已经对国密算法加密有了初步了解,谢谢楼主。
 



回复

使用道具 举报

70

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-27 20:51 来自手机 | 显示全部楼层
楼主有没有关于国密算法使用介绍的相关文章呢?


回复

使用道具 举报

74

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-27 21:21 | 显示全部楼层

国密算法SM2非对称使用上跟RSA类似,SM1、SM4、SM7是对称算法使用跟3DES类似,SM3是数据摘要,类似SHA-256,这些使用大多可以百度查到基本使用方式
 



回复

使用道具 举报

78

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-27 21:44 | 显示全部楼层

国密算法的优势是什么?是不是说安全等级高?
 

点评

国密算法从SM1-SM4分别实现了对称、非对称、摘要等算法功能,适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等,安全性上要高于RSA、3DES、SHA  详情 回复 发表于 2019-6-28 10:04


回复

使用道具 举报

58

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-6-28 10:04 | 显示全部楼层
wangjpq 发表于 2019-6-27 21:44 国密算法的优势是什么?是不是说安全等级高?  

国密算法从SM1-SM4分别实现了对称、非对称、摘要等算法功能,适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等,安全性上要高于RSA、3DES、SHA



回复

使用道具 举报

62

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-28 17:38 来自手机 | 显示全部楼层
国密是我国自主研发的一套数据加密处理系列算法,广泛应用于嵌入式物联网等领域,完成身份认证和数据加解密,安全性高于RSA、3DES、SHA


回复

使用道具 举报

73

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-29 23:32 | 显示全部楼层
学到了,但是过程太复杂了,有没有更为简单的方法,可以快速的实现让嵌入式设备支持国密算法呢?


回复

使用道具 举报

6

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-6-30 10:56 来自手机 | 显示全部楼层
你可以上网查一下加密芯片,有些加密芯片是支持国密算法的,这样会节省很多开发时间


回复

使用道具 举报

70

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-1 09:07 来自手机 | 显示全部楼层
好象openssl库各方面都比miracl密码库要更好用,那是不是说openssl库就可以完全替代miracl密码库呢?


回复

使用道具 举报

78

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-1 17:34 | 显示全部楼层

这个问题很专业了!需要专业人士回答下吧。
 



回复

使用道具 举报

62

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-1 17:39 来自手机 | 显示全部楼层
这个不能说谁更好,openssl和miracl两个各自有各自的优点,不能单纯的说这个比那个好。看你具体需求了,有可能这次两相比较一个更适合,但是下回做的项目可能另一个比这个更适合,so,都一样是工具,没有谁更好一说,


回复

使用道具 举报

21

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-1 18:13 来自手机 | 显示全部楼层
LKT4305-GM,感兴趣的上网搜一下.....


回复

使用道具 举报

60

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-1 18:40 来自手机 | 显示全部楼层
有谁知道楼上说的那款LKT4305GM是哪家公司的,有没有谁能详细的介绍下这款国.密芯片?安全性能怎么样?开发困难么?多谢了


回复

使用道具 举报

72

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-2 18:56 | 显示全部楼层

国密算法是国家密码局制定标准的、安全性超高的算法,想必支持国密算法的加密芯片应该是足够安全有保障的。
 



回复

使用道具 举报

60

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-2 19:33 来自手机 | 显示全部楼层
确定这方法行的通吗?


回复

使用道具 举报

72

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-2 22:29 | 显示全部楼层

太高深了,有生成国密的实例就更好了。
 



回复

使用道具 举报

74

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-3 11:26 来自手机 | 显示全部楼层
其实没必要去研究国密算法,因为会投入人力和物力,不如直接找一款加密芯片,减少投入,安全又有保障,市面上已经有成熟的产品,足够满足你产品安全的需求


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

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

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-7-18 21:16 , Processed in 0.488382 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表