一种电子设备的遥控方法及系统与流程

文档序号:16753593发布日期:2019-01-29 17:07阅读:340来源:国知局
一种电子设备的遥控方法及系统与流程

本申请涉及通信技术领域,特别是涉及一种电子设备的遥控方法及系统。



背景技术:

遥控器是一种常见的非接触式、远距离的控制装置,常用来对电子设备的动作进行遥控。例如,利用电视遥控器控制电视,利用空调遥控器控制空调等。遥控器常由一组按键和发送电路、接收电路组成。

遥控器在与电子设备进行通信时,通常预先通过“学习”操作,相互约定“制造商编码”和“同步计数值index”。电子设备还为每个遥控器分配或注册能唯一标示该遥控器的遥控器标识(即遥控器序列号sn)。这样,遥控器可以根据保存的制造商编码和遥控器标识,采用预设的密钥生成算法,得到编码密钥cryptkey。

当遥控器获取按键值时,以编码密钥cryptkey为密钥、以预设的加密算法对该按键值、鉴别位和同步计数值进行加密,得到滚动码数据,图1a为得到滚动码数据的原理示意图。将该滚动码数据按照图1b所示的格式生成信息包,发送至电子设备。其中,图1b中信息包的变动部分包括滚动码数据,固定部分包括前导码、头码以及遥控器标识、按键值、重复/电平状态码。

当电子设备接收到该信息包之后,先检查信息包中的遥控器标识是否属于已注册的遥控器标识,如果是,则根据该遥控器标识和该遥控器标识对应的制造商编码,采用相同的密钥生成算法,得到编码密钥cryptkey。电子设备以编码密钥cryptkey为密钥、以预设的解密算法对信息包中的滚动码数据进行解密,得到按键值、鉴别位和同步计数值。若得到的鉴别位与自身存储的鉴别位一致,得到的同步计数值与自身存储的该遥控器标识对应的同步计数值相同,并且得到的按键值与信息包中的按键值相同,则响应该按键值,执行相应的操作。同时,电子设备将自身存储的与该遥控器对应的同步计数值加1,得到新的同步计数值。

对应的,遥控器在向电子设备发送信息包之后,将自身存储的同步计数值加1,得到新的同步计数值。

可见,上述遥控方法中,遥控器每次向电子设备发送按键值时,对应的同步计数值都是不同的,这样可以保证每次发送的滚动码数据都是唯一的、动态变化的,也能够实现对电子设备的遥控控制。

但是,上述遥控方法存在一些缺点。在遥控器与电子设备通信的信息包中,遥控器标识为明文信息,这可以成为被恶意者攻击的“漏洞”。每次按键均使同步计数值加1,这种规律性地更新同步计数值的方式也可以成为恶意攻击者的“漏洞”。上述这些漏洞的存在导致上述电子设备的遥控方法的安全性不够高。



技术实现要素:

本申请实施例的目的在于提供了一种电子设备的遥控方法及系统,以提高对电子设备进行遥控时的安全性。具体的技术方案如下。

为了达到上述目的,本申请实施例公开了一种电子设备的遥控方法,应用于遥控器,所述方法包括:

获取按键值;

以约定的第一密钥对所述按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串;

将所述第一加密串发送至电子设备,以使所述电子设备从第一信息串中获取所述按键值、遥控器标识和计数索引,并在确定所述电子设备自身存储的所述遥控器标识对应的计数索引与获取的计数索引匹配时响应所述按键值,所述第一信息串为:所述电子设备以所述第一密钥对接收的第一加密串进行解密后得到的信息串;

接收所述电子设备发送的第二加密串,所述第二加密串为:所述电子设备以所述第一密钥对更新后的计数索引进行加密后得到的加密串;所述更新后的计数索引为:所述电子设备在确定自身存储的所述遥控器标识对应的计数索引与获得的计数索引匹配时对所述遥控器标识对应的计数索引更新得到的;

以所述第一密钥对所述第二加密串进行解密,获得第二信息串,从所述第二信息串中获取更新后的计数索引。

可选的,所述第一密钥为采用以下方式使所述电子设备获得的:

生成第一密钥和第二密钥,并以所述第二密钥对所述第一密钥进行加密,获得第三加密串;

将所述第三加密串发送至所述电子设备;

接收所述电子设备发送的第四加密串,所述第四加密串为:所述电子设备以自身生成的第三密钥对所述第三加密串进行加密后得到的加密串;

以所述第二密钥对所述第四加密串进行解密,获得第三信息串;

将所述第三信息串发送至所述电子设备,以使所述电子设备从第四信息串中获取用于数据加密、解密的第一密钥,所述第四信息串为:所述电子设备以所述第三密钥对所述第三信息串进行解密后得到的信息串。

可选的,所述以所述第二密钥对所述第一密钥进行加密,获得第三加密串的步骤,包括:

以所述第二密钥对所述第一密钥和第一参数进行加密,获得第三加密串,所述第一参数包括所述遥控器的遥控器标识。

可选的,在将所述第三信息串发送至所述电子设备之后,在获取按键值之前,所述方法还包括:

接收所述电子设备发送的第五加密串,所述第五加密串为:所述电子设备以所述第一密钥对第二参数进行加密后得到的加密串;所述第二参数包括与所述遥控器的遥控器标识对应的计数索引;

以所述第一密钥对所述第五加密串进行解密,获得第五信息串,从所述第五信息串中获取用于信息处理的第二参数。

可选的,所述第一密钥为采用以下方式获得的:

接收电子设备发送的第三加密串,所述第三加密串为:所述电子设备以第二密钥对第一密钥进行加密后得到的加密串;所述第一密钥和第二密钥为所述电子设备生成的密钥;

生成第三密钥,以所述第三密钥对所述第三加密串进行加密,获得第四加密串,并将所述第四加密串发送至所述电子设备;

接收所述电子设备发送的第三信息串,所述第三信息串为:所述电子设备以所述第二密钥对接收的第四加密串进行解密后得到的信息串;

以所述第三密钥对所述第三信息串进行解密,获得第四信息串,从所述第四信息串中获取用于数据加密、解密的第一密钥。

可选的,所述第一密钥包括第一部分的m字节数据和第二部分的m字节数据,所述第一部分的m字节数据为:各字节数据分别与所述m取余后余数互不相同的数据。

可选的,所述以约定的第一密钥对所述按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串的步骤,包括:

按照预设的第一排列顺序,将所述按键值、遥控器标识和存储的计数索引进行排列,获得待加密数据;

以所述m字节为划分单位,将所述待加密数据划分成数据段;

以所述第一密钥对每一个数据段进行处理,获得处理后的数据段;

按照预设的第二排列顺序,对各个处理后的数据段进行排序,获得第一加密串;

其中,所述以所述第一密钥对每一个数据段进行处理,获得处理后的数据段的步骤,包括:

按照以下方式,对每一个数据段进行处理:

从所述第一密钥的第一部分中确定与目标数据段中的各个字节数据对应的移位因子,从所述第一密钥的第二部分中确定与所述目标数据段中的各个字节数据对应的异或因子;所述目标数据段为所述数据段中的任一个;

根据确定的移位因子和异或因子,对所述目标数据段中对应的各个字节数据进行移位处理和异或处理,获得处理后的目标数据段。

可选的,所述以所述m字节为划分单位,将所述待加密数据划分成数据段的步骤,包括:

获取所述待加密数据的总字节数量m;

判断所述m是否为所述m的整数倍;

如果否,则确定d字节个数据,将所述d字节个数据填充至所述待加密数据中的指定位置,所述d是根据以下公式确定的:d=m-(mmodm);其中,所述mod为取余运算符号;

以所述m字节为划分单位,将填充数据后的待加密数据划分成数据段。

为了达到上述目的,本申请实施例公开了一种电子设备的遥控方法,应用于电子设备,所述方法包括:

接收遥控器发送的第一加密串,所述第一加密串为:遥控器以约定的第一密钥对获取的按键值、遥控器标识和存储的计数索引进行加密后得到的加密串;

以所述第一密钥对所述第一加密串进行解密,获得第一信息串,从所述第一信息串中获取按键值、遥控器标识和计数索引;

当自身存储的所述遥控器标识对应的计数索引与获取的计数索引匹配时,响应所述按键值,并更新所述遥控器标识对应的计数索引;

以所述第一密钥对更新后的计数索引进行加密,获得第二加密串;

将所述第二加密串发送至所述遥控器,以使所述遥控器从第二信息串中获取更新后的计数索引,所述第二信息串为:所述遥控器以所述第一密钥对接收的第二加密串进行解密后得到的信息串。

可选的,所述第一密钥为采用以下方式获得的:

接收所述遥控器发送的第三加密串,所述第三加密串为:所述遥控器以第二密钥对第一密钥进行加密后得到的加密串;所述第一密钥和第二密钥为所述遥控器生成的密钥;

生成第三密钥,以所述第三密钥对所述第三加密串进行加密,获得第四加密串,并将所述第四加密串发送至所述遥控器;

接收所述遥控器发送的第三信息串,所述第三信息串为:所述遥控器以所述第二密钥对所述第四加密串进行解密后得到的信息串;

以所述第三密钥对所述第三信息串进行解密,获得第四信息串,并从所述第四信息串中获取用于数据加密、解密的第一密钥。

可选的,在获得第四信息串之后,所述方法还包括:

从所述第四信息串中获取用于信息处理的第一参数,所述第一参数包括所述遥控器的遥控器标识。

可选的,所述第一参数包括所述遥控器的按键数量;所述响应所述按键值的步骤,包括:

根据所述遥控器的按键数量,识别所述按键值。

可选的,在获得所述第一密钥之后,所述方法还包括:

以所述第一密钥对第二参数进行加密,获得第五加密串,所述第二参数包括:与所述遥控器的遥控器标识对应的计数索引;

将所述第五加密串发送至所述遥控器,以使所述遥控器从第五信息串中获取用于信息处理的第二参数,所述第五信息串为:所述遥控器以所述第一密钥对所述第五加密串进行解密后得到的信息串。

可选的,所述第一密钥为采用以下方式使所述遥控器获得的:

生成第一密钥和第二密钥,以所述第二密钥对所述第一密钥进行加密,获得第三加密串;

将所述第三加密串发送至所述遥控器;

接收所述遥控器发送的第四加密串,所述第四加密串为:所述遥控器以生成的第三密钥对所述第三加密串进行加密后得到的加密串;

以所述第二密钥对所述第四加密串进行解密,获得第三信息串;

将所述第三信息串发送至所述遥控器,以使所述遥控器从第四信息串中获取用于数据加密、解密的第一密钥,所述第四信息串为:所述遥控器以所述第三密钥对所述第三信息串进行解密后得到的信息串。

可选的,所述第一密钥包括第一部分的m字节数据和第二部分的m字节数据,所述第一部分的m字节数据为:各字节数据分别与所述m取余后余数互不相同的数据。

可选的,所述以所述第一密钥对更新后的计数索引进行加密,获得第二加密串的步骤,包括:

将更新后的计数索引作为待加密数据,以所述m字节为划分单位,将所述待加密数据划分成数据段;

以所述第一密钥对每一个数据段进行处理,获得处理后的数据段;

按照预设的第三排列顺序,对各个处理后的数据段进行排序,获得第二加密串;

其中,所述以所述第一密钥对每一个数据段进行处理,获得处理后的数据段的步骤,包括:

按照以下方式,对每一个数据段进行处理:

从所述第一密钥的第一部分中确定与目标数据段中的各个字节数据对应的移位因子,从所述第一密钥的第二部分中确定与所述目标数据段中的各个字节数据对应的异或因子;所述目标数据段为所述数据段中的任一个;

根据确定的移位因子和异或因子,对所述目标数据段中对应的各个字节数据进行移位处理和异或处理,获得处理后的目标数据段。

可选的,所述以所述m字节为划分单位,将所述待加密数据划分成数据段的步骤,包括:

获取所述待加密数据的总字节数量m;

判断所述m是否为所述m的整数倍;

如果否,则确定d字节个数据,将所述d字节个数据填充至所述待加密数据中的指定位置,所述d是根据以下公式确定的:d=m-(mmodm);其中,所述mod为取余运算符号;

以所述m字节为划分单位,将填充数据后的待加密数据划分成数据段。

为了达到上述目的,本申请实施例公开了一种电子设备的遥控系统,包括:遥控器和电子设备;

所述遥控器,用于获取按键值,以约定的第一密钥对所述按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串,将所述第一加密串发送至电子设备;

所述电子设备,用于接收遥控器发送的第一加密串,以所述第一密钥对所述第一加密串进行解密,获得第一信息串,从所述第一信息串中获取所述按键值、遥控器标识和计数索引,当自身存储的所述遥控器标识对应的计数索引与获取的计数索引匹配时,响应所述按键值,并更新所述遥控器标识对应的计数索引,以所述第一密钥对更新后的计数索引进行加密,获得第二加密串,将所述第二加密串发送至所述遥控器;

所述遥控器,用于接收所述电子设备发送的第二加密串,以所述第一密钥对所述第二加密串进行解密,获得第二信息串,从所述第二信息串中获取更新后的计数索引。

可选的,所述遥控器,还用于生成第一密钥和第二密钥,并以所述第二密钥对所述第一密钥进行加密,获得第三加密串,将所述第三加密串发送至所述电子设备;

所述电子设备,还用于接收所述遥控器发送的第三加密串,生成第三密钥,以所述第三密钥对所述第三加密串进行加密,获得第四加密串,并将所述第四加密串发送至所述遥控器;

所述遥控器,还用于接收所述电子设备发送的第四加密串,以所述第二密钥对所述第四加密串进行解密,获得第三信息串,将所述第三信息串发送至所述电子设备;

所述电子设备,还用于接收所述遥控器发送的第三信息串,以所述第三密钥对所述第三信息串进行解密,获得第四信息串,并从所述第四信息串中获取用于数据加密、解密的第一密钥。

可选的,所述遥控器,具体用于以所述第二密钥对所述第一密钥和第一参数进行加密,获得第三加密串,所述第一参数包括所述遥控器的遥控器标识;

所述电子设备,还用于从所述第四信息串中获取用于信息处理的第一参数。

可选的,所述第一参数包括所述遥控器的按键数量;所述电子设备,具体用于根据所述遥控器的按键数量,识别所述按键值。

可选的,所述电子设备,还用于在获得所述第一密钥之后,以所述第一密钥对第二参数进行加密,获得第五加密串,将所述第五加密串发送至所述遥控器,所述第二参数包括:与所述遥控器的遥控器标识对应的计数索引;

所述遥控器,还用于在将所述第三信息串发送至所述电子设备之后,在获取按键值之前,接收所述电子设备发送的第五加密串,以所述第一密钥对所述第五加密串进行解密,获得第五信息串,从所述第五信息串中获取用于信息处理的第二参数。

可选的,所述电子设备,还用于生成第一密钥和第二密钥,以所述第二密钥对所述第一密钥进行加密,获得第三加密串,将所述第三加密串发送至所述遥控器;

所述遥控器,还用于接收电子设备发送的第三加密串,生成第三密钥,以所述第三密钥对所述第三加密串进行加密,获得第四加密串,并将所述第四加密串发送至所述电子设备;

所述电子设备,还用于接收所述遥控器发送的第四加密串,以所述第二密钥对所述第四加密串进行解密,获得第三信息串,将所述第三信息串发送至所述遥控器;

所述遥控器,还用于接收所述电子设备发送的第三信息串,以所述第三密钥对所述第三信息串进行解密,获得第四信息串,从所述第四信息串中获取用于数据加密、解密的第一密钥。

可选的,所述第一密钥包括第一部分的m字节数据和第二部分的m字节数据,所述第一部分的m字节数据为:各字节数据分别与所述m取余后余数互不相同的数据。

可选的,所述遥控器,具体用于按照预设的第一排列顺序,将所述按键值、遥控器标识和存储的计数索引进行排列,获得待加密数据,以所述m字节为划分单位,将所述待加密数据划分成数据段,从所述第一密钥的第一部分中确定与每一个数据段中的各个字节数据对应的移位因子,从所述第一密钥的第二部分中确定与每一个数据段中的各个字节数据对应的异或因子,根据确定的移位因子和异或因子,对每一个数据段中对应的各个字节数据进行移位处理和异或处理,获得各个处理后的数据段,按照预设的第二排列顺序,对各个处理后的数据段进行排序,获得第一加密串。

可选的,所述遥控器,具体用于获取所述待加密数据的总字节数量m,判断所述m是否为所述m的整数倍,如果否,则确定d字节个数据,将所述d字节个数据填充至所述待加密数据中的指定位置,所述d是根据以下公式确定的:d=m-(mmodm);其中,所述mod为取余运算符号,以所述m字节为划分单位,将填充数据后的待加密数据划分成数据段。

为了达到上述目的,本申请实施例提供了一种遥控器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现本申请实施例提供的电子设备的遥控方法。该方法包括:

获取按键值;

以约定的第一密钥对所述按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串;

将所述第一加密串发送至电子设备,以使所述电子设备从第一信息串中获取所述按键值、遥控器标识和计数索引,并在确定所述电子设备自身存储的所述遥控器标识对应的计数索引与获取的计数索引匹配时响应所述按键值,所述第一信息串为:所述电子设备以所述第一密钥对接收的第一加密串进行解密后得到的信息串;

接收所述电子设备发送的第二加密串,所述第二加密串为:所述电子设备以所述第一密钥对更新后的计数索引进行加密后得到的加密串;所述更新后的计数索引为:所述电子设备在确定自身存储的所述遥控器标识对应的计数索引与获得的计数索引匹配时对所述遥控器标识对应的计数索引更新得到的;

以所述第一密钥对所述第二加密串进行解密,获得第二信息串,从所述第二信息串中获取更新后的计数索引。

为了达到上述目的,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现本申请实施例提供的电子设备的遥控方法。该方法包括:

接收遥控器发送的第一加密串,所述第一加密串为:遥控器以约定的第一密钥对获取的按键值、遥控器标识和存储的计数索引进行加密后得到的加密串;

以所述第一密钥对所述第一加密串进行解密,获得第一信息串,从所述第一信息串中获取按键值、遥控器标识和计数索引;

当自身存储的所述遥控器标识对应的计数索引与获取的计数索引匹配时,响应所述按键值,并更新所述遥控器标识对应的计数索引;

以所述第一密钥对更新后的计数索引进行加密,获得第二加密串;

将所述第二加密串发送至所述遥控器,以使所述遥控器从第二信息串中获取更新后的计数索引,所述第二信息串为:所述遥控器以所述第一密钥对接收的第二加密串进行解密后得到的信息串。

本申请实施例提供的电子设备的遥控方法及系统,可以以约定的第一密钥对按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串,并发送至电子设备;电子设备以第一密钥对接收的第一加密串进行解密,获得第一信息串,并从第一信息串中获取按键值、遥控器标识和计数索引,在确定电子设备自身存储的遥控器标识对应的计数索引与获取的计数索引匹配时响应该按键值,更新遥控器标识对应的计数索引,以第一密钥对更新后的计数索引进行加密,得到第二加密串,并发送至遥控器;遥控器以第一密钥对第二加密串进行解密,获得更新后的计数索引。

也就是说,本申请实施例可以以约定的第一密钥对所述按键值、遥控器标识和存储的计数索引进行加密和解密,在电子设备确定自身存储的计数索引与获取的计数索引匹配时,更新计数索引,并将更新的计数索引以加密的形式发送至遥控器,以使遥控器获取更新后的计数索引。可见本申请实施例以密文形式发送遥控器标识和计数索引,而非明文,能够提高遥控过程信息的安全性。同时,电子设备更新计数索引之后,以密文形式将更新后的计数索引发送至遥控器,这样便可以随机地更新计数索引,计数索引的安全性更高。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a为相关技术中得到滚动码数据的一种原理示意图;

图1b为相关技术中信息包的一种结构示意图;

图2为本申请实施例提供的电子设备的遥控方法的一种流程示意图;

图3为遥控器与电子设备之间进行交互的一种流程示意图;

图4a为本申请实施例提供的获得第一密钥的一种流程示意图;

图4b为遥控器与电子设备之间进行交互的另一种流程示意图;

图5a为图2中步骤s202的一种流程示意图;

图5b为图5a中步骤s202b的一种流程示意图;

图6为本申请实施例提供的电子设备的遥控方法的另一种流程示意图;

图7a为遥控器的一种工作电路原理图;

图7b为闸机设备的一种电路原理图;

图8为本申请实施例提供的电子设备的遥控系统的一种结构示意图;

图9为本申请实施例提供的遥控器的一种结构示意图;

图10为本申请实施例提供的电子设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供了一种电子设备的遥控方法及系统,能够提高对电子设备进行遥控时的安全性。下面通过具体实施例,对本申请进行详细说明。

图2为本申请实施例提供的电子设备的遥控方法的一种流程示意图。该方法应用于遥控器,该方法包括如下步骤s201~步骤s205:

步骤s201:获取按键值。

具体的,遥控器可以根据用户的输入操作获取按键值。该按键值可以是一个,也可以是多个。

步骤s202:以约定的第一密钥对上述按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串。

其中,第一密钥是遥控器与电子设备之间预先约定好的用于数据加密、解密的密钥。遥控器中存储的计数索引可以是电子设备预先分配的。

具体的,对上述按键值、遥控器标识和存储的计数索引进行加密时,可以按照预设的第一排列顺序,将上述按键值、遥控器标识和计数索引进行排列,组合成待加密数据,以第一密钥对待加密数据进行加密。其中,第一排列顺序可以为按键值、遥控器标识和计数索引的排列顺序,也可以为按键值、计数索引和遥控器标识,或者其他顺序,都是可行的。

具体的,以第一密钥对上述按键值、遥控器标识和存储的计数索引进行加密时,可以采用第一加密算法,以第一密钥对上述按键值、遥控器标识和存储的计数索引进行加密。其中,第一加密算法可以为常见的加密算法,例如数据加密标准(dataencryptionstandard,des)、三重数据加密标准(3des)、高级加密标准(advancedencryptionstandard,aes)等对称加密算法或其他算法。可以理解的是,遥控器对上述数据进行加密时所采用的第一加密算法也是预先与电子设备约定好的。

需要说明的是,加密算法,是指对原来明文的数据进行处理,使其成为不可直接读取内容的密文的数据处理方法。对应的,解密算法,是指对加密之后的密文进行处理,使其成为可以直接读取内容的明文的数据处理方法。“密钥”是现代密码学的常用语。通常,对数据的加密处理或解密处理均涉及密钥和算法内容,算法可以是公共的,但密钥一定要保密。

步骤s203:将第一加密串发送至电子设备,以使电子设备从第一信息串中获取按键值、遥控器标识和计数索引,并在确定电子设备自身存储的遥控器标识对应的计数索引与获取的计数索引匹配时,响应该按键值。第一信息串为:电子设备以第一密钥对接收的第一加密串进行解密后得到的信息串。

具体的,遥控器将第一加密串发送至电子设备;电子设备接收遥控器发送的第一加密串,以约定的第一密钥对第一加密串进行解密,获得第一信息串,从第一信息串中获取按键值、遥控器标识和计数索引;电子设备在确定自身存储的遥控器标识对应的计数索引与获取的计数索引匹配时,响应该按键值。

在本实施例中,电子设备在对第一加密串进行解密时,采用与遥控器预先约定好的第一加密算法对应的第一解密算法进行解密。电子设备中存储的计数索引的初始值可以是预先分配至遥控器中的。

步骤s204:接收电子设备发送的第二加密串。

其中,第二加密串为:电子设备以第一密钥对更新后的计数索引进行加密后得到的加密串;上述更新后的计数索引为:电子设备在确定自身存储的遥控器标识对应的计数索引与获得的计数索引匹配时对遥控器标识对应的计数索引更新得到的。

需要指出的是,电子设备以第一密钥对更新后的计数索引进行加密时,可以采用与步骤s202中的第一加密算法进行加密,也可以采用其他加密算法,本申请对此不做具体限定。

需要说明的是,电子设备在更新计数索引时,可以不按照计数索引加1的规则对计数索引进行更新,而是可以在指定范围内按照随机的方式更新计数索引,并存储更新后的计数索引。对应的,由于电子设备更新后的计数索引不可预知,因此电子设备需要将更新后的计数索引发送至遥控器,以使遥控器存储更新后的计数索引。在电子设备发送更新后的计数索引时,采用密文形式发送。

可以理解的是,以这种方式更新的计数索引不易被恶意攻击者破解,并且可以保证每次按键都对应不同的计数索引,其安全性更高。

另外,在本实施例中,遥控器接收的电子设备发送的第二加密串也可以作为第一加密串的回应信息,当遥控器接收到电子设备发送的第二加密串时,可以确认电子设备已经接收到了遥控器发送的第一加密串。

步骤s205:以第一密钥对第二加密串进行解密,获得第二信息串,从第二信息串中获取更新后的计数索引。

具体的,遥控器以第一密钥对第二加密串进行解密时,可以采用步骤s203中电子设备所采用的第一解密算法进行解密。遥控器在从第二信息串中获取到更新后的计数索引时,可以将该更新后的计数索引存储至本地存储区,以便后续需要获取该更新后的计数索引时,直接从本地存储区中获取。

当第二信息串中包含更新后的计数索引和其他补充数据时,从第二信息串中获取更新后的计数索引可以包括:将第二信息串中位于预设数据段的数据确定为更新后的计数索引。当第二信息串中只包含更新后的计数索引时,从第二信息串中获取更新后的计数索引可以包括:直接将第二信息串确定为更新后的计数索引。

由上述内容可知,本实施例可以以约定的第一密钥对按键值、遥控器标识和存储的计数索引进行加密和解密,在电子设备确定自身存储的计数索引与获取的计数索引匹配时,更新计数索引,并将更新的计数索引以加密的形式发送至遥控器,以使遥控器获取更新后的计数索引。可见本实施例以密文形式发送遥控器标识和计数索引,而非明文,能够提高遥控过程信息的安全性。同时,电子设备更新计数索引之后,以密文形式将更新后的计数索引发送至遥控器,这样便可以随机地更新计数索引,而不是每次按键都固定地加1,从而可以使计数索引的安全性更高。

下面结合具体实例对遥控器与电子设备之间的遥控过程再做详细说明。

图3为遥控器与电子设备之间进行交互的一种流程示意图。遥控器检测到某个按键的输入操作时,进入“正常工作模式”。遥控器获取按键值、遥控器标识、计数索引index以及其他特征信息(可以包括一些产品特征),将这些信息组合成第一加密算法要求的基本分组长度。如果该信息组合后的长度不满足基本分组长度,可以用随机数或其他固定的填充方式进行填充,得到keymsg。采用第一加密算法、以第一密钥kx对keymsg进行加密,得到密文en_keymsg。将密文en_keymsg按照以下格式组合成命令包1:cmd1|length|en_keymsg|校验字。其中,cmd1为预设的命令字,length为数据长度,符号“|”表示各个字段的隔开关系。上述校验字也可以采用行业中常见的累加和、crc8校验算法或crc16校验算法等,以保证传输信息包的完整性。遥控器向电子设备发送上述命令包1。

电子设备接收遥控器发送的命令包1,检测命令包1格式的合法性(包括判断命令字cmd1是否与预设的命令字相同,校验数据长度和校验字的值是否正确)。在格式合法时,采用与第一加密算法对应的解密算法,以第一密钥kx对密文en_keymsg进行解密,得到keymsg,并从keymsg中获取按键值、遥控器标识、计数索引及其他特征信息。判断自身存储的遥控器标识中是否存在该遥控器标识,如果是,则确认该遥控器已学习过。判断自身存储的该遥控器标识对应的计数索引与获取的计数索引index是否相同,如果相同,则响应该按键值,执行相应的操作,如果不相同,则视为异常,不予以处理。同时,更新计数索引index,并将更新后的计数索引index与其他特征信息组合成回应信息,并对回应信息进行相应的填充,得到最终的回应信息ackmsg。采用第一加密算法、第一密钥kx对回应信息ackmsg进行加密,得到密文en_ackmsg。电子设备按照以下格式组成命令包1的应答包1:ack1|length|en_ackmsg|校验。同时,电子设备在自身存储更新后的计数索引index。其中,命令字ack1可以与cmd1相同,也可以不同。电子设备向遥控器发送应答包1。

遥控器接收电子设备发送的应答包1,检测应答包1格式的合法性。在格式合法时,采用与第一加密算法对应的解密算法以第一密钥kx对密文en_ackmsg进行解密,得到ackmsg。从ackmsg中获取更新后的计数索引及其他特征信息。遥控器将该更新后的计数索引替换原来的计数索引。

在发送命令包或应答包时,设备(遥控器或电子设备)的cpu与无线收发芯片通常采用spi、uart、i2c等接口。根据接口交互的情况不同,可以将命令包或应答包拆分成适应接口发送的格式。

在遥控器或电子设备存储计数索引index时,均可以将更新后的计数索引存储到芯片flash中。实际上,由于芯片flash的改写是有一定寿命的,通常它们要擦除一页,才可以写入新的数据。为了提高芯片寿命,本实施例可以采用“空间换时间”的方法,即在一页内允许写多条index记录,待该页记录全部写满后,才重新擦除。

可见,电子设备在每次接收的命令包信息得到确认后,重新向遥控器分配计数索引,向遥控器分配计数索引的交互过程都是密文交互,这使得强力攻击无效。没有经过学习的遥控器,在电子设备的存储区中没有其相同的记录。即使获取了其他信息,如果电子设备没有学习过该遥控器,电子设备也不会与遥控器进行交互回应。同时,在正常工作模式下的每次遥控过程之后,都有最新的计数索引和随机数填充,所产生的通信包全是变动部分,没有固定部分的信息包,相比于相关技术包含固定部分的信息包,本实施例的遥控过程更安全。

从图1所示实施例的交互过程可以看出,第一密钥的安全性非常重要,要求严格保密。如果第一密钥被泄密或破解,整个遥控过程就没有任何安全性可言。在相关技术中,上述第一密钥(或者制造商编码)等关键数据需要预先存储到遥控器和电子设备中。但是在生产时,操作人员可以获取产品的关键数据,因此存在泄密的途径,其安全性无法保证。

为了进一步提高遥控过程的安全性,上述第一密钥的协商过程可以按照图4a所述流程示意图进行,以使电子设备获得第一密钥,具体包括以下步骤s401~步骤s404:

步骤s401:生成第一密钥和第二密钥,并以第二密钥对第一密钥进行加密,获得第三加密串,将第三加密串发送至电子设备。

具体的,遥控器可以在接收到指定按键的触发操作时触发进入第一密钥的“学习模式”。遥控器在生成第一密钥和第二密钥时,可以按照预设的密钥生成规则生成第一密钥和/或第二密钥,也可以从自身的密钥库中选择密钥作为第一密钥和/或第二密钥。第一密钥和第二密钥的确定过程可以是相同的,也可以是不同的。

作为一种具体实施例,由于第一密钥是电子设备需要获得的目标密钥,因此,为了进一步提高密钥的安全性,第一密钥可以为遥控器随机确定的密钥。其中,随机确定的密钥是由随机数组成的。随机数可以理解为一种动态变化的数据序列,其产生不可预测,其序列没有周期性、规律性。可以理解的是,采用随机方式确定的密钥,对相关的开发工程师或操作人员来说该密钥都是未知的,因此这种方式可以从源头上避免密钥泄露,提高密钥的保密性。

需要说明的是,第二密钥是为了加密、解密第一密钥而确定的密钥,因此,第二密钥的安全性会直接影响第一密钥的安全性。作为一种具体实施方式,为了进一步提高第一密钥的安全性,上述第二密钥也可以为遥控器随机确定的密钥。

在第一密钥的“学习模式”下,遥控器以第二密钥对第一密钥进行加密时,可以采用第二加密算法、以第二密钥对第一密钥进行加密。其中,第二加密算法也可以为des、3des和aes等算法中的一种;第二加密算法可以与第一加密算法相同,也可以不同,本申请对此不做具体限定。

步骤s402:接收电子设备发送的第四加密串。

其中,第四加密串为:电子设备以自身生成的第三密钥对第三加密串进行加密后得到的加密串。

具体的,电子设备可以在接收到上级控制器或与电子设备对应的客户端的学习指令时,或者在接收到自身的“学习模式”触发开关的触发操作时,进入第一密钥的“学习模式”。

为了提高密钥的安全性,上述第三密钥也可以为电子设备随机确定的密钥。上述第四加密串可以为电子设备采用第二加密算法、以第三密钥对第三加密串进行加密后得到的加密串。

步骤s403:以第二密钥对第四加密串进行解密,获得第三信息串。

具体的,遥控器以第二密钥对第四加密串进行解密时,可以采用与第二加密算法对应的解密算法、以第二密钥对第四加密串进行解密。

步骤s404:将第三信息串发送至电子设备,以使电子设备从第四信息串中获取用于数据加密、解密的第一密钥。

其中,第四信息串为:电子设备以第三密钥对第三信息串进行解密后得到的信息串。

具体的,第四信息串可以为:电子设备采用与第二加密算法对应的解密算法、以第三密钥对第三信息串进行解密后得到的信息串。

当第四信息串中包含第一密钥和其他补充数据时,电子设备从第四信息串中获取第一密钥时可以包括:将第四信息串中位于预设数据段的数据确定为第一密钥。当第四信息串中只包含第一密钥时,可以直接将第四信息串确定为第一密钥。

在本实施例中,遥控器与电子设备之间协商第一密钥的过程遵循“遥控器加密—电子设备加密—遥控器解密—电子设备解密”的交互过程。在加解密过程不发生干扰的情况下,电子设备最后解密得到的密钥通常等于遥控器生成的第一密钥。

可见,本实施例中遥控器和电子设备协商的用于数据加密、解密的第一密钥,是由遥控器生成的,并不是人工预先内置在遥控器内部的,这样可以避免操作人员将密钥泄露出去。而且,遥控器在将第一密钥发送至电子设备的过程中,所发送的密钥经过两次加密和两次解密过程最终由电子设备获得,该过程中所发送的数据均是经过加密的,并不是通过明文发送的,这为强力攻击设置了第一道门槛,其安全性更高。并且,遥控器与电子设备之间的通信为双向的,而非单向的,这也保证了信息传输的可靠性。因此,应用本实施例提供的方案来协商用于数据加密、解密的第一密钥,能够提高通信过程中数据的安全性和可靠性。

在上述“学习模式”下,在将第一密钥发送至电子设备的过程中,还可以将包含遥控器标识的第一参数发送至电子设备。上述步骤s401中以第二密钥对第一密钥进行加密,获得第三加密串的步骤,可以包括:

以第二密钥对第一密钥和第一参数进行加密,获得第三加密串。

其中,第一参数为用于信息处理的参数。第一参数可以包括遥控器的遥控器标识。当遥控器内部不存在遥控器标识时,第一参数可以包括用于向电子设备请求分配遥控器标识的标识。遥控器标识可以为遥控器的设备标识uid。另外,第一参数还可以包括以下信息:加密算法标识、密钥长度、遥控器的按键数量、初始的计数索引等。

上述加密算法标识用于约定正常工作时所采用的加密算法。密钥长度即为第一密钥的长度,用于约定加密算法所采用的密钥的长度。例如,可以预先设定加密算法des的标识为0x00,其密钥长度为64;加密算法3des的标识为0x01,其密钥长度为128;192bit的加密算法aes的标识为0x02,其密钥长度为192。

需要指出的是,当遥控器的处理速度比较快时,可以选择密钥长度较大的加密算法。

需要说明的是,有的遥控器使用少量的按键,有的遥控器则使用较多的按键。而在相关技术中,遥控器和电子设备之间只能实现固定数量按键的编码,例如4个按键的编码。当遇到超过该固定数量按键的遥控器时,电子设备无法处理这种遥控器发送的按键信息。本实施例可以将遥控器的按键数量发送至电子设备,其目的在于使电子设备获取遥控器的按键数量,以便电子设备进行与该按键数量相匹配的处理,例如,正确识别遥控器的按键值等。因此,本实施例能够实现不同按键数量的编码处理。

当第一参数中包含初始的计数索引时,即表示初始的计数索引由遥控器来约定,并发送至电子设备。

当第三加密串中包含第一参数时,对应的第三信息串中也包含第一参数。当将第三信息串发送至电子设备之后,并且电子设备对第三信息串进行解密得到第四信息串之后,电子设备除了可以从第四信息串中获取第一密钥之外,还可以从第四信息串中获取第一参数,并存储第一参数。

对应的,遥控器也可以接收电子设备发送的包含初始计数索引的参数。在将第三信息串发送至电子设备之后,也就是使电子设备获得第一密钥之后,在遥控器获取按键值之前,该方法还可以包括以下步骤1和步骤2:

步骤1:接收电子设备发送的第五加密串。

其中,第五加密串为:电子设备以第一密钥对第二参数进行加密后得到的加密串;第二参数包括:与遥控器的遥控器标识对应的计数索引。该计数索引为电子设备分配给遥控器的初始的计数索引。该计数索引可以理解为具体的计数索引值,也可以理解为计数索引的长度范围,即计数索引为多少位的数据。另外,当第一参数中包含用于向电子设备请求分配遥控器标识的标识时,第二参数还可以包括电子设备为遥控器分配的遥控器标识。当然,第二参数还可以包括用于验证第一密钥是否成功获取的特征字。

步骤2:以第一密钥对第五加密串进行解密,获得第五信息串,从第五信息串中获取用于信息处理的第二参数。

当遥控器从第五信息串中获取到特征字时,与自身存储的特征字进行匹配,如果匹配成功,则确认电子设备获得了正确的第一密钥。

可见,本实施例中的遥控器可以在“学习模式”下,将第一参数发送至电子设备,或接收电子设备发送的第二参数,并且第一参数和第二参数的发送过程均是以密文的形式发送,保密性更好。

下面结合具体实例对遥控器与电子设备之间协商第一密钥的过程再做详细说明。

图4b为遥控器与电子设备之间交互的另一种流程示意图。电子设备可以通过接收上位机客户端或者上级控制板,或者检测到自身的“学习模式”开关的触发操作时,启动进入“学习模式”。这种触发操作是合法授权管理人员执行的操作。电子设备进入学习模式后,在自身内部生成第三密钥kb,并等待遥控器发送学习命令包cmd3。

遥控器检测到某几个按键的输入操作时触发进入密钥的“学习模式”。遥控器生成第一密钥kx和第二密钥ka,并确定第一参数param1。其中,第一参数可以包括:遥控器标识、加密算法标识、按键数量等。将kx和param1串联组合起来,得到kx_param1,其长度为k=k1+k2。采用第二加密算法,以第二密钥ka为密钥,对kx_param1进行加密,得到密文的第三加密串c1。遥控器将第三加密串c1按照以下格式组合成命令包2:cmd2|length_c1|c1|校验字。其中,cmd2为预设的命令字,length_c1为数据长度,符号“|”表示各个字段的隔开关系。上述校验字也可以采用行业中常见的累加和、crc8校验算法或crc16校验算法等,以保证传输信息包的完整性。遥控器向电子设备发送上述命令包2。

电子设备接收遥控器发送的命令包2,检测命令包2格式的合法性(包括判断命令字cmd2是否与预设的命令字相同,校验数据长度和校验字的值是否正确)。在格式合法时,采用第二加密算法,以第三密钥kb对第三加密串c1进行加密,得到第四加密串d1。将d1按照以下格式组合成应答包3:ack1|length_d1|d1|校验字。电子设备向遥控器发送应答包3。

遥控器接收到电子设备发送的应答包2后,检测应答包2格式的合法性。在格式合法时,采用与第二加密算法对应的解密算法,以第二密钥ka为密钥对d1进行解密运算,得到第三信息串e1,并继续组成命令包3:cmd3|length_e1|e1|校验字。遥控器向电子设备发送该命令包3。

电子设备接收遥控器发送的命令包3,检测命令包3的格式合法性。在格式合法时,采用与第二加密算法对应的解密算法,以第三密钥kb为密钥对e1进行解密运算,得到第四信息串kx_param1,并从第四信息串kx_param1中获取第一密钥kx和第一参数param1。电子设备为遥控器确定计数索引index,并将该计数索引index以及第二参数组合得到msg,采用第二加密算法,以第一密钥kx对msg进行加密,得到第五加密串f1。电子设备将第五加密串组合成应答包3:ack3|length_f1|f1|校验字;并将应答包3发送至遥控器。

遥控器接收电子设备发送的应答包3,检测应答包3的格式合法性。在格式合法时,采用与第二加密算法对应的解密算法,以第一密钥kx为密钥对f1进行解密运算,得到第五信息串msg,从第五信息串msg中获取第二参数。

可见,本实施例中遥控器没有将其自身的第二密钥ka发送给电子设备,电子设备也没有将其自身的第三密钥kb发送给遥控器,所交互的命令包2、应答包、命令包3、应答包3均为采用这些ka或kb加密的密文,但电子设备却可以从这几次交互中得到遥控器动态产生的第一密钥kx,其安全性更高。遥控器和电子设备还可以实现其他参数(第一参数或第二参数)的交互,使得双方可以针对许多参数进行动态约定。这种算法流程的效果非常积极,可以实现每一个遥控器与电子设备分配唯一的第一密钥和计数索引index,可选地,还可以使电子设备获得遥控器标识或使遥控器获得电子设备动态分配的遥控器标识。

作为另一具体实施方式,上述第一密钥可以是由电子设备生成并发送至遥控器的。因此,遥控器可以采用以下方式获得第一密钥,具体包括步骤1~步骤4:

步骤1:接收电子设备发送的第三加密串。

其中,第三加密串为:电子设备以第二密钥对第一密钥进行加密后得到的加密串;第一密钥和第二密钥为电子设备生成的密钥。

步骤2:生成第三密钥,以第三密钥对第三加密串进行加密,获得第四加密串,并将第四加密串发送至电子设备。

步骤3:接收电子设备发送的第三信息串。

其中,第三信息串为:电子设备以第二密钥对接收的第四加密串进行解密后得到的信息串;

步骤4:以第三密钥对第三信息串进行解密,获得第四信息串,从第四信息串中获取用于数据加密、解密的第一密钥。

可见,本实施例可以由电子设备生成第一密钥和第二密钥,并经过电子设备加密—遥控器加密—电子设备解密—遥控器解密的过程,由遥控器获得第一密钥,实现电子设备与遥控器之间协商第一密钥的过程。

为了进一步提高第一密钥的安全性,在图2所示实施例的一种实施方式中,第一密钥可以包括第一部分的m字节数据和第二部分的m字节数据,第一部分的m字节数据为:各字节数据分别与m取余后余数互不相同的数据。

其中,第一部分的m字节数据也可以为m个互不相同的随机数,或为0~m-1之间的随机数,或为0~255之间的随机数。m取正整数。第二部分的m字节数据也可以为0~255之间的随机数。当第一部分的m字节数据为各字节数据分别与m取余后余数互不相同的数据时,作为一个例子,m取5,第一部分的5字节数据分别为kx1,kx2,kx3,kx4和kx5,并且kx1mod5,kx2mod5,kx3mod5,kx4mod5和kx5mod5互不相同,其中,mod为取余运算符号。

具体的,遥控器在生成第一密钥时,可以包括以下步骤1~步骤3:

步骤1:确定第一部分的m字节数据。

其中,第一部分的m字节数据为:各字节数据分别与m取余后余数互不相同的数据。

具体的,确定第一部分的m字节数据时,可以包括:在第一预设数值范围内,随机确定m个随机数,判断上述m个随机数分别与m取余后余数是否互不相同,如果是,则将确定的m个随机数作为第一部分的m字节数据;如果否,则返回执行在第一预设数值范围内,随机确定m个随机数的步骤。第一部分的各个字节数据又称为移位因子,用于对待加密数据进行移位操作。

第一预设随机数值范围可以为0~m-1,也可以为0~255,当然也可以为其他任何数值范围,本申请对此不做具体限定。

步骤2:确定第二部分的m字节数据。

具体的,确定第二部分的m字节数据时,可以包括,在第二预设随机数值范围内,随机确定m个随机数,作为第二部分的m字节数据。第二预设随机数值范围可以为0~255,也可以为其他任何数值范围,本申请对此不做具体限定。第二部分的各个字节数据又称为异或因子,用于对待加密数据进行异或操作。

步骤3:将第一部分的m字节数据置于第二部分的m字节数据前方或后方,得到第一密钥。

也就是说,将第一部分作为一个整体置于第二部分整体的前方或后方,两部分串联后得到第一密钥。

类似的,第二密钥也可以包括第一部分的m字节数据和第二部分的m字节数据。在生成第二密钥或第三密钥时,遥控器也可以按照上述步骤1~步骤3进行生成。

可见,本实施例可以将第一密钥划分为第一部分的移位因子和第二部分的异或因子,其中第一部分的m个移位因子分别与m取余后余数互不相同,这两部分分别用于对待加密数据进行移位操作和异或操作。

当第一密钥包括上述移位因子和异或因子时,步骤s202,即以约定的第一密钥对按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串的步骤,可以按照图5a所述流程示意图进行,具体包括以下步骤s202a~s202d:

步骤s202a:按照预设的第一排列顺序,将按键值、遥控器标识和存储的计数索引进行排列,获得待加密数据。

步骤s202b:以m字节为划分单位,将待加密数据划分成数据段。

在本实施例中,当待加密数据的字节数量不是m的整数倍时,无法将第一数据划分成均为m字节的数据段,这时可以对待加密数据进行数据填充,将填充数据后的待加密数据划分成数据段,使得到的数据段均为m字节。

作为一种具体的实施方式,步骤s202b可以按照图5b所示的待加密数据划分流程图进行,具体包括:

步骤s202b-1:获取待加密数据的总字节数量m。

步骤s202b-2:判断m是否为m的整数倍,如果是,则执行步骤s202b-5,如果否,则执行步骤s202b-3。

具体的,判断m是否为m的整数倍时,可以包括:判断mmodm的值是否为0,如果是,则判定m是m的整数倍;如果否,则判定m不是m的整数倍。

步骤s202b-3:确定d字节个数据,将该d字节个数据填充至待加密数据中的指定位置。其中,d是根据以下公式确定的:d=m-(mmodm);mod为取余运算符号。

具体的,确定d字节个数据,可以包括:随机确定d字节个数据,或从预设的字符串中确定d字节个数据。例如,预设的字符串为80h|00h|…|00h,可以从该十六进制字符串中截取d字节个数据。上述指定位置可以是待加密数据的起始位置,也可以是待加密数据的末尾位置,当然也可以是待加密数据中间的某个位置。本申请对此不做具体限定。

步骤s202b-4:以m字节为划分单位,将填充数据后的待加密数据划分成数据段。

步骤s202b-5:以m字节为划分单位,直接将填充数据后的待加密数据划分成数据段。

步骤s202c:以第一密钥对每一个数据段进行处理,获得处理后的数据段。

具体的,可以按照以下方式,对每一个数据段进行处理:

从第一密钥的第一部分中确定与目标数据段中的各个字节数据对应的移位因子,从第一密钥的第二部分中确定与目标数据段中的各个字节数据对应的异或因子。其中,目标数据段为上述数据段中的任一个。

根据确定的移位因子和异或因子,对上述目标数据段中对应的各个字节数据进行移位处理和异或处理,获得处理后的目标数据段。

其中,第一部分的m字节数据可以理解为m个移位因子,第二部分的m字节数据可以理解为m个异或因子。具体的,确定一个移位因子即是从第一部分的m字节数据中确定一个字节数据。可以理解的是,一个数据段中包含m个字节数据,第一密钥的第一部分也包含m字节数据,在确定移位因子时,数据段中的字节数据与第一部分中的字节数据可以是一一对应的,也可以不是一一对应的。

在数据段中的字节数据与第一部分中的字节数据是一一对应的情况下,在确定数据段的每个字节数据与第一部分的每个字节数据之间的一一对应关系时,可以按照字节数据的相同编号进行对应,也可以按照预设的第一编号对应顺序进行对应,这都是可行的。例如,一个数据段中包含编号分别为d1,d2,d3,d4四个字节数据,第一密钥的第一部分包含编号分别为k1,k2,k3,k4的四个字节数据,那么在确定移位因子时,可以按照字节数据的相同编号进行对应,即按照d1—k1,d2—k2,d3—k3,d4—k4的编号对应关系确定移位因子;也可以按照预设的第一编号对应顺序进行对应,即可以按照d1—k2,d2—k3,d3—k4,d4—k1的编号对应关系确定移位因子。当然,第一编号对应顺序还可以为其他的对应顺序,d1—k2,d2—k3,d3—k4,d4—k1的对应顺序只是一个例子。

在数据段中的字节数据与第一部分中的字节数据不是一一对应的情况下,在确定数据段的每个字节数据所对应的移位因子时,可以按照预设的第二编号对应顺序进行确定。沿用上段的例子进行说明,可以按照d1—k2,d2—k2,d3—k4,d4—k4的编号对应关系确定移位因子。当然,第二编号对应顺序还可以为其他的对应顺序,d1—k2,d2—k2,d3—k4,d4—k4的对应顺序只是一个例子。

同样的,确定一个异或因子即是从第二部分的m字节数据中确定一个字节数据。可以理解的是,一个数据段中包含m个字节数据,第一密钥的第二部分也包含m字节数据,在确定异或因子时,数据段中的字节数据与第二部分中的字节数据可以是一一对应的,也可以不是一一对应的。

在数据段中的字节数据与第二部分中的字节数据是一一对应的情况下,在确定数据段的每个字节数据与第二部分的每个字节数据之间的一一对应关系时,可以按照字节数据的相同编号进行对应,也可以按照预设的第三编号对应顺序进行对应,这都是可行的。

在数据段中的字节数据与第二部分中的字节数据不是一一对应的情况下,在确定数据段的每个字节数据所对应的异或因子时,可以按照预设的第四编号对应顺序进行确定。

上述第一编号对应顺序、第二编号对应顺序、第三编号对应顺序和第四编号对应顺序可以彼此相同,也可以彼此不同。

具体的,根据确定的移位因子和异或因子,对上述目标数据段中对应的各个字节数据进行移位处理和异或处理时,可以包括:先根据确定的移位因子对目标数据段中对应的各个字节数据进行移位处理,然后根据确定的异或因子对移位处理后的各个字节数据进行异或处理。也可以包括:先根据确定的异或因子对目标数据段中对应的各个字节数据进行异或处理,然后根据确定的移位因子对异或处理后的各个字节数据进行移位处理。

在进行移位处理时,可以对数据进行左移,也可以对数据进行右移,本申请实施例对此不做具体限定。

步骤s202d:按照预设的第二排列顺序,对各个处理后的数据段进行排序,获得第一加密串。

其中,第二排列顺序可以是各个数据段在待加密数据中的排列顺序,也可以是与各个数据段在待加密数据中的排列顺序不同的排列顺序,本实施例对此不做具体限定。

可以理解的是,对各个处理后的数据段进行排序,并将排序后的各个数据段串联起来,即获得第一加密串。

可见,本实施例中作为执行主体的遥控器以第一密钥中移位因子和异或因子的字节数量m作为划分单位,将待加密数据划分成数据段,并以第一密钥中的移位因子和异或因子对每一个数据段进行移位处理和异或处理,然后按照第二排列顺序对各个处理后的数据段进行排序,获得第一加密串。这种加密算法实现上比较容易,代码编程也很简单。为了使表述更清楚,现将本实施例提供的上述加密算法即图5a和图5b所示加密算法,称为“第三加密算法”。上述内容提及的第一加密算法和第二加密算法均可以包括第三加密算法。即在遥控器与电子设备协商第一密钥的过程中,可以采用第三加密算法进行加密。在遥控器获得第一密钥之后,遥控器与电子设备之间采用协商的密钥对数据进行加密时,也可以采用第三加密算法进行加密。

在图2所示实施例的一种实施方式中,步骤s205,即以第一密钥对第二加密串进行解密,获得第二信息串的步骤,可以采用上述第三加密算法进行,具体包括以下步骤1~步骤3:

步骤1:以m字节为划分单位,将第二加密串划分成数据段。

具体的,在上述步骤1之前,还可以包括:获得第二加密串的总字节数量n1,判断n1是否为m的整数倍,如果是,则执行步骤1;如果否,则说明情况异常,不予处理即可。

步骤2:按照以下方式,对将第二加密串划分得到的每一个数据段进行处理:

从第一密钥的第一部分中确定与目标数据段中的各个字节数据对应的移位因子,从第一密钥的第二部分中确定与目标数据段中的各个字节数据对应的异或因子。目标数据段为将第一加密串划分得到的数据段中的任一个。

根据确定的移位因子和异或因子,对目标数据段中对应的各个字节数据进行移位处理和异或处理,获得处理后的目标数据段。

需要说明的是,在解密时,对数据进行移位时移位的方向应与加密时移位的方向相反。如果加密时对数据进行左移,解密时则对该数据进行右移。

步骤3:按照预设的第二排列顺序,对各个处理后的数据段进行排序,获得第二信息串。

需要说明的是,解密时所采用的排列顺序,应与对数据加密时所采用的排列顺序相对应。如果加密时所采用的排列顺序是按照数据段编号顺次排列,那么解密时也按照数据段编号顺次排列各个处理后的数据段。如果加密时所采用的排列顺序是按照数据段编号倒序排列,那么解密时所采用的排列顺序也按照数据段编号倒序排列各个处理后的数据段。这样,才能从第二加密串解密出第二信息串。

可见,本实施例中,电子设备可以以上述具有移位因子和异或因子的第一密钥,采用与第三加密算法对应的解密算法对遥控器发送的第二加密串进行解密,从而获得遥控器发送的数据。这种解密算法实现上比较容易,代码编程也很简单。

图6为本申请实施例提供的电子设备的遥控方法的另一流程示意图。该方法应用于电子设备。该方法包括以下步骤s601~步骤s605:

步骤s601:接收遥控器发送的第一加密串。

其中,第一加密串为:遥控器以约定的第一密钥对获取的按键值、遥控器标识和存储的计数索引进行加密后得到的加密串。

其中,第一密钥是遥控器与电子设备之间预先约定好的用于数据加密、解密的密钥。遥控器中存储的计数索引可以是电子设备预先分配的。

具体的,遥控器对上述按键值、遥控器标识和存储的计数索引进行加密时,可以按照预设的第一排列顺序,将上述按键值、遥控器标识和计数索引进行排列,组合成待加密数据,以第一密钥对待加密数据进行加密。其中,第一排列顺序可以为按键值、遥控器标识和计数索引的排列顺序,也可以为按键值、计数索引和遥控器标识,或者其他顺序,都是可行的。

遥控器以第一密钥对上述按键值、遥控器标识和存储的计数索引进行加密时,可以采用第一加密算法,以第一密钥对上述按键值、遥控器标识和存储的计数索引进行加密。

步骤s602:以第一密钥对第一加密串进行解密,获得第一信息串,从第一信息串中获取按键值、遥控器标识和计数索引。

具体的,遥控器将第一加密串发送至电子设备;电子设备接收遥控器发送的第一加密串,以约定的第一密钥对第一加密串进行解密,获得第一信息串,从第一信息串中获取按键值、遥控器标识和计数索引。

在本实施例中,电子设备在对第一加密串进行解密时,采用与遥控器预先约定好的第一加密算法对应的第一解密算法进行解密。

步骤s603:当自身存储的该遥控器标识对应的计数索引与获取的计数索引匹配时,响应上述按键值,并更新该遥控器标识对应的计数索引。

其中,电子设备中存储的计数索引的初始值可以是预先分配给遥控器的计数索引。

具体的,电子设备可以判断自身存储的该遥控器标识对应的计数索引与获取的计数索引是否相同,或获取的计数索引是否处在自身存储的该遥控器标识对应的计数索引的合理范围内,如果是,则确定自身存储的该遥控器标识对应的计数索引与获取的计数索引匹配。

电子设备响应上述按键值时,可以包括:从预设的按键值与动作的对应关系中,确定上述按键值对应的动作,执行所确定的动作。上述动作可以包括各种电子设备可以执行的操作,例如当电子设备为通道闸闸门时,上述动作可以为设备启动、设备关闭、闸门打开、闸门关门等。

电子设备在更新该遥控器标识对应的计数索引时,可以不按照计数索引加1的规则对计数索引进行更新,而是可以在指定范围内随机地更新该遥控器标识对应的计数索引,并存储更新后的计数索引。

可以理解的是,以这种方式更新的计数索引其值不可预测,不易被恶意攻击者破解,并且可以保证每次按键都对应不同的计数索引,其安全性更高。

步骤s604:以第一密钥对更新后的计数索引进行加密,获得第二加密串。

需要指出的是,电子设备以第一密钥对更新后的计数索引进行加密时,可以采用上述第一加密算法进行加密,也可以采用其他加密算法,本申请对此不做具体限定。

步骤s605:将第二加密串发送至遥控器,以使遥控器从第二信息串中获取更新后的计数索引。其中,第二信息串为:遥控器以第一密钥对接收的第二加密串进行解密后得到的信息串。

可以理解的是,由于电子设备更新后的计数索引不可预测,因此电子设备需要将更新后的计数索引发送至遥控器,以使遥控器存储更新后的计数索引。在电子设备发送更新后的计数索引时,采用密文形式发送。

另外,在本实施例中,向遥控器发送的第二加密串也可以作为第一加密串的回应信息,当遥控器接收到电子设备发送的第二加密串时,可以确认电子设备已经接收到了遥控器发送的第一加密串。

由上述内容可见,本实施例可以以约定的第一密钥对按键值、遥控器标识和存储的计数索引进行加密和解密,在电子设备确定自身存储的计数索引与获取的计数索引匹配时,更新计数索引,并将更新的计数索引以加密的形式发送至遥控器,以使遥控器获取更新后的计数索引。可见本实施例以密文形式发送遥控器标识和计数索引,而非明文,能够提高遥控过程信息的安全性。同时,电子设备更新计数索引之后,以密文形式将更新后的计数索引发送至遥控器,这样便可以随机地更新计数索引,而不是每次按键都固定地加1,从而可以使计数索引的安全性更高。

从图6所示实施例的交互过程可以看出,第一密钥的安全性非常重要,要求严格保密。如果第一密钥被泄密或破解,整个遥控过程就没有任何安全性可言。在相关技术中,上述第一密钥(或者制造商编码)等关键数据需要预先存储到遥控器和电子设备中。但是在生产时,操作人员可以获取产品的关键数据,因此存在泄密的途径,其安全性无法保证。

为了进一步提高遥控过程的安全性,电子设备可以采用以下方式获得第一密钥,具体包括以下步骤1~步骤4:

步骤1:接收遥控器发送的第三加密串。

其中,第三加密串为:遥控器以第二密钥对第一密钥进行加密后得到的加密串;第一密钥和第二密钥为遥控器生成的密钥。

具体的,第三加密串可以为:遥控器采用第二加密算法、以第二密钥对第一密钥进行加密后得到的加密串。

电子设备可以通过接收上位机客户端,或者上级控制板,或者在检测到自身的“学习模式”开关的触发操作时,启动进入密钥“学习模式”。

步骤2:生成第三密钥,以第三密钥对第三加密串进行加密,获得第四加密串,并将第四加密串发送至遥控器。

需要说明的是,第三密钥是为了加密、解密第一密钥而确定的密钥,因此,第三密钥的安全性会直接影响第一密钥的安全性。

作为一种具体实施方式,为了进一步提高第一密钥的安全性,上述第三密钥也可以为电子设备随机确定的密钥。

可以理解的是,采用随机方式确定的密钥,对相关的开发工程师或操作人员来说该密钥都是未知的,因此这种方式可以从源头上避免密钥泄露,提高密钥的保密性。

以第三密钥对第三加密串进行加密时,可以包括:采用第二加密算法、以第三密钥对第三加密串进行加密。其中,第二加密算法也可以为des、3des和aes等算法中的一种;第二加密算法可以与第一加密算法相同,也可以不同,本申请对此不做具体限定。

步骤3:接收遥控器发送的第三信息串。

其中,第三信息串为:遥控器以第二密钥对第四加密串进行解密后得到的信息串。

具体的,第三信息串可以为:遥控器采用与第二加密算法对应的解密算法、以第二密钥对第四加密串进行解密后得到的信息串。

步骤4:以第三密钥对第三信息串进行解密,获得第四信息串,并从第四信息串中获取用于数据加密、解密的第一密钥。

具体的,以第三密钥对第三信息串进行解密时,可以包括:采用第二加密算法对应的解密算法、以第三密钥对第三信息串进行解密。

当第四信息串中包含第一密钥和其他补充数据时,电子设备从第四信息串中获取第一密钥时可以包括:将第四信息串中位于预设数据段的数据确定为第一密钥。当第四信息串中只包含第一密钥时,可以直接将第四信息串确定为第一密钥。

需要说明的是,第二加密算法可以与第一加密算法不同,也可以相同。第二加密算法和第一加密算法均为遥控器和电子设备之间预先约定好的加密算法。

在本实施例中,遥控器与电子设备之间协商第一密钥的过程遵循“遥控器加密—电子设备加密—遥控器解密—电子设备解密”的交互过程。在加解密过程不发生干扰的情况下,电子设备最后解密得到的密钥通常等于遥控器生成的第一密钥。

可见,本实施例中遥控器和电子设备协商的用于数据加密、解密的第一密钥,是由遥控器生成的,并不是人工预先内置在遥控器内部的,这样可以避免操作人员将密钥泄露出去。而且,遥控器在将第一密钥发送至电子设备的过程中,所发送的密钥经过两次加密和两次解密过程最终由电子设备获得,该过程中所发送的数据均是经过加密的,并不是通过明文发送的,这为强力攻击设置了第一道门槛,其安全性更高。并且,遥控器与电子设备之间的通信为双向的,而非单向的,这也保证了信息传输的可靠性。因此,应用本实施例提供的方案来协商用于数据加密、解密的第一密钥,能够提高通信过程中数据的安全性和可靠性。

在上述“学习模式”下,在将第一密钥发送至电子设备的过程中,还可以将包含遥控器标识的第一参数发送至电子设备。也就是说,在图6所示实施例的具体实施方式中,电子设备在获得第四信息串之后,还可以包括:

从第四信息串中获取用于信息处理的第一参数,第一参数可以包括遥控器的遥控器标识,并将该遥控器标识存储至本地。第一参数还可以包括用于向电子设备请求分配遥控器标识的标识,以及加密算法标识、密钥长度、遥控器的按键数量等。

当第一参数包括遥控器的按键数量时,电子设备响应上述按键值的步骤,可以包括:根据遥控器的按键数量,识别所述按键值。

具体的,电子设备可以从与上述遥控器的按键数量对应的映射表中,确定与该按键值对应的动作。其中,上述映射表用于存储按键值与动作的对应关系。

需要说明的是,有的遥控器使用少量的按键,有的遥控器则使用较多的按键。而在相关技术中,遥控器和电子设备之间只能实现固定数量按键的编码,例如4个按键的编码。当遇到超过该固定数量按键的遥控器时,电子设备无法处理这种遥控器发送的按键信息。本实施例可以将遥控器的按键数量发送至电子设备,其目的在于使电子设备获取遥控器的按键数量,以便电子设备进行与该按键数量相匹配的处理,例如,正确识别遥控器的按键值等。因此,本实施例能够实现不同按键数量的编码处理。

在图6所示实施例的具体实施方式中,在获得第一密钥之后,电子设备还可以包括以下步骤1~步骤2:

步骤1:以第一密钥对第二参数进行加密,获得第五加密串。

其中,第二参数包括:与遥控器的遥控器标识对应的计数索引。另外,当第一参数中包含用于向电子设备请求分配遥控器标识的标识时,第二参数还可以包括电子设备为遥控器分配的遥控器标识。当然,第二参数还可以包括用于验证第一密钥是否成功获取的特征字。

步骤2:将第五加密串发送至遥控器,以使遥控器从第五信息串中获取用于信息处理的第二参数。第五信息串为:遥控器以第一密钥对第五加密串进行解密后得到的信息串。

具体的,当遥控器从第五信息串中获取到特征字时,与自身存储的特征字进行匹配,如果匹配成功,则确认电子设备获得了正确的第一密钥。

可见,本实施例中的电子设备可以在“学习模式”下,将第二参数发送至遥控器备,或接收遥控器发送的第一参数,并且第一参数和第二参数的发送过程均是以密文的形式发送,保密性更好。

在图6所示实施例的另一具体实施方式中,上述第一密钥可以为采用以下方式使遥控器获得的,具体包括步骤1~步骤5:

步骤1:生成第一密钥和第二密钥,以第二密钥对所述第一密钥进行加密,获得第三加密串。

步骤2:将第三加密串发送至所述遥控器。

步骤3:接收所述遥控器发送的第四加密串。其中,第四加密串为:遥控器以生成的第三密钥对第三加密串进行加密后得到的加密串。

步骤4:以第二密钥对第四加密串进行解密,获得第三信息串。

步骤5:将第三信息串发送至遥控器,以使遥控器从第四信息串中获取用于数据加密、解密的第一密钥。

其中,第四信息串为:遥控器以第三密钥对第三信息串进行解密后得到的信息串。

可见,本实施例可以由电子设备生成第一密钥和第二密钥,并经过电子设备加密—遥控器加密—电子设备解密—遥控器解密的过程,由遥控器获得第一密钥,实现电子设备与遥控器之间协商第一密钥的过程。

为了进一步提高第一密钥的安全性,在图6所示实施例的一种实施方式中,第一密钥可以包括第一部分的m字节数据和第二部分的m字节数据,第一部分的m字节数据为:各字节数据分别与m取余后余数互不相同的数据。

其中,第一部分的m字节数据也可以为m个互不相同的随机数,或为0~m-1之间的随机数,或为0~255之间的随机数。m取正整数。第二部分的m字节数据也可以为0~255之间的随机数。当第一部分的m字节数据为各字节数据分别与m取余后余数互不相同的数据时,作为一个例子,m取5,第一部分的5字节数据分别为kx1,kx2,kx3,kx4和kx5,并且kx1mod5,kx2mod5,kx3mod5,kx4mod5和kx5mod5互不相同,其中,mod为取余运算符号。

上述第一部分的各个字节数据可以称为移位因子,第二部分的各个字节数据可以称为异或因子。

对应的,步骤s602,即以第一密钥对第一加密串进行解密,获得第一信息串的步骤可以采用与第三加密算法对应的解密算法进行,具体包括以下步骤1~步骤3:

步骤1:以m字节为划分单位,将第一加密串划分成数据段。

具体的,在上述步骤1之前,还可以包括:获得第一加密串的总字节数量n2,判断n2是否为m的整数倍,如果是,则执行步骤1;如果否,则说明情况异常,不予处理即可。

步骤2:按照以下方式,对将第一加密串划分得到的每一个数据段进行处理:

从第一密钥的第一部分中确定与目标数据段中的各个字节数据对应的移位因子,从第一密钥的第二部分中确定与目标数据段中的各个字节数据对应的异或因子。目标数据段为将第一加密串划分得到的数据段中的任一个。

根据确定的移位因子和异或因子,对目标数据段中对应的各个字节数据进行移位处理和异或处理,获得处理后的目标数据段。

需要说明的是,在解密时,对数据进行移位时移位的方向应与加密时移位的方向相反。如果加密时对数据进行左移,解密时则对该数据进行右移。

步骤3:按照预设的第三排列顺序,对各个处理后的数据段进行排序,获得第一信息串。

其中,上述第三排列顺序可以与第二排列顺序相同,也可以不同。

需要说明的是,解密时所采用的排列顺序,应与对数据加密时所采用的排列顺序相对应。如果加密时所采用的排列顺序是按照数据段编号顺次排列,那么解密时也按照数据段编号顺次排列各个处理后的数据段。如果加密时所采用的排列顺序是按照数据段编号倒序排列,那么解密时所采用的排列顺序也按照数据段编号倒序排列各个处理后的数据段。这样,才能从第一加密串解密出第一信息串。

可见,本实施例中,电子设备可以以上述具有移位因子和异或因子的第一密钥,采用与第三加密算法对应的解密算法对遥控器发送的第一加密串进行解密,从而获得遥控器发送的数据。这种解密算法实现上比较容易,代码编程也很简单。

对应的,步骤s604,即以第一密钥对更新后的计数索引进行加密,获得第二加密串的步骤,可以包括以下步骤1~步骤3:

步骤1:将更新后的计数索引作为待加密数据,以m字节为划分单位,将待加密数据划分成数据段。

具体的,步骤1可以包括以下步骤1a~步骤1e:

步骤1a:获取待加密数据的总字节数量m。

步骤1b:判断m是否为所述m的整数倍,如果否,则执行步骤1c;如果是,则执行步骤1e。

具体的,判断m是否为m的整数倍时,可以包括:判断mmodm的值是否为0,如果是,则判定m是m的整数倍;如果否,则判定m不是m的整数倍。

步骤1c:确定d字节个数据,将所述d字节个数据填充至所述待加密数据中的指定位置,所述d是根据以下公式确定的:d=m-(mmodm);其中,所述mod为取余运算符号;

具体的,确定d字节个数据,可以包括:随机确定d字节个数据,或从预设的字符串中确定d字节个数据。

步骤1d:以m字节为划分单位,将填充数据后的待加密数据划分成数据段。

步骤1e:以m字节为划分单位,将待加密数据划分成数据段。

步骤2:以第一密钥对每一个数据段进行处理,获得处理后的数据段。

具体的,可以按照以下方式,对每一个数据段进行处理:

从第一密钥的第一部分中确定与目标数据段中的各个字节数据对应的移位因子,从第一密钥的第二部分中确定与目标数据段中的各个字节数据对应的异或因子;其中,目标数据段为上述数据段中的任一个。

根据确定的移位因子和异或因子,对目标数据段中对应的各个字节数据进行移位处理和异或处理,获得处理后的目标数据段。

步骤3:按照预设的第三排列顺序,对各个处理后的数据段进行排序,获得第二加密串。

可见,本实施例中作为执行主体的电子设备可以以上述具有移位因子和异或因子的第一密钥,采用上述第三加密算法对更新后的计数索引进行加密,获得第二加密串。这种加密算法实现上比较容易,代码编程也很简单。

需要指出的是,图2所示实施例与图6所示实施例是基于同一个发明构思得到的实施例,两个实施例的内容可以相互参照。

下面结合具体实例对本申请进行详细说明。

遥控器的cpu采用efm8sb10f超低功耗芯片,该芯片属于加强型8051内核、8kbflash的8bit处理器,外部晶振经过锁相环使内核工作频率达到25mhz。该芯片包含1个uart通信接口、1个spi通信接口和1个i2c通信接口。该芯片待机功耗为50na,激活工作电流为150ua,唤醒时间小于2μs,非常适合作为以电池供电的遥控器产品的cpu(soc)。该芯片有一个全球唯一的uid(32bit)标识,每次上电后该uid会加载到该芯片ram区的最后4字节空间。本实施例中,可以将该uid作为遥控器标识。

该遥控器采用低功耗的无线收发芯片si4438,该无线收发芯片工作频率在425mhz~525mhz的ism频段,调制方式为gfsk和ook,数据速率为100kbps~500kbps,每个收发包为64字节。该无线收发芯片的最大输出功率在+20dbm,灵敏度在-124dbm,激活的最大接收电流为14ma,激活的发送最多电流为75ma,待机电流仅为30na。该无线收发芯片与处理器的接口为spi接口方式,非常适合用作以电池供电的遥控器中的双向通信收发芯片。

遥控器的处理器通过spi接口与收发芯片进行通信,并配置5个按键和弹簧天线,构成遥控器电路。图7a所示为遥控器的一种工作电路原理图,图中包括与cpu相连的无线收发芯片、工作指示灯、按键电路、编程调试串口、晶振,以及通过阻抗匹配电路与无线收发芯片相连的天线,与无线收发芯片相连还有晶振,电池分别与cpu和无线收发芯片相连,提供电能。

本实施例中的电子设备为人行通道的闸机设备。在闸机设备的控制板中,由微处理器经过spi接口与无线收发芯片连接。其中,通道控制板的微处理器cpu采用dsp芯片(mc56f847xx),该芯片是一种32bitdsp内核数字信号处理器,工作频率为100mhz,主要用来采用矢量foc算法进行闸机设备的电机控制。其遥控器接口作为读卡备份的操作,针对缺少卡片的人员具有特殊通信功能。图7b为该闸机设备的一种电路原理图。该图中,cpu分别与无线收发芯片、工作指示灯、其他电路、晶振、编程调试串口相连,天线通过阻抗匹配电路与无线收发芯片相连,与无线收发芯片相连还有晶振。

在闸机设备的印制电路板(pcb)中,有拨位开关,可作为“学习模式”的触发按键。进入学习模式后,按本申请的遥控方法,遥控器被按下任意2个键可进入学习模式。闸机设备在学习模式下,跟踪接收遥控器发送的命令包cmd1,回应ack1包;再接收遥控器的命令包cmd2,就可以得到遥控器动态产生的“设备通信密钥”第一密钥kx,该密钥是后续正常工作模式采用192bit的aes算法的密钥。同时闸机设备也可从“第一参数”中获得遥控器有5个按键,遥控器标识uid(序列号)等信息。闸机设备回应遥控器一个初始的“计数索引index”。该index采用16bit。同时约定特征信息作为遥控器确认协商密钥成功的标志。

正常工作时,任意一个键被按下,遥控器即可采用192bit的aes算法和约定的“设备通信密钥”kx,对这个按键值(1个字节)、计数索引index(2个字节)、遥控器标识(4个字节)和一个用于填充的随机数,组合得到8字节的数据,并对该数据进行aes加密,用cmd3命令发送给目标设备。目标设备解密得到该遥控器的遥控器标识uid是正常学习过的,其计数索引index等于自身存储的值,则执行遥控按键对应的开闸门等动作。同时,回应一个新的计数索引index给遥控器。如果遥控器不在闸机设备附近,则遥控器的按键命令得不到应答,其计数索引也不会变化。

上述通信过程中的通信包非常短,非常适合遥控器的无线通信机制。并且,遥控器与闸机设备之间的通信包均是动态变化的,安全性比较高,强力攻击的难度较大,安全性较高。

图8为本申请实施例提供电子设备的遥控系统的一种结构示意图。该系统包括:遥控器801和电子设备802;

遥控器801,用于获取按键值,以约定的第一密钥对所述按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串,将第一加密串发送至电子设备802;

电子设备802,用于接收遥控器801发送的第一加密串,以第一密钥对第一加密串进行解密,获得第一信息串,从第一信息串中获取上述按键值、遥控器标识和计数索引,当自身存储的上述遥控器标识对应的计数索引与获取的计数索引匹配时,响应所述按键值,并更新所述遥控器标识对应的计数索引,以所述第一密钥对更新后的计数索引进行加密,获得第二加密串,将所述第二加密串发送至所述遥控器801;

遥控器801,用于接收电子设备802发送的第二加密串,以第一密钥对第二加密串进行解密,获得第二信息串,从第二信息串中获取更新后的计数索引。

在图8所示实施例的一种实施方式中,遥控器801,还用于生成第一密钥和第二密钥,并以第二密钥对第一密钥进行加密,获得第三加密串,将第三加密串发送至电子设备802;

电子设备802,还用于接收遥控器801发送的第三加密串,生成第三密钥,以第三密钥对第三加密串进行加密,获得第四加密串,并将第四加密串发送至遥控器801;

遥控器801,还用于接收电子设备802发送的第四加密串,以第二密钥对第四加密串进行解密,获得第三信息串,将第三信息串发送至电子设备802;

电子设备802,还用于接收遥控器801发送的第三信息串,以第三密钥对第三信息串进行解密,获得第四信息串,并从第四信息串中获取用于数据加密、解密的第一密钥。

在图8所示实施例的一种实施方式中,遥控器801,具体可以用于以第二密钥对第一密钥和第一参数进行加密,获得第三加密串,第一参数包括遥控器的遥控器标识;

电子设备802,还用于从第四信息串中获取用于信息处理的第一参数。

在图8所示实施例的一种实施方式中,第一参数可以包括遥控器的按键数量;电子设备802,具体可以用于根据遥控器的按键数量,识别按键值。

在图8所示实施例的一种实施方式中,电子设备802,还用于在获得第一密钥之后,以第一密钥对第二参数进行加密,获得第五加密串,将第五加密串发送至遥控器801,第二参数包括:与遥控器801的遥控器标识对应的计数索引;

遥控器801,还用于在将第三信息串发送至电子设备802之后,在获取按键值之前,接收电子设备802发送的第五加密串,以第一密钥对第五加密串进行解密,获得第五信息串,从第五信息串中获取用于信息处理的第二参数。

在图8所示实施例的一种实施方式中,电子设备801,还用于生成第一密钥和第二密钥,以第二密钥对第一密钥进行加密,获得第三加密串,将第三加密串发送至遥控器801;

遥控器801,还用于接收电子设备发送的第三加密串,生成第三密钥,以第三密钥对第三加密串进行加密,获得第四加密串,并将第四加密串发送至电子设备;

电子设备802,还用于接收遥控器发送的第四加密串,以第二密钥对第四加密串进行解密,获得第三信息串,将第三信息串发送至遥控器801;

遥控器801,还用于接收电子设备802发送的第三信息串,以第三密钥对第三信息串进行解密,获得第四信息串,从第四信息串中获取用于数据加密、解密的第一密钥。

在图8所示实施例的一种实施方式中,第一密钥包括第一部分的m字节数据和第二部分的m字节数据,第一部分的m字节数据为:各字节数据分别与上述m取余后余数互不相同的数据。

在图8所示实施例的一种实施方式中,遥控器801,具体用于按照预设的第一排列顺序,将上述按键值、遥控器标识和存储的计数索引进行排列,获得待加密数据,以上述m字节为划分单位,将待加密数据划分成数据段,从第一密钥的第一部分中确定与每一个数据段中的各个字节数据对应的移位因子,从第一密钥的第二部分中确定与每一个数据段中的各个字节数据对应的异或因子,根据确定的移位因子和异或因子,对每一个数据段中对应的各个字节数据进行移位处理和异或处理,获得各个处理后的数据段,按照预设的第二排列顺序,对各个处理后的数据段进行排序,获得第一加密串。

在图8所示实施例的一种实施方式中,遥控器801,具体用于获取待加密数据的总字节数量m,判断上述m是否为上述m的整数倍,如果否,则确定d字节个数据,将d字节个数据填充至待加密数据中的指定位置,d是根据以下公式确定的:d=m-(mmodm);其中,mod为取余运算符号,以m字节为划分单位,将填充数据后的待加密数据划分成数据段。

由上述内容可知,本实施例可以以约定的第一密钥对按键值、遥控器标识和存储的计数索引进行加密和解密,在电子设备确定自身存储的计数索引与获取的计数索引匹配时,更新计数索引,并将更新的计数索引以加密的形式发送至遥控器,以使遥控器获取更新后的计数索引。可见本实施例以密文形式发送遥控器标识和计数索引,而非明文,能够提高遥控过程信息的安全性。同时,电子设备更新计数索引之后,以密文形式将更新后的计数索引发送至遥控器,这样便可以随机地更新计数索引,而不是每次按键都固定地加1,从而可以使计数索引的安全性更高。

图9为本申请实施例提供的遥控器的一种结构示意图。该遥控器包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信;

存储器903,用于存放计算机程序;

处理器901,用于执行存储器903上所存放的程序时,实现本申请实施例提供的电子设备的遥控方法。该方法包括:

获取按键值;

以约定的第一密钥对所述按键值、遥控器标识和存储的计数索引进行加密,获得第一加密串;

将第一加密串发送至电子设备,以使电子设备从第一信息串中获取按键值、遥控器标识和计数索引,并在确定电子设备自身存储的上述遥控器标识对应的计数索引与获取的计数索引匹配时响应上述按键值,第一信息串为:电子设备以第一密钥对接收的第一加密串进行解密后得到的信息串;

接收电子设备发送的第二加密串,所述第二加密串为:电子设备以第一密钥对更新后的计数索引进行加密后得到的加密串;更新后的计数索引为:电子设备在确定自身存储的遥控器标识对应的计数索引与获得的计数索引匹配时对遥控器标识对应的计数索引更新得到的;

以第一密钥对第二加密串进行解密,获得第二信息串,从第二信息串中获取更新后的计数索引。

上述遥控器提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述遥控器与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

由上述内容可知,本实施例可以以约定的第一密钥对按键值、遥控器标识和存储的计数索引进行加密和解密,在电子设备确定自身存储的计数索引与获取的计数索引匹配时,更新计数索引,并将更新的计数索引以加密的形式发送至遥控器,以使遥控器获取更新后的计数索引。可见本实施例以密文形式发送遥控器标识和计数索引,而非明文,能够提高遥控过程信息的安全性。同时,电子设备更新计数索引之后,以密文形式将更新后的计数索引发送至遥控器,这样便可以随机地更新计数索引,而不是每次按键都固定地加1,从而可以使计数索引的安全性更高。

图10为本申请实施例提供的电子设备的一种结构示意图。该电子设备包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信;

存储器1003,用于存放计算机程序;

处理器1001,用于执行存储器1003上所存放的程序时,实现本申请实施例提供的电子设备的遥控方法。该方法包括:

接收遥控器发送的第一加密串,第一加密串为:遥控器以约定的第一密钥对获取的按键值、遥控器标识和存储的计数索引进行加密后得到的加密串;

以第一密钥对第一加密串进行解密,获得第一信息串,从第一信息串中获取按键值、遥控器标识和计数索引;

当自身存储的上述遥控器标识对应的计数索引与获取的计数索引匹配时,响应上述按键值,并更新上述遥控器标识对应的计数索引;

以第一密钥对更新后的计数索引进行加密,获得第二加密串;

将第二加密串发送至遥控器,以使遥控器从第二信息串中获取更新后的计数索引,第二信息串为:遥控器以第一密钥对接收的第二加密串进行解密后得到的信息串。

由上述内容可知,本实施例可以以约定的第一密钥对按键值、遥控器标识和存储的计数索引进行加密和解密,在电子设备确定自身存储的计数索引与获取的计数索引匹配时,更新计数索引,并将更新的计数索引以加密的形式发送至遥控器,以使遥控器获取更新后的计数索引。可见本实施例以密文形式发送遥控器标识和计数索引,而非明文,能够提高遥控过程信息的安全性。同时,电子设备更新计数索引之后,以密文形式将更新后的计数索引发送至遥控器,这样便可以随机地更新计数索引,而不是每次按键都固定地加1,从而可以使计数索引的安全性更高。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1