一种用于通信认证的加密解密方法与流程

文档序号:11778454阅读:443来源:国知局
一种用于通信认证的加密解密方法与流程

本发明涉及通讯技术领域,特别是涉及一种用于通信认证的加密解密方法。



背景技术:

目前,只有个别主机厂有自己专门的遥控钥匙认证算法,这些算法一般都是主机厂内部算法,很难得到相关的信息,除此之外,大多数主机厂都是采用一些行业内公认的算法进行遥控钥匙的加密解密认证,主流的算法包括以下几种:

1.keeloq滚码加密算法

keeloq技术是滚码加密技术。用keeloq滚码加密算法对原始代码进行加密,能够产生高度保密的滚动码。由于每次传送的代码都不一样,绝不会重复,所以即使有相同的原始代码,也无法对密码进行破译,因为代码随着传输时间的不同而不同,所以传统的非法入侵手段(如截取、扫描等)都变得毫无意义。keeloq技术作为一种保密的高新技术,是一种多变化、抗截获、安全可靠的跳码加密解密技术。

但是,microchip公司的基于硬件加密的技术,随着人们对车辆安全性能要求的不断提高,缺陷也逐渐显露出来,主要表现在以下几个方面:

(1)硬件加密使得系统升级和扩展功能较难;

(2)数据传输效率相对比较低;

(3)成本较高,易受攻击。

2.des算法

des算法有key、data、mode三个入口参数。其中key为8个字节共64位,有效位为56位,是des算法的工作密钥;data也为8个字节64位,是要被加密或被解密的数据;mode为des的工作方式,有加密或解密两种。des算法综合使用多种密码技术,其中主要为字符的置换和扰乱。该算法的主要特点就是加密速度快,安全性较高。相比其他加密算法,在加密大量数据上有很大优势。除了穷举法之外还没有什么有效方法破解。

然而,随着技术的发展,des技术受到越来越多的挑战,由于des技术只有64位密钥,已经有人用穷举法在不到一天的时间里就可以破译des密码,des密码的破译宣告des时代的终结。所以,des有一个致命的缺陷,那就是密钥管理。由于des采用的是单密钥加密,而且密钥长度只有56比特。因此通常情况下都采用在通信前就对密钥进行秘密分配,并且对不同的对象,使用不同的密钥。这大大增加了系统额外的开销。

3.aes算法

aes算法,又称为rijndael算法,它以其简洁、高效、安全的特点,适合于汽车遥控钥匙这种控制器资源较少的应用环境。aes算法所能支持的密钥长度可以为128位、192位或256位,一方面密钥位数比较长,另一方面加密过程复杂,使得该算法难于破解,成为数据加密领域的主流。

aes算法包含轮变换算法和密钥扩展算法。轮变换算法由字节代替变换、行移位变换、列混合变换、与扩展密钥异或运算组成,当nk=4和nb=4时,迭代圈数为10,其中前9轮变换与最后一轮变换有所不同。aes算法加密过程如下:128位明文与128位密钥执行异或运算后,进入字节代替变换、行移位变换、列混合变换,将得到结果与扩展密钥进行异或操作,以上称为一个循环,如此反复9次,每一次的扩展密钥都不相同,9次循环过后将结果再执行一次字节代替变换和行移位变换,最后与第10次扩展密钥(与前9次不同)执行异或运算,得到128位密文。

不过,为了保证算法的安全性,aes算法涉及的运算量较大,需要的存储空间更大,对于芯片的要求更高。同时,aes是全球公开公认的高级加密算法,对于一些安全性要求不是很高的系统,没必要采用aes算法。另外,此算法为公开算法,不适合主机厂推广为内部通用化算法。



技术实现要素:

本发明的目的是要提供一种用于通信认证的加密解密方法,以确保加密算法的安全性与解密算法的可行性。

本发明的另一个目的是要解决现有技术中的加密解密算法的系统扩展困难以及密钥管理困难或是存储空间要求大而无法推广到企业通用化算法中的问题。

特别地,本发明提供了一种用于通信认证的加密解密方法,用于保证遥控钥匙与车辆远程认证时传输数据的安全性,所述加密解密方法包括:

s10.响应加密解密程序的密钥请求,以根据所述密钥请求对所述加密解密程序进行认证;

s20.认证通过后启动所述加密解密程序;

s30.输入一明文分组和一密钥,并将所述明文分组复制到一矩阵中,获取初始矩阵state1,通过对所述初始矩阵state1进行加密的运算得到最终的状态矩阵state,并根据所述状态矩阵state输出一密文分组,以对数据进行加密;

s40.通过查表运算以及对加密过程的逆变换实现对数据的解密。

进一步地,所述加密或解密操作的步骤包括:

s300.对所述初始矩阵state1进行取反,获得矩阵state2,并将所述矩阵state2与第一轮密钥进行轮密钥加运算,获得矩阵state3;

s400.根据自定义替换表对所述矩阵state3进行加密迭代运算,直至迭代总值循环结束,其中,所述迭代总值由所述密钥的长度确定;

s500.在所述迭代总值循环结束后,得到最终的状态矩阵state,并根据所述最终的状态矩阵state输出相应的密文分组。

进一步地,所述步骤s400的加密迭代步骤包括:

s401.利用所述自定义替换表对所述矩阵state3进行替换,得到矩阵state4;

s402.对所述state4进行初等行变换,得到矩阵state5,再对所述矩阵state5进行初等列变换,得到矩阵state6;

s403.对所述矩阵state6进行可逆变换,得到矩阵state7,并将所述矩阵state7与下一轮密钥进行轮密钥加,返回步骤s401。

进一步地,所述步骤s403的所述可逆变换为线性可逆变换,其包括状态转移矩阵,所述可逆变换过程为:

所述状态转移矩阵与所述矩阵state6做乘法运算得到矩阵state7;

其中,所述状态转移矩阵的组成元素由00,01,02和03组成。

进一步地,所述步骤s400的所述自定义替换表的定义规则为按照预设定的方式或按照随机的方式制定,以确保加密迭代数据的安全性。

进一步地,所述车辆的遥控钥匙系统包括接收控制器,所述接收控制器加载有密钥服务程序,根据所述密钥请求对加密解密程序进行认证包括:

s100.请求程序向密钥服务程序发送密钥请求,所述密钥服务程序产生随机数,并将产生的所述随机数发送至请求程序;

s101.所述请求程序根据第一密钥数据对所述随机数进行加密,并将所述加密的数据发送至所述密钥服务程序;

s102.所述密钥服务程序根据第二密钥数据对所述加密的数据进行解密,并将所述解密的数据与所述随机数进行比较,

其中,若所述解密的数据和所述随机数一致,则认证成功,否则,认证失败;

s103.根据认证结果确定是否发送密钥请求,若认证成功,则发送,否则不发送

进一步地,第一密钥数据和第二密钥数据为相同的密钥数据。

进一步地,在所述s102中,所述密钥服务程序根据第二密钥数据对所述加密的数据进行解密,

若认证成功,则将所述第二密钥数据发送给所述请求程序,并启动所述加密解密程序;

若认证失败,则不会将所述第二密钥数据发送给所述请求程序,以不启动所述加密解密程序。

进一步地,所述第一轮密钥由所述初始密钥通过密钥扩展算法正向扩展生成;

所述下一轮密钥由所述加密迭代过程中的上一轮密钥通过所述密钥扩展算法正向扩展生成。

本发明的有益效果可以为:

首先,所述加密解密程序通过密钥对数据进行加密或解密操作的过程中,在迭代的循环次数内根据自定义替换表替换所述矩阵state3,并将替换后得到的矩阵state4进行初等行列变换得到矩阵state6,再对矩阵state6进行线性可逆变换得到矩阵state7,与下一轮密钥进行轮密钥加,如此循环迭代以实现加密迭代的运算。其中,由于矩阵state7是由矩阵state6进行线性可逆变换得到,而在可逆变换中,可逆矩阵选择由00,01,02和03元素构成的状态转移矩阵,且该状态转移矩阵不可以为特殊矩阵或单位矩阵,如此,与现有技术加密解密的方案相比,一方面,本发明加密解密算法的方案可以保证加密之后的数据能够实现解密操作的同时,还能够确保加密数据的安全性;另一方面,由简单元素组成的可逆矩阵可以简化加密运算的过程,从而能够提高加密运算的效率。

其次,由于自定义替换表的制定规则按照预设定的方式或按照随机的方式制定,而该制定规则只限于企业的内部,即在该企业不公开的情况下,消费者或其他企业无法得到该自定义替换表的制定规则,从而无从得知具体的加密或解密的操作过程,因此,所述加密解密算法能够确保数据传输的安全性,以确保企业内部技术信息能够有效得到保护。

再者,可以将本发明的用于通信认证的加密解密方法进行统一定义并推广到车辆遥控钥匙的平台上,不仅可以保证车辆认证的安全性,而且对企业来说可以提高研究人员的研发效率,从而可以缩短产品的开发周期,降低开发成本,同时能够提高研究人员将理论研究应用到实际工作中的能力,对于企业的长远发展产生很大的影响。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:

图1是根据本发明一个实施例的车辆遥控系统的示意性结构图;

图2是根据本发明一个实施例的加密解密方法的示意性流程图;

图3是根据本发明一个实施例的加密或解密的示意性流程图;

图4是根据图1所示的步骤s400中加密迭代算法的示意性流程图;

图5是根据本发明一个实施例的自定义替换表;

图6是根据本发明另一个实施例的数值字节查询表。

具体实施方式

在通讯领域中,安全和保密功能已经成为消费者日益关注的问题,车辆中不断增加的通信应用使得安全和保密功能被集成到更广泛的汽车平台中。车辆的遥控钥匙系统一般由一个安装在车辆上的接收控制器和一个由用户携带的发射器即无限遥控车门钥匙组成,发射器一般处于关闭状态,当按下按钮或需要发送数据时才工作,此时为单向通信状态。图1是根据本发明一个实施例的车辆遥控系统的示意性结构图,所述系统一般可包括安装在车身控制器或防盗控制器处的接收控制器11和用户可以随身携带的收发控制器22,该收发控制器22既可以发送数据,又可以接收数据,其中,接收控制器11可以由微控制器1、低频(lf)器件2、高频无线电波(uhf)接收器3、按钮4和led指示灯5等人机接口器件组成,收发控制器22可由微控制器6、射频控制器7、按钮8和led9等人机接口器件组成。收发控制器22通过无线电装置向接收控制器11发送编码10(uhf发送响应),在接收控制器11接收到加密编码10后,启动密钥服务程序执行挑战/应答认证;认证成功后,密钥存于内存供加密解密程序使用,加密解密程序加载于收发控制器22中,密钥服务程序加载于接收控制器11中,所述加密解密程序和密钥服务程序通过射频控制器7自动进行加密解密通讯认证,即完成加密或解密过程。

图2为根据本发明一个实施例的加密解密方法的示意性流程图,以保证遥控钥匙与车辆远程认证时传输数据的安全性。所述加密解密方法一般可以包括:

s10.响应加密解密程序的密钥请求,以根据所述密钥请求对所述加密解密程序进行认证;

s20.认证通过后启动所述加密解密程序;

s30.输入一明文分组和一密钥,并将所述明文分组复制到一矩阵中,获取初始矩阵state1,通过对所述初始矩阵state1进行加密的运算得到最终的状态矩阵state,并根据所述状态矩阵state输出一密文分组,以对数据进行加密;

s40.在数据解密的方法中,可以通过查表运算以及对加密过程的逆变换来实现对所述数据的解密。

如图3所示,加密或解密可以包括如下操作步骤:

s300.对所述初始矩阵state1进行取反,获得矩阵state2,并将所述矩阵state2与第一轮密钥进行轮密钥加运算,获得矩阵state3;

s400.根据自定义替换表对所述矩阵state3进行加密迭代运算,直至迭代总值循环结束,其中,所述迭代总值由所述密钥的长度确定;

s500.在所述迭代总值循环结束后,得到最终的状态矩阵state,并根据所述最终的状态矩阵state输出相应的密文分组。

如图4所示,初始迭代值i为1,步骤s400的加密迭代步骤可以包括:

s401.利用所述自定义替换表对所述矩阵state3进行替换,得到矩阵state4;

s402.对所述state4进行初等行变换,得到矩阵state5,再对所述矩阵state5进行初等列变换,得到矩阵state6;

s403.对所述矩阵state6进行可逆变换,得到矩阵state7,并将所述矩阵state7与下一轮密钥进行轮密钥加,迭代值i=i+1。当i不大于迭代总值时,返回步骤s401;当i大于迭代总值时,进入步骤s500。

其中,第一轮密钥由所述初始密钥通过密钥扩展算法正向扩展生成,下一轮密钥由所述加密迭代过程中的上一轮密钥通过所述密钥扩展算法正向扩展生成。

其中,所述步骤s403的所述可逆变换可以为线性可逆变换,即以一可逆矩阵与所述矩阵state6做乘法运算得到矩阵state7,其中,为了保证加密之后的数据可以实现解密操作,所述可逆矩阵选择状态转移矩阵;同时,为了确保加密数据的安全性,该可逆矩阵不可以选择基本的单位矩阵或特殊矩阵;此外,为了可以简化加密运算的过程,该可逆矩阵的组成元素由最简单的数据00,01,02和03构成。对所述矩阵state6进行可逆变换如式1所示:

如此设计,与现有技术加密解密的方案相比,一方面,本发明加密解密算法的方案可以保证加密之后的数据可以实现解密操作的同时,可以确保加密数据的安全性;另一方面,由简单元素组成的可逆矩阵可以简化加密运算的过程,从而可以提高加密运算的效率。

此外,在步骤s401中,利用自定义替换表对矩阵state3进行替换属于非线性变换,以进一步加强加密解密算法的安全性,该自定义替换表的制定规则可以按照预设定的方式或按照随机的方式制定,因此,很难破解该加密解密算法。该加密解密算法可以采用如图5所示的自定义替换表。

由于所述自定义替换表的制定规则可以按照预设定的方式或按照随机的方式制定,而该制定规则只限于企业的内部,即在该企业不公开的情况下,消费者或其他企业无法得到该自定义替换表的制定规则,从而无从得知具体的加密或解密的操作过程,因此,加密解密算法可以保证数据传输的安全性,以确保企业内部技术信息可以得到有效的保护。

在图6的实施例中,为了便于运算以减少运算次数,基于线性运算的分配律公式:

式1的运算可以通过查表的方式,将数值运算转化为查表的方式获得运算结果以得到state7,如图6所示,该数值查询方式可以减少中间运算产生的数据,加快运算速度,在进一步提高加密安全性的同时可以减少数据的运算量和芯片的存储空间。

在图2至图6的实施中,由于所述加密解密方法中除自定义替换表对矩阵state3进行替换属于非线性变换外,其他都可以通过相应的逆变换实现解密,即在得到解密密钥后,通过与所述加密步骤相反的顺序对密文进行相应逆变换即可实现。其中,对于加密算法的字节替换运算可通过查询图5的字节替换表逆推实现,其他的运算都是线性可逆运算,都可以通过相应的逆变换得到具体的数据结果以实现解密运算。

为了可以进一步增强密钥的安全性,密钥服务程序可以对加密解密程序进行通讯认证,即根据密钥请求对加密解密程序进行认证,认证的步骤可以包括,

s100.请求程序向密钥服务程序发送密钥请求,所述密钥服务程序产生随机数,并将产生的随机数发送至请求程序;

s101.请求程序根据第一密钥数据对所述随机数进行加密,并将所述加密的数据发送至所述密钥服务程序;

s102.密钥服务程序根据第二密钥数据对加密的数据进行解密,并将所述解密的数据与随机数进行比较,当所述解密的数据和所述随机数一致时,认证成功,当所述解密的数据和所述随机数一致时,认证失败;

s103.根据认证结果确定是否发送密钥请求,当认证成功时,则可以将所述第二密钥数据发送给所述请求程序,并启动所述加密解密程序;当认证失败时,则不会将所述第二密钥数据发送给所述请求程序,从而不启动所述加密解密程序。

其中,第一密钥数据和第二密钥数据为相同的密钥数据。

将所述加密解密方法进行统一定义并推广到车辆遥控钥匙的平台上,不仅可以保证车辆认证的安全性,而且对企业来说可以提高研究人员的研发效率,从而可以缩短产品的开发周期,降低开发成本,同时可以提高研究人员将理论研究应用到实际工作中的能力,对于企业的长远发展产生很大的影响。

本发明的一种用于通信认证的加密解密方法还可以应用到其他相关的数据保护领域,如发动机防盗认证系统以及智能钥匙远程控制系统等,以对通信认证过程中数据的安全进行保护。

在图1的实施例中,微控制器1和微控制器6可以采用ds89c440或pic18f8490;射频控制器可用max7044或max1479或trf6901。在车辆遥控装置中常使用芯片有freescale(飞思卡尔)的mc9s08qg8,ti的msp430f2121,nxp的pcf7961、pcf7936,microchip的hcs300系列,pic系列,以及nec芯片。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

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