0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

汽车信息安全-MCU安全启动加密算法选择

jf_EksNQtU6 来源:汽车MCU软件设计 2023-12-08 09:15 次阅读

01.MCU安全启动加密算法选择

大家思考一个问题,在汽车MCU运行时代码通常都是直接在flash中运行,很少出现把一个功能栈拷贝到ram中运行,主要是MCU的SRAM通常十分珍贵,且比较小,虽然最近出来的片子S32G、TC3xx SRAM已经来到MB级别,但是鉴于成本、和芯片厂通常会将PFlash和CPU直连以加快取指速度,一般都还是采用比较传统的方式。

既然是直接取指,如果应用程序是加密存储在flash中,即使安全启动通过,应用程序解密完也没有足够的ram存放,所以一般来说,存放在flash中的代码均是以明文+签名or认证码的方式进行处理。

因此,汽车网络安全工程师最熟悉的AES128-CMAC来了。

02.AES-CMAC详解

首先我们来回顾什么是AES(advanced encryption standard)加密算法。

AES屁股后面跟的工作模式通常是CBC\CFB这些,这个CMAC是个啥?

来看下全称:Cipher-based Message Authentication Code。

我们知道MAC本身就是与密码相关的Hash,它不仅提供了比crc这类算法更强的数据完整性保护,还防止了数据未经允许的修改、破坏等(验证数据来源)。为什么呢?因为MAC就是将密钥和明文使用某种算法共同计算出一个值,只有知道密钥的接收方才能计算出与之匹配的值;即使密钥被攻击者破解,由于MAC的hash属性,攻击者是无法反推出数据的。

所以我们在SecOC里面最常用的还是AES128-CMAC外加FvM防止重放攻击。

本质上,AES-CMAC和OMAC1(一种改进的CBC-MAC算法)相同,使用一个私密的密钥、可变长度的消息数据(对齐该消息按照固定长度进行分块计算),最终返回一个固定长度的值,这个值我们叫做MAC。

**2.1 子密钥的生成 **

对于CMAC来说,存在数据长度不是128bit整数倍的情况,因此,这个算法流程有两种,如下:

wKgZomVyboeAWJUeAABvsE_TwXA728.jpg

case a :消息数据是128bit的整数倍,使用私密密钥k1生成MAC(T);

case b:消息数据不能整除,使用私密密钥k2生成MAC(T);

而私密密钥的生成又是按照如下方式生成:

初始向量IV(0) + 原始key,使用AES-128-CBC,生成一个中间输出L;

判断该L最高位是否等于0;如果等于0,k1 = L << 1;否则,k1 = (L << 1)XOR 0x87(Rb_const);

判断k1的最高位是否等于0;如果等于0,k2 = k1 << 1;否则,k2 = (L << 1)XOR 0x87(Rb_const);

wKgaomVyboaAYMFhAAA2kNfWtiU398.jpg

同时对于上述两个case,使用k1或者k2生成消息数据最后一块的数据。

wKgZomVyboaAA2pSAAAuejGEQgw018.jpg

需要注意的是,当处于case b时,M_last是需要进行填充的,填充方式参考04.数据填充

2.2 MAC生成算法

使用AES-CMAC进行计算,需要三个输入:私密密钥(k)、消息数据、消息数据长度;具体操作流程如下:

wKgaomVyboaAJNGVAAEwCKNKV5E255.jpg

仅在最后一步使用的明文分组生成AES-CMAC。

可以选择直接把明文组包+CMAC发给接收方,也可以用密文+CMAC。

03.HMAC详解

HMAC(Hash-based Message Authentication Code):Hash函数是公开的,因此直接使用无密钥的Hash对数据处理,只能保证数据的完整性。如果加上MAC值,那么就可以验证数据的来源有效。

MD-5和SHA-1就是这种hash函数的示例。

04.数据填充

我们发现,在使用上述算法进行计算时,AES都是以一个块进行计算,如果此时要计算的数据分组后最后一块不够128bit,就要进行填充,常见填充方式(假设数据块为8个byte)如下:

全0填充

填充结构:

Data:| 11 11 11 11 11 11 11 11 | 11 11 00 00 00 00 00 00 |

PKCS#7填充

每一个字节都表示填充的长度,如下:

| 11 11 11 11 11 11 11 11 | 11 11 06 06 06 06 06 06 |

ANSI X.923 填充

该方式用0进行填充,但用最后一个字节表示填充的长度,如下:

| AA AA AA AA AA AA AA AA | AA AA 00 00 00 00 00 06 |







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17133

    浏览量

    351014
  • CMAC
    +关注

    关注

    0

    文章

    9

    浏览量

    11051
  • sram
    +关注

    关注

    6

    文章

    767

    浏览量

    114677
  • AES
    AES
    +关注

    关注

    0

    文章

    103

    浏览量

    33225
  • 加密算法
    +关注

    关注

    0

    文章

    215

    浏览量

    25545
收藏 人收藏

    评论

    相关推荐

    RC4加密算法的FPGA设计与实现

    RC4加密算法的FPGA设计与实现 RC4算法是一种密匙长度可变的加密算法.因其实现方便,安全性高,广泛应用于无线网络通信. 信息
    发表于 08-11 11:48

    汽车遥控加密算法

    本人在公司主要做国内整车厂的遥控器,主要是用keeloq,Hitag2 ,Hitag3 ,AES加密算法,想请教下论坛里的大牛,像奥迪,奔驰,宝马等豪车的遥控器用什么加密算法?
    发表于 02-17 21:04

    程序保护的话 是不是加密算法越复杂,安全性越好呢?

    我是一名威廉希尔官方网站 人员,想问问程序保护的话 是不是加密算法越复杂 安全性越好呢?使用RSA或者ECC等非对称算法是不是可绝对保证安全呢?
    发表于 05-27 15:34

    DES加密算法是什么

    一、加密算法1、 DES加密算法DES数据加密标准,是一种使用密钥加密的块算法。DES中的密钥key为8个字节64位,但每第8个为校验位不参
    发表于 07-22 09:13

    对称加密算法是什么

    对称加密算法也叫私钥加密算法,其特征是收信方和发信方使用相同的密钥,即加密密钥和解密密钥是相同或等价的。非对称加密算法也叫公钥加密算法。其特
    发表于 07-22 07:09

    软件加密算法都有哪些,这些算法在哪些方面得到了应用

    伴随着人工智能、物联网时代的到来,数据应用变得频繁起来,数据安全应该如何保护?软件加密算法都有哪些,这些算法在哪些方面得到了应用?慢慢读下去,你会发现围绕在我们身边的“小密码”。对称加密算法
    发表于 12-21 07:04

    采用多种加密算法的文件加密方法

    针对传统文件加密系统中加密算法单一、加密文件格式简单、安全性相对较低的问题,本内容提出了采用多种加密算法的文件
    发表于 05-26 15:35 0次下载
    采用多种<b class='flag-5'>加密算法</b>的文件<b class='flag-5'>加密</b>方法

    关于应用到游戏中的加密算法的用途及缺陷

    会对其用途以及缺陷一一说明,当然了,为了保证其加密算法安全以及高效,我们也会介绍几种自定义的加密算法,看看加密如何来维护我们的数据安全
    发表于 09-25 11:15 0次下载

    基于AES加密算法信息安全研究(AEC与ECC结合)

    使用AES 对称加密算法加密明文数据ECC 非对称加密算法加密密钥并生成数字签名,从而既保障了数据在网络传输过程中的安全性,又完成了数字签名
    发表于 10-31 11:32 13次下载
    基于AES<b class='flag-5'>加密算法</b>的<b class='flag-5'>信息</b><b class='flag-5'>安全</b>研究(AEC与ECC结合)

    汽车信息安全已进入“刷漏洞”时代

    过去几年,国内外的汽车信息安全标准制定工作也在持续进行中。国际组织(ISO/SAE)正进行21434(道路车辆-信息安全工程)标准的制定。该标准主要从风险评估管理、产品开发、运行/维护
    的头像 发表于 04-11 11:43 5716次阅读
    <b class='flag-5'>汽车信息</b><b class='flag-5'>安全</b>已进入“刷漏洞”时代

    大数据加密算法在数据安全中的应用综述

    大数据加密算法在数据安全中的应用综述
    发表于 06-19 14:53 13次下载

    Mesh自组网电台信息传输安全保障—加密算法

    Mesh自组网电台信息传输安全保障——加密算法
    发表于 03-02 14:34 719次阅读
    Mesh自组网电台<b class='flag-5'>信息</b>传输<b class='flag-5'>安全</b>保障—<b class='flag-5'>加密算法</b>

    常见加密算法分类

    在开发过程中,为了保证程序能够安全高效运行,数据信息不被泄露,我们通常都会对要操作的数据进行加解密,从而提高程序的安全性。常见加密算法分类见下图,可分为对称
    的头像 发表于 11-21 10:08 1435次阅读
    常见<b class='flag-5'>加密算法</b>分类

    关于汽车信息安全,你想了解的知识点都在这里!

    都面临哪些威胁与挑战呢?提升汽车抗攻击能力的安全防护威廉希尔官方网站 有哪些呢?本文将带你全面了解智能汽车信息安全。另外,基于航芯车规级安全芯片和通用
    的头像 发表于 04-04 11:16 3950次阅读
    关于<b class='flag-5'>汽车信息</b><b class='flag-5'>安全</b>,你想了解的知识点都在这里!

    加密算法选择对于加密安全有多重要?

    加密算法选择对于加密安全至关重要,因为它直接影响到数据保护的有效性和可靠性。以下是几个关键点来说明加密算法
    的头像 发表于 12-17 15:59 70次阅读