摘要: 本文主要研究了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加密芯片加密的基本原理
- 外部加密芯片和MCU存儲(chǔ)相同的密鑰
- 外部加密芯片和MCU分別通過(guò)SHA256計(jì)算,對(duì)密鑰進(jìn)行計(jì)算得到MAC值
- 對(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ù),其流程框圖如下圖
- MCU生成隨機(jī)數(shù)并發(fā)送給LCS4110R
- MCU內(nèi)部將生成的隨機(jī)數(shù)和密鑰相結(jié)合,然后進(jìn)行SHA256計(jì)算得到MAC值
- 加密芯片內(nèi)部同樣將自己獲取到的隨機(jī)數(shù)與自己保存的密鑰融合后進(jìn)行SHA256計(jì)算得到MAC值
- MCU獲取加密芯片計(jì)算的MAC值和自身計(jì)算的MAC值作比較,相同則認(rèn)為內(nèi)部密鑰相同,認(rèn)證通過(guò),否則認(rèn)證不通過(guò)
3.3加密系統(tǒng)的安全性分析
- 每次進(jìn)行SHA256計(jì)算的原始數(shù)據(jù)都是隨機(jī)數(shù)和密鑰的結(jié)合,所以每一次經(jīng)過(guò)SHA256計(jì)算之后生成MAC值都是不相同的,根據(jù)SHA256的雪崩效應(yīng),無(wú)法通過(guò)MAC結(jié)果去反推密鑰
- 由于每次認(rèn)證的MAC值都是不相同的,所以無(wú)法外部模擬加密芯片的計(jì)算結(jié)果,用以攻擊MCU
- 由于加密芯片自身的安全性,其內(nèi)部的密鑰不會(huì)被攻擊者竊取
- 由于MCU的FLASH容易收到攻擊,所以本方案中將MCU中存儲(chǔ)的密鑰保存在代碼區(qū)里面,并且采用分散的存儲(chǔ)方案,使攻擊者即使拿到了flash的所有內(nèi)容也無(wú)法找到密鑰存儲(chǔ)的具體位置
04外部加密芯片的實(shí)際應(yīng)用
4.1 硬件部分
如上圖所示,LCS4110R采用IIC通信,硬件上只需要兩根線與MCU相連接即可。
4.2 軟件部分
- MCU實(shí)現(xiàn)IIC通信協(xié)議
作為加密芯片和MCU之間的通信協(xié)議,IIC協(xié)議的實(shí)現(xiàn)是加密方案的基礎(chǔ)。
- 對(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文件直接燒錄到芯片中,如下圖。
- 認(rèn)證程序流程
- 將隨機(jī)數(shù)與SHA256計(jì)算命令下發(fā)到加密芯片
- 獲取加密芯片的計(jì)算結(jié)果
- 對(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為例)
- 包含如下圖相關(guān).h文件到工程
- 將EEC_SHA256.lib庫(kù)文件添加到工程
- 實(shí)現(xiàn)以下物理層函數(shù)指針接口
- 加密芯片初始化與認(rèn)證函數(shù)
下圖為加密芯片初始化與認(rèn)證代碼,其中SecurityInit函數(shù)為加密芯片初始化函數(shù),開機(jī)運(yùn)行即可。SecurityCertificate函數(shù)為認(rèn)證函數(shù),用戶可以隨時(shí)調(diào)用,用以進(jìn)行外部加密芯片的認(rèn)證。
- 隨機(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)源:上海凝睿電子科技有限公司西安分公司
-
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
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
加密芯片工作原理max32555
如何選用正確的加密芯片
MCU加密方法你知道多少?
加密芯片在人臉識(shí)別算法上的保護(hù)與應(yīng)用
關(guān)于應(yīng)用到游戲中的加密算法的用途及缺陷
常見(jiàn)的hash算法有哪些及其原理是什么

Hash算法簡(jiǎn)介
數(shù)據(jù)加密的工作原理詳解
針對(duì)STM32客戶的反饋,對(duì)使用STM32加密庫(kù)開發(fā)比特幣應(yīng)用作一些補(bǔ)充的技術(shù)說(shuō)明

如何選擇加密芯片以及加密芯片的工作原理
AN5281_在STM32 MCU的受信任環(huán)境中使用OTFDEC進(jìn)行加密/解密

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

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

評(píng)論