专栏首页安富莱嵌入式技术分享基于MbedTLS的AES加密实现,含STM32H7和STM32F4的实现例程

基于MbedTLS的AES加密实现,含STM32H7和STM32F4的实现例程

说明:

1、mbedTLS的前身是PolarSSL,开源免费。

主要提供了的SSL/TLS支持(在传输层对网络进行加密),各种加密算法,各种哈希算法,随机数生成以及X.509(密码学里公钥证书的格式标准)的支持。

2、mbedTLS支持的加密算法含对称加密和非对称加密

(1)mbedTLS支持的对称加密算法有:AES,ARCFOUR,Blowfish/BF,Camellia,DES/3DES,GCM,XTEA       

加密和解密用到的密钥是相同的,加密速度快,适合数据收发通信,缺点是密钥的传输略麻烦。  

(2)mbedTLS支持的非对称加密算法有:Diffie-Hellman-Merkle,RSA,Elliptic Curves over GF(p),Elliptic Curve Digital Signature Algorithm (ECDSA)和Elliptic Curve Diffie Hellman (ECDH)

加密和解密用的密钥是不同的,加密的速度慢,适合密钥的传输。

3、关于AES加密,简单的说就是下面图示,由密钥和要解码的数据,通过算法生成密文,然后发给接受者,接受者使用相应的密钥解密数据。

4、现在研究下这个,主要是方便后面新版RL-TCPnet V7.X教程和对应的物联网教程做好铺垫。

例子说明:

1、使用的256bit AES加密。

2、mbedTLS支持密钥种子和密钥的生成,其中密钥种子函数提示要在Windows或者unix平台才可以使用,所以程序里面直接用的密钥生成函数。

3、例子是采用AES的CBC模式,这种模式每次固定加密或解密16个字节的数据,不足16个时,补0。由于mbed的API做了封装,每次可以处理16字节的整数倍。

4、特别注意CBC模式有个初始化表IV,也是16个字节。大家使用的时候要保证加密端和接收端一致。

例程下载:

链接:https://pan.baidu.com/s/1pv3hogesXA2lESDtq2Ur5g   提取码:gnaw

安装最新的mbedTLS软件包:

测试效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【STM32F407的DSP教程】第27章 FFT的示波器应用

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547

    armfly
  • emWin仪表界面设计,含uCOS-III和FreeRTOS两个版本

    第7期:多功能仪表界面设计 配套例子: V6-912_STemWin提高篇实验_多功能仪表界面设计(uCOS-III) V6-913_STemWin提高篇实验_...

    armfly
  • 【STM32H7教程】第25章 STM32H7的TCM,SRAM等五块内存基础知识

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980

    armfly
  • 我的Android进阶之旅------>Android采用AES+RSA的加密机制对http请求进行加密

    作者:欧阳鹏 来源:http://blog.csdn.net/ouyang_peng/article/details/50983574(点击文末阅读原文前往) ...

    java达人
  • 集中式云数据加密服务填补安全漏洞

    大多数云服务提供商提供数据加密服务,但是对一些用户来说,这种服务还不足以全面保护云端的企业数据。 针对静态数据和传输中数据采取的数据加密应该是云计算界的一种标准...

    静一
  • Linux 之父如何定义 Linux?

    LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gn...

    用户6543014
  • Linux 之父如何定义 Linux?

    来源:马哥教育链接:https://mp.weixin.qq.com/s/wwBt5H68tHmf_lHXrd_eSQ本文是 Linus 写于 1991年10月...

    Py_lover
  • Linux 之父如何定义 Linux?

    LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gn...

    小小科
  • 组织如何利用云计算技术开展远程工作

    根据调研机构Gartner公司的调查,由于发生冠状病毒疫情,74%的组织表示将让其一部分员工一直在家远程工作。疫情加速了远程工作的企业文化,很多组织意识到远程工...

    静一
  • 如何计算云计算的总体拥有成本

    很多企业并不确定在云中运行工作负载将会支付多少费用,因此需要了解其定义的参数才能启动和运行,并避免代价高昂的意外中断。

    静一

扫码关注云+社区

领取腾讯云代金券