一种解密方法及装置与流程

文档序号:18034781发布日期:2019-06-28 23:09阅读:160来源:国知局
一种解密方法及装置与流程

本发明涉及汽车电子技术领域,尤其涉及一种解密方法及装置。



背景技术:

由于遥控门禁系统(romotekeylessentry,rke)的便捷性,使得该系统得到越来越多用户的青睐,市面上百分之七十以上的新车安装了rke系统。

为了提高rke系统的安全性,解密算法设计的越来越复杂,相应的,针对密文数据的解密时间也越来越长。另外,出于成本考虑,rke系统的接收机仅设置一个处理器,如仅设置一个cpu(centralprocessingunit,中央处理器),这导致处理器的负载率较高,而且经常发生响应其他任务请求出现较大延时的问题。其中,处理器的负载率是指:处理器在单位时间内被占用的时长与该单位时间的比值。



技术实现要素:

有鉴于此,本发明提供一种解密方法及装置,在不变更rke系统的硬件的前提下,解决现有技术中接收机的处理器负载率较高,且经常发生响应其他任务请求出现较大延时的问题。

为实现上述目的,本发明实施例提供如下技术方案:

一种解密方法,应用于遥控门禁系统的接收机,所述方法包括:

确定n个任务周期,n为大于1的整数;

依次在n个任务周期执行解密任务的相应阶段,以获得明文数据,其中,所述解密任务包括至少两个顺序执行的解密子任务,所述解密任务能够顺次划分为至少两个阶段,所述解密任务的一个阶段对应于一个任务周期;

其中,在任意一个任务周期执行所述解密任务的相应阶段,包括:屏蔽中断,获得缓存数据,确定当前阶段的解密子任务,基于获得的缓存数据执行当前阶段的解密子任务,存储得到的计算结果;在当前任务周期的剩余时间内,开启中断,以便响应除解密请求之外的其他任务请求;其中,在第1个任务周期获得的缓存数据包括原始密文数据和原始密钥数据,在其他任务周期获得的缓存数据为前一任务周期中得到的计算结果。

可选的,在上述解密方法中,在第1个任务周期至第n-1个任务周期中,在存储得到的计算结果之后,还包括:对用于存储计算结果的存储区进行加锁处理;

在第2个任务周期至第n个任务周期中,在获得缓存数据之后,还包括:对用于存储计算结果的存储区进行解锁处理。

可选的,在上述解密方法中,将在所述n个任务周期中得到的计算结果存储至不同的存储空间。

可选的,在上述解密方法中,所述确定当前阶段的解密子任务,包括:从预先配置的任务调度表中获得当前阶段的解密子任务。

可选的,在上述解密方法中,所述确定当前阶段的解密子任务,包括:

根据当前任务周期的时长以及未处理的解密子任务所需的解密时长,在未处理的解密子任务中顺次选择至少一个解密子任务作为当前阶段的解密子任务,其中,顺次选择的至少一个解密子任务所需的解密总时长小于当前任务周期的时长。

另一方面,本发明还提供一种解密装置,应用于遥控门禁系统的接收机,所述解密装置包括:

任务周期确定单元,用于确定n个任务周期;

解密单元,用于依次在n个任务周期执行解密任务的相应阶段,以获得明文数据,其中,所述解密任务包括至少两个顺序执行的解密子任务,所述解密任务能够顺次划分为至少两个阶段,所述解密任务的一个阶段对应于一个任务周期;所述解密单元在任意一个任务周期执行所述解密任务的相应阶段,包括:屏蔽中断,获得缓存数据,确定当前阶段的解密子任务,基于获得的缓存数据执行当前阶段的解密子任务,存储得到的计算结果;在当前任务周期的剩余时间内,开启中断,以便响应除解密请求之外的其他任务请求;其中,在第1个任务周期获得的缓存数据包括原始密文数据和原始密钥数据,在其他任务周期获得的缓存数据为前一任务周期中得到的计算结果。

可选的,在上述解密装置中,所述解密单元还用于:

在第1个任务周期至第n-1个任务周期中,在存储得到的计算结果之后,对用于存储计算结果的存储区进行加锁处理;

在第2个任务周期至第n个任务周期中,在获得缓存数据之后,对用于存储计算结果的存储区进行解锁处理。

可选的,在上述解密装置中,所述解密单元将在所述n个任务周期中得到的计算结果存储至不同的存储空间。

可选的,在上述解密装置中,所述解密单元确定当前阶段的解密子任务,具体为:从预先配置的任务调度表中获得当前阶段的解密子任务。

可选的,在上述解密装置中,所述解密单元确定当前阶段的解密子任务,具体为:

根据当前任务周期的时长以及未处理的解密子任务所需的解密时长,在未处理的解密子任务中顺次选择至少一个解密子任务作为当前阶段的解密子任务,其中,顺次选择的至少一个解密子任务所需的解密总时长小于当前任务周期的时长。

由此可见,本发明的有益效果为:

本发明公开的解密方法,将解密任务划分为至少两个阶段,并设定相应数量的任务周期,接收机的处理器在一个任务周期内执行解密任务的相应阶段,也就是说,对解密任务进行分解,优化解密算法执行的时间复杂度,长任务周期的复杂逻辑被有效分解,因此,能够在不变更rke系统的硬件的前提下,降低解密过程中处理器的负载率;另外,在每个任务周期内,处理器在执行解密任务的相应阶段后,能够响应其他任务请求,与现有技术中处理器完成整个解密任务后再响应其他任务请求相比,本发明中的处理器能够较快地响应其他任务请求,使得rke系统具有较好的实时性。

附图说明

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

图1为本发明公开的一种解密方法的流程图;

图2为本发明公开的一种解密装置的结构示意图。

具体实施方式

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

在本发明中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

下面对本发明中出现的术语进行说明:

rke:remotekeylessentry,遥控门禁系统;

aes:advancedencryptionstandard,是用于加密的一种高级加密标准;

eeprom:electrically-erasableprogrammableread-onlymemory,全称电子抹除式可复写只读存储器;

ram:randomaccessmemory,随机存取存储器。

本发明实施例提供了一种解密方法,该方法应用于遥控门禁系统的接收机,该解密方法包括:

确定n个任务周期,其中,n为大于1的整数。

依次在n个任务周期执行解密任务的相应阶段,以获得明文数据。

其中,该解密任务包括至少两个顺序执行的解密子任务,该解密任务能够顺次划分为至少两个阶段,该解密任务的一个阶段对应于一个任务周期。

其中,在任意一个任务周期执行解密任务的相应阶段,包括:屏蔽中断,获得缓存数据,确定当前阶段的解密子任务,基于获得的缓存数据执行当前阶段的解密子任务,存储得到的计算结果。在当前任务周期的剩余时间内,开启中断,以便响应除解密请求之外的其他任务请求。其中,在第1个任务周期获得的缓存数据包括原始密文数据和原始密钥数据,在其他任务周期获得的缓存数据为前一任务周期中得到的计算结果。

需要说明的是,每一任务周期的时长都大于解密任务的相应阶段所需的解密时长。

本发明中,在一个任务周期中,首先执行解密任务的相应阶段,在当前任务周期的剩余时间内,处理器开启中断,以便响应除解密请求之外的其他任务请求。

下面以确定3个任务周期为例,对本发明公开的解密方法进行说明。参见图1,图1示出了本发明公开的一种解密方法,该解密方法包括:

步骤s101:确定3个任务周期。

步骤s102:在第1个任务周期内,屏蔽中断,获得缓存数据,确定第1阶段的解密子任务,基于获得的缓存数据执行第1阶段的解密子任务,存储得到的计算结果。

其中,在第1个任务周期获得的缓存数据包括:原始密文数据和原始密钥数据。

步骤s103:在第1个任务周期的剩余时间内,开启中断,以便响应除解密请求之外的其他任务请求。

步骤s104:在第2个任务周期内,屏蔽中断,获得缓存数据,确定第2阶段的解密子任务,基于获得的缓存数据执行第2阶段的解密子任务,存储得到的计算结果。

其中,在第2个任务周期获得的缓存数据为在第1个任务周期中得到的计算结果。

步骤s105:在第2个任务周期的剩余时间内,开启中断,以便响应除解密请求之外的其他任务请求。

步骤s106:在第3个任务周期内,屏蔽中断,获得缓存数据,确定第3阶段的解密子任务,基于获得的缓存数据执行第3阶段的解密子任务,得到明文数据。

其中,在第3个任务周期获得的缓存数据为在第2个任务周期中得到的计算结果。

步骤s107:在第3个任务周期的剩余时间内,开启中断,以便响应除解密请求之外的其他任务请求。

本发明公开的解密方法,将解密任务划分为至少两个阶段,并设定相应数量的任务周期,接收机的处理器在一个任务周期内执行解密任务的相应阶段,也就是说,对解密任务进行分解,优化解密算法执行的时间复杂度,长任务周期的复杂逻辑被有效分解,因此,能够在不变更rke系统的硬件的前提下,降低解密过程中处理器的负载率;另外,在每个任务周期内,处理器在执行解密任务的相应阶段后,能够响应其他任务请求,与现有技术中处理器完成整个解密任务后再响应其他任务请求相比,本发明中的处理器能够较快地响应其他任务请求,使得rke系统具有较好的实时性。

可选的,在第1个任务周期至第n-1个任务周期中,在存储得到的计算结果之后,还包括:对用于存储计算结果的存储区进行加锁(lock)处理。相应的,在第2个任务周期至第n个任务周期中,在获得缓存数据之后,还包括:对用于存储计算结果的存储区进行解锁(unlock)处理。

其中,对存储区的加锁处理是指对存储区施加访问限制,对存储区进行解锁处理是指解除对存储区的访问限制。

通过对用于存储计算结果的存储区进行加锁处理和解锁处理,能够保证解密过程不被中断任务打断,保证解密逻辑正常运行。

可选的,预先将解密任务划分为至少两个阶段,其中解密任务的每个阶段包括一个或多个解密子任务,将解密任务的各个阶段以及各个阶段包含的解密子任务对应存储于任务调度表中,也就是说,任务调度表包含解密任务的各个阶段与各个阶段包含的解密子任务的对应关系。在每个任务周期中,确定当前阶段的解密子任务,具体为:从预先配置的任务调度表中获得当前阶段的解密子任务。

另外,在每个任务周期中,确定当前阶段的解密子任务还可以采用其他方式。解密任务包括至少两个顺序执行的解密子任务,并且每个解密子任务所需的解密时长是已知的。在每个任务周期的初始时刻,根据当前任务周期的时长以及未处理的解密子任务所需的解密时长,在还未处理的解密子任务中顺次选择一个或多个解密子任务作为当前阶段的解密子任务。需要说明的是,在还未处理的解密子任务中顺次选择的一个或多个解密子任务所需的解密总时长小于当前任务周期的时长。

在本发明公开的解密方法中,在n个任务周期中得到的计算结果,可以存储于相同的存储空间,也可以存储至不同的存储空间。

在一个实施例中,将在n个任务周期中得到的计算结果存储至相同的存储空间。那么在最后一个任务周期完成后,该存储空间存储的是明文数据,在其他任务周期中得到的计算结果被覆盖,这样能够减少存储空间的使用。

在另一个实施例中,将在n个任务周期中得到的计算结果存储至不同的存储空间。也就是说,在每个任务周期中得到的计算结果均被存储至指定的存储空间,不会被在其他任务周期中得到的计算结果覆盖,如果出现解密失败的情况,用户通过查看在各个任务周期中得到的计算结果,能够确定导致解密失败的具体原因。

下面以aes算法为例,对本发明公开的解密方法进行说明:

当遥控门禁系统的接收机接收到遥控器发送的密文数据后,对接收到的密文数据进行缓存,防止密文数据被下一帧数据更新,从而保持解密过程的完整性。例如接收机将接收到的密文数据存储于eeprom,即将原始密文数据存储于eeprom。另外,遥控门禁系统的接收机中存储有原始密钥数据。

将任务周期设置为4。将aes算法的解密过程划分成4个阶段,并将4个阶段的解密子任务存储至任务调度表中。

在第一任务周期内,执行以下操作:

屏蔽中断,获得原始密文数据和原始密钥数据,从预先配置的任务调度表中获取第一阶段的解密子任务,第一阶段的解密子任务依次为:轮密钥加运算、逆字节代换运算、逆行移位运算、逆列混合运算以及轮密钥加运算。处理器依次执行上述的解密子任务,将得到的计算结果存储至指定地址单元steprkedata[0]和stepkey[0]中,并进行加锁处理,保护计算结果。开启中断,当接收到其他任务请求时,响应其他的任务请求。

其中,steprkedata[0]存储的是第一任务周期内得到的解密数据,stepkey[0]存储的是第一任务周期内得到的扩展密钥数据。

在第二任务周期内,执行以下操作:

屏蔽中断,从指定地址单元steprkedata[0]和stepkey[0]读取第一任务周期内得到的解密数据和扩展密钥数据,进行解锁操作,从预先配置的任务调度表中获取第二阶段的解密子任务,第二阶段的解密子任务依次为:逆字节代换运算、逆行移位运算、逆列混合运算以及轮密钥加运算。处理器依次执行上述的解密子任务,将得到的计算结果存储至指定地址单元steprkedata[1]和stepkey[1]中,并进行加锁处理,保护计算结果。开启中断,当接收到其他任务请求时,响应其他的任务请求。

其中,steprkedata[1]存储的是第二任务周期内得到的解密数据,stepkey[1]存储的是第二任务周期内得到的扩展密钥数据。

在第三任务周期内,执行以下操作:

屏蔽中断,从指定地址单元steprkedata[1]和stepkey[1]读取第二任务周期内得到的解密数据和扩展密钥数据,进行解锁操作,从预先配置的任务调度表中获取第三阶段的解密子任务,第三阶段的解密子任务依次为:逆字节代换运算、逆行移位运算、逆列混合运算以及轮密钥加运算。处理器依次执行上述的解密子任务,将得到的计算结果存储至指定地址单元steprkedata[2]和stepkey[2]中,并进行加锁处理,保护计算结果。开启中断,当接收到其他任务请求时,响应其他的任务请求。

其中,steprkedata[2]存储的是第三任务周期内得到的解密数据,stepkey[2]存储的是第三任务周期内得到的扩展密钥数据。

在第四任务周期内,执行以下操作:

屏蔽中断,从指定地址单元steprkedata[2]和stepkey[2]读取第三任务周期内得到的解密数据和扩展密钥数据,进行解锁操作,从预先配置的任务调度表中获取第四阶段的解密子任务,第四阶段的解密子任务依次为:逆字节代换运算、逆行移位运算以及轮密钥加运算。处理器依次执行上述的解密子任务,得到解密结果,即得到明文数据,保存明文数据。开启中断,当接收到其他任务请求时,响应其他的任务请求。

实施中,在得到明文数据后,基于明文数据进行验证,如果验证通过,则rke系统执行与遥控器的按键信息对应的动作,如开启门窗动作、关闭门窗动作、开启门锁动作和关闭门锁动作。

其中一种验证方式为:遥控器向接收机同时发送密文数据和明文数据,接收机对密文数据进行解密得到明文数据后,对比解密得到的明文数据和接收到的明文数据中对应域,如果两者一致,则确定通过验证,如果两者不一致,则确定验证不通过。

另一种验证方式为:遥控器向接收器同时发送密文数据和校验数据,该校验数据是明文数据中特定位置的数据,接收机对密文数据进行解密得到明文数据后,比较解密得到的明文数据的特定位置与该校验数据,如果两者一致,则确定通过验证,如果两者不一致,则确定验证不通过。

申请人以aes算法为例,分别利用现有的解密方法和本发明公开的解密方法进行对比试验,试验结果如下:

在现有的解密方法中,一个任务周期为10ms,处理器在一个任务周期内完成整个解密操作,处理器完成整个解密操作的时间为8ms,并且处理器在进行解密操作的过程中一直处于屏蔽中断的状态,不响应其他任务请求。

在本发明公开的解密方法中,一个任务周期为10ms,处理器在四个任务周期内完成整个解密操作,在每个任务周期内,处理器执行相应解密子任务的时长为5ms,在每个任务周期的剩余5ms内,处理器开启中断,能够响应其他任务请求。并且,在单一任务周期内,处理器的负载率降低了30%。

本发明上述公开的解密方法,相应的,本发明还公开解密装置。下文中关于解密装置的描述与上文中关于解密方法的描述,可以相互参考。

参见图2,图2为本发明公开的一种解密装置的结构示意图。该解密装置200应用于遥控门禁系统的接收机,包括:

任务周期确定单元201,用于确定n个任务周期。

解密单元202,用于依次在n个任务周期执行解密任务的相应阶段,以获得明文数据。

其中,解密任务包括至少两个顺序执行的解密子任务,解密任务能够顺次划分为至少两个阶段,解密任务的一个阶段对应于一个任务周期。解密单元在任意一个任务周期执行解密任务的相应阶段,包括:屏蔽中断,获得缓存数据,确定当前阶段的解密子任务,基于获得的缓存数据执行当前阶段的解密子任务,存储得到的计算结果;在当前任务周期的剩余时间内,开启中断,以便响应除解密请求之外的其他任务请求;其中,在第1个任务周期获得的缓存数据包括原始密文数据和原始密钥数据,在其他任务周期获得的缓存数据为前一任务周期中得到的计算结果。

本发明上述公开的解密装置,通过任务周期确定单元确定n个任务周期,再通过解密单元依次在n个任务周期执行解密任务的相应阶段,以获得明文数据。也就是说,对解密任务进行分解,优化解密算法执行的时间复杂度,长任务周期的复杂逻辑被有效分解,因此,能够在不变更rke系统的硬件的前提下,降低解密过程中处理器的负载率;另外,在每个任务周期内,处理器在执行解密任务的相应阶段后,能够响应其他任务请求,与现有技术中处理器完成整个解密任务后再响应其他任务请求相比,本发明中的处理器能够较快地响应其他任务请求,使得rke系统具有较好的实时性。

优选的,该解密单元202还用于:

在第1个任务周期至第n-1个任务周期中,在存储得到的计算结果之后,对用于存储计算结果的存储区进行加锁处理。

在第2个任务周期至第n个任务周期中,在获得缓存数据之后,对用于存储计算结果的存储区进行解锁处理。

通过对用于存储计算结果的存储区进行加锁处理和解锁处理,能够保证解密过程不被中断任务打断,保证解密逻辑正常运行。

优选的,该解密单元202将在n个任务周期中得到的计算结果存储至不同的存储空间。

也就是说,在每个任务周期中得到的计算结果均被存储至指定的存储空间,不会被在其他任务周期中得到的计算结果覆盖,如果出现解密失败的情况,用户通过查看在各个任务周期中得到的计算结果,能够确定导致解密失败的具体原因。

作为一个示例,预先将解密任务划分为至少两个阶段,其中解密任务的每个阶段包括一个或多个解密子任务,将解密任务的各个阶段以及各个阶段包含的解密子任务对应存储于任务调度表中,也就是说,任务调度表包含解密任务的各个阶段与各个阶段包含的解密子任务的对应关系。在上述公开的解密装置中,解密单元202确定当前阶段的解密子任务,具体为:从预先配置的任务调度表中获得当前阶段的解密子任务。

作为另一个示例,在上述公开的解密装置中,解密单元202确定当前阶段的解密子任务,具体为:根据当前任务周期的时长以及未处理的解密子任务所需的解密时长,在未处理的解密子任务中顺次选择至少一个解密子任务作为当前阶段的解密子任务,其中,顺次选择的至少一个解密子任务所需的解密总时长小于当前任务周期的时长。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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