色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

LPC1000的UID加密方案

AGk5_ZLG_zhiyua ? 來源:未知 ? 作者:佚名 ? 2017-10-20 14:46 ? 次閱讀

嵌入式系統產品的加密和解密永遠是一對矛盾的結合體。為了保護產品研發人員的技術成果,研究新型加密技術是非常有必要的。這次我們來聊聊使用芯片UID加密的方案。

首先需要明確的是,沒有一種加密是“絕對”可靠的,但是加密手段可以增加非法使用者的解密成本,借此來防止技術被“輕易”盜取。本次以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加密方案流程圖

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

1、硬件資源:

  • LPC1766FBD100芯片;

  • SmartPRO 5000U-PLUS編程器;

  • QFP100-NXP適配座;

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

2、軟件資源:

  • 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 讀取UID

二、上位機

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

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

圖3 加密算法工程

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

2、安裝SmartPRO 2008軟件,我們默認安裝在C:Program Files路徑下;

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

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

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

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

圖4 用戶代碼無效提示

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

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

圖5 緩沖區查看密鑰

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

圖6 開發板驗證

總結

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

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

    關注

    8

    文章

    136

    瀏覽量

    77660

原文標題:【秘籍】更安全的UID加密方案!

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

收藏 人收藏

    評論

    相關推薦

    深入剖析恩智浦LPC1000處理器

    LPC1000系列講座第一講:一、LPC1000概述:  基于ARM Cortex-M3/M0的恩智浦LPC1000系列,是NXP目前最新的ARM 微控制器產品,其高達100MHz運行速度、緊湊
    發表于 12-21 15:59

    MCU加密方法你知道多少?

    加密 通常所說的MCU加密是指將用戶的程序固件保護起來,防止別人通過外部調試接口或者其他方法讀取燒寫在Flash中的程序。保護自家方案不輕易被別家抄襲,從硬件上保護自己的知識產權。MCU加密
    發表于 10-10 14:53

    在NuMicro?家族中支持UID,如果用戶想使用唯一的ID加密芯片怎么操作?

    在NuMicro?家族中支持UID(唯一ID)的是什么系列)? 如果用戶想使用唯一的ID加密芯片,該怎么辦?
    發表于 12-21 06:45

    uid加密算法

    uid加密算法,1.STM32可以加密程序,不然可能有被竊取的可能JTAG 可以直接通過J-LINK-FLASH獲取代碼,首先新建工程,型號選好,read back即可save data fileUID
    發表于 07-19 08:23

    STM32F103C8T6是怎樣讀取加密芯片SMEC98SP的UID號的

    加密芯片SMEC98SP有何功能?STM32F103C8T6是怎樣讀取加密芯片SMEC98SP的UID號的?
    發表于 11-01 07:21

    如何使用STM32HAL庫來讀取UID唯一碼加密

    如何使用STM32HAL庫來讀取UID唯一碼加密
    發表于 11-26 07:39

    【野火 fireFlasher Mini 脫機燒錄器】+ UID加密及下載次數限制

    ,下載第一次,蜂鳴器響兩聲,下載第二次同樣如此,在下載第三次時蜂鳴器響4聲,并且下載亮紅燈,并退出下載模式,如下所示 UID加密 通過對 UID 使用特定算法加密,由于
    發表于 05-07 23:33

    【野火 fireFlasher Mini 脫機燒錄器】UID加密測試

    移植算法 算法在:野火【fireFlasher Mini脫機下載器】模塊資料\\\\UID加密代碼資料\\\\對應單獨加密代碼\\\\YH_Enctyption.zip里 移植完成之后增加測試命令
    發表于 05-13 21:40

    利用LPC1100系列實現低功耗設計

    LPC1000系列ARM是以第二代Cortex-M3為內核的微控制器,用于處理要求高度集成和低功耗的嵌入式應用。采用3級流水線和哈佛結構,其運行速度高達100MHz,帶獨立的本地指令和數據總線
    發表于 07-23 15:31 ?20次下載

    NXP低功耗LPC1000系列六大突出優勢

    NXP低功耗LPC1000系列六大突出優勢 基于ARM Cortex-M3/M0的恩智浦LPC1000系列,是NXP目前最新的ARM 微控制器產品,其高達100MHz運行速度、緊湊的尺寸、高能效與高性能使它特別
    發表于 11-11 11:02 ?1280次閱讀
    NXP低功耗<b class='flag-5'>LPC1000</b>系列六大突出優勢

    NXP單片機選型指南(英文版)

    consumption in the smallest packages. A comprehensive portfolio of industryleadingperformers includes the latest 32-bit LPC3000 , LPC20
    發表于 08-08 14:42 ?0次下載
    NXP單片機選型指南(英文版)

    LPC1114基礎手冊未加密

    LPC1114基礎手冊未加密, 需要學習這款單片機的看看
    發表于 11-02 10:52 ?68次下載

    基于LPC1000系列微控制器的校驗和自動填充實現方法

    基于LPC1000系列微控制器的校驗和自動填充實現方法
    發表于 10-09 10:40 ?9次下載
    基于<b class='flag-5'>LPC1000</b>系列微控制器的校驗和自動填充實現方法

    LPC546xx加密配置-ECRP詳解

    LPC546xx加密配置-ECRP詳解
    的頭像 發表于 09-27 16:24 ?1242次閱讀
    <b class='flag-5'>LPC</b>546xx<b class='flag-5'>加密</b>配置-ECRP詳解

    UID加密安全啟動原理分析

    本文導讀 ZDP14x0系列芯片是內置開源GUI引擎的圖像顯示專用驅動芯片,在實際產品開發中需要加密保護,防止應用程序被讀取和盜用,本文將介紹如何實現UID加密安全啟動。 UID
    的頭像 發表于 11-11 11:49 ?471次閱讀
    <b class='flag-5'>UID</b><b class='flag-5'>加密</b>安全啟動原理分析
    主站蜘蛛池模板: 亚洲精品永久免费| 亚洲精品AV一二三区无码| 人成午夜免费视频| 97成人碰碰在线人妻少妇| 精品国产99久久久久久麻豆| 同时被两个男人轮流舔| 扒开黑女人p大荫蒂老女人| 内射无码AV-区二区在线观看| 2021久久精品免费观看| 快播性爱电影| 92看看福利午夜影院| 免费成人小视频| 8050午夜二级一片| 暖暖视频免费高清在线观看 视频| 6080yy 久久 亚洲 日本| 老师你奶真大下面水真多| 中文字幕乱偷无码AV蜜桃| 毛片在线看片| 凹凸精品视频分类视频| 双腿被绑成M型调教PLAY照片| 国产久久精品热99看| 亚洲黄网站wwwwww| 久久无码AV亚洲精品色午夜| 99国产这里只有精品视频| 日本美女靠逼| 国产剧情福利AV一区二区| 亚洲蜜芽在线观看精品一区| 久久久久国产精品美女毛片| 99C视频色欲在线| 日韩在线看片中文字幕不卡| 国产精品18久久久久久欧美| 亚洲国产成人久久精品影视| 久久99综合国产精品亚洲首页| 365电影成人亚洲网在线观看| 欧美 日韩 无码 有码 在线| 动漫人物差差差30分钟免费看| 天天综合网网欲色| 久久九九精品国产自在现线拍| adc免费观看| 午夜欧洲亚洲AV永久无码精品| 接吻吃胸摸下面啪啪教程|