完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
嵌入式设备串口通讯一般都会明文通讯,但在某些应用场合我们也有加密需求, 以下为一种加密方式的建议.
上位机(主机)定义为Master,下位机(从机)定义为Slaver 通讯协议建议: 完整数据格式: 帧头Header+数据长度Length+数据内容Body+数据校验CRC Header(1Byte): M-->S ( 0x55 ) , S-->M( 0xaa ) Length(1Byte): 除了帧头和长度字节,后面数据的长度 Body(N Byte): 内容长度为 Length -帧头长-数据长-CRC长 CRC(1Byte):从帧头到的数据的校验,选择方式有:CRC8,代数和,异或 数据内容建议: 0. 帧头,数据,和校验字节的长度,可自行根据项目通讯内容字节数量自己修改,一般在2byte以内. 1.数据可采用c语言的结构体的小端数据对齐 2.数据组成,oper+sn+playload+check 3.check为保证数据加密后的完整性校验 4.sn为通讯数据序列,每帧数据自增1,用于防重放攻击和数据统计. 5.当slaver发给master的sn少于当前自身的sn,则认为该指令无效,可以选择性的回复错误代码. 数据加密步骤: 1.当建立通讯之间,Slaver向Master请求通讯密钥key1,和随机初始序列sn1.用于后续通讯,以防止重放偷听. 2.master和slave代码内部约定一个固定的密钥key2. 3.每帧数据加密/解密方式采用对称加密. 通讯数据=原始数据^key1^key2. 4.body加密部分为oper后面的内容(不包含oper字节). |
|
|
|
只有小组成员才能发言,加入小组>>
813 浏览 0 评论
1162 浏览 1 评论
2535 浏览 5 评论
2871 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2719 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1109浏览 3评论
198浏览 2评论
465浏览 2评论
379浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
461浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 11:35 , Processed in 1.101984 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号