RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

汽車信息安全-MCU安全啟動加密算法選擇

jf_EksNQtU6 ? 來源:汽車MCU軟件設(shè)計 ? 2023-12-08 09:15 ? 次閱讀

01.MCU安全啟動加密算法選擇

大家思考一個問題,在汽車MCU運(yùn)行時代碼通常都是直接在flash中運(yùn)行,很少出現(xiàn)把一個功能??截惖?a href="http://m.hljzzgx.com/tags/ram/" target="_blank">ram中運(yùn)行,主要是MCU的SRAM通常十分珍貴,且比較小,雖然最近出來的片子S32G、TC3xx SRAM已經(jīng)來到MB級別,但是鑒于成本、和芯片廠通常會將PFlash和CPU直連以加快取指速度,一般都還是采用比較傳統(tǒng)的方式。

既然是直接取指,如果應(yīng)用程序是加密存儲在flash中,即使安全啟動通過,應(yīng)用程序解密完也沒有足夠的ram存放,所以一般來說,存放在flash中的代碼均是以明文+簽名or認(rèn)證碼的方式進(jìn)行處理。

因此,汽車網(wǎng)絡(luò)安全工程師最熟悉的AES128-CMAC來了。

02.AES-CMAC詳解

首先我們來回顧什么是AES(advanced encryption standard)加密算法。

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

來看下全稱:Cipher-based Message Authentication Code。

我們知道MAC本身就是與密碼相關(guān)的Hash,它不僅提供了比crc這類算法更強(qiáng)的數(shù)據(jù)完整性保護(hù),還防止了數(shù)據(jù)未經(jīng)允許的修改、破壞等(驗證數(shù)據(jù)來源)。為什么呢?因為MAC就是將密鑰和明文使用某種算法共同計算出一個值,只有知道密鑰的接收方才能計算出與之匹配的值;即使密鑰被攻擊者破解,由于MAC的hash屬性,攻擊者是無法反推出數(shù)據(jù)的。

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

本質(zhì)上,AES-CMAC和OMAC1(一種改進(jìn)的CBC-MAC算法)相同,使用一個私密的密鑰、可變長度的消息數(shù)據(jù)(對齊該消息按照固定長度進(jìn)行分塊計算),最終返回一個固定長度的值,這個值我們叫做MAC。

**2.1 子密鑰的生成 **

對于CMAC來說,存在數(shù)據(jù)長度不是128bit整數(shù)倍的情況,因此,這個算法流程有兩種,如下:

wKgZomVyboeAWJUeAABvsE_TwXA728.jpg

case a :消息數(shù)據(jù)是128bit的整數(shù)倍,使用私密密鑰k1生成MAC(T);

case b:消息數(shù)據(jù)不能整除,使用私密密鑰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生成消息數(shù)據(jù)最后一塊的數(shù)據(jù)。

wKgZomVyboaAA2pSAAAuejGEQgw018.jpg

需要注意的是,當(dāng)處于case b時,M_last是需要進(jìn)行填充的,填充方式參考04.數(shù)據(jù)填充

2.2 MAC生成算法

使用AES-CMAC進(jìn)行計算,需要三個輸入:私密密鑰(k)、消息數(shù)據(jù)、消息數(shù)據(jù)長度;具體操作流程如下:

wKgaomVyboaAJNGVAAEwCKNKV5E255.jpg

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

可以選擇直接把明文組包+CMAC發(fā)給接收方,也可以用密文+CMAC。

03.HMAC詳解

HMAC(Hash-based Message Authentication Code):Hash函數(shù)是公開的,因此直接使用無密鑰的Hash對數(shù)據(jù)處理,只能保證數(shù)據(jù)的完整性。如果加上MAC值,那么就可以驗證數(shù)據(jù)的來源有效。

MD-5和SHA-1就是這種hash函數(shù)的示例。

04.數(shù)據(jù)填充

我們發(fā)現(xiàn),在使用上述算法進(jìn)行計算時,AES都是以一個塊進(jìn)行計算,如果此時要計算的數(shù)據(jù)分組后最后一塊不夠128bit,就要進(jìn)行填充,常見填充方式(假設(shè)數(shù)據(jù)塊為8個byte)如下:

全0填充

填充結(jié)構(gòu):

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

PKCS#7填充

每一個字節(jié)都表示填充的長度,如下:

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

ANSI X.923 填充

該方式用0進(jìn)行填充,但用最后一個字節(jié)表示填充的長度,如下:

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







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350978
  • CMAC
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    11051
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    767

    瀏覽量

    114675
  • AES
    AES
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    33225
  • 加密算法
    +關(guān)注

    關(guān)注

    0

    文章

    215

    瀏覽量

    25541
收藏 人收藏

    評論

    相關(guān)推薦

    RC4加密算法的FPGA設(shè)計與實現(xiàn)

    RC4加密算法的FPGA設(shè)計與實現(xiàn) RC4算法是一種密匙長度可變的加密算法.因其實現(xiàn)方便,安全性高,廣泛應(yīng)用于無線網(wǎng)絡(luò)通信. 信息
    發(fā)表于 08-11 11:48

    汽車遙控加密算法

    本人在公司主要做國內(nèi)整車廠的遙控器,主要是用keeloq,Hitag2 ,Hitag3 ,AES加密算法,想請教下論壇里的大牛,像奧迪,奔馳,寶馬等豪車的遙控器用什么加密算法?
    發(fā)表于 02-17 21:04

    程序保護(hù)的話 是不是加密算法越復(fù)雜,安全性越好呢?

    我是一名技術(shù)人員,想問問程序保護(hù)的話 是不是加密算法越復(fù)雜 安全性越好呢?使用RSA或者ECC等非對稱算法是不是可絕對保證安全呢?
    發(fā)表于 05-27 15:34

    DES加密算法是什么

    一、加密算法1、 DES加密算法DES數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法。DES中的密鑰key為8個字節(jié)64位,但每第8個為校驗位不參
    發(fā)表于 07-22 09:13

    對稱加密算法是什么

    對稱加密算法也叫私鑰加密算法,其特征是收信方和發(fā)信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價的。非對稱加密算法也叫公鑰加密算法。其特
    發(fā)表于 07-22 07:09

    軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用

    伴隨著人工智能、物聯(lián)網(wǎng)時代的到來,數(shù)據(jù)應(yīng)用變得頻繁起來,數(shù)據(jù)安全應(yīng)該如何保護(hù)?軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用?慢慢讀下去,你會發(fā)現(xiàn)圍繞在我們身邊的“小密碼”。對稱加密算法
    發(fā)表于 12-21 07:04

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

    針對傳統(tǒng)文件加密系統(tǒng)中加密算法單一、加密文件格式簡單、安全性相對較低的問題,本內(nèi)容提出了采用多種加密算法的文件
    發(fā)表于 05-26 15:35 ?0次下載
    采用多種<b class='flag-5'>加密算法</b>的文件<b class='flag-5'>加密</b>方法

    關(guān)于應(yīng)用到游戲中的加密算法的用途及缺陷

    會對其用途以及缺陷一一說明,當(dāng)然了,為了保證其加密算法安全以及高效,我們也會介紹幾種自定義的加密算法,看看加密如何來維護(hù)我們的數(shù)據(jù)安全
    發(fā)表于 09-25 11:15 ?0次下載

    基于AES加密算法信息安全研究(AEC與ECC結(jié)合)

    使用AES 對稱加密算法加密明文數(shù)據(jù)ECC 非對稱加密算法加密密鑰并生成數(shù)字簽名,從而既保障了數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的安全性,又完成了數(shù)字簽名
    發(fā)表于 10-31 11:32 ?13次下載
    基于AES<b class='flag-5'>加密算法</b>的<b class='flag-5'>信息</b><b class='flag-5'>安全</b>研究(AEC與ECC結(jié)合)

    汽車信息安全已進(jìn)入“刷漏洞”時代

    過去幾年,國內(nèi)外的汽車信息安全標(biāo)準(zhǔn)制定工作也在持續(xù)進(jìn)行中。國際組織(ISO/SAE)正進(jìn)行21434(道路車輛-信息安全工程)標(biāo)準(zhǔn)的制定。該標(biāo)準(zhǔn)主要從風(fēng)險評估管理、產(chǎn)品開發(fā)、運(yùn)行/維護(hù)
    的頭像 發(fā)表于 04-11 11:43 ?5713次閱讀
    <b class='flag-5'>汽車信息</b><b class='flag-5'>安全</b>已進(jìn)入“刷漏洞”時代

    大數(shù)據(jù)加密算法在數(shù)據(jù)安全中的應(yīng)用綜述

    大數(shù)據(jù)加密算法在數(shù)據(jù)安全中的應(yīng)用綜述
    發(fā)表于 06-19 14:53 ?13次下載

    Mesh自組網(wǎng)電臺信息傳輸安全保障—加密算法

    Mesh自組網(wǎng)電臺信息傳輸安全保障——加密算法
    發(fā)表于 03-02 14:34 ?719次閱讀
    Mesh自組網(wǎng)電臺<b class='flag-5'>信息</b>傳輸<b class='flag-5'>安全</b>保障—<b class='flag-5'>加密算法</b>

    常見加密算法分類

    在開發(fā)過程中,為了保證程序能夠安全高效運(yùn)行,數(shù)據(jù)信息不被泄露,我們通常都會對要操作的數(shù)據(jù)進(jìn)行加解密,從而提高程序的安全性。常見加密算法分類見下圖,可分為對稱
    的頭像 發(fā)表于 11-21 10:08 ?1434次閱讀
    常見<b class='flag-5'>加密算法</b>分類

    關(guān)于汽車信息安全,你想了解的知識點都在這里!

    都面臨哪些威脅與挑戰(zhàn)呢?提升汽車抗攻擊能力的安全防護(hù)技術(shù)有哪些呢?本文將帶你全面了解智能汽車信息安全。另外,基于航芯車規(guī)級安全芯片和通用
    的頭像 發(fā)表于 04-04 11:16 ?3948次閱讀
    關(guān)于<b class='flag-5'>汽車信息</b><b class='flag-5'>安全</b>,你想了解的知識點都在這里!

    加密算法選擇對于加密安全有多重要?

    加密算法選擇對于加密安全至關(guān)重要,因為它直接影響到數(shù)據(jù)保護(hù)的有效性和可靠性。以下是幾個關(guān)鍵點來說明加密算法
    的頭像 發(fā)表于 12-17 15:59 ?65次閱讀
    RM新时代网站-首页