本发明属于通讯加密技术领域,特别是涉及一种嵌入式系统数据通讯加密方法。
背景技术:
嵌入式系统(embeddedsystem),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”。嵌入式系统在物联网、工业控制、快消类产品和医疗设备中得到了广泛应用。
为保证嵌入式系统不被轻易抄板和破解,需要采用多种加密手段配合。比如采用cpu或cpld芯片加密,采用专用加密芯片等方法。这些方法具备较高的加密强度,但是系统内芯片之间的通讯一般不加密或者仅仅做了简单的密文变换,存在如下三个方面的问题,比较容易被破解。1、通讯协议本身不能保证每次通讯的唯一性,不具备时间唯一性,容易被录制然后通过模拟应答通讯的方法破解。
2、加密系统不对客户进行严格验证,没有提供防止采用如图1植入通讯共享器进行破解的方法,从而不能保证加密器的空间唯一性。
如图1所示,加密系统经常通过限制一个主设备只能与一个从设备实现通讯的空间唯一性。通过图1方法,两个主设备能通过通讯共享器与同一个从设备通讯,从而可以只采购一个从设备就可以为无限制的主设备服务,绕开了设备通讯空间唯一性限制。
3、加密算法复杂度不够,可以被直接进行算法破解。
技术实现要素:
本发明通过引入非确定性的设备事件作为种子的随机数、设备唯一id、连接句柄等方法,实现了任意一次通讯的编码和解码具备时间和空间的唯一性。对称分组密码算法aes256是目前公认不可破解算法,执行速度快,易于硬件实现,但该算法密钥需要在传输前通过可靠途径实现双方共知。因此,本发明使用rsa非对称加密算法传送密匙,使用aes256等高级加密标准实现数据加密,通讯协议的解密复杂度高,有效防止了侦听回放破解方法。
为了达到上述目的,本发明提供的技术方案是:一种嵌入式系统数据通讯加密方法,包括如下步骤:
步骤1,建立主设备与从设备之间的通讯,包含建立主设备通讯发送帧流程和建立从设备通讯回答帧流程;其中建立主设备通讯发送帧流程包括:生成随机数,计算获得主设备时间,按建立连接帧格式填写帧明文,按rsa算法加密帧,完成建立连接帧的发送,建立连接帧格式包括随机数、主设备当前时间、主设备唯一id、从设备唯一id、rsa2048对称加密密码、建立连接命令、命令参数、帧crc;
建立从设备通讯回答帧流程包括:按rsa算法解密,从解密帧中获得数据帧解密密匙,生成连接句柄,生成随机数,计算获得从设备时间,按建立连接回答帧格式填写帧明文,按rsa算法加密帧,完成建立连接回答帧的发送,建立连接回答帧格式包括随机数、从设备当前时间、主设备唯一id、从设备唯一id、连接句柄、帧crc;
步骤2,主设备数据发送处理流程,包括:生成随机数,计算获得主设备时间,按命令帧格式填写帧明文,按aes256算法加密帧明文,完成命令帧的发送,命令帧格式包括随机数、主设备当前时间、主设备唯一id、从设备唯一id、命令、命令参数、连接句柄、帧crc;
步骤3,从设备数据接收处理流程,包括:
第1步,等待接收数据帧;
第2步,读取帧中随机数字段;
第3步,通过随机数字段异或解密非随机数字段;
第4步,读取密码数据区,并通过rsa算法解密得到通讯密码;
第5步,通过通讯密码和aes算法解密其余字段;
第6步,检查协议crc校验是否正确,如果不正确返回第1步;
第7步,如果是建立连接帧,执行第15步;
第8步,检查协议从设备id段是否正确,如果不正确返回第1步;
第9步,检查协议主设备id段是否正确,如果不正确返回第1步;
第10步,检查命令是否正确,如果不正确返回第1步;
第11步,执行命令;
第12步,填写命令回答帧,其中命令回答帧格式包括:随机数、从设备当前时间、主设备唯一id、从设备唯一id、命令执行结果、结果参数、帧crc;
第13步,发送命令回答帧;
第14步,返回第1步;
第15步,记录主设备id;
第16步,建立连接回答帧填写从设备id;
第17步,建立连接回答帧填写连接句柄;
第18步,发送建立连接回答帧;
第19步,返回第1步。
进一步的,连接句柄为建立连接时由从设备产生的随机数。
进一步的,rsa2048对称加密密码是由主设备产生的随机数。
进一步的,帧crc等于从帧开始到帧crc前的所有数据进行crc校验的结果。
与现有技术相比,本发明的优点和有益效果如下:
相比现有技术有如下优点:
1、通过连接句柄,实现了任意一次通讯的编码和解码具备空间的唯一性。
2、通过引入非确定性的设备事件作为种子的随机数,实现了通讯的编码和解码随时间随机变化。通讯数据具备时间唯一性。
3、通过采用rsa非对称加密高级算法传送密匙,提高了建立连接帧中加密密码解密复杂度。
4、采用aes256高级加密标准实现数据加密,提高了数据帧解密复杂度。
有益效果:有效防止了三个主要通讯破解方法,
1、该方法采用了rsa,aes256加密算法,该算法为银行等系统广泛采用加密算法,很长时间内具备不可破解性,解决了加密系统加密强度问题。
2、该方法具备空间唯一性,杜绝了通过一个有效加密终端模拟多个加密终端的情况。
3、该方法具备时间唯一性,有效防止使用伪终端根据录制帧模拟应答的破解方法。
附图说明
图1为采用通讯共享器破解通讯密码结构图。
图2为数据通讯模块图。
图3为建立通讯发送帧流程。
图4为建立通讯回答帧流程。
图5主站发送数据处理流程图。
图6为从站接收数据处理流程图。
具体实施方式
下面结合附图和实施例对本发明的技术方案作进一步说明。
本发明实施例提供一种嵌入式系统数据通讯加密方法,实现主从设备之间的通讯和数据互换,需要先建立主从设备之间的通讯,然后再进行数据之间的互换;具体包括如下步骤:
步骤1,建立主设备与从设备之间的通讯,包含建立主设备通讯发送帧流程和建立从设备通讯回答帧流程;其中建立主设备通讯发送帧流程包括:生成随机数,计算获得主设备时间,按建立连接帧格式填写帧明文,按rsa算法加密帧,完成建立连接帧帧的发送,建立连接帧格式包括随机数、主设备当前时间、主设备唯一id、从设备唯一id、rsa2048对称加密密码、建立连接命令、命令参数、帧crc;
建立从设备通讯回答帧流程包括:按rsa算法解密,从解密帧中获得数据帧解密密匙,生成连接句柄,生成随机数,计算获得从设备时间,按建立连接回答帧格式填写帧明文,按rsa算法加密帧,完成建立连接回答帧的发送,建立连接回答帧格式包括:随机数、从设备当前时间、主设备唯一id、从设备唯一id、连接句柄、帧crc;
步骤2,主设备数据发送处理流程,包括:生成随机数,计算获得主设备时间,按命令帧格式填写帧明文,按aes256算法加密帧明文,完成命令帧的发送,命令帧格式包括随机数、主设备当前时间、主设备唯一id、从设备唯一id、命令、命令参数、连接句柄、帧crc;
步骤3,从设备数据接收处理流程,包括:
第1步,等待接收数据帧;
第2步,读取帧中随机数字段;
第3步,通过随机数字段异或解密非随机数字段;
第4步,读取密码数据区,并通过rsa算法解密得到通讯密码;
第5步,通过通讯密码和aes算法解密其余字段;
第6步,检查协议crc校验是否正确,如果不正确返回第1步;
第7步,如果是建立连接帧,执行第15步;
第8步,检查协议从设备id段是否正确,如果不正确返回第1步;
第9步,检查协议主设备id段是否正确,如果不正确返回第1步;
第10步,检查命令是否正确,如果不正确返回第1步;
第11步,执行命令;
第12步,填写命令回答帧,其中命令回答帧格式包括:随机数、从设备当前时间、主设备唯一id、从设备唯一id、命令执行结果、结果参数、帧crc;
第13步,发送命令回答帧;
第14步,返回第1步;
第15步,记录主设备id;
第16步,建立连接回答帧帧填写从设备id;
第17步,建立连接回答帧帧填写连接句柄;
第18步,发送建立连接回答帧帧;
第19步,返回第1步。
为了更清楚了理解,下面对本发明中的一些基本原理进行解释。
1、随机数的产生:为加大通讯系统随机性,增加破解难度,本方面多处采用了加入硬件噪声的随机数。具体说就是维持一个系统事件池,不断收集系统时间、系统中断次数、内部某函数调用次数、io调用响应时间等信息,并将这些信息作为随机数产生的新种子。
2、帧明文格式:帧格式分四大类,建立连接、建立连接回答、命令帧、命令回答帧,具体格式如表1至表4;
表1建立连接帧格式
表2建立连接回答帧格式
表3命令帧格式
表4命令回答帧格式
其中,连接句柄为建立连接时由从设备产生的随机数;rsa2048对称加密密码是由主设备产生的随机数,通讯中主从设备双方各实时产生一个随机数,后续数据全部根据该随机密码加解密和随机连接句柄进行设备验证,两个随机数的组合将是一个天文数字,所以通过录制方式进行破解的方法不可行。
帧crc等于从帧开始到帧crc前的所有数据进行crc校验的结果。
建立连接帧包含主设备唯一性id,从设备唯一性id。这两个id来自设备cpu等加密芯片内的唯一性id,如果设备不具备唯一性id信息,可以通过生产设备时候人工顺序编码产生,这些id保证了设备的空间唯一性。
设备唯一性id和连接句柄保证了通讯帧的空间唯一性。
帧格式中包含当前时间,保证了帧的时间唯一性。
3、帧加密:明文帧建立好后,需要经过加密后才能发送出去。具体加密方法如下:
第一步、用每帧开头的随机数对帧内除随机数本身的所有字段进行异或加密。
第二步、如果是建立连接帧格式,用2048位rsa算法和公有密码对帧进行加密。如果是其他帧,使用建立连接帧里面的对称加密密码和256位aes算法进行加密。
4、帧解密:接受到密文帧后,按如下步骤进行帧解密:
第一步、如果是建立连接帧格式,用2048位rsa算法和私有密码对全帧进行解密。如果是其他帧,使用建立连接帧里面的对称加密密码和256位aes算法对全帧进行解密。
第二步、用每帧开头的随机数对帧内除随机数本身的所有字段进行异或解密。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。