STM32单片机的TEA加密通信设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

STM32单片机的TEA加密通信设计环境:主机:WIN7开发环境:MDK4.72单片机:STM32说明:在项目中单片机会与服务器进行网络通讯。需要对通讯加密,我选择了TEA加密算法。*说明:TEA加密解密算法*TEA(TinyEncrypTIonAlgorithm)是一种简单高效的加密算法,以加密解密速度快,*实现简单著称。*算法很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,*算法采用迭代的形式,*推荐的迭代轮数是64轮,最少32轮。**********************************************************************/#ifndef_TEA_H_#define_TEA_H_/**********************************************************************头文件**********************************************************************/#include“header.h”/**********************************************************************函数**********************************************************************//**********************************************************************tea加密*参数:v:要加密的数据,长度为8字节*k:加密用的key,长度为16字节**********************************************************************/staTIcvoidtea_encrypt(uint32_t*v,uint32_t*k);/**********************************************************************tea解密*参数:v:要解密的数据,长度为8字节*k:解密用的key,长度为16字节**********************************************************************/staTIcvoidtea_decrypt(uint32_t*v,uint32_t*k);/**********************************************************************加密算法*参数:src:源数据,所占空间必须为8字节的倍数。加密完成后密文也存放在这*size_src:源数据大小,单位字节*key:密钥,16字节*返回:密文的字节数**********************************************************************/uint16_tencrypt(uint8_t*src,uint16_tsize_src,uint8_t*key);/**********************************************************************解密算法*参数:src:源数据,所占空间必须为8字节的倍数。解密完成后明文也存放在这*size_src:源数据大小,单位字节*key:密钥,16字节*返回:明文的字节数,如果失败,返回0**********************************************************************/uint16_tdecrypt(uint8_t*src,uint16_tsize_src,uint8_t*key);#endiftea.c/**********************************************************************TEA算法主文件*(c)copyright2013,jdh*AllRightReserved*文件名:hash.c*程序员:jdh**********************************************************************//**********************************************************************头文件**********************************************************************/#include“tea.h”/**********************************************************************函数**********************************************************************//**********************************************************************tea加密*参数:v:要加密的数据,长度为8字节*k:加密用的key,长度为16字节**********************************************************************/staTIcvoidtea_encrypt(uint32_t*v,uint32_t*k){uint32_ty=v[0],z=v[1],sum=0,i;uint32_tdelta=0x9e3779b9;uint32_ta=k[0],b=k[1],c=k[2],d=k[3];for(i**********************************************************************/staticvoidtea_decrypt(uint32_t*v,uint32_t*k){uint32_ty=v[0],z=v[1],sum=0xC6EF3720,i;uint32_tdelta=0x9e3779b9;uint32_ta=k[0],b=k[1],c=k[2],d=k[3];for(i=0;i《32;[标签:内容]

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功