<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

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

隨著信息技術的迅猛發展和互聯網的普及,保護敏感信息的安全性成為了當今社會不可或缺的需求。在數字化時代,知識產權保護,硬件設備防復制已經成為目前產品開發的關鍵問題。為了應對日益復雜和智能化的安全威脅,研究和采用高效、安全的加密機制至關重要。

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

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

01SHA256加密算法

1.1 HASH與SHA256

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

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

如下圖所示,對于任意長度的消息,SHA256都會產生一個256位的哈希值,稱作消息摘要。這個摘要相當于是個長度為32個字節的數組,通常有一個長度為64的十六進制字符串來表示,其中1個字節=8位,一個十六進制的字符的長度為4位。

比如字符串EECraftsman經過SHA256加密后得到的摘要為:

E6953E84118305E6C668E944D8B00C635B4DFA5543DDFF0346BC03ABCBEEB0D0

圖片

1.2 SHA256特點

a. 壓縮性:任意長度的數據,算出的SHA256值長度都是固定的。

b. 容易計算:從原數據計算出SHA256值很容易。

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

d. 雪崩效應:輸入的數據列即使其中一位發生變化,SHA-256的計算結果也會發生非常巨大的變化。

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

02加密芯片的介紹

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

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

03加密芯片的原理分析

加密芯片的使用使得MCU內部程序即使被拷貝重新下載到其它MCU上,由于無法繞過外部加密芯片的認證,故此程序無法正常運行。

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

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

圖片

但是這樣做存在一個問題,加密芯片和MCU之間需要通信傳輸MAC值,這個值在傳輸的過程中有被捕獲的可能性,對于MCU而言,其對加密芯片的操作就是發送驗證命令,獲取MAC值然后對比。一旦此MAC值被捕獲,那么攻擊者就會模擬整個通信過程和MAC值,實現對系統的破解。

3.2 MCU認證的具體流程

為了解決3.1存在的問題我們在整個認證流程中增加了隨機數,其流程框圖如下圖

  1. MCU生成隨機數并發送給LCS4110R
  2. MCU內部將生成的隨機數和密鑰相結合,然后進行SHA256計算得到MAC值
  3. 加密芯片內部同樣將自己獲取到的隨機數與自己保存的密鑰融合后進行SHA256計算得到MAC值
  4. MCU獲取加密芯片計算的MAC值和自身計算的MAC值作比較,相同則認為內部密鑰相同,認證通過,否則認證不通過

圖片

3.3加密系統的安全性分析

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

04外部加密芯片的實際應用

4.1 硬件部分

圖片

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

4.2 軟件部分

  1. MCU實現IIC通信協議

作為加密芯片和MCU之間的通信協議,IIC協議的實現是加密方案的基礎。

  1. 對LCS4110R進行文件系統的構建

LCS4110R遵循LKCOS系統,對其進行的操作建立在其文件系統之上,其文件系統的需根據《LKCOS智能操作系統參考手冊》進行創建,創建代碼生成之后可將hex文件直接燒錄到芯片中,如下圖。

圖片

  1. 認證程序流程
  2. 將隨機數與SHA256計算命令下發到加密芯片
  3. 獲取加密芯片的計算結果
  4. 對比MCU內部計算的結果與從加密芯片上獲取的結果,相同則認為認證成功,不同則認為認證失敗

05凝睿加密方案介紹

凝睿SHA_256方案提供多種加密芯片的支持,用戶無需研究任何外部加密芯片的相關操作方法,也無需實現IIC通信協議,甚至不需要調試,使用凝睿SHA_256提供的庫文件,實現其相關接口,即可完成加密相關開發。

此外,凝睿SHA_256提供燒錄好密鑰的加密芯片,提供企業級的密鑰授權管理機制,用戶無需考慮芯片代碼的燒錄與密鑰的管理,極大的降低了密鑰泄露的可能性。

5.1 凝睿方案的實現

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

  1. 包含如下圖相關.h文件到工程

圖片

  1. 將EEC_SHA256.lib庫文件添加到工程

圖片

  1. 實現以下物理層函數指針接口

圖片

  1. 加密芯片初始化與認證函數

下圖為加密芯片初始化與認證代碼,其中SecurityInit函數為加密芯片初始化函數,開機運行即可。SecurityCertificate函數為認證函數,用戶可以隨時調用,用以進行外部加密芯片的認證。

圖片

  1. 隨機數生成函數

對于不同架構的MCU隨機數生成的方式是不相同的,有的MCU具有硬件隨機數發生器,這種情況下使用硬件隨機數生成即可,對于沒有硬件隨機數生成的MCU,推薦以下方式:

首先使用ADC采樣的值或者定時計數器的計數值生成隨機數種子。

再生成隨機數,這樣生成的隨機數更接近真隨機。

代碼如下圖所示

圖片

5.2更多支持

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

其中DS28E15由美國美信公司生產具有高級物理安全保障的工業級加密芯片,RJGT102是由武漢瑞納捷半導體生產的高性能防復制加密芯片。針對不同的使用場景與使用需求,我們可以提供不同的解決方案。

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

圖片

如圖,IIC轉1-Wire芯片為可選項,其主要針對主頻較低的MCU驅動超高速1-Wire協議而設計,而對于低速的1-Wire協議則可以使用MCU直接模擬單總線。

06結論

綜上所述,外部加密芯片以其卓越安全防護機制,能夠從硬件有效的保護其內部數據不被攻擊,SHA256算法從原理機制上杜絕了被惡意攻擊的可能性,通過外部芯片對MCU的保護能夠有效的保護MCU程序不被非法復制拷貝。防止非法抄板,極大程度保護了開發者的知識產權。

07合作模式

為推動知識產權與高附加值產品的保護,凝睿電子科技向有加密需求的客戶,免費提供完整的技術解決方案,免費的軟件庫及整合編譯使用支持,并提供企業級密鑰管理的預加載密鑰加密芯片零售及批量銷售。

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16130

    瀏覽量

    344842
  • STM32
    +關注

    關注

    2245

    文章

    10688

    瀏覽量

    349664
  • 程序
    +關注

    關注

    114

    文章

    3640

    瀏覽量

    79730
  • 加密芯片
    +關注

    關注

    2

    文章

    102

    瀏覽量

    23478
  • Hash算法
    +關注

    關注

    0

    文章

    43

    瀏覽量

    7368
收藏 人收藏

    評論

    相關推薦

    加密芯片工作原理max32555

    加密芯片MAX32555是一種廣泛應用的硬件加密設備,它采用先進的加密算法和技術,對數據進行加密和解密操作,以確保數據傳輸和存儲的安全性。本
    的頭像 發表于 12-13 15:03 ?1084次閱讀

    支持國密算法加密芯片

    大幅提升,適用于高速數據流加密。同時,該芯片還集成了鍵盤控制模塊,適用于高端鍵盤和安全鍵盤的設計。TF32A09系列芯片支持國家密碼管理局指定的對稱密碼算法、非對稱密碼
    發表于 04-27 17:17

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

    STM32有一個ID號,加密芯片有一個ID號。加密芯片有DES算法,
    發表于 09-09 10:39

    如何選用正確的加密芯片

    芯片采用隨機變量交換系統的認證加密芯片,SOT-23F這樣一個小封裝內整合了1萬多個邏輯門。ALPU與系統CPU以密碼方式通信,CPU
    發表于 12-05 17:07

    安全加密芯片

    下載到加密芯片中。實際運行過程中,通過I2C通信,獲取加密芯片中運行結果,并以此結果,作為MCU
    發表于 06-09 16:59

    定制化加密芯片優勢和產品特點

    密碼方式通信,MCU諸如系統啟動等關鍵場合檢測ALPU加密芯片。所以即使盜版系統復制了PCB、內核甚至存儲器中的固件,但若缺少這顆定制加密
    發表于 07-20 16:24

    MCU加密方法你知道多少?

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

    加密芯片在人臉識別算法的保護與應用

    晶振,無需外接晶振電路。如何保護人臉識別核心算法?1、ALPU系列加密芯片工作原理為在被保護器件的引導區寫入密鑰,從而防止器件內的軟件代碼被惡意拷貝,這是ASIC方式,,就是說硬件方式
    發表于 10-24 10:57

    Hash算法簡介

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

    hash算法的原理和實際應用等幾個角度,對hash算法進行一個講解

    由于hash的原理是將輸入空間的值映射成hash空間內,而hash值的空間遠小于輸入的空間。根據抽屜原理,一定會存在不同的輸入被映射成相同輸出的情況。那么作為一個好的hash
    的頭像 發表于 06-03 17:34 ?3032次閱讀
    從<b class='flag-5'>hash</b><b class='flag-5'>算法</b>的原理和實際應用等幾個角度,對<b class='flag-5'>hash</b><b class='flag-5'>算法</b>進行一個講解

    針對STM32客戶的反饋,對使用STM32加密庫開發比特幣應用作一些補充的技術說明

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

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

    加密芯片,基本都是基于某款單片機,使用I2C或SPI等通訊,使用復雜加密算法加密來實現的。
    的頭像 發表于 02-18 09:56 ?2130次閱讀

    hash算法在FPGA中的實現(1)

    在FPGA的設計中,尤其是在通信領域,經常會遇到hash算法的實現。hash算法在FPGA的設計中,它主要包括2個部分,第一個就是如何選擇一個好的h
    的頭像 發表于 09-07 17:01 ?686次閱讀
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b>在FPGA中的實現(1)

    hash算法在FPGA中的實現(2)

    在前面的文章中:hash算法在FPGA中的實現(一)——hash表的組建,記錄了關于hash表的構建,這里記錄另外一個話題,就是hash鏈表
    的頭像 發表于 09-07 17:02 ?457次閱讀
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b>在FPGA中的實現(2)

    STM32 MCU工作原理、基本結構及優缺點

    STM32 MCU是STMicroelectronics公司生產的一款基于ARM Cortex-M內核的32位微控制器,廣泛應用于汽車電子、工業控制、消費電子等領域。本文將介紹STM32 MC
    發表于 09-09 16:36 ?2295次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>