說明:
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軟件包:
測試效果: