xiaoyuzhou1228

LKT系列加密芯片DES加解密以及OpenSSL DES接口实现加解密

0
阅读(321) 评论(21)

1、测试目标

使用已经预置DES密钥的LKT4201N系列加密芯片完成运算

2、测试环境

本示例运行环境为windows系统、测试软件LCS KIT、LKT-K100开发板。

3、测试步骤

注意:“->”表示使用LCS KIT软件操作LKT-K100向加密芯片发送数据;

 “<-”表示使用LCS KIT软件操作LKT-K100读回加密芯片输出的数据。

4、测试指令

   使用LKT4201N内部已存放的01号30密钥和01号31密钥进行加密操作测试

( 注: 如何创建KEY文件和写入密钥不再赘述)

(1) 加密指令

        -> 0088 0001 08 1122334455667788

<- 61 08

-> 00C0 0000 08

<- 密文数据+9000

注:加密数据应为8字节的整数倍,不够的后面先补80,如果还是不够8字节的倍数再补00到8字节的整数倍。

(2) 解密指令

        -> 0088 0101 08 +密文数据

<- 61 08

-> 00C0 0000 08

<- 1122334455667788  +9000

5、OpenSSL DES接口实现3DES 和DES加解密

(1)下载OpenSSL源码,生成libeay32.dll 和libeay32.lib文件

(2)将libeay32.dll 、libeay32.lib以及OpenSSL头文件移植到VC工程中,工程中增加

#pragma comment(lib, "libeay32.lib")用于调用静态库,另外设置好头文件路径,在工程中增   加#include <openssl/des.h>,

  (3)DES_set_key_unchecked( (DES_cblock*)key1 , &schedule1 );调用此函数可以实现密钥设置

DES_ecb_encrypt((const_DES_cblock*)(inbuff+i*8),(DES_cblock*)(outbuff+i*8),&schede1,DES_ENCRYPT);此函数用于实现DES ECB模式加密。

(4)根据DES函数接口编写加解密函数

解密函数同理

(5)加解密函数接口测试

2.png

(6)测试结果

以上完成了openssl des接口实现DES和3DES加密和解密功能。


  1. DES/3DES运用还是很广泛的,但是安全性是不是不太高?


  2. 之前有个项目使用过,3DES好像使用的硬件加密,加解密都是很快的


  3. 我想了解一下这种芯片的运算速度和加密速度,有用过的吗?给介绍一下

  4. 很技术的一篇文章,我收了给我们研发看看

  5. 验证和线路加解密都能用,openssl只是一个接口。具体怎么使用还要看研发人员,不过应该还是线路加解密上用的多。

  6. 实现openssl和加密芯片这个有啥用,是PC和加密芯片做认证,还是线路数据加解密?


  7. 能同时用RSA和ECC算法,芯片确实挺厉害的,但是既然叫加密芯片,重点应该还在安全上,运算速度肯定不能跟主控相比,具体的运算参数要根据自己的项目,结合厂家给出的运算数据做决定

  8. 能支持RSA和ECC那还挺厉害。不知道性能怎么样,运算速度快不快?


  9. @MrWang   

    DES加密算法和之前楼主发的SHA1算法哪个安全性更高?


    DES是对称密码算法,适用于加密大量数据的场合。SHA1是散列算法,适用于数字签名实现。这就得看你的需求了

  10. DES加密算法和之前楼主发的SHA1算法哪个安全性更高?


  11. 不是所有的场合都适合使用RSA的,DES也有其的优越性,安全性还是看方案怎么设计


  12. @miniminimini   

    楼主的文章都这么专业,有3des源码吗?有了RSA介绍,为何还要用3des?安全性没rsa好吧?


    3DES源码网上有很多,不过OpenSSL里有可以直接调用的3DES库

  13. 楼主的文章都这么专业,有3des源码吗?有了RSA介绍,为何还要用3des?安全性没rsa好吧?


  14. 这款芯片是cos指令,认证类芯片。不是算法移植芯片。


  15. 楼主所说的LKT4201N芯片是算法移植类的芯片还是只能是认证类?