91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

防止技術(shù)“輕易”盜取,一種高端芯片加密方案詳解

AGk5_ZLG_zhiyua ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-12-15 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

提起唯一ID,最容易想到的就是我們每個(gè)人的身份證號(hào),均是獨(dú)一無(wú)二的,無(wú)法仿冒。作為芯片而言,同樣具有這一身份標(biāo)識(shí)——UID。利用芯片這唯一ID來(lái)實(shí)現(xiàn)加密,在智能產(chǎn)品競(jìng)爭(zhēng)越來(lái)越激烈的情況下是十分必要的。

首先需要明確的是,沒(méi)有一種加密是“絕對(duì)”可靠的,但是加密手段可以增加非法使用者的解密成本,借此來(lái)防止技術(shù)被“輕易”盜取。本次以LPC1000的UID加密方案為例進(jìn)行介紹。

LPC1000系列的加密方案

通過(guò)分析得出,基于CortexM0或CortexM3內(nèi)核的LPC1000系列MCU通過(guò)軟件加密的方法有兩種:

1、使用代碼讀保護(hù)機(jī)制,限制用戶訪問(wèn)片內(nèi)Flash;

2、通過(guò)芯片UID并添加加密算法使每片MCU內(nèi)的程序具有唯一性。

代碼讀保護(hù)機(jī)制是通過(guò)使能系統(tǒng)中的不同安全級(jí)別,以便限制訪問(wèn)片內(nèi)Flash,本次不做重點(diǎn)介紹。

UID加密

UID是唯一標(biāo)識(shí)符(unique identifier),在LPC1000系列微控制器的每一顆芯片都具有全球唯一的標(biāo)識(shí)符,該標(biāo)識(shí)符為128位二進(jìn)制序列。因此我們可以利用芯片UID的唯一性對(duì)程序進(jìn)行加密,使每一個(gè)產(chǎn)品中的程序也具有唯一性,即使非法使用者獲取了MCU中的程序復(fù)制到其他芯片中也是不能正常運(yùn)行的,從而達(dá)到保護(hù)開(kāi)發(fā)者的知識(shí)產(chǎn)權(quán)不被侵犯和盜用的目的。

LPC1000的UID加密方案

基本思路是使用上位機(jī)軟件通過(guò)編程器讀取芯片的UID,經(jīng)加密算法運(yùn)算后生成密鑰,下載程序的同時(shí)向MCU的Flash中某個(gè)地址寫入密鑰;MCU上電后,首先讀取芯片的UID,再通過(guò)與上位機(jī)相同的加密算法運(yùn)算后計(jì)算出密鑰,并與之前寫入Flash中的密鑰比較,若相同則繼續(xù)執(zhí)行用戶程序,否則跳入死循環(huán)或執(zhí)行程序開(kāi)發(fā)者指定的代碼。

圖1 LPC1000 UID加密方案流程圖

實(shí)現(xiàn)此方案需要準(zhǔn)備的資源如下。

硬件資源:

  • LPC1766FBD100芯片;

  • SmartPRO 5000U-PLUS編程器;

  • QFP100-NXP適配座;

  • SmartCortex M3-1700開(kāi)發(fā)板(測(cè)試用,非必需)。

軟件資源:

  • SmartPRO 2008 2.0.56.exe上位機(jī)軟件;

  • Programmer.rar編程器上位機(jī)UID加密補(bǔ)??;

  • Uid.rar編程器上位機(jī)UID加密算法;

  • LPC1766在Keil4下的工程模板;

  • Keil4開(kāi)發(fā)環(huán)境;

  • Microsoft Visual C++ 6.0。

一、下位機(jī)

下位機(jī)(即LPC1766芯片)上電并初始化后,首先讀取芯片的UID,解析密鑰并與Flash中的密鑰比較判斷后,再繼續(xù)執(zhí)行用戶代碼。這里我們舉例采用的加密算法是將UID的補(bǔ)碼作為密鑰,加密方法比較簡(jiǎn)單,用戶可自行對(duì)加密算法進(jìn)行修改,寫出復(fù)雜的加密算法。

讀取芯片UID的方法是通過(guò)調(diào)用芯片內(nèi)部的IAP函數(shù)實(shí)現(xiàn),如圖2所示。

圖2 讀取UID

二、上位機(jī)

在下位機(jī)LPC1766的程序編寫完成并生成hex或bin文件后,按照以下步驟對(duì)MCU進(jìn)行加密。

第一步,在Microsoft Visual C++ 6.0下編寫加密算法,這里我們已經(jīng)編寫完成,僅需解壓uid.rar并打開(kāi)其中的VC工程。用戶需要在uid.cpp中的UidAlgorithm函數(shù)中添加自定義算法,如圖3。

圖3 加密算法工程

加密算法編寫完成后,編譯將生成一個(gè)名為uid.dll的算法文件。

第二步,安裝SmartPRO 2008軟件,我們默認(rèn)安裝在C:Program Files路徑下。

第三步,安裝SmartPRO 2800加密補(bǔ)丁,方法是將Programmer.rar解壓到C:Programd FilesSmartPRO 2008Programmer路徑下,覆蓋原來(lái)的文件。

第四步,將加密算法生成的uid.dll文件復(fù)制到C:Programd FilesSmartPRO 2008Programmer下,SmartPRO 2008啟動(dòng)后將會(huì)自動(dòng)調(diào)用uid.dll。

第五步,連接硬件,將LPC1766芯片放入適配座ZY503D中,連接USB通信電纜和電源。

第六步,燒寫文件,啟動(dòng)SmartPRO 2008軟件,選擇芯片“LPC1766@LQFP100”,打開(kāi)燒錄文件(在Keil編寫下位機(jī)程序時(shí)生成的hex或bin文件 )。此時(shí)會(huì)出現(xiàn)一個(gè)如圖4的特殊提示,這是因?yàn)镵eil編譯器在編譯時(shí)沒(méi)有將Flash中前8個(gè)字單元的內(nèi)容進(jìn)行代碼有效校驗(yàn)和的填充而產(chǎn)生該警告,點(diǎn)擊“確定”即可,編譯器在下載過(guò)程中會(huì)調(diào)用校驗(yàn)算法自動(dòng)添加校驗(yàn)。關(guān)于代碼有效校驗(yàn)和填充的相關(guān)內(nèi)容請(qǐng)參考LPC1766用戶手冊(cè)中“Flash編程”一章的相關(guān)內(nèi)容。

圖4 用戶代碼無(wú)效提示

第七步,開(kāi)始下載,點(diǎn)擊“組合”即可,默認(rèn)執(zhí)行的是擦除、編程、校驗(yàn)三個(gè)步驟的結(jié)合。

成功編程后,如果重新讀取Flash,打開(kāi)緩沖區(qū),定位到0x00002000處,可以看到已經(jīng)寫入的密鑰。如圖5所示,與此前設(shè)計(jì)的加密算法和加密預(yù)期效果一致。

圖5 緩沖區(qū)查看密鑰

驗(yàn)證方法:取下適配座中的芯片,焊接到TinyARMT17核心板上,查到SmartCortex M3-1700開(kāi)發(fā)板底板上,連接P0.11到BEEP插針,如所示。開(kāi)發(fā)板上電后即可聽(tīng)到蜂鳴器的鳴叫。以此驗(yàn)證芯片計(jì)算出的密鑰與Flash中寫入的密鑰校驗(yàn)一致,芯片程序正常運(yùn)行。

圖6 開(kāi)發(fā)板驗(yàn)證

總結(jié)

經(jīng)此方法向芯片下載程序后,若有產(chǎn)品盜版者試圖將程序讀出然后復(fù)制到其他芯片上使用,程序?qū)⑼A粼谂袛嗝荑€是否匹配語(yǔ)句,導(dǎo)致程序不再向下執(zhí)行,從而防止軟件程序被非法使用者盜用。ZLG致遠(yuǎn)電子在加密保護(hù)方面從未停止過(guò)腳步,為用戶保駕護(hù)航不遺余力!

聲明:本文內(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)投訴
  • 半導(dǎo)體芯片
    +關(guān)注

    關(guān)注

    61

    文章

    943

    瀏覽量

    72636
  • lpc1000
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    1654

原文標(biāo)題:【安全】如何利用芯片“身份證”加密?

文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【封裝技術(shù)】幾種常用硅光芯片光纖耦合方案

    耦合,需要進(jìn)行些特殊處理。硅片和光纖之間耦合主要有垂直耦合和水平耦合兩方式。本文介紹了些典型的光纖陣列耦合方案。 1.V槽陣列耦合 在這種方案
    發(fā)表于 03-04 16:42

    如何正確配置AG32 MCU,實(shí)現(xiàn)FLASH或者代碼加密?

    功能主要包括兩方式:Lock fash(鎖定Flash)和代碼加密(Code Encryption),它們可以在燒錄過(guò)程中通過(guò)特定工具和配置啟用。 方式:Lockflash Lockflash
    發(fā)表于 01-22 15:01

    信道活躍檢測(cè)(CAD)是一種無(wú)線喚醒技術(shù),這個(gè)功能般是定時(shí)檢測(cè)么?還是直檢測(cè)?

    信道活躍檢測(cè)(CAD)是一種無(wú)線喚醒技術(shù),這個(gè)功能般是定時(shí)檢測(cè)么?還是直檢測(cè)?
    發(fā)表于 12-10 06:53

    芯源半導(dǎo)體在物聯(lián)網(wǎng)設(shè)備中具體防護(hù)方案

    )數(shù)據(jù)傳輸安全防護(hù)方案? 在物聯(lián)網(wǎng)設(shè)備與云端、其他設(shè)備進(jìn)行數(shù)據(jù)傳輸時(shí),芯源半導(dǎo)體安全芯片通過(guò)以下方式保障數(shù)據(jù)傳輸安全:? 數(shù)據(jù)加密傳輸:利用安全
    發(fā)表于 11-18 08:06

    芯源半導(dǎo)體安全芯片技術(shù)原理

    才能被加載運(yùn)行。這機(jī)制可以防止惡意固件被植入設(shè)備,確保設(shè)備從啟動(dòng)階段就處于安全狀態(tài)。安全啟動(dòng)過(guò)程中,采用數(shù)字簽名技術(shù),通過(guò)驗(yàn)證固件的簽名來(lái)確認(rèn)固件的來(lái)源和完整性。? 物理安全防護(hù):安全芯片
    發(fā)表于 11-13 07:29

    加密算法的應(yīng)用

    加密一種保護(hù)信息安全的重要手段,近年來(lái)隨著信息技術(shù)的發(fā)展,加密技術(shù)的應(yīng)用越來(lái)越廣泛。本文將介紹加密算法的發(fā)展、含義、分類及應(yīng)用場(chǎng)景。
    發(fā)表于 10-24 08:03

    AES加密流程

    AES(Advanced Encryption Standard)是一種對(duì)稱密鑰加密算法,它是當(dāng)前最常用的加密標(biāo)準(zhǔn)之。AES是一種可靠、高
    發(fā)表于 10-23 06:13

    VPP加密芯片撐起虛擬電廠安全

    算法(SM2/SM3/SM4),并采用通過(guò)認(rèn)證的密碼產(chǎn)品,因此,加密芯片是滿足這些要求的重要硬件基礎(chǔ)。 ? 而在實(shí)際應(yīng)用中,包括保障數(shù)據(jù)安全,以及確保設(shè)備身份認(rèn)證的準(zhǔn)確性等,都需要用到安全加密
    的頭像 發(fā)表于 09-28 08:13 ?4265次閱讀

    一種基于紅外吸收光譜技術(shù)的免校準(zhǔn)氣體傳感芯片

    近日,天津大學(xué)精密儀器與光電子工程學(xué)院的光子芯片實(shí)驗(yàn)室研發(fā)了一種基于紅外吸收光譜技術(shù)的免校準(zhǔn)氣體傳感芯片,成果獲得中國(guó)發(fā)明專利(ZL202411675536.3)授權(quán)。
    的頭像 發(fā)表于 07-29 10:32 ?924次閱讀
    <b class='flag-5'>一種</b>基于紅外吸收光譜<b class='flag-5'>技術(shù)</b>的免校準(zhǔn)氣體傳感<b class='flag-5'>芯片</b>

    安芯半導(dǎo)體發(fā)布全新防復(fù)制加密芯片RJGT28E30

    ECC橢圓曲線加密算法是一種非對(duì)稱加密算法,相對(duì)于對(duì)稱加密算法,更便于密鑰的管理,且相對(duì)于等密鑰長(zhǎng)度的RSA算法更安全。
    的頭像 發(fā)表于 06-10 17:53 ?1335次閱讀
    安芯半導(dǎo)體發(fā)布全新防復(fù)制<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>RJGT28E30

    加密芯片的功能原理和應(yīng)用領(lǐng)域

    部分。而加密芯片作為加密技術(shù)的核心實(shí)現(xiàn)方案,在信息安全領(lǐng)域占據(jù)著非常重要的地位。本文將重
    的頭像 發(fā)表于 05-19 16:45 ?1632次閱讀
    <b class='flag-5'>加密</b><b class='flag-5'>芯片</b>的功能原理和應(yīng)用領(lǐng)域

    芯片新關(guān)稅涉及的品牌/標(biāo)簽/產(chǎn)地—詳解

    芯片新關(guān)稅涉及的品牌/標(biāo)簽/產(chǎn)地—詳解
    的頭像 發(fā)表于 04-16 17:44 ?1057次閱讀
    <b class='flag-5'>芯片</b>新關(guān)稅涉及的品牌/標(biāo)簽/產(chǎn)地—<b class='flag-5'>詳解</b>

    詳解芯片堆疊技術(shù)

    芯片堆疊技術(shù)的出現(xiàn),順應(yīng)了器件朝著小型化、集成化方向發(fā)展的趨勢(shì)。該技術(shù)與先進(jìn)封裝領(lǐng)域中的系統(tǒng)級(jí)封裝(SIP)存在定差異。
    的頭像 發(fā)表于 04-12 14:22 ?2987次閱讀
    <b class='flag-5'>一</b>文<b class='flag-5'>詳解</b>多<b class='flag-5'>芯片</b>堆疊<b class='flag-5'>技術(shù)</b>

    redis三集群方案詳解

    在Redis中提供的集群方案總共有三個(gè)redis節(jié)點(diǎn)不超過(guò)10G內(nèi)存)。
    的頭像 發(fā)表于 03-31 10:46 ?1535次閱讀
    redis三<b class='flag-5'>種</b>集群<b class='flag-5'>方案</b><b class='flag-5'>詳解</b>

    率能直流無(wú)刷電機(jī)驅(qū)動(dòng)芯片SS6209代理供應(yīng)

    芯片簡(jiǎn)介 SS6209 將半橋 MOSFET 驅(qū)動(dòng)器(高邊+ 低邊)集成到 SOP8 的封裝中。與分立元件解 決方案相比,SS6209 集成解決方案大大減少 了分立方案的寄生效應(yīng)和板空
    發(fā)表于 03-12 14:40