基於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軟件包:
 

測試效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章