通信,有时候为了保证截获方即使得到了数据包,也不知道内容,所以加密传输即可;但有时候不需要知道数据包的内容,只要知道知道数据包能干嘛即可,比如发指令,此种情况单单对数据包进行加密就不够了。
基础知识:
1、单片机适用的数据加密算法有TEA,经过TEA加密的数据字节数和加密前的一样,只是数据不一样了
2、CRC:一个数据包,根据CRC算法的不同,可以得到不同长度的CRC值;CRC一方面保证数据不会被篡改,另一方面能检测传输过程是否出现错误
假定A为发送方,B为接收方
加密模型1:
A:发送:请求临时许可号+临时唯一编号(编号的目的:使第一次发送的请求临时许可号和第二次发送的数据为一组,只有接收到B返回的临时许可号,才进行第二次发送,编号可以使A知道所发送的请求临时许可号得到返回,而不是其他指令的许可号)
B:返回许可号(此许可号在A的有效期是30S)+临时唯一编号
A:发送:许可号(TEA加密过)+数据(TEA加密过)
B:根据和A进行协商的TEA加密算法进行解密,如果加密过的许可号有效则此数据包有效,否则无效;执行结果TEA加密返回
优点:在通信过程中,即使数据被截获,并且知道此数据的用途,当再次发送同样数据B,也是无效的,此时许可号已过期。截获方虽然也可以申请许可号,由于许可号位数很多,几乎不可能再申请到相同的许可号,截获的数据不能再次使用
缺点:A每执行一个数据包,需要发送两次数据包
注:数据包发送过程中可以没有CRC值,因为即使截获方修改了数据,但是得不到有效的许可号;虽然CRC值还检测数据传输过程中是否出现错误,暂时不考虑。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !