加密通信方法、计算机可读存储介质和智能机器人与流程
未命名
10-17
阅读:112
评论:0
1.本技术涉及加密通信技术领域,具体而言,涉及一种加密通信方法、计算机可读存储介质和智能机器人。
背景技术:
2.工业机器人手操器与控制器之间通过通讯网络线路连接,直接使用明码通讯容易被录制然后通过模拟应答通讯的方法破解。为了防止网络通信协议被破解,保护版权,防止他人通过分析网络数据而获取到机器人的相关敏感信息,甚至出现发送违规操作协议导致机器人动作异常,必须对通讯协议进行加密,从而保证网络通讯协议的安全性和机器人的稳定性。
3.现有的加密方法一般需要公钥和私钥的参与,额外增加了对公钥以及私钥的管理工作,增加了加密通信的复杂度。
技术实现要素:
4.本技术的主要目的在于提供一种加密通信方法、计算机可读存储介质和智能机器人,以至少解决现有技术中工业机器人手操器与控制器之间的加密通信较为复杂的问题。
5.为了实现上述目的,根据本技术的一个方面,提供了一种加密通信方法,所述方法应用于第一设备,所述方法包括:响应于请求信息,生成控制第二设备的控制指令;在生成所述控制指令的情况下,获取时间信息和所述第一设备的身份信息;将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对所述控制指令进行加密,得到密文信息;生成包括所述时间信息、所述身份信息和所述密文信息的数据帧;在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,使得所述第二设备对所述数据帧解密后得到所述控制指令,并执行所述控制指令。
6.可选地,生成包括所述时间信息、所述身份信息和所述密文信息的数据帧,包括:生成帧头信息和帧尾信息;按照第一预定顺序对所述时间信息、所述身份信息、所述密文信息、所述帧头信息和所述帧尾信息进行排列,得到起始信息为所述帧头信息且结束信息为所述帧尾信息的所述数据帧,其中,所述帧头信息、所述帧尾信息、所述时间信息和所述身份信息构成所述数据帧的明文信息。
7.可选地,生成包括所述时间信息、所述身份信息和所述密文信息的数据帧,包括:生成校验信息位,所述校验信息位的初始值为空值;按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和所述校验信息位进行排列,得到初始数据帧;计算所述初始数据帧对应的校验码,得到第一校验信息;将所述第一校验信息填入所述初始数据帧中的所述校验信息位中,得到所述数据帧,其中,填入后的所述校验信息位、所述时间信息和所述身份信息构成所述数据帧的明文信息。
8.可选地,所述校验码包括以下至少之一:循环冗余校验码、奇偶校验码、海明码。
9.可选地,在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第
二设备,包括:在与所述第二设备建立socket通信连接的情况下,确定所述数据帧的发送套接字;通过所述发送套接字将所述数据帧发送至所述第二设备。
10.可选地,获取时间信息和所述第一设备的身份信息,包括:获取当前时间戳,得到所述时间信息;读取所述第一设备的存储器的序列号或者所述第一设备的主控芯片的序列号,得到所述身份信息。
11.根据本技术的另一方面,提供了一种加密通信方法,所述方法应用于第二设备,所述方法包括:在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,所述数据帧包括密文信息、时间信息和所述第一设备的身份信息,所述密文信息为所述第一设备将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对响应于请求信息生成的控制指令进行加密得到的,所述时间信息和所述身份信息为所述第一设备在生成所述控制指令的情况下获取的;根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令;根据所述控制指令,执行对应的响应动作。
12.可选地,所述数据帧还包括帧头信息和帧尾信息,在接收所述第一设备发送的数据帧之后,在根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密之前,所述方法还包括:确定所述数据帧是否出现粘包异常;在所述数据帧出现粘包异常的情况下,根据所述帧头信息和所述帧尾信息,对粘包异常的所述数据帧进行分割,使得分割后的所述数据帧的头部为所述帧头信息,分割后的所述数据帧的尾部为所述帧尾信息,得到多个分割后的所述数据帧。
13.可选地,所述数据帧还包括填有第一校验信息的校验信息位,所述第一校验信息为所述第一设备计算初始数据帧对应的校验码得到的,所述初始数据帧为所述第一设备按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和初始值为空值的所述校验信息位进行排列得到的,根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令,包括:从所述数据帧中提取所述初始数据帧,并计算所述初始数据帧对应的校验码,得到第二校验信息;从所述校验信息位中读取所述第一校验信息,并确定读取的所述第一校验信息与所述第二校验信息是否相同;在所述第一校验信息与所述第二校验信息相同的情况下,根据所述时间信息和所述身份信息,采用所述预定解密算法对所述密文信息进行解密,得到所述控制指令;在所述第一校验信息与所述第二校验信息不相同的情况下,发出警报信息。
14.可选地,在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,包括:在与第一设备建立socket通信连接的情况下,确定接收所述第一设备发送数据的接收套接字;通过所述接收套接字接收所述数据帧。
15.可选地,所述时间信息为所述第一设备获取当前时间戳得到的,所述身份信息为所述第一设备读取存储器的序列号或者主控芯片的序列号得到的。
16.根据本技术的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的方法,或者执行任一种所述的方法。
17.根据本技术的又一方面,提供了一种智能机器人,包括:智能操作器,包括一个或多个第一处理器、第一存储器以及一个或多个第一程序,其中,所述一个或多个第一程序被存储在所述第一存储器中,并且被配置为由所述一个或多个第一处理器执行,所述一个或
多个第一程序包括用于执行任意一种所述的方法;机器人的控制器,包括一个或多个第二处理器、第二存储器以及一个或多个第二程序,其中,所述一个或多个第二程序被存储在所述第二存储器中,并且被配置为由所述一个或多个第二处理器执行,所述一个或多个第二程序包括用于执行任意一种所述的方法。
18.应用本技术的技术方案,将第一设备的身份信息和时间信息作为密钥参数,对发送给第二设备的控制指令进行加密,得到密文信息,所述的两个密钥参数作为明文信息,以明文和密文信息的数据帧形式发送给第二设备,使得第二设备可以根据数据帧中的明文信息解密密文信息,得到控制指令,整个通信过程无需使用公钥和私钥参与,避免了对公钥和私钥的管理工作,降低了加密通信的复杂度。
附图说明
19.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
20.图1示出了根据本技术的实施例中提供的一种执行加密通信方法的移动终端的硬件结构框图;
21.图2示出了根据本技术的实施例提供的一种加密通信方法的流程示意图;
22.图3示出了根据本技术的实施例提供的一种数据帧的格式示意图;
23.图4示出了根据本技术的实施例提供的另一种加密通信方法的流程示意图;
24.图5示出了根据本技术的实施例提供的一种加密通信装置的结构框图;
25.图6示出了根据本技术的实施例提供的另一种加密通信装置的结构框图;
26.图7示出了根据本技术的实施例提供的一种智能机器人中参与协议帧处理的模块结构图;
27.图8示出了根据本技术的实施例提供的一种加密通信流程图;
28.图9示出了根据本技术的实施例提供的另一种加密通信流程图。
29.其中,上述附图包括以下附图标记:
30.102、处理器;104、存储器;106、传输设备;108、输入输出设备。
具体实施方式
31.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
32.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
33.需要说明的是,本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的
过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
34.正如背景技术中所介绍的,现有技术中工业机器人手操器与控制器之间的加密通信较为复杂,为解决如上技术问题,本技术的实施例提供了一种加密通信方法、计算机可读存储介质和智能机器人。
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
36.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种加密通信方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,所述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对所述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
37.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的加密通信方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现所述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。所述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输设备106用于经由一个网络接收或者发送数据。所述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
38.在本实施例中提供了一种运行于移动终端、计算机终端或者类似的运算装置的加密通信方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
39.图2是根据本技术实施例的加密通信方法的流程图,所述方法应用于第一设备。如图2所示,该方法包括以下步骤:
40.步骤s201,响应于请求信息,生成控制第二设备的控制指令;
41.具体地,所述请求信息为请求生成所述控制指令的信息,所述请求信息可以是其他设备发送给第一设备的;所述第一设备可以包括操作按键或者操作界面,所述请求信息也可以是所述第一设备响应于作用在所述操作按键或者所述操作界面上的预定操作生成的信息。所述第一设备和所述第二设备可以为具有通信组件的任意设备。
42.步骤s202,在生成所述控制指令的情况下,获取时间信息和所述第一设备的身份
信息;
43.具体地,所述时间信息可以为表征所述控制指令生成的时刻的信息,也可以为表征接收到所述请求信息或者生成所述请求信息的时刻信息,还可以为预计的发出加密后的控制指令的时刻信息。所述控制指令具有时间唯一性,即不同的所述控制指令对应的所述时间信息不同。所述身份信息为所述第一设备区别于其他设备的信息,包括但不限于序列号、id号、名称以及位置等信息。
44.步骤s203,将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对所述控制指令进行加密,得到密文信息;
45.具体地,所述预定加密算法可以为由一些公式、法则或者程序构成的任意合适的加密算法,通过该预定加密算法对原来为明文的控制指令按照该算法进行处理,使其成为不可读的密文,只有在输入所述控制指令对应的所述时间信息和所述身份信息的情况下才能显示出所述控制指令的原容。
46.步骤s204,生成包括所述时间信息、所述身份信息和所述密文信息的数据帧;
47.具体地,所述数据帧中,所述时间信息和所述身份信息为明文。
48.步骤s205,在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,使得所述第二设备对所述数据帧解密后得到所述控制指令,并执行所述控制指令。
49.具体地,所述第二设备从所述数据帧中得到所述时间信息和所述身份信息,根据所述时间信息和所述身份信息来对所述数据帧中的密文信息进行解密,得到所述控制指令。
50.通过所述实施例,首先生成控制第二设备的控制指令,并获取时间信息和第一设备的身份信息,然后将获取的时间信息和身份信息作为密钥参数,对控制指令进行加密,得到密文信息,再生成包括时间信息、身份信息和密文信息的数据帧,最后在第二设备与第一设备建立通信连接的情况下,将该数据帧发送给第二设备,使得所述第二设备从数据帧中解密得到控制指令并执行该控制指令。相比于现有技术中两个设备之间的加密通信较为复杂的问题,本技术将第一设备的身份信息和时间信息作为密钥参数,对发送给第二设备的控制指令进行加密,得到密文信息,所述的两个密钥参数作为明文信息,以明文和密文信息的数据帧形式发送给第二设备,使得第二设备可以根据数据帧中的明文信息解密密文信息,得到控制指令,整个通信过程无需使用公钥和私钥参与,避免了对公钥和私钥的管理工作,降低了加密通信的复杂度。
51.并且,相比于采用公钥和私钥的加解密方案,通讯协议中的密码索引在大于255之后需要重新计算生成整个密码池,瞬时计算量较大,可能会影响通讯双方的实时通讯,本技术的所述密钥参数具有时间和硬件的唯一性,不存在重新生成密码池的问题,减少了由于生成密码池造成的计算量较大的问题,确保了通讯双方的实时通信质量较高。
52.此外,通过采用时间信息和身份信息这两个密钥参数进行加密和解密运算,可以避免通信数据被恶意破解,或者通信数据中的敏感信息被泄露等问题,保证了两个设备之间的通信安全性。
53.现有技术中还存在对全帧通讯协议进行加密的方案,这种方案一旦出现网络阻塞时,则无法通过相关标识判断是否出现多帧数据粘包,可能会出现协议识别失败的情况;另
外,对全帧通讯协议进行加密同样会带来加密、解密环节计算量大的问题。
54.针对所述问题,一种可选方案中,步骤s204:生成包括所述时间信息、所述身份信息和所述密文信息的数据帧,包括:生成帧头信息和帧尾信息;按照第一预定顺序对所述时间信息、所述身份信息、所述密文信息、所述帧头信息和所述帧尾信息进行排列,得到起始信息为所述帧头信息且结束信息为所述帧尾信息的所述数据帧,其中,所述帧头信息、所述帧尾信息、所述时间信息和所述身份信息构成所述数据帧的明文信息。通过生成头尾信息分别为明文的帧头信息和帧尾信息的数据帧,这样在数据传输出现粘包异常时,有利于第二设备通过识别帧头信息和帧尾信息对粘包的多个数据帧进行分包处理,解决了全帧通讯协议加密方案无法处理粘包异常的问题,且本技术通过明文加密文方式进行通信数据传输,仅根据明文对控制指令进行加解密,进一步地保证了加解密计算量较小。
55.所述实施例中,除了头部和尾部分别对应所述帧头信息和所述帧尾信息外,所述数据帧中,所述时间信息、所述身份信息以及所述密文信息的排序可以根据实际需要灵活设置,比如,设置所述第一预定顺序为依次排列的帧头信息、身份信息、时间信息、密文信息和帧尾信息。
56.为了进一步地保证第一设备与第二设备之间通信数据的准确性和完整性,本技术的另一些实施例中,步骤s204:生成包括所述时间信息、所述身份信息和所述密文信息的数据帧,包括:生成校验信息位,所述校验信息位的初始值为空值;按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和所述校验信息位进行排列,得到初始数据帧;计算所述初始数据帧对应的校验码,得到第一校验信息;将所述第一校验信息填入所述初始数据帧中的所述校验信息位中,得到所述数据帧,其中,填入后的所述校验信息位、所述时间信息和所述身份信息构成所述数据帧的明文信息。所述实施例中,根据初始数据帧生成校验码,得到包括校验码的数据帧,可以实现对初始数据帧传输过程中是否出现错误的监测,进一步地确保第二设备收到完整且准确地通信数据。
57.具体地,所述校验码包括以下至少之一:循环冗余校验码(cyclic redundancy check,简称为crc)、奇偶校验码、海明码。当然,除了列举的所述校验码外,本技术的数据帧中的校验码还可以为其他类型的校验码,本领域技术人员可以根据实际需要灵活选择校验码的类型。
58.进一步地,在所述校验码为crc的情况下,计算所述初始数据帧对应的校验码,得到第一校验信息的具体实现方法可以为:将所述初始数据帧表示为第一多项式;将所述第一多项式除以预设的第二多项式,得到的余式即为所述校验码。
59.根据本技术的又一种可选实施例,在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,包括:在与所述第二设备建立socket通信连接的情况下,确定所述数据帧的发送套接字;通过所述发送套接字将所述数据帧发送至所述第二设备。在第一设备与第二设备建立通信连接的情况下,通过确定第一设备的发送套接字,即确定数据帧的发送端口,进一步地保证第二设备可以接收到该数据帧。
60.所述实施例中,所述第一设备与所述第二设备建立socket通信,可以实现两个设备之间字节级的数据传输,数据量小,传输时间短,且支持数据加密,数据传输安全性较高。此外,socket通信是跨平台的,不受特定操作系统的限制,可以使用不同的网络协议,来满足不同的通信需要。
61.除了所述的socket(端口)通信外,所述第一设备和所述第二设备还可以建立其他远程通信协议,如web service(网络服务)通信等。
62.所述实施例中,所述数据帧中的所述时间信息、所述身份信息、所述密文信息以及所述校验信息位的排序可以根据实际需要灵活设置,比如,设置所述第二预定顺序为依次排列的身份信息、时间信息、密文信息和校验信息位。
63.其他实施例中,步骤s204:生成包括所述时间信息、所述身份信息和所述密文信息的数据帧,还可以包括:生成帧头信息、帧尾信息和校验信息位,所述校验信息位的初始值为空值;按照第三预定顺序对所述时间信息、所述身份信息、所述密文信息、所述帧头信息、所述帧尾信息和所述校验信息位进行排列,得到初始数据帧;计算所述初始数据帧对应的校验码,得到第一校验信息;将所述第一校验信息填入所述初始数据帧中的所述校验信息位中,得到所述数据帧,其中,填入后的所述校验信息位、所述帧头信息、所述帧尾信息、所述时间信息和所述身份信息构成所述数据帧的明文信息。
64.数据帧中除了所述信息外,还可以视实际需求添加其他信息,如添加帧的数据长度等信息,来进一步便利粘包异常时的分包处理工作。图3示例性的示出了一种所述数据帧的格式,其中,所述数据帧由顺序排列的帧头信息、数据长度、身份信息、时间戳、密文信息、校验信息位和帧尾信息构成。
65.可选地,获取时间信息和所述第一设备的身份信息,包括:获取当前时间戳,得到所述时间信息;读取所述第一设备的存储器的序列号或者所述第一设备的主控芯片的序列号,得到所述身份信息。本实施例中,所述当前时间戳具有时间唯一性,所述序列号具有个体唯一性,因此,发出该数据帧的主体硬件不同、时间不同,尽管发送同样的功能协议,最后组成的完整协议帧也会有差异,这样通信双方只需要加入同一套加解密算法,无需额外新增其余数据内容,进一步地降低了加密通信的复杂度;并且,由于所有参与加密的密钥参数均在一帧数据中采用明文的方式进行传递,只要双方拥有配套的加密和解密算法,传入第二设备的数据帧即可完成解密,可以很方便的进行封装移植,也就是说,第一设备或者第二设备硬件更换之后也不影响两者通信数据的加解密。
66.根据本技术的另一方面,还提供了一种运行于移动终端、计算机终端或者类似的运算装置的加密通信方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
67.图4是根据本技术实施例的加密通信方法的流程图,所述方法应用于第二设备。如图4所示,该方法包括以下步骤:
68.步骤s301,在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,所述数据帧包括密文信息、时间信息和所述第一设备的身份信息,所述密文信息为所述第一设备将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对响应于请求信息生成的控制指令进行加密得到的,所述时间信息和所述身份信息为所述第一设备在生成所述控制指令的情况下获取的;
69.具体地,所述请求信息为请求生成所述控制指令的信息,所述请求信息可以是其他设备发送给第一设备的;所述第一设备可以包括操作按键或者操作界面,所述请求信息也可以是所述第一设备响应于作用在所述操作按键或者所述操作界面上的预定操作生成
的信息。所述第一设备和所述第二设备可以为具有通信组件的任意设备。
70.步骤s302,根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令;
71.具体地,所述时间信息可以为表征所述控制指令生成的时刻的信息,也可以为表征接收到所述请求信息或者生成所述请求信息的时刻信息,还可以为预计的发出加密后的控制指令的时刻信息。所述控制指令具有时间唯一性,即不同的所述控制指令对应的所述时间信息不同。所述身份信息为所述第一设备区别于其他设备的信息,包括但不限于序列号、id号、名称以及位置等信息。所述预定解密算法为所述预定加密算法的逆运算。所述预定解密算法可以为由一些公式、法则或者程序构成的任意合适的解密算法,通过将所述时间信息和所述身份信息输入所述解密算法,来对所述密文信息进行解密,实现所述控制指令的原容的显示。
72.步骤s303,根据所述控制指令,执行对应的响应动作。
73.通过所述实施例,在与第一设备建立通信连接的情况下,首先接收第一设备发送的包括密文信息、时间信息和身份信息的数据帧,其中,时间信息和身份信息为密文信息的密钥参数;然后,根据该时间信息和身份信息,对所述密文信息进行解密,得到所述控制指令;最后,执行得到的该控制指令。相比于现有技术中两个设备之间的加密通信较为复杂的问题,本技术的第二设备接收到明文和密文信息的数据帧形式,其中,明文信息作为所述密文信息的密钥参数,这样第二设备可以根据数据帧中的明文信息解密密文信息,得到控制指令,整个通信过程无需使用公钥和私钥参与,避免了对公钥和私钥的管理工作,降低了加密通信的复杂度。
74.此外,通过采用时间信息和身份信息这两个密钥参数进行加密和解密运算,可以避免通信数据被恶意破解,或者通信数据中的敏感信息被泄露等问题,保证了两个设备之间的通信安全性。
75.一种可选方案中,所述数据帧还包括帧头信息和帧尾信息,在步骤s301:接收所述第一设备发送的数据帧之后,在步骤s302:根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密之前,所述方法还包括:
76.步骤s303:确定所述数据帧是否出现粘包异常;
77.具体地,所述粘包异常指的是第一设备发送的多个连续的数据帧粘成一包,第二设备对数据帧进行读取时无法确定第一设备的发送边界的异常。
78.步骤s304:在所述数据帧出现粘包异常的情况下,根据所述帧头信息和所述帧尾信息,对粘包异常的所述数据帧进行分割,使得分割后的所述数据帧的头部为所述帧头信息,分割后的所述数据帧的尾部为所述帧尾信息,得到多个分割后的所述数据帧。
79.所述实施例中,由于每个数据帧的头尾信息分别为明文的帧头信息和帧尾信息,这样方便第二设备可以通过识别帧头信息和帧尾信息来对粘包的多个数据帧进行分包处理。
80.除了所述的帧头信息和帧尾信息外,所述数据帧中还可以包括表征帧长度的数据长度,还可以包括分隔符信息等,来进一步便利粘包异常时的分包处理工作。
81.为了进一步地保证第一设备与第二设备之间通信数据的准确性和完整性,本技术的另一些实施例中,所述数据帧还包括填有第一校验信息的校验信息位,所述第一校验信
息为所述第一设备计算初始数据帧对应的校验码得到的,所述初始数据帧为所述第一设备按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和初始值为空值的所述校验信息位进行排列得到的。根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令,包括:从所述数据帧中提取所述初始数据帧,并计算所述初始数据帧对应的校验码,得到第二校验信息;从所述校验信息位中读取所述第一校验信息,并确定读取的所述第一校验信息与所述第二校验信息是否相同;在所述第一校验信息与所述第二校验信息相同的情况下,根据所述时间信息和所述身份信息,采用所述预定解密算法对所述密文信息进行解密,得到所述控制指令;在所述第一校验信息与所述第二校验信息不相同的情况下,发出警报信息。所述实施例中,通过计算初始数据帧对应的校验码,得到第二校验信息,并将其与数据帧中的第一校验信息比对,来确定初始数据帧传输过程中是否出现错误,从而进一步地确保第二设备对完整且准确的数据帧进行解密。
82.具体地,所述校验码包括以下至少之一:循环冗余校验码、奇偶校验码、海明码。当然,除了列举的所述校验码外,本技术的数据帧中的校验码还可以为其他类型的校验码,本领域技术人员可以根据实际需要灵活选择校验码的类型。
83.进一步地,在所述校验码为crc的情况下,计算所述初始数据帧对应的校验码,得到第二校验信息的具体实现方法可以为:将所述初始数据帧表示为第一多项式;将所述第一多项式除以预设的第二多项式,得到的余式即为所述校验码。
84.根据本技术的又一种可选实施例,在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,包括:在与第一设备建立socket通信连接的情况下,确定接收所述第一设备发送数据的接收套接字;通过所述接收套接字接收所述数据帧。在第一设备与第二设备建立通信连接的情况下,通过确定第二设备的接收套接字,即确定数据帧的接收端口,进一步地保证第二设备可以接收到该数据帧。
85.所述实施例中,所述第一设备与所述第二设备建立socket通信,可以实现两个设备之间字节级的数据传输,数据量小,传输时间短,且支持数据加密,数据传输安全性较高。此外,socket通信是跨平台的,不受特定操作系统的限制,可以使用不同的网络协议,来满足不同的通信需要。
86.除了所述的socket通信外,所述第一设备和所述第二设备还可以建立其他远程通信协议,如web service通信等。
87.可选地,所述时间信息为所述第一设备获取当前时间戳得到的,所述身份信息为所述第一设备读取存储器的序列号或者主控芯片的序列号得到的。本实施例中,所述当前时间戳具有时间唯一性,所述序列号具有个体唯一性,因此,发出该数据帧的主体硬件不同、时间不同,尽管发送同样的功能协议,最后组成的完整协议帧也会有差异,这样通信双方只需要加入同一套加解密算法,无需额外新增其余数据内容,进一步地降低了加密通信的复杂度;并且,由于所有参与加密的密钥参数均在一帧数据中采用明文的方式进行传递,只要双方拥有配套的加密和解密算法,传入第二设备的数据帧即可完成解密,可以很方便的进行封装移植,也就是说,第一设备或者第二设备硬件更换之后也不影响两者通信数据的加解密。
88.其他实施例中,在得到多个分割后的所述数据帧之后,在根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密之前,所述方法还包括:对分割后
的所述数据帧进行拆分,得到所述密文信息、所述时间信息和所述身份信息。
89.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
90.本技术实施例还提供了一种加密通信装置,需要说明的是,本技术实施例的加密通信装置可以用于执行本技术实施例所提供的用于加密通信方法。该装置用于实现所述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
91.以下对本技术实施例提供的加密通信装置进行介绍。
92.图5是根据本技术实施例的加密通信装置的示意图,其中,该装置应用于第一设备。如图5所示,该装置包括:
93.第一生成单元11,用于响应于请求信息,生成控制第二设备的控制指令;
94.具体地,所述请求信息为请求生成所述控制指令的信息,所述请求信息可以是其他设备发送给第一设备的;所述第一设备可以包括操作按键或者操作界面,所述请求信息也可以是所述第一设备响应于作用在所述操作按键或者所述操作界面上的预定操作生成的信息。所述第一设备和所述第二设备可以为具有通信组件的任意设备。
95.获取单元12,用于在生成所述控制指令的情况下,获取时间信息和所述第一设备的身份信息;
96.具体地,所述时间信息可以为表征所述控制指令生成的时刻的信息,也可以为表征接收到所述请求信息或者生成所述请求信息的时刻信息,还可以为预计的发出加密后的控制指令的时刻信息。所述控制指令具有时间唯一性,即不同的所述控制指令对应的所述时间信息不同。所述身份信息为所述第一设备区别于其他设备的信息,包括但不限于序列号、id号、名称以及位置等信息。
97.加密单元13,用于将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对所述控制指令进行加密,得到密文信息;
98.具体地,所述预定加密算法可以为由一些公式、法则或者程序构成的任意合适的加密算法,通过该预定加密算法对原来为明文的控制指令按照该算法进行处理,使其成为不可读的密文,只有在输入所述控制指令对应的所述时间信息和所述身份信息的情况下才能显示出所述控制指令的原容。
99.第二生成单元14,用于生成包括所述时间信息、所述身份信息和所述密文信息的数据帧;
100.具体地,所述数据帧中,所述时间信息和所述身份信息为明文。
101.发送单元15,用于在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,使得所述第二设备对所述数据帧解密后得到所述控制指令,并执行所述控制指令。
102.具体地,所述第二设备从所述数据帧中得到所述时间信息和所述身份信息,根据所述时间信息和所述身份信息来对所述数据帧中的密文信息进行解密,得到所述控制指令。
103.通过所述实施例,通过第一生成单元生成控制第二设备的控制指令,通过获取单元获取时间信息和第一设备的身份信息,通过加密单元将获取的时间信息和身份信息作为密钥参数,对控制指令进行加密,得到密文信息,通过第二生成单元生成包括时间信息、身份信息和密文信息的数据帧,在第二设备与第一设备建立通信连接的情况下,通过发送单元将该数据帧发送给第二设备,使得所述第二设备从数据帧中解密得到控制指令并执行该控制指令。相比于现有技术中两个设备之间的加密通信较为复杂的问题,本技术将第一设备的身份信息和时间信息作为密钥参数,对发送给第二设备的控制指令进行加密,得到密文信息,所述的两个密钥参数作为明文信息,以明文和密文信息的数据帧形式发送给第二设备,使得第二设备可以根据数据帧中的明文信息解密密文信息,得到控制指令,整个通信过程无需使用公钥和私钥参与,避免了对公钥和私钥的管理工作,降低了加密通信的复杂度。
104.并且,相比于采用公钥和私钥的加解密方案,通讯协议中的密码索引在大于255之后需要重新计算生成整个密码池,瞬时计算量较大,可能会影响通讯双方的实时通讯,本技术的所述密钥参数具有时间和硬件的唯一性,不存在重新生成密码池的问题,减少了由于生成密码池造成的计算量较大的问题,确保了通讯双方的实时通信质量较高。
105.此外,通过采用时间信息和身份信息这两个密钥参数进行加密和解密运算,可以避免通信数据被恶意破解,或者通信数据中的敏感信息被泄露等问题,保证了两个设备之间的通信安全性。
106.现有技术中还存在对全帧通讯协议进行加密的方案,这种方案一旦出现网络阻塞时,则无法通过相关标识判断是否出现多帧数据粘包,可能会出现协议识别失败的情况;另外,对全帧通讯协议进行加密同样会带来加密、解密环节计算量大的问题。
107.针对所述问题,一种可选方案中,所述第二生成单元包括:第一生成模块,用于生成帧头信息和帧尾信息;第一排列模块,用于按照第一预定顺序对所述时间信息、所述身份信息、所述密文信息、所述帧头信息和所述帧尾信息进行排列,得到起始信息为所述帧头信息且结束信息为所述帧尾信息的所述数据帧,其中,所述帧头信息、所述帧尾信息、所述时间信息和所述身份信息构成所述数据帧的明文信息。通过生成头尾信息分别为明文的帧头信息和帧尾信息的数据帧,这样在数据传输出现粘包异常时,有利于第二设备通过识别帧头信息和帧尾信息对粘包的多个数据帧进行分包处理,解决了全帧通讯协议加密方案无法处理粘包异常的问题,且本技术通过明文加密文方式进行通信数据传输,仅根据明文对控制指令进行加解密,进一步地保证了加解密计算量较小。
108.所述实施例中,除了头部和尾部分别对应所述帧头信息和所述帧尾信息外,所述数据帧中,所述时间信息、所述身份信息以及所述密文信息的排序可以根据实际需要灵活设置,比如,设置所述第一预定顺序为依次排列的帧头信息、身份信息、时间信息、密文信息和帧尾信息。
109.为了进一步地保证第一设备与第二设备之间通信数据的准确性和完整性,本技术的另一些实施例中,所述第二生成单元包括:第二生成模块,用于生成校验信息位,所述校验信息位的初始值为空值;第二排列模块,用于按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和所述校验信息位进行排列,得到初始数据帧;第一计算模块,用于计算所述初始数据帧对应的校验码,得到第一校验信息;第一填入模块,用于将所述第一校
验信息填入所述初始数据帧中的所述校验信息位中,得到所述数据帧,其中,填入后的所述校验信息位、所述时间信息和所述身份信息构成所述数据帧的明文信息。所述实施例中,根据初始数据帧生成校验码,得到包括校验码的数据帧,可以实现对初始数据帧传输过程中是否出现错误的监测,进一步地确保第二设备收到完整且准确地通信数据。
110.具体地,所述校验码包括以下至少之一:循环冗余校验码、奇偶校验码、海明码。当然,除了列举的所述校验码外,本技术的数据帧中的校验码还可以为其他类型的校验码,本领域技术人员可以根据实际需要灵活选择校验码的类型。
111.进一步地,所述第一计算模块包括第一计算子模块,所述第一计算子模块用于在所述校验码为crc的情况下,将所述初始数据帧表示为第一多项式;将所述第一多项式除以预设的第二多项式,得到的余式即为所述校验码。
112.根据本技术的又一种可选实施例,所述发送单元包括:第一确定模块,用于在与所述第二设备建立socket通信连接的情况下,确定所述数据帧的发送套接字;发送模块,用于通过所述发送套接字将所述数据帧发送至所述第二设备。在第一设备与第二设备建立通信连接的情况下,通过确定第一设备的发送套接字,即确定数据帧的发送端口,进一步地保证第二设备可以接收到该数据帧。
113.所述实施例中,所述第一设备与所述第二设备建立socket通信,可以实现两个设备之间字节级的数据传输,数据量小,传输时间短,且支持数据加密,数据传输安全性较高。此外,socket通信是跨平台的,不受特定操作系统的限制,可以使用不同的网络协议,来满足不同的通信需要。
114.除了所述的socket(端口)通信外,所述第一设备和所述第二设备还可以建立其他远程通信协议,如web service(网络服务)通信等。
115.所述实施例中,所述数据帧中的所述时间信息、所述身份信息、所述密文信息以及所述校验信息位的排序可以根据实际需要灵活设置,比如,设置所述第二预定顺序为依次排列的身份信息、时间信息、密文信息和校验信息位。
116.其他实施例中,所述第二生成单元还可以包括:第三生成模块,用于生成帧头信息、帧尾信息和校验信息位,所述校验信息位的初始值为空值;第三排列模块,用于按照第三预定顺序对所述时间信息、所述身份信息、所述密文信息、所述帧头信息、所述帧尾信息和所述校验信息位进行排列,得到初始数据帧;第二计算模块,用于计算所述初始数据帧对应的校验码,得到第一校验信息;第二填入模块,用于将所述第一校验信息填入所述初始数据帧中的所述校验信息位中,得到所述数据帧,其中,填入后的所述校验信息位、所述帧头信息、所述帧尾信息、所述时间信息和所述身份信息构成所述数据帧的明文信息。
117.数据帧中除了所述信息外,还可以视实际需求添加其他信息,如添加帧的数据长度等信息,来进一步便利粘包异常时的分包处理工作。图3示例性的示出了一种所述数据帧的格式。
118.可选地,所述获取单元包括:获取模块,用于获取当前时间戳,得到所述时间信息;第一读取模块,用于读取所述第一设备的存储器的序列号或者所述第一设备的主控芯片的序列号,得到所述身份信息。本实施例中,所述当前时间戳具有时间唯一性,所述序列号具有个体唯一性,因此,发出该数据帧的主体硬件不同、时间不同,尽管发送同样的功能协议,最后组成的完整协议帧也会有差异,这样通信双方只需要加入同一套加解密算法,无需额
外新增其余数据内容,进一步地降低了加密通信的复杂度;并且,由于所有参与加密的密钥参数均在一帧数据中采用明文的方式进行传递,只要双方拥有配套的加密和解密算法,传入第二设备的数据帧即可完成解密,可以很方便的进行封装移植,也就是说,第一设备或者第二设备硬件更换之后也不影响两者通信数据的加解密。
119.根据本技术的另一方面,还提供了一种加密通信装置,需要说明的是,本技术实施例的加密通信装置可以用于执行本技术实施例所提供的用于加密通信方法。该装置用于实现所述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
120.以下对本技术实施例提供的加密通信装置进行介绍。
121.图6是根据本技术实施例的加密通信装置的示意图,其中,所述装置应用于第二设备。如图6所示,该装置包括:
122.接收单元21,用于在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,所述数据帧包括密文信息、时间信息和所述第一设备的身份信息,所述密文信息为所述第一设备将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对响应于请求信息生成的控制指令进行加密得到的,所述时间信息和所述身份信息为所述第一设备在生成所述控制指令的情况下获取的;
123.具体地,所述请求信息为请求生成所述控制指令的信息,所述请求信息可以是其他设备发送给第一设备的;所述第一设备可以包括操作按键或者操作界面,所述请求信息也可以是所述第一设备响应于作用在所述操作按键或者所述操作界面上的预定操作生成的信息。所述第一设备和所述第二设备可以为具有通信组件的任意设备。
124.解密单元22,用于根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令;
125.具体地,所述时间信息可以为表征所述控制指令生成的时刻的信息,也可以为表征接收到所述请求信息或者生成所述请求信息的时刻信息,还可以为预计的发出加密后的控制指令的时刻信息。所述控制指令具有时间唯一性,即不同的所述控制指令对应的所述时间信息不同。所述身份信息为所述第一设备区别于其他设备的信息,包括但不限于序列号、id号、名称以及位置等信息。所述预定解密算法为所述预定加密算法的逆运算。所述预定解密算法可以为由一些公式、法则或者程序构成的任意合适的解密算法,通过将所述时间信息和所述身份信息输入所述解密算法,来对所述密文信息进行解密,实现所述控制指令的原容的显示。
126.执行单元23,用于根据所述控制指令,执行对应的响应动作。
127.通过所述实施例,在与第一设备建立通信连接的情况下,通过接收单元接收第一设备发送的包括密文信息、时间信息和身份信息的数据帧,其中,时间信息和身份信息为密文信息的密钥参数;通过解密单元根据该时间信息和身份信息,对所述密文信息进行解密,得到所述控制指令;通过执行单元执行得到的该控制指令。相比于现有技术中两个设备之间的加密通信较为复杂的问题,本技术的第二设备接收到明文和密文信息的数据帧形式,其中,明文信息作为所述密文信息的密钥参数,这样第二设备可以根据数据帧中的明文信息解密密文信息,得到控制指令,整个通信过程无需使用公钥和私钥参与,避免了对公钥和
私钥的管理工作,降低了加密通信的复杂度。
128.此外,通过采用时间信息和身份信息这两个密钥参数进行加密和解密运算,可以避免通信数据被恶意破解,或者通信数据中的敏感信息被泄露等问题,保证了两个设备之间的通信安全性。
129.一种可选方案中,所述数据帧还包括帧头信息和帧尾信息,所述装置还包括:
130.确定单元,用于在接收所述第一设备发送的数据帧之后,在根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密之前,确定所述数据帧是否出现粘包异常;
131.具体地,所述粘包异常指的是第一设备发送的多个连续的数据帧粘成一包,第二设备对数据帧进行读取时无法确定第一设备的发送边界的异常。
132.分割单元,用于在所述数据帧出现粘包异常的情况下,根据所述帧头信息和所述帧尾信息,对粘包异常的所述数据帧进行分割,使得分割后的所述数据帧的头部为所述帧头信息,分割后的所述数据帧的尾部为所述帧尾信息,得到多个分割后的所述数据帧。
133.所述实施例中,由于每个数据帧的头尾信息分别为明文的帧头信息和帧尾信息,这样方便第二设备可以通过识别帧头信息和帧尾信息来对粘包的多个数据帧进行分包处理。
134.除了所述的帧头信息和帧尾信息外,所述数据帧中还可以包括表征帧长度的数据长度,还可以包括分隔符信息等,来进一步便利粘包异常时的分包处理工作。
135.为了进一步地保证第一设备与第二设备之间通信数据的准确性和完整性,本技术的另一些实施例中,所述数据帧还包括填有第一校验信息的校验信息位,所述第一校验信息为所述第一设备计算初始数据帧对应的校验码得到的,所述初始数据帧为所述第一设备按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和初始值为空值的所述校验信息位进行排列得到的。根所述解密单元包括:提取模块,用于从所述数据帧中提取所述初始数据帧,并计算所述初始数据帧对应的校验码,得到第二校验信息;第二读取模块,用于从所述校验信息位中读取所述第一校验信息,并确定读取的所述第一校验信息与所述第二校验信息是否相同;解密模块,用于在所述第一校验信息与所述第二校验信息相同的情况下,根据所述时间信息和所述身份信息,采用所述预定解密算法对所述密文信息进行解密,得到所述控制指令;警报模块,用于在所述第一校验信息与所述第二校验信息不相同的情况下,发出警报信息。所述实施例中,通过计算初始数据帧对应的校验码,得到第二校验信息,并将其与数据帧中的第一校验信息比对,来确定初始数据帧传输过程中是否出现错误,从而进一步地确保第二设备对完整且准确的数据帧进行解密。
136.具体地,所述校验码包括以下至少之一:循环冗余校验码、奇偶校验码、海明码。当然,除了列举的所述校验码外,本技术的数据帧中的校验码还可以为其他类型的校验码,本领域技术人员可以根据实际需要灵活选择校验码的类型。
137.进一步地,提取模块包括第二计算子模块,所述第二计算子模块用于在所述校验码为crc的情况下,将所述初始数据帧表示为第一多项式;将所述第一多项式除以预设的第二多项式,得到的余式即为所述校验码。
138.根据本技术的又一种可选实施例,所述接收单元包括:第二确定模块,用于在与第一设备建立socket通信连接的情况下,确定接收所述第一设备发送数据的接收套接字;接
收模块,用于通过所述接收套接字接收所述数据帧。在第一设备与第二设备建立通信连接的情况下,通过确定第二设备的接收套接字,即确定数据帧的接收端口,进一步地保证第二设备可以接收到该数据帧。
139.所述实施例中,所述第一设备与所述第二设备建立socket通信,可以实现两个设备之间字节级的数据传输,数据量小,传输时间短,且支持数据加密,数据传输安全性较高。此外,socket通信是跨平台的,不受特定操作系统的限制,可以使用不同的网络协议,来满足不同的通信需要。
140.除了所述的socket通信外,所述第一设备和所述第二设备还可以建立其他远程通信协议,如web service通信等。
141.可选地,所述时间信息为所述第一设备获取当前时间戳得到的,所述身份信息为所述第一设备读取存储器的序列号或者主控芯片的序列号得到的。本实施例中,所述当前时间戳具有时间唯一性,所述序列号具有个体唯一性,因此,发出该数据帧的主体硬件不同、时间不同,尽管发送同样的功能协议,最后组成的完整协议帧也会有差异,这样通信双方只需要加入同一套加解密算法,无需额外新增其余数据内容,进一步地降低了加密通信的复杂度;并且,由于所有参与加密的密钥参数均在一帧数据中采用明文的方式进行传递,只要双方拥有配套的加密和解密算法,传入第二设备的数据帧即可完成解密,可以很方便的进行封装移植,也就是说,第一设备或者第二设备硬件更换之后也不影响两者通信数据的加解密。
142.其他实施例中,所述装置还包括:拆分单元,用于在得到多个分割后的所述数据帧之后,在根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密之前,对分割后的所述数据帧进行拆分,得到所述密文信息、所述时间信息和所述身份信息。
143.所述加密通信装置包括处理器和存储器,所述的第一生成单元、获取单元、加密单元、第二生成单元和发送单元等,以及所述的接收单元、解密单元以及执行单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的所述程序单元来实现相应的功能。所述模块均位于同一处理器中;或者,所述各个模块以任意组合的形式分别位于不同的处理器中。
144.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来至少解决现有技术中工业机器人手操器与控制器之间的加密通信较为复杂的问题。
145.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
146.根据本技术的又一方面,提供了一种智能机器人,包括:智能操作器,包括一个或多个第一处理器、第一存储器以及一个或多个第一程序,其中,所述一个或多个第一程序被存储在所述第一存储器中,并且被配置为由所述一个或多个第一处理器执行,所述一个或多个第一程序包括用于执行任意一种所述的方法;机器人的控制器,包括一个或多个第二处理器、第二存储器以及一个或多个第二程序,其中,所述一个或多个第二程序被存储在所述第二存储器中,并且被配置为由所述一个或多个第二处理器执行,所述一个或多个第二
程序包括用于执行任意一种所述的方法。
147.所述的智能机器人中,智能操作器执行所述的应用于第一设备的加密通信方法,控制器执行所述的应用于第二设备的加密通信方法,使得智能操作器将自身身份信息和时间信息作为密钥参数,对发送给控制器的控制指令进行加密,得到密文信息,所述的两个密钥参数作为明文信息,以明文和密文信息的数据帧形式发送给控制器,控制器再根据数据帧中的明文信息解密密文信息,得到控制指令,整个通信过程无需使用公钥和私钥参与,避免了对公钥和私钥的管理工作,降低了加密通信的复杂度,解决了现有技术中两个设备之间的加密通信较为复杂的问题。
148.为了使得本领域技术人员能够更加清楚地了解本技术的技术方案,以下将结合具体的实施例对本技术的加密通信方法的实现过程进行详细说明。
149.本实施例涉及一种具体的加密通信方法,其中,所述第一设备为智能操作器,又叫做手操器,所述第二设备为机器人的控制器,完成一次功能请求从手操器达到控制器的流程包括如下步骤:
150.步骤s1:手操器加密数据并发送协议帧(即所述的数据帧);
151.步骤s2:控制器接收协议帧并对其解密。
152.其中,参与协议帧处理的模块结构如图7所示,步骤s1具体包括如图8所示的步骤:
153.步骤s11:通过网络通讯模块建立手操器与控制器之间的socket网络通讯,获得数据发送的入口套接字1(即所述的发送套接字);
154.步骤s12:手操器特定功能入口被触发,此时需要通知控制器执行相应操作,生成一个功能协议的传达请求(即所述的控制指令);
155.步骤s13:从当前手操器主控芯片的eeprom中读取唯一的芯片序列号,作为密钥参数1(即所述的身份信息);
156.步骤s14:rtc时钟模块输出当前时刻时钟因子,作为密钥参数2(即所述的时间信息);
157.步骤s15:数据加密模块根据密钥参数1、2,对步骤s12的功能协议进行加密计算,输出功能协议密文,其中密钥参数1、2为加密算法中的变化因子;
158.步骤s16:协议帧组合模块依次将帧头、数据长度、密钥参数1、密钥参数2、功能协议密文、校验码(即所述的校验信息位,此时为空)、帧尾组合成原始协议帧(即所述的初始数据帧),如图3所示;
159.步骤s17:调用crc校验码计算模块,计算步骤s16中原始发送协议的校验值,并填充到对应的校验码位置,形成最终协议帧(即所述的数据帧);
160.步骤s18:数据发送模块将步骤s17中的最终协议帧,通过步骤s11中的套接字1发送到控制器。
161.其中,参与协议帧处理的模块结构如图7所示,步骤s2具体包括如图9所示的步骤:
162.步骤s21:通过网络通讯模块建立控制器与手操器的socket网络通讯,获得数据接收的入口套接字2(即所述的接收套接字);
163.步骤s22:数据接收模块从步骤s21中的套接字2获取tcp协议帧,其中,在出现网络阻塞或处理不及时时会出现多帧数据粘连的情况,即粘包异常;
164.步骤s23:协议帧拆分模块通过识别约定好的帧头帧尾,将步骤s22中的tcp协议帧
进行分割,获取第一帧的最终协议帧,接着将最终协议帧进行拆分,输出数据长度、密钥参数1、密钥参数2、功能协议密文和crc校验码;
165.步骤s24:crc校验码计算模块依据步骤s23提取的信息,计算理论crc校验码,将计算后的结果与取出的校验码进行比对,若校验码相同则进行下一步骤,否则推送报警;
166.步骤s25:数据解密模块使用与发送端加密算法相匹配的解密算法,输入步骤s23中的密钥参数1、密钥参数2,对功能协议密文进行解密,输出功能协议的原文;
167.步骤s26:功能协议处理模块依据功能协议的原文,控制器匹配相关响应动作;
168.步骤s27:若在步骤s23中识别到多帧数据粘连,在处理完第一帧最终协议后,继续执行步骤s23以及后续步骤,直至将所有的粘连数据帧处理、响应完毕。
169.本技术的所述实施例中,手操器作为发送端发送协议帧时,使用发送端主控芯片的序列号作为密钥参数1,当前时间因子为密钥参数2,对一帧通讯协议中最核心的功能协议部分内容进行加密处理。密钥参数1具有个体唯一性,密钥参数2具有时间唯一性,因此发送主体硬件不同、发送时刻不同,尽管发送同样的功能协议,最后组成的完整协议帧也会有差异。在一帧通讯协议中采用明文+密文组合的方式,其中明文部分包括帧头、字节长度、芯片序列号、时间因子、crc校验码和帧尾,密文部分为具体的功能协议。发送端获取密钥参数1、2,只对功能协议原文进行加密生成密文,将密钥参数1、2、加密后的功能协议在一帧协议中送达接收端,接收端依据密钥参数1、2即可完成对密文的解密,从而得到原始的功能协议。由于所有参与加密的密钥参数均在一帧数据中采用明码的方式传递,只要双方拥有相同的加密/解算法,传入接收的原始协议帧数据即可完成解密,可以很方便的进行封装移植。由于协议中有已知的帧头帧尾、字节长度存在,因此可很方便的进行分包处理。在平衡协议复杂度、减少加密计算工作量、考虑数据分包的同时增加整体破译难度。在对协议进行加密之后,不影响出现网络阻塞时对出现粘包的数据帧进行拆包操作。
170.本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行所述加密通信方法。
171.具体地,加密通信方法包括:
172.本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述加密通信方法。
173.本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
174.步骤s201,响应于请求信息,生成控制第二设备的控制指令;
175.步骤s202,在生成所述控制指令的情况下,获取时间信息和所述第一设备的身份信息;
176.步骤s203,将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对所述控制指令进行加密,得到密文信息;
177.步骤s204,生成包括所述时间信息、所述身份信息和所述密文信息的数据帧;
178.步骤s205,在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,使得所述第二设备对所述数据帧解密后得到所述控制指令,并执行所述控制指令,
179.本文中的设备可以是服务器、pc、pad、手机等。
180.或者处理器执行程序时实现至少以下步骤:
181.步骤s301,在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,所述数据帧包括密文信息、时间信息和所述第一设备的身份信息,所述密文信息为所述第一设备将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对响应于请求信息生成的控制指令进行加密得到的,所述时间信息和所述身份信息为所述第一设备在生成所述控制指令的情况下获取的;
182.步骤s302,根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令;
183.步骤s303,根据所述控制指令,执行对应的响应动作。
184.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
185.步骤s201,响应于请求信息,生成控制第二设备的控制指令;
186.步骤s202,在生成所述控制指令的情况下,获取时间信息和所述第一设备的身份信息;
187.步骤s203,将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对所述控制指令进行加密,得到密文信息;
188.步骤s204,生成包括所述时间信息、所述身份信息和所述密文信息的数据帧;
189.步骤s205,在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,使得所述第二设备对所述数据帧解密后得到所述控制指令,并执行所述控制指令,
190.本文中的设备可以是服务器、pc、pad、手机等。
191.或者适于执行初始化有至少如下方法步骤的程序:
192.步骤s301,在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,所述数据帧包括密文信息、时间信息和所述第一设备的身份信息,所述密文信息为所述第一设备将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对响应于请求信息生成的控制指令进行加密得到的,所述时间信息和所述身份信息为所述第一设备在生成所述控制指令的情况下获取的;
193.步骤s302,根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令;
194.步骤s303,根据所述控制指令,执行对应的响应动作。
195.显然,本领域的技术人员应该明白,所述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
196.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
197.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
198.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
199.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
200.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
201.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
202.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
203.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
204.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种加密通信方法,所述方法应用于第一设备,其特征在于,所述方法包括:响应于请求信息,生成控制第二设备的控制指令;在生成所述控制指令的情况下,获取时间信息和所述第一设备的身份信息;将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对所述控制指令进行加密,得到密文信息;生成包括所述时间信息、所述身份信息和所述密文信息的数据帧;在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,使得所述第二设备对所述数据帧解密后得到所述控制指令,并执行所述控制指令。2.根据权利要求1所述的方法,其特征在于,生成包括所述时间信息、所述身份信息和所述密文信息的数据帧,包括:生成帧头信息和帧尾信息;按照第一预定顺序对所述时间信息、所述身份信息、所述密文信息、所述帧头信息和所述帧尾信息进行排列,得到起始信息为所述帧头信息且结束信息为所述帧尾信息的所述数据帧,其中,所述帧头信息、所述帧尾信息、所述时间信息和所述身份信息构成所述数据帧的明文信息。3.根据权利要求1所述的方法,其特征在于,生成包括所述时间信息、所述身份信息和所述密文信息的数据帧,包括:生成校验信息位,所述校验信息位的初始值为空值;按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和所述校验信息位进行排列,得到初始数据帧;计算所述初始数据帧对应的校验码,得到第一校验信息;将所述第一校验信息填入所述初始数据帧中的所述校验信息位中,得到所述数据帧,其中,填入后的所述校验信息位、所述时间信息和所述身份信息构成所述数据帧的明文信息。4.根据权利要求3所述的方法,其特征在于,所述校验码包括以下至少之一:循环冗余校验码、奇偶校验码、海明码。5.根据权利要求1至4中任一项所述的方法,其特征在于,在与所述第二设备建立通信连接的情况下,将所述数据帧发送至所述第二设备,包括:在与所述第二设备建立socket通信连接的情况下,确定所述数据帧的发送套接字;通过所述发送套接字将所述数据帧发送至所述第二设备。6.根据权利要求1至4中任一项所述的方法,其特征在于,获取时间信息和所述第一设备的身份信息,包括:获取当前时间戳,得到所述时间信息;读取所述第一设备的存储器的序列号或者所述第一设备的主控芯片的序列号,得到所述身份信息。7.一种加密通信方法,所述方法应用于第二设备,其特征在于,所述方法包括:在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,所述数据帧包括密文信息、时间信息和所述第一设备的身份信息,所述密文信息为所述第一设备将所述时间信息和所述身份信息作为密钥参数,采用预定加密算法对响应于请求信息生成的控
制指令进行加密得到的,所述时间信息和所述身份信息为所述第一设备在生成所述控制指令的情况下获取的;根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令;根据所述控制指令,执行对应的响应动作。8.根据权利要求7所述的方法,其特征在于,所述数据帧还包括帧头信息和帧尾信息,在接收所述第一设备发送的数据帧之后,在根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密之前,所述方法还包括:确定所述数据帧是否出现粘包异常;在所述数据帧出现粘包异常的情况下,根据所述帧头信息和所述帧尾信息,对粘包异常的所述数据帧进行分割,使得分割后的所述数据帧的头部为所述帧头信息,分割后的所述数据帧的尾部为所述帧尾信息,得到多个分割后的所述数据帧。9.根据权利要求7所述的方法,其特征在于,所述数据帧还包括填有第一校验信息的校验信息位,所述第一校验信息为所述第一设备计算初始数据帧对应的校验码得到的,所述初始数据帧为所述第一设备按照第二预定顺序对所述时间信息、所述身份信息、所述密文信息和初始值为空值的所述校验信息位进行排列得到的,根据所述时间信息和所述身份信息,采用预定解密算法对所述密文信息进行解密,得到所述控制指令,包括:从所述数据帧中提取所述初始数据帧,并计算所述初始数据帧对应的校验码,得到第二校验信息;从所述校验信息位中读取所述第一校验信息,并确定读取的所述第一校验信息与所述第二校验信息是否相同;在所述第一校验信息与所述第二校验信息相同的情况下,根据所述时间信息和所述身份信息,采用所述预定解密算法对所述密文信息进行解密,得到所述控制指令;在所述第一校验信息与所述第二校验信息不相同的情况下,发出警报信息。10.根据权利要求7至9中任一项所述的方法,其特征在于,在与第一设备建立通信连接的情况下,接收所述第一设备发送的数据帧,包括:在与第一设备建立socket通信连接的情况下,确定接收所述第一设备发送数据的接收套接字;通过所述接收套接字接收所述数据帧。11.根据权利要求7至9中任一项所述的方法,其特征在于,所述时间信息为所述第一设备获取当前时间戳得到的,所述身份信息为所述第一设备读取存储器的序列号或者主控芯片的序列号得到的。12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述的方法,或者执行权利要求7至11中任一项所述的方法。13.一种智能机器人,其特征在于,包括:智能操作器,包括一个或多个第一处理器、第一存储器以及一个或多个第一程序,其中,所述一个或多个第一程序被存储在所述第一存储器中,并且被配置为由所述一个或多
个第一处理器执行,所述一个或多个第一程序包括用于执行权利要求1至6中任意一项所述的方法;机器人的控制器,包括一个或多个第二处理器、第二存储器以及一个或多个第二程序,其中,所述一个或多个第二程序被存储在所述第二存储器中,并且被配置为由所述一个或多个第二处理器执行,所述一个或多个第二程序包括用于执行权利要求7至11中任意一项所述的方法。
技术总结
本申请提供了一种加密通信方法、计算机可读存储介质和智能机器人,该方法包括:响应于请求信息,生成控制第二设备的控制指令;在生成控制指令的情况下,获取时间信息和第一设备的身份信息;将时间信息和身份信息作为密钥参数,采用预定加密算法对控制指令进行加密,得到密文信息;生成包括时间信息、身份信息和密文信息的数据帧;在与第二设备建立通信连接的情况下,将数据帧发送至第二设备,使得第二设备对数据帧解密后得到控制指令,并执行控制指令。本申请解决了现有技术中工业机器人手操器与控制器之间的加密通信较为复杂的问题。与控制器之间的加密通信较为复杂的问题。与控制器之间的加密通信较为复杂的问题。
技术研发人员:郑浩鑫 应坤 耿佳辉
受保护的技术使用者:珠海格力电器股份有限公司
技术研发日:2023.08.02
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
