打印

利用随机数发生器与TEA加密方式加密通信数据

[复制链接]
412|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电员师|  楼主 | 2018-7-27 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直想模仿IC卡授权的方式做一个通信加密,今天花了点时间研究了TEA加密,4个字形容——短小精悍
目前只做了整个通信加密的一小部分,算是开了个头,呵呵!

先以一个常用例子来简单阐述小灯为何想做通信加密:
1、PC端的软件与MCU的通信方式使用串口
2、通过PC端的软件来获取/设置MCU的参数,为防止本机的数据泄露,用户必须设一个用户密码,
    PC端的软件访问MCU时需要用户密码,若MCU发现密码不正确,便拒绝PC端的数据获取请求
3、考虑到会有极少部分用户会忘记密码,因此厂家留了一个超级密码,超级密码可以重设用户密码
4、当用户忘记密码时,厂家会通过远程方式帮用户重设用户密码,如果用户想要趁机偷取厂家的
    超级密码,只需抓取串口透传的数据即可分析出来,用户可以利用该超级密码获取或修改其他
    机子的所有数据
--------------                    ---------------
|            |                    |             |
|            |                    |             |
|    PC     |       串口      |    MCU    |
|            | ------------------ |             |
|            |                    |             |
--------------                    ---------------

为了解决上述超级密码泄露的问题,在PC访问MCU时可以采用加密的方式,并且不能采用
简单的加密(普通的加减异或),为此引入QQ使用的TEA加密:

1、PC端软件发送操作请求给MCU
2、MCU利用随机数发生器产生一段随机序列(明文)
3、MCU采用TEA加密方式对明文进行加密产生一段密文(明文 + 用户密码 = 密文)
4、MCU发送密文给PC端软件
5、PC端软件利用用户密码采用TEA解密方式对密文进行解密,还原出明文,并发送给MCU
6、MCU在100ms内等待PC端软件解密出来的明文,并与步骤2随机产生的明文做比较
    若比较正确则认为PC端软件输入了正确的密码
7、整个通信过程都是随机序列,用户密码并无泄露,实现了安全的密码验证授权!


目前小灯只完成了基础加解密部分,剩余的功能需要上位机配合,只能有时间再弄了
测试板采用

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

471

主题

480

帖子

0

粉丝