在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

AGk5_ZLG_zhiyua ? 來源:互聯網 ? 作者:佚名 ? 2017-12-15 09:37 ? 次閱讀

提起唯一ID,最容易想到的就是我們每個人的身份證號,均是獨一無二的,無法仿冒。作為芯片而言,同樣具有這一身份標識——UID。利用芯片這唯一ID來實現加密,在智能產品競爭越來越激烈的情況下是十分必要的。

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

LPC1000系列的加密方案

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

1、使用代碼讀保護機制,限制用戶訪問片內Flash;

2、通過芯片UID并添加加密算法使每片MCU內的程序具有唯一性。

代碼讀保護機制是通過使能系統中的不同安全級別,以便限制訪問片內Flash,本次不做重點介紹。

UID加密

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

LPC1000的UID加密方案

基本思路是使用上位機軟件通過編程器讀取芯片的UID,經加密算法運算后生成密鑰,下載程序的同時向MCU的Flash中某個地址寫入密鑰;MCU上電后,首先讀取芯片的UID,再通過與上位機相同的加密算法運算后計算出密鑰,并與之前寫入Flash中的密鑰比較,若相同則繼續執行用戶程序,否則跳入死循環或執行程序開發者指定的代碼。

圖1 LPC1000 UID加密方案流程圖

實現此方案需要準備的資源如下。

硬件資源:

  • LPC1766FBD100芯片;

  • SmartPRO 5000U-PLUS編程器;

  • QFP100-NXP適配座;

  • SmartCortex M3-1700開發板(測試用,非必需)。

軟件資源:

  • SmartPRO 2008 2.0.56.exe上位機軟件;

  • Programmer.rar編程器上位機UID加密補丁;

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

  • LPC1766在Keil4下的工程模板;

  • Keil4開發環境;

  • Microsoft Visual C++ 6.0。

一、下位機

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

讀取芯片UID的方法是通過調用芯片內部的IAP函數實現,如圖2所示。

圖2 讀取UID

二、上位機

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

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

圖3 加密算法工程

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

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

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

第四步,將加密算法生成的uid.dll文件復制到C:Programd FilesSmartPRO 2008Programmer下,SmartPRO 2008啟動后將會自動調用uid.dll。

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

第六步,燒寫文件,啟動SmartPRO 2008軟件,選擇芯片“LPC1766@LQFP100”,打開燒錄文件(在Keil編寫下位機程序時生成的hex或bin文件 )。此時會出現一個如圖4的特殊提示,這是因為Keil編譯器在編譯時沒有將Flash中前8個字單元的內容進行代碼有效校驗和的填充而產生該警告,點擊“確定”即可,編譯器在下載過程中會調用校驗算法自動添加校驗。關于代碼有效校驗和填充的相關內容請參考LPC1766用戶手冊中“Flash編程”一章的相關內容。

圖4 用戶代碼無效提示

第七步,開始下載,點擊“組合”即可,默認執行的是擦除、編程、校驗三個步驟的結合。

成功編程后,如果重新讀取Flash,打開緩沖區,定位到0x00002000處,可以看到已經寫入的密鑰。如圖5所示,與此前設計的加密算法和加密預期效果一致。

圖5 緩沖區查看密鑰

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

圖6 開發板驗證

總結

經此方法向芯片下載程序后,若有產品盜版者試圖將程序讀出然后復制到其他芯片上使用,程序將停留在判斷密鑰是否匹配語句,導致程序不再向下執行,從而防止軟件程序被非法使用者盜用。ZLG致遠電子在加密保護方面從未停止過腳步,為用戶保駕護航不遺余力!

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

    關注

    60

    文章

    921

    瀏覽量

    70853
  • lpc1000
    +關注

    關注

    0

    文章

    1

    瀏覽量

    1632

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

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    加密芯片一種破解方法和對應加密方案改進設計

    ? ? ? 本文用實例描述了如何破 解、解密使用邏輯加密芯片保護的STM32方案,包括如果固定ID和固定隨機數。后面提出了加強加密方案
    發表于 12-30 14:04 ?1次下載

    STM32配合可編程加密芯片SMEC88ST的防抄板加密方案設計

    。 ③主MCU程序做完整性校驗,完整性校驗綁定UID,防止STM32程序被破解者破解得到后通過竄改來跟蹤、分析、破解加密方案。(可參考筆者另篇文章《淺談
    發表于 12-27 13:03

    EMMC數據加密技術與應用

    EMMC簡介 EMMC(Embedded Multi Media Card)是一種高速、高性能的存儲解決方案,廣泛應用于智能手機、平板電腦、數碼相機等移動設備中。它具有體積小、功耗低、讀寫速度快等
    的頭像 發表于 12-25 09:51 ?385次閱讀

    淺談加密芯片一種破解方法和對應加密方案改進設計

    ,只要破解了一種方式,那么只要使用這種邏輯加密芯片和這種加密方式的產品都很容易破解,就像上述破解方式,破解者不需要去破解加密
    發表于 12-20 15:31

    淺談加密芯片一種破解方法和加密方案改進設計

    破解了一種方式,那么只要使用這種邏輯加密芯片和這種加密方式的產品都很容易破解,就像上述破解方式,破解者不需要去破解加密
    發表于 12-20 15:10

    一種使用LDO簡單電源電路解決方案

    本期我們介紹一種使用LDO簡單電源電路解決方案,該方案可以處理12V/24V、多節鋰離子電池和4節干電池等相對較高的輸入電壓。
    的頭像 發表于 12-04 16:05 ?483次閱讀
    <b class='flag-5'>一種</b>使用LDO簡單電源電路解決<b class='flag-5'>方案</b>

    加密核心是基于Rijndael AES-128,具有192位可編程參數的加密芯片

    加密芯片 - ALPU-C,該款加密芯片是ALPU系列中的高端IC,其加密核心基于Rijntra
    的頭像 發表于 12-04 09:32 ?277次閱讀
    <b class='flag-5'>加密</b>核心是基于Rijndael AES-128,具有192位可編程參數的<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>

    aes加密的常見錯誤及解決方案

    AES(Advanced Encryption Standard,高級加密標準)是一種對稱加密算法,它使用固定長度的密鑰對數據進行加密。在使用AES
    的頭像 發表于 11-14 15:13 ?2398次閱讀

    智慧公交是什么?文帶你詳解智慧公交的解決方案

    智慧公交是什么?文帶你詳解智慧公交的解決方案
    的頭像 發表于 11-05 12:26 ?471次閱讀
    智慧公交是什么?<b class='flag-5'>一</b>文帶你<b class='flag-5'>詳解</b>智慧公交的解決<b class='flag-5'>方案</b>!

    安卓APP開發中,如何使用加密芯片?

    加密芯片一種專門設計用于保護信息安全的硬件設備,它通過內置的加密算法對數據進行加密和解密,以防止
    的頭像 發表于 10-31 17:43 ?540次閱讀
    安卓APP開發中,如何使用<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>?

    AG32 芯片保護與加密

    AG32 芯片保護與加密 代碼安全有兩方式: 一種是 Lock flash,個是代碼加密
    發表于 09-19 16:01

    一種供電總線技術POWERBUS二總線

    首先給大家介紹一種總線技術Powerbus總線,特性: 1.總線可供電,通訊和供電無需電氣隔離 2.總線抗干擾能力強,可與市電并走 3.可支持總線電流20A(2400bps) 4.具備總線短路保護
    發表于 07-23 13:38

    一種浮力儲能的技術方案

    如圖的技術方案,各位請看看能否解決現在比較難處理儲能的問題。
    發表于 07-04 15:41

    嵌入式產品如何做安全加密

    為了防止硬件電路與固件被抄襲,核心在于加密芯片和安全解決方案的設計,目前大多MPU并不具備安全防護功能,所以最好的辦法是使用顆專用的
    的頭像 發表于 06-20 17:46 ?915次閱讀
    嵌入式產品如何做安全<b class='flag-5'>加密</b>?

    一種基于WTR096-28SS芯片方案的寵物喂食器設計方案

    方案寵物喂食器采用了WTR096-28SS芯片方案來實現智能化的喂食功能。該方案結合了先進的技術和設計理念,提供了便捷、智能和個性化的寵物
    的頭像 發表于 03-12 10:38 ?556次閱讀
    求<b class='flag-5'>一種</b>基于WTR096-28SS<b class='flag-5'>芯片</b><b class='flag-5'>方案</b>的寵物喂食器設計<b class='flag-5'>方案</b>
    主站蜘蛛池模板: 婷婷六月丁 | 国产视频福利 | 好硬好湿好爽再深一点h视频 | 五月婷婷丁香花 | 国产性老妇女做爰在线 | 欧美一级一一特黄 | 五月亭亭激情五月 | 香港日本三级在线播放 | 黄色成人免费网站 | 日本黄色网址视频 | 天天舔 | 性free中国美女hd | 男人女人真曰批视频播放 | 亚洲精品在线不卡 | 色婷综合| 国产亚洲精品在天天在线麻豆 | 十三以下岁女子毛片免费播放 | 天天色天天摸 | 日本黄色大片在线观看 | 精品国产理论在线观看不卡 | 四虎影视永久在线观看 | 轻点灬大ji巴太粗太长了啊h | 成年美女 | 国产免费一级在线观看 | 免费一级特黄特色大片在线观看看 | 日本欧美一区二区 | 一区二区三区四区在线观看视频 | 中文字幕在线资源 | 久久99精品久久久久久牛牛影视 | 一级毛片看真人在线视频 | 亚洲资源在线播放 | 国模大尺度人体一区 | 手机看片99 | 男人的天堂色偷偷之色偷偷 | 午夜一区二区免费视频 | 91福利国产在线观看网站 | 男人午夜小视频 | 亚洲三级免费观看 | 亚洲午夜精品在线 | 亚洲最大成人 | 性欧美bbbbbb |