一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

HASH算法加密芯片的工作原理及其在STM32 MCU上的應(yīng)用

CHANBAEK ? 來(lái)源:1ST-LABS ? 作者: 魯楊 ? 2023-10-24 15:01 ? 次閱讀

摘要: 本文主要研究了HASH算法加密芯片的工作原理及其在STM32 MCU上的應(yīng)用,實(shí)現(xiàn)了外部加密芯片對(duì)STM32 MCU的程序保護(hù),目前的技術(shù)手段無(wú)法對(duì)其進(jìn)行破解,其安全性優(yōu)于其它加密方式。本文首先介紹了SHA256算法的特點(diǎn)。分析了外部加密芯片加密MCU的基本原理和加密安全性的理論分析。并以LCS4110R為例介紹了在STM32F103上的應(yīng)用,包括軟件和硬件。通過(guò)本文的論述,開發(fā)者可以對(duì)外部加密芯片加密MCU有一個(gè)理論的認(rèn)識(shí),并且對(duì)于加密芯片的應(yīng)用提供參考和借鑒,對(duì)于MCU安全保護(hù)具有一定的參考價(jià)值和實(shí)用價(jià)值。同時(shí),凝睿電子科技開發(fā)和支持了行業(yè)中比較有代表性的Maxim DS28E15, LCS4110R, RJGT102等不同方案,并已正式推向市場(chǎng),為客戶提供企業(yè)級(jí)別的高附加值產(chǎn)品的知識(shí)產(chǎn)權(quán)加密保護(hù)方案。

隨著信息技術(shù)的迅猛發(fā)展和互聯(lián)網(wǎng)的普及,保護(hù)敏感信息的安全性成為了當(dāng)今社會(huì)不可或缺的需求。在數(shù)字化時(shí)代,知識(shí)產(chǎn)權(quán)保護(hù),硬件設(shè)備防復(fù)制已經(jīng)成為目前產(chǎn)品開發(fā)的關(guān)鍵問(wèn)題。為了應(yīng)對(duì)日益復(fù)雜和智能化的安全威脅,研究和采用高效、安全的加密機(jī)制至關(guān)重要。

而在信息安全領(lǐng)域中,外部加密芯片作為一種重要的技術(shù),因其強(qiáng)大的加密能力和硬件級(jí)別的安全保障而備受矚目。外部加密芯片通過(guò)將加密算法和密鑰等關(guān)鍵信息嵌入到硬件芯片中,實(shí)現(xiàn)對(duì)敏感數(shù)據(jù)的高強(qiáng)度加密和解密過(guò)程。相比于傳統(tǒng)軟件加密方式,外部加密芯片具有更高的安全性和更強(qiáng)的防護(hù)能力,可以有效抵御各類物理和邏輯攻擊。

本論文旨在對(duì)外部加密芯片的原理和應(yīng)用進(jìn)行深入研究和探討,以期為大家提供一個(gè)全面的了解和認(rèn)識(shí)。首先,我們將介紹外部加密芯片的原理,涵蓋加密算法、加密芯片內(nèi)部數(shù)據(jù)處理邏輯等關(guān)鍵內(nèi)容。接著,我們將詳細(xì)探討外部加密芯片在STM32F103上的應(yīng)用,包括硬件連接以及軟件的實(shí)現(xiàn)。通過(guò)本文的論述,希望對(duì)開發(fā)外部加密芯片的開發(fā)者在理解,設(shè)計(jì)外部加密芯片方案時(shí)提供一些使用價(jià)值和參考借鑒。

01SHA256加密算法

1.1 HASH與SHA256

哈希算法(Hash Algorithm)又稱散列算法、散列函數(shù)、哈希函數(shù),是一種從任何一種數(shù)據(jù)中創(chuàng)建小的數(shù)字“指紋”的方法。無(wú)論輸入是什么數(shù)字格式、文件有多大,輸出都是固定長(zhǎng)度的比特串。

HASH算法包括SHA-0、SHA-1、MD5、SHA-2、SHA-3等系列算法。SHA-2屬于SHA算法之一,是SHA-1的后繼者。其下又可再分為六個(gè)不同的算法標(biāo)準(zhǔn),包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。SHA-?代表SHA算法輸出的結(jié)果的長(zhǎng)度,比如SHA256就表示算法輸出的結(jié)果有256位,即32個(gè)字節(jié)。

如下圖所示,對(duì)于任意長(zhǎng)度的消息,SHA256都會(huì)產(chǎn)生一個(gè)256位的哈希值,稱作消息摘要。這個(gè)摘要相當(dāng)于是個(gè)長(zhǎng)度為32個(gè)字節(jié)的數(shù)組,通常有一個(gè)長(zhǎng)度為64的十六進(jìn)制字符串來(lái)表示,其中1個(gè)字節(jié)=8位,一個(gè)十六進(jìn)制的字符的長(zhǎng)度為4位。

比如字符串EECraftsman經(jīng)過(guò)SHA256加密后得到的摘要為:

E6953E84118305E6C668E944D8B00C635B4DFA5543DDFF0346BC03ABCBEEB0D0

圖片

1.2 SHA256特點(diǎn)

a. 壓縮性:任意長(zhǎng)度的數(shù)據(jù),算出的SHA256值長(zhǎng)度都是固定的。

b. 容易計(jì)算:從原數(shù)據(jù)計(jì)算出SHA256值很容易。

c. 防碰撞:很難找出兩個(gè)不同的輸入數(shù)據(jù)源對(duì)應(yīng)同一組MAC,想找到一個(gè)具有相同SHA256值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。

d. 雪崩效應(yīng):輸入的數(shù)據(jù)列即使其中一位發(fā)生變化,SHA-256的計(jì)算結(jié)果也會(huì)發(fā)生非常巨大的變化。

由于以上特性,SHA256算法目前無(wú)法破解,也因此被用于比特幣的加密算法。

02加密芯片的介紹

加密芯片內(nèi)置高性能防復(fù)制保護(hù)集成電路,使得內(nèi)部集成電路具有高度的安全性,能夠有效的防止破解。內(nèi)嵌SHA-256加密算法,能夠快速的進(jìn)行SHA256運(yùn)算。內(nèi)嵌一次性可編程單元,保證數(shù)據(jù)的安全性。

以LCS4110R加密芯片為例,芯片防篡改設(shè)計(jì),不重復(fù)序列號(hào),具有防止SEMA/DEMA、SPA/DPA、DFA和時(shí)序攻擊的措施。多種安全檢測(cè)傳感器高壓和低壓傳感器、頻率傳感器、濾波器、光傳感器、脈沖傳感器、溫度傳感器,具有傳感器壽命測(cè)試功能,一旦芯片檢測(cè)到非法探測(cè),將啟動(dòng)內(nèi)部的自毀功能??偩€加密,具有金屬屏蔽防護(hù)層,探測(cè)到外部攻擊后內(nèi)部數(shù)據(jù)自毀。具有真隨機(jī)數(shù)發(fā)生器,隨機(jī)數(shù)利用芯片內(nèi)部的電磁白噪聲產(chǎn)生,不會(huì)重復(fù)。

03加密芯片的原理分析

加密芯片的使用使得MCU內(nèi)部程序即使被拷貝重新下載到其它MCU上,由于無(wú)法繞過(guò)外部加密芯片的認(rèn)證,故此程序無(wú)法正常運(yùn)行。

3.1加密芯片加密的基本原理

  1. 外部加密芯片和MCU存儲(chǔ)相同的密鑰
  2. 外部加密芯片和MCU分別通過(guò)SHA256計(jì)算,對(duì)密鑰進(jìn)行計(jì)算得到MAC值
  3. 對(duì)比兩組計(jì)算得到的值是否相同,如果相同則認(rèn)為雙方的密鑰相同(SHA256具有防碰撞的特點(diǎn))則認(rèn)證成功

圖片

但是這樣做存在一個(gè)問(wèn)題,加密芯片和MCU之間需要通信傳輸MAC值,這個(gè)值在傳輸?shù)倪^(guò)程中有被捕獲的可能性,對(duì)于MCU而言,其對(duì)加密芯片的操作就是發(fā)送驗(yàn)證命令,獲取MAC值然后對(duì)比。一旦此MAC值被捕獲,那么攻擊者就會(huì)模擬整個(gè)通信過(guò)程和MAC值,實(shí)現(xiàn)對(duì)系統(tǒng)的破解。

3.2 MCU認(rèn)證的具體流程

為了解決3.1存在的問(wèn)題我們?cè)谡麄€(gè)認(rèn)證流程中增加了隨機(jī)數(shù),其流程框圖如下圖

  1. MCU生成隨機(jī)數(shù)并發(fā)送給LCS4110R
  2. MCU內(nèi)部將生成的隨機(jī)數(shù)和密鑰相結(jié)合,然后進(jìn)行SHA256計(jì)算得到MAC值
  3. 加密芯片內(nèi)部同樣將自己獲取到的隨機(jī)數(shù)與自己保存的密鑰融合后進(jìn)行SHA256計(jì)算得到MAC值
  4. MCU獲取加密芯片計(jì)算的MAC值和自身計(jì)算的MAC值作比較,相同則認(rèn)為內(nèi)部密鑰相同,認(rèn)證通過(guò),否則認(rèn)證不通過(guò)

圖片

3.3加密系統(tǒng)的安全性分析

  1. 每次進(jìn)行SHA256計(jì)算的原始數(shù)據(jù)都是隨機(jī)數(shù)和密鑰的結(jié)合,所以每一次經(jīng)過(guò)SHA256計(jì)算之后生成MAC值都是不相同的,根據(jù)SHA256的雪崩效應(yīng),無(wú)法通過(guò)MAC結(jié)果去反推密鑰
  2. 由于每次認(rèn)證的MAC值都是不相同的,所以無(wú)法外部模擬加密芯片的計(jì)算結(jié)果,用以攻擊MCU
  3. 由于加密芯片自身的安全性,其內(nèi)部的密鑰不會(huì)被攻擊者竊取
  4. 由于MCU的FLASH容易收到攻擊,所以本方案中將MCU中存儲(chǔ)的密鑰保存在代碼區(qū)里面,并且采用分散的存儲(chǔ)方案,使攻擊者即使拿到了flash的所有內(nèi)容也無(wú)法找到密鑰存儲(chǔ)的具體位置

04外部加密芯片的實(shí)際應(yīng)用

4.1 硬件部分

圖片

如上圖所示,LCS4110R采用IIC通信,硬件上只需要兩根線與MCU相連接即可。

4.2 軟件部分

  1. MCU實(shí)現(xiàn)IIC通信協(xié)議

作為加密芯片和MCU之間的通信協(xié)議,IIC協(xié)議的實(shí)現(xiàn)是加密方案的基礎(chǔ)。

  1. 對(duì)LCS4110R進(jìn)行文件系統(tǒng)的構(gòu)建

LCS4110R遵循LKCOS系統(tǒng),對(duì)其進(jìn)行的操作建立在其文件系統(tǒng)之上,其文件系統(tǒng)的需根據(jù)《LKCOS智能操作系統(tǒng)參考手冊(cè)》進(jìn)行創(chuàng)建,創(chuàng)建代碼生成之后可將hex文件直接燒錄到芯片中,如下圖。

圖片

  1. 認(rèn)證程序流程
  2. 將隨機(jī)數(shù)與SHA256計(jì)算命令下發(fā)到加密芯片
  3. 獲取加密芯片的計(jì)算結(jié)果
  4. 對(duì)比MCU內(nèi)部計(jì)算的結(jié)果與從加密芯片上獲取的結(jié)果,相同則認(rèn)為認(rèn)證成功,不同則認(rèn)為認(rèn)證失敗

05凝睿加密方案介紹

凝睿SHA_256方案提供多種加密芯片的支持,用戶無(wú)需研究任何外部加密芯片的相關(guān)操作方法,也無(wú)需實(shí)現(xiàn)IIC通信協(xié)議,甚至不需要調(diào)試,使用凝睿SHA_256提供的庫(kù)文件,實(shí)現(xiàn)其相關(guān)接口,即可完成加密相關(guān)開發(fā)。

此外,凝睿SHA_256提供燒錄好密鑰的加密芯片,提供企業(yè)級(jí)的密鑰授權(quán)管理機(jī)制,用戶無(wú)需考慮芯片代碼的燒錄與密鑰的管理,極大的降低了密鑰泄露的可能性。

5.1 凝睿方案的實(shí)現(xiàn)

凝睿SHA_256加密方案軟件開發(fā)步驟如下(以LCS4110R為例)

  1. 包含如下圖相關(guān).h文件到工程

圖片

  1. 將EEC_SHA256.lib庫(kù)文件添加到工程

圖片

  1. 實(shí)現(xiàn)以下物理層函數(shù)指針接口

圖片

  1. 加密芯片初始化與認(rèn)證函數(shù)

下圖為加密芯片初始化與認(rèn)證代碼,其中SecurityInit函數(shù)為加密芯片初始化函數(shù),開機(jī)運(yùn)行即可。SecurityCertificate函數(shù)為認(rèn)證函數(shù),用戶可以隨時(shí)調(diào)用,用以進(jìn)行外部加密芯片的認(rèn)證。

圖片

  1. 隨機(jī)數(shù)生成函數(shù)

對(duì)于不同架構(gòu)的MCU隨機(jī)數(shù)生成的方式是不相同的,有的MCU具有硬件隨機(jī)數(shù)發(fā)生器,這種情況下使用硬件隨機(jī)數(shù)生成即可,對(duì)于沒(méi)有硬件隨機(jī)數(shù)生成的MCU,推薦以下方式:

首先使用ADC采樣的值或者定時(shí)計(jì)數(shù)器的計(jì)數(shù)值生成隨機(jī)數(shù)種子。

再生成隨機(jī)數(shù),這樣生成的隨機(jī)數(shù)更接近真隨機(jī)。

代碼如下圖所示

圖片

5.2更多支持

除了LCS4110R之外,我們還可以支持其它的加密芯片方案,如DS28E15、RJGT102等加密芯片。

其中DS28E15由美國(guó)美信公司生產(chǎn)具有高級(jí)物理安全保障的工業(yè)級(jí)加密芯片,RJGT102是由武漢瑞納捷半導(dǎo)體生產(chǎn)的高性能防復(fù)制加密芯片。針對(duì)不同的使用場(chǎng)景與使用需求,我們可以提供不同的解決方案。

需要注意的是部分加密芯片使用的是1-Wire的通信協(xié)議(如DS28E15),這種情況下硬件設(shè)計(jì)時(shí)就需要不同的處理方式,下圖展示了針對(duì)1-Wire通信的加密芯片的硬件方案。

圖片

如圖,IIC轉(zhuǎn)1-Wire芯片為可選項(xiàng),其主要針對(duì)主頻較低的MCU驅(qū)動(dòng)超高速1-Wire協(xié)議而設(shè)計(jì),而對(duì)于低速的1-Wire協(xié)議則可以使用MCU直接模擬單總線。

06結(jié)論

綜上所述,外部加密芯片以其卓越安全防護(hù)機(jī)制,能夠從硬件有效的保護(hù)其內(nèi)部數(shù)據(jù)不被攻擊,SHA256算法從原理機(jī)制上杜絕了被惡意攻擊的可能性,通過(guò)外部芯片對(duì)MCU的保護(hù)能夠有效的保護(hù)MCU程序不被非法復(fù)制拷貝。防止非法抄板,極大程度保護(hù)了開發(fā)者的知識(shí)產(chǎn)權(quán)。

07合作模式

為推動(dòng)知識(shí)產(chǎn)權(quán)與高附加值產(chǎn)品的保護(hù),凝睿電子科技向有加密需求的客戶,免費(fèi)提供完整的技術(shù)解決方案,免費(fèi)的軟件庫(kù)及整合編譯使用支持,并提供企業(yè)級(jí)密鑰管理的預(yù)加載密鑰加密芯片零售及批量銷售。

文章來(lái)源:上海凝睿電子科技有限公司西安分公司

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

    關(guān)注

    146

    文章

    17718

    瀏覽量

    358202
  • STM32
    +關(guān)注

    關(guān)注

    2283

    文章

    10986

    瀏覽量

    361297
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3817

    瀏覽量

    82168
  • 加密芯片
    +關(guān)注

    關(guān)注

    3

    文章

    122

    瀏覽量

    24113
  • Hash算法
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    7489
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    加密芯片工作原理max32555

    加密芯片MAX32555是一種廣泛應(yīng)用的硬件加密設(shè)備,它采用先進(jìn)的加密算法和技術(shù),對(duì)數(shù)據(jù)進(jìn)行加密和解密操作,以確保數(shù)據(jù)傳輸和存儲(chǔ)的安全性。本
    的頭像 發(fā)表于 12-13 15:03 ?2671次閱讀

    探討一下怎么使用加密芯片加密,讓方案的破解難度增加

    STM32有一個(gè)ID號(hào),加密芯片有一個(gè)ID號(hào)。加密芯片有DES算法
    發(fā)表于 09-09 10:39

    如何選用正確的加密芯片

    芯片采用隨機(jī)變量交換系統(tǒng)的認(rèn)證加密芯片,SOT-23F這樣一個(gè)小封裝內(nèi)整合了1萬(wàn)多個(gè)邏輯門。ALPU與系統(tǒng)CPU以密碼方式通信,CPU
    發(fā)表于 12-05 17:07

    MCU加密方法你知道多少?

    自家程序被惡意讀取破解。2.常用MCU加密方式 通過(guò)寫特定配置字; 增加外部加密芯片; 對(duì)程序代碼進(jìn)行密碼加密,使程序變成密文; 程序校驗(yàn)
    發(fā)表于 10-10 14:53

    加密芯片在人臉識(shí)別算法的保護(hù)與應(yīng)用

    晶振,無(wú)需外接晶振電路。如何保護(hù)人臉識(shí)別核心算法?1、ALPU系列加密芯片工作原理為在被保護(hù)器件的引導(dǎo)區(qū)寫入密鑰,從而防止器件內(nèi)的軟件代碼被惡意拷貝,這是ASIC方式,,就是說(shuō)硬件方式
    發(fā)表于 10-24 10:57

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

    加密主要包含通信數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)加密,目的都是為了保證其傳送和儲(chǔ)存的隱秘性,從而保證數(shù)據(jù)的安全。 目前常見(jiàn)的加密方式有對(duì)稱加密、非對(duì)稱加密、
    發(fā)表于 09-25 11:15 ?0次下載

    常見(jiàn)的hash算法有哪些及其原理是什么

    Hash,一般翻譯做“散列”,也有直接音譯為“哈?!钡?,就是把任意長(zhǎng)度的輸入(又叫做預(yù)映射, pre-image),通過(guò)散列算法,變換成固定長(zhǎng)度的輸出,該輸出就是散列值。這種轉(zhuǎn)換是一種壓縮映射,也就是,散列值的空間通常遠(yuǎn)小于輸入的空間
    發(fā)表于 12-09 10:25 ?2.6w次閱讀
    常見(jiàn)的<b class='flag-5'>hash</b><b class='flag-5'>算法</b>有哪些<b class='flag-5'>及其</b>原理是什么

    Hash算法簡(jiǎn)介

    區(qū)塊Hash值時(shí)(即挖礦的過(guò)程),都使用了Hash算法,特別是SHA256算法。比特幣系統(tǒng)本身也就是加密算法的衍生物。
    的頭像 發(fā)表于 06-08 14:01 ?5189次閱讀

    數(shù)據(jù)加密工作原理詳解

    網(wǎng)絡(luò)安全防范措施與應(yīng)用是如何應(yīng)用在我們的日常生活當(dāng)中的呢?我相信網(wǎng)絡(luò)安全防范措施與應(yīng)用一定出現(xiàn)在我們的數(shù)據(jù)加密工作當(dāng)中。下面讓我們來(lái)了解一下數(shù)據(jù)加密工作原理,那么數(shù)據(jù)
    的頭像 發(fā)表于 01-31 14:24 ?1.7w次閱讀

    針對(duì)STM32客戶的反饋,對(duì)使用STM32加密庫(kù)開發(fā)比特幣應(yīng)用作一些補(bǔ)充的技術(shù)說(shuō)明

    AES,又支持多種加密模式如ECB、CBC、CTR、GCM、CCM、XTS、Cipher-wrap等。非對(duì)稱加解密算法支持RSA、ECC。Hash算法
    的頭像 發(fā)表于 09-17 17:35 ?4493次閱讀
    針對(duì)<b class='flag-5'>STM32</b>客戶的反饋,對(duì)使用<b class='flag-5'>STM32</b><b class='flag-5'>加密</b>庫(kù)開發(fā)比特幣應(yīng)用作一些補(bǔ)充的技術(shù)說(shuō)明

    如何選擇加密芯片以及加密芯片工作原理

    加密芯片,基本都是基于某款單片機(jī),使用I2C或SPI等通訊,使用復(fù)雜加密算法加密來(lái)實(shí)現(xiàn)的。
    的頭像 發(fā)表于 02-18 09:56 ?2593次閱讀

    AN5281_STM32 MCU的受信任環(huán)境中使用OTFDEC進(jìn)行加密/解密

    AN5281_STM32 MCU的受信任環(huán)境中使用OTFDEC進(jìn)行加密/解密
    發(fā)表于 11-21 08:11 ?0次下載
    AN5281_<b class='flag-5'>在</b><b class='flag-5'>STM32</b> <b class='flag-5'>MCU</b>的受信任環(huán)境中使用OTFDEC進(jìn)行<b class='flag-5'>加密</b>/解密

    hash算法FPGA中的實(shí)現(xiàn)(1)

    FPGA的設(shè)計(jì)中,尤其是通信領(lǐng)域,經(jīng)常會(huì)遇到hash算法的實(shí)現(xiàn)。hash算法
    的頭像 發(fā)表于 09-07 17:01 ?1529次閱讀
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b><b class='flag-5'>在</b>FPGA中的實(shí)現(xiàn)(1)

    hash算法FPGA中的實(shí)現(xiàn)(2)

    在前面的文章中:hash算法FPGA中的實(shí)現(xiàn)(一)——hash表的組建,記錄了關(guān)于hash表的構(gòu)建,這里記錄另外一個(gè)話題,就是
    的頭像 發(fā)表于 09-07 17:02 ?1173次閱讀
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b><b class='flag-5'>在</b>FPGA中的實(shí)現(xiàn)(2)

    STM32 MCU工作原理、基本結(jié)構(gòu)及優(yōu)缺點(diǎn)

    STM32 MCU是STMicroelectronics公司生產(chǎn)的一款基于ARM Cortex-M內(nèi)核的32位微控制器,廣泛應(yīng)用于汽車電子、工業(yè)控制、消費(fèi)電子等領(lǐng)域。本文將介紹STM32 MC
    發(fā)表于 09-09 16:36 ?4074次閱讀