首页> 中国专利> 基于AES-128算法的汽车仪表加解密处理方法和系统

基于AES-128算法的汽车仪表加解密处理方法和系统

摘要

本发明提供了一种基于AES‑128算法的汽车仪表加解密处理方法和系统,包括:字节替代步骤:通过变换函数S‑box进行字节映射,获取对应的开始字节;行移位步骤:对4x4矩阵的内部字节进行置换;列混淆步骤:每个字节对应的值只与该列的4个值有关系,将某个字节所对应的值乘以2,其结果是将该值的二进制位左移一位;轮秘钥加步骤:在加密过程中,将每轮的输入与轮秘钥异或一次;秘钥写入步骤:在完成上述步骤后得到一组秘钥,进行写入保存,格式为字符串。本发明使用简单的矩阵运算加密数据,加密/解密率高。

著录项

  • 公开/公告号CN114978475A

    专利类型发明专利

  • 公开/公告日2022-08-30

    原文格式PDF

  • 申请/专利权人 延锋伟世通汽车电子有限公司;

    申请/专利号CN202210542159.0

  • 发明设计人 郭其勇;

    申请日2022-05-18

  • 分类号H04L9/06(2006.01);H04L9/08(2006.01);

  • 代理机构上海锻创知识产权代理有限公司 31448;

  • 代理人顾继光

  • 地址 201613 上海市松江区美能达路300号

  • 入库时间 2023-06-19 16:36:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-16

    实质审查的生效 IPC(主分类):H04L 9/06 专利申请号:2022105421590 申请日:20220518

    实质审查的生效

说明书

技术领域

本发明涉及仪表加解密技术领域,具体地,涉及一种基于AES-128算法的汽车仪表加解密处理方法和系统。

背景技术

随着新能源汽车的崛起及“互联网+”概念的普及,现在的汽车已经不再局限于行驶功能,智能座舱提供给人们更丰富的功能同时,对汽车安全也提出了更高的需求。如OTA在线升级,以及本地存储数据安全性。

所以越来越多的整车厂开始对数据进行加密处理,目前市面上比较成熟的是通用公司的PEPU加密,大众的FAZITID以及马自达的DaVinci,虽然各个厂家对于数据的处理方式不一样,但算法原理基本相同,本发明描述的是基于AES-128算法原理的汽车仪表加解密算法处理、目前已用在马自达多款电动车上,取得了不错的效果。

专利文献CN109104278A(申请号:CN201811071752.1)公开了一种加密解密方法,包括:(1)、选定待加密明文,经处理器读取明文数据;(2)、使用AES算法对步骤(1)得到的明文数据进行加密,得到加密明文与AES密码;(3)、使用RSA算法对经过步骤(2)得到的AES密码进行加密,同时使用SSL发送连接请求;(4)、经过认证后接受SSL连接请求,并通过SSL连接获取AES密码与RSA密钥;(5)、利用经过步骤(4)得到的AES密码与RSA密钥对加密明文解密。

AES是一个对称分组密码算法,根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128、AES-192和AES-256,本发明根据马自达客户需求,基于cybersecurity的长度选择AES-128满足设计需求,所产生的seed&key通过CAN写入到产品,从而实现芯片内部的数据保护。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种基于AES-128算法的汽车仪表加解密处理方法和系统。

根据本发明提供的基于AES-128算法的汽车仪表加解密处理方法,包括:

字节替代步骤:通过变换函数S-box进行字节映射,获取对应的开始字节;

行移位步骤:对4x4矩阵的内部字节进行置换;

列混淆步骤:每个字节对应的值只与该列的4个值有关系,将某个字节所对应的值乘以2,其结果是将该值的二进制位左移一位;

轮秘钥加步骤:在加密过程中,将每轮的输入与轮秘钥异或一次;

秘钥写入步骤:在完成上述步骤后得到一组秘钥,进行写入保存,格式为字符串。

优选的,所述行位移步骤包括:第一行保持不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节,则矩阵S的表达式为:

S’[i][j]=S[i][(j+i)%4],其中i、j属于[0,3]。

优选的,所述列混淆包括正向混淆与逆向混淆,在列混淆的过程中,如果某个字节所对应的值的最高位为1,则还需将移位后的结果异或00011011,各个值在相加时使用模2加法。

优选的,所述轮秘钥加步骤包括:任何数和自身的异或结果为0,解密时再异或上该轮的密码进行输入恢复。

优选的,每轮的秘钥分别由初始秘钥扩展得到,最初行作为种子,剩余行从种子秘钥产生,变量Nk代表以32位字为单位的种子秘钥长度,秘钥扩展过程为:

将初始秘钥以列为主,转化为4*32bits的字,分别记为w[0…(Nk-1)];

依次求解w[j],其中j是整数并且属于[4,K];其中,K=Nb*(Nr+1),Nb=4,Nr为轮数,128位秘钥对应的Nr=10;

若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]);否则w[j]=w[j-4]⊕w[j-1]。

根据本发明提供的基于AES-128算法的汽车仪表加解密处理系统,包括:

字节替代模块:通过变换函数S-box进行字节映射,获取对应的开始字节;

行移位模块:对4x4矩阵的内部字节进行置换;

列混淆模块:每个字节对应的值只与该列的4个值有关系,将某个字节所对应的值乘以2,其结果是将该值的二进制位左移一位;

轮秘钥加模块:在加密过程中,将每轮的输入与轮秘钥异或一次;

秘钥写入模块:在完成上述步骤后得到一组秘钥,进行写入保存,格式为字符串。

优选的,所述行位移模块包括:第一行保持不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节,则矩阵S的表达式为:

S’[i][j]=S[i][(j+i)%4],其中i、j属于[0,3]。

优选的,所述列混淆包括正向混淆与逆向混淆,在列混淆的过程中,如果某个字节所对应的值的最高位为1,则还需将移位后的结果异或00011011,各个值在相加时使用模2加法。

优选的,所述轮秘钥加模块包括:任何数和自身的异或结果为0,解密时再异或上该轮的密码进行输入恢复。

优选的,每轮的秘钥分别由初始秘钥扩展得到,最初行作为种子,剩余行从种子秘钥产生,变量Nk代表以32位字为单位的种子秘钥长度,秘钥扩展过程为:

将初始秘钥以列为主,转化为4*32bits的字,分别记为w[0…(Nk-1)];

依次求解w[j],其中j是整数并且属于[4,K];其中,K=Nb*(Nr+1),Nb=4,Nr为轮数,128位秘钥对应的Nr=10;

若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]);否则w[j]=w[j-4]⊕w[j-1]。

与现有技术相比,本发明具有如下的有益效果:

本发明通过层层剖析加密的过程,如秘钥预扩展、字节替代、行移位、列混淆和轮秘钥加,最后生成最后的key,然后通过DID将生成的key写入到产品里实现最终的加密目标,本发明使用简单的矩阵运算加密数据,加密/解密率高。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为加密流程图;

图2为密钥扩展流程图;

图3为S-box对应表;

图4为行移位示意图;

图5为实际移位示意图;

图6为列混淆示意图;

图7为列混淆示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

实施例:

如图1,加密过程主要涉及到4个block:字节替代、行移位、列混淆和轮秘钥加,与此同时解密过程分别为与之对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。加解密中每轮的秘钥分别由初始秘钥扩展得到。算法中16字节的明文、密文和轮秘钥都以一个4x4的矩阵(4*4)表示。

每轮的秘钥分别由初始秘钥扩展得到,如图2,其中w[i,j]最初的Nk行被作为种子seed,用原始秘钥值;剩余行从种子秘钥来产生。变量Nk代表以32位字为单位的种子秘钥长度。新的秘钥被称为轮秘钥(roundkeys)以将它们与原始种子秘钥区别开来,秘钥扩展过程如下:

1)将初始秘钥以列为主,转化为4*32bits的字,分别记为w[0…(Nk-1)];

2)按照如下方式,依次求解w[j],其中j是整数并且属于[4,K];(K=Nb*(Nr+1),Nb=4,Nr为轮数,128位秘钥对应的Nr=10);

3)若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]);否则w[j]=w[j-4]⊕w[j-1]。

AES加密例程开始是拷贝16字节的输入数组到一个名为态State的4×4字节矩阵中,AES加密算法取名为Cipher,它操作State[];

举例:

Cipher Key=2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c

当Nk=4,w0=2b7e1516,w1=28aed2a6,w2=abf71588,w3=09cf4f3c。

字节替代:通过S-box完成一个字节到另外一个字节的映射,按照aij就能找到对应的开始字节,如图3为S-box对应表。

行移位:如图4,行移位的功能是实现一个4x4矩阵内部字节之间的置换。

如图5,实际移位的操作即是:第一行保存不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。假设矩阵的名字为state,简称S,用公式表示如下:

state’[i][j]=state[i][(j+i)%4],其中i、j属于[0,3]。

列混淆:分为正向混淆与逆向混淆,如图6和图7,根据矩阵的乘法可知,在列混淆的过程中,每个字节对应的值只与该列的4个值有关系,将某个字节所对应的值乘以2,其结果就是将该值的二进制位左移一位,如果该值的最高位为1(表示该数值不小于128),则还需要将移位后的结果异或00011011(0x1b),但是要注意上述矩阵乘法与一般意义上矩阵的乘法有所不同,各个值在相加时使用的是模2加法(相当于是异或运算)。

其中:

01·46=01000110

01·A6=10100110

则:

轮密码加:任何数和自身的异或结果为0。加密过程中,每轮的输入与轮秘钥异或一次;因此,解密时再异或上该轮的密码即可恢复输入。

秘钥写入:在以上四个过程都完成的基础上能得到一组秘钥,称之为DIAG,格式是字符串。例如下面就是产线随机生成的一组加密数据:

DIAG=3031323334353637383900000010C9FA819F3ACB0062E7A6AA9241B0DC2DB412875A2D2FA100765927A6ED903AE6A41D7944

然后发

2EFEF3+DIAG(3031323334353637383900000010C9FA819F3ACB0062E7A6AA9241B0DC2DB412875A2D2FA100765927A6ED903AE6A41D7944),其中2E代表写入,FEF3称之为DID。

如果收到6E FE F3+Positive Feedback,那就代表当前生成的key已经全部写进去了,如果实际的产品需要解密也是一样,只要将上述的seed&key进行逆向处理,如进行矩阵的逆运算,将得到新的一组key,将新的一组key通过第三步“秘钥写入”就可以解密,这样就能实现汽车仪表加解密处理。

根据本发明提供的基于AES-128算法的汽车仪表加解密处理系统,包括:字节替代模块:通过变换函数S-box进行字节映射,获取对应的开始字节;行移位模块:对4x4矩阵的内部字节进行置换;列混淆模块:每个字节对应的值只与该列的4个值有关系,将某个字节所对应的值乘以2,其结果是将该值的二进制位左移一位;轮秘钥加模块:在加密过程中,将每轮的输入与轮秘钥异或一次;秘钥写入模块:在完成上述步骤后得到一组秘钥,进行写入保存,格式为字符串。

所述行位移模块包括:第一行保持不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节,则矩阵S的表达式为:S’[i][j]=S[i][(j+i)%4],其中i、j属于[0,3]。所述列混淆包括正向混淆与逆向混淆,在列混淆的过程中,如果某个字节所对应的值的最高位为1,则还需将移位后的结果异或00011011,各个值在相加时使用模2加法。所述轮秘钥加模块包括:任何数和自身的异或结果为0,解密时再异或上该轮的密码进行输入恢复。每轮的秘钥分别由初始秘钥扩展得到,最初行作为种子,剩余行从种子秘钥产生,变量Nk代表以32位字为单位的种子秘钥长度,秘钥扩展过程为:将初始秘钥以列为主,转化为4*32bits的字,分别记为w[0…(Nk-1)];依次求解w[j],其中j是整数并且属于[4,K];其中,K=Nb*(Nr+1),Nb=4,Nr为轮数,128位秘钥对应的Nr=10;若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]);否则w[j]=w[j-4]⊕w[j-1]。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号