嵌入式系統(tǒng)SHA256哈希加密系統(tǒng)原理解析及其應(yīng)用
摘要:本文主要研究了HASH算法加密芯片的工作原理及其在STM32 MCU上的應(yīng)用,實(shí)現(xiàn)了外部加密芯片對(duì)STM32 MCU的程序保護(hù),目前的技術(shù)手段無法對(duì)其進(jìn)行破解,其安全性優(yōu)于其它加密方式。本文首先介紹了SHA256算法的特點(diǎn)。分析了外部加密芯片加密MCU的基本原理和加密安全性的理論分析。并以LCS4110R為例介紹了在STM32F103上的應(yīng)用,包括軟件和硬件。通過本文的論述,開發(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ù)方案。
關(guān)鍵詞:HASH哈希加密算法,SHA256加密芯片;知識(shí)產(chǎn)權(quán)保護(hù);STM32;DS28E15, LCS4110R, RJGT102, IIC , 1-Wire
Abstract: This paper mainly research the working principle of HASH algorithm encryption chip and its application on STM32 MCUIn this paper, the program protection of STM32 MCU by external encryption chip is realized. The current technology can’t crack it, and its security is better than other encryption methods. This paper first introduces the characteristics of SHA256 algorithm. The basic principle of MCU encryption by external encryption chip and the theoretical analysis of encryption security are analyzed. Taking LCS4110R as an example, the application on STM32F103 is introduced, including software and hardware. Through the discussion of this paper, developers can have a theoretical understanding of external encryption chip encryption MCU, and provide reference and reference for the application of encryption chip, MCU security protection has a certain reference value and practical value. At the same time, EECraftsman Electronic technology has developed and supported the industry's representative Maxim DS28E15, LCS4110R, RJGT102 and other different solutions, and has been officially launched to the market, to provide customers with enterprise-level high value-added products of intellectual property encryption protection solutions.
Keywords: HASH hash encryption algorithm; SHA256 encryption chip; IPR(intellectual property protection);STM32;DS28E15;LCS4110R;RJGT102;IIC;1Wire
隨著信息技術(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)鍵問題。為了應(yīng)對(duì)日益復(fù)雜和智能化的安全威脅,研究和采用高效、安全的加密機(jī)制至關(guān)重要。
而在信息安全領(lǐng)域中,外部加密芯片作為一種重要的技術(shù),因其強(qiáng)大的加密能力和硬件級(jí)別的安全保障而備受矚目。外部加密芯片通過將加密算法和密鑰等關(guān)鍵信息嵌入到硬件芯片中,實(shí)現(xiàn)對(duì)敏感數(shù)據(jù)的高強(qiáng)度加密和解密過程。相比于傳統(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)。通過本文的論述,希望對(duì)開發(fā)外部加密芯片的開發(fā)者在理解,設(shè)計(jì)外部加密芯片方案時(shí)提供一些使用價(jià)值和參考借鑒。
1. SHA256加密算法
1.1 HASH與SHA256
哈希算法(Hash Algorithm)又稱散列算法、散列函數(shù)、哈希函數(shù),是一種從任何一種數(shù)據(jù)中創(chuàng)建小的數(shù)字“指紋”的方法。無論輸入是什么數(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)制字符串來表示,其中1個(gè)字節(jié)=8位,一個(gè)十六進(jìn)制的字符的長(zhǎng)度為4位。
比如字符串EECraftsman經(jīng)過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算法目前無法破解,也因此被用于比特幣的加密算法。
2. 加密芯片的介紹
加密芯片內(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ù)。
3. 加密芯片的原理分析
加密芯片的使用使得MCU內(nèi)部程序即使被拷貝重新下載到其它MCU上,由于無法繞過外部加密芯片的認(rèn)證,故此程序無法正常運(yùn)行。
3.1加密芯片加密的基本原理
1. 外部加密芯片和MCU存儲(chǔ)相同的密鑰
2. 外部加密芯片和MCU分別通過SHA256計(jì)算,對(duì)密鑰進(jìn)行計(jì)算得到MAC值
3.對(duì)比兩組計(jì)算得到的值是否相同,如果相同則認(rèn)為雙方的密鑰相同(SHA256具有防碰撞的特點(diǎn))則認(rèn)證成功
但是這樣做存在一個(gè)問題,加密芯片和MCU之間需要通信傳輸MAC值,這個(gè)值在傳輸?shù)倪^程中有被捕獲的可能性,對(duì)于MCU而言,其對(duì)加密芯片的操作就是發(fā)送驗(yàn)證命令,獲取MAC值然后對(duì)比。一旦此MAC值被捕獲,那么攻擊者就會(huì)模擬整個(gè)通信過程和MAC值,實(shí)現(xiàn)對(duì)系統(tǒng)的破解。
3.2 MCU認(rèn)證的具體流程
為了解決3.1存在的問題,我們?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)證通過,否則認(rèn)證不通過
3.3加密系統(tǒng)的安全性分析
1. 每次進(jìn)行SHA256計(jì)算的原始數(shù)據(jù)都是隨機(jī)數(shù)和密鑰的結(jié)合,所以每一次經(jīng)過SHA256計(jì)算之后生成MAC值都是不相同的,根據(jù)SHA256的雪崩效應(yīng),無法通過MAC結(jié)果去反推密鑰
2. 由于每次認(rèn)證的MAC值都是不相同的,所以無法外部模擬加密芯片的計(jì)算結(jié)果,用以攻擊MCU
3. 由于加密芯片自身的安全性,其內(nèi)部的密鑰不會(huì)被攻擊者竊取
4. 由于MCU的FLASH容易收到攻擊,所以本方案中將MCU中存儲(chǔ)的密鑰保存在代碼區(qū)里面,并且采用分散的存儲(chǔ)方案,使攻擊者即使拿到了flash的所有內(nèi)容也無法找到密鑰存儲(chǔ)的具體位置
4. 外部加密芯片的實(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ǔ)。
2. 對(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文件直接燒錄到芯片中,如下圖。
3. 認(rèn)證程序流程
4. 將隨機(jī)數(shù)與SHA256計(jì)算命令下發(fā)到加密芯片
5. 獲取加密芯片的計(jì)算結(jié)果
6. 對(duì)比MCU內(nèi)部計(jì)算的結(jié)果與從加密芯片上獲取的結(jié)果,相同則認(rèn)為認(rèn)證成功,不同則認(rèn)為認(rèn)證失敗
5. 凝睿加密方案介紹
凝睿SHA_256方案提供多種加密芯片的支持,用戶無需研究任何外部加密芯片的相關(guān)操作方法,也無需實(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ī)制,用戶無需考慮芯片代碼的燒錄與密鑰的管理,極大的降低了密鑰泄露的可能性。
5.1 凝睿方案的實(shí)現(xiàn)
凝睿SHA_256加密方案軟件開發(fā)步驟如下(以LCS4110R為例)
1. 包含如下圖相關(guān).h文件到工程
2. 將EEC_SHA256.lib庫(kù)文件添加到工程
3. 實(shí)現(xiàn)以下物理層函數(shù)指針接口
4.加密芯片初始化與認(rèn)證函數(shù)
下圖為加密芯片初始化與認(rèn)證代碼,其中SecurityInit函數(shù)為加密芯片初始化函數(shù),開機(jī)運(yùn)行即可。SecurityCertificate函數(shù)為認(rèn)證函數(shù),用戶可以隨時(shí)調(diào)用,用以進(jìn)行外部加密芯片的認(rèn)證。
5. 隨機(jī)數(shù)生成函數(shù)
對(duì)于不同架構(gòu)的MCU隨機(jī)數(shù)生成的方式是不相同的,有的MCU具有硬件隨機(jī)數(shù)發(fā)生器,這種情況下使用硬件隨機(jī)數(shù)生成即可,對(duì)于沒有硬件隨機(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直接模擬單總線。
6. 結(jié)論
綜上所述,外部加密芯片以其卓越安全防護(hù)機(jī)制,能夠從硬件有效的保護(hù)其內(nèi)部數(shù)據(jù)不被攻擊,SHA256算法從原理機(jī)制上杜絕了被惡意攻擊的可能性,通過外部芯片對(duì)MCU的保護(hù)能夠有效的保護(hù)MCU程序不被非法復(fù)制拷貝。防止非法抄板,極大程度保護(hù)了開發(fā)者的知識(shí)產(chǎn)權(quán)。
7. 合作模式
為推動(dòng)知識(shí)產(chǎn)權(quán)與高附加值產(chǎn)品的保護(hù),凝睿電子科技向有加密需求的客戶,免費(fèi)提供完整的技術(shù)解決方案,免費(fèi)的軟件庫(kù)及整合編譯使用支持,并提供企業(yè)級(jí)密鑰管理的預(yù)加載密鑰加密芯片零售及批量銷售。 詳情請(qǐng)聯(lián)系: 400-188-0158 或致電集團(tuán)營(yíng)銷中心:Tel:021-55663631-828,Phone:18621964602,Mail:sales@1st-labs.com
本文由上海凝睿電子科技有限公司西安分公司原創(chuàng),如需轉(zhuǎn)載請(qǐng)標(biāo)明出處。
歡迎聯(lián)系我們,共同探討學(xué)習(xí)。
Tel:400-188-0158
Web:www.fbea.cn