女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

介紹一種比較流行的程序加密方式

TopSemic嵌入式 ? 來(lái)源:TopSemic嵌入式 ? 2023-04-21 09:07 ? 次閱讀

把程序加密,無(wú)疑是一個(gè)防小人的好辦法。我們這里介紹一種比較流行的加密方式,它利用芯片里的唯一識(shí)別碼,為每一個(gè)MCU單獨(dú)授權(quán),這樣即使程序被讀出,也沒(méi)有辦法在其它的MCU上運(yùn)行。我們講一下它的工作原理,以及一款可以實(shí)現(xiàn)加密量產(chǎn),可以授權(quán)燒寫(xiě)次數(shù)的工具。

一種流行的加密方法

poYBAGRB4gCART1zAACRBmkPMh0524.jpg

如上圖中所示,MCU中一般都有一個(gè)UDID(Unique Device IDentifier),這個(gè)唯一識(shí)別碼,每一個(gè)MCU都是不一樣的,燒寫(xiě)工具可以讀出這個(gè)UDID,然后通過(guò)算法,計(jì)算出一個(gè)授權(quán)(License),燒寫(xiě)MCU程序(APP)時(shí),連同這個(gè)授權(quán)碼一起寫(xiě)入Flash。當(dāng)MCU上電運(yùn)行時(shí),也讀取自己的UDID,然后通過(guò)同一算法,計(jì)算出授權(quán)碼,并和工具寫(xiě)入的授權(quán)碼做對(duì)比,如果不相同就拒絕執(zhí)行下面的程序。下面舉個(gè)例子。

poYBAGRB4hCAACd4AACMh4K8nC8011.jpg

如圖,三個(gè)MCU的UDID分別為1,3,5。通過(guò)一種算法計(jì)算出1和3的授權(quán)碼分別為0和4。從1和3號(hào)讀出的程序,寫(xiě)入5號(hào)是無(wú)法運(yùn)行的。因?yàn)槲覀儠?huì)發(fā)現(xiàn),程序用5計(jì)算出的授權(quán)碼,不等于0也不等于4,無(wú)法通過(guò)比對(duì),程序無(wú)法繼續(xù)運(yùn)行。

那么我們能根據(jù)1和3的已知信息,反推出算法嗎?可以試試看,經(jīng)過(guò)一番猜測(cè),我們發(fā)現(xiàn)一個(gè)算法,(UDID–1)*2 對(duì)于1號(hào)和3號(hào)MCU完全適用。我們不由得一陣興奮!經(jīng)過(guò)計(jì)算(5-1)*2=8,我們把8寫(xiě)入5號(hào)MCU的授權(quán)地址,然后發(fā)現(xiàn)程序并沒(méi)有運(yùn)行???

怎么回事?因?yàn)樗惴ㄊ遣聹y(cè)的。我們完全可以反推出另外一種算法:(UDID-1)*(UDID-1)。對(duì)于1和3也是適用的,但對(duì)于5,結(jié)果是16。

對(duì)于簡(jiǎn)單的數(shù)字尚且如此,而UDID一般長(zhǎng)度有16個(gè)字節(jié),用戶再混入自己的密鑰數(shù)字,用加減乘除,異或等運(yùn)算計(jì)算出授權(quán),想要逆向推測(cè)出算法還是很難的。如果想要進(jìn)一步增加安全性,可以采用更高級(jí)別的加密算法。

為了增加逆向分析的難度,還可以在用戶程序中綜合采取一些措施。比如:不直接讀取UDID和授權(quán)碼,而是用兩個(gè)地址運(yùn)算生成讀取地址;使用inline內(nèi)聯(lián)函數(shù);多次校驗(yàn)并延時(shí)觸發(fā)等。

加密算法

對(duì)稱加密

加密和解密使用同一密鑰。所以發(fā)送端和接收端都要對(duì)密鑰嚴(yán)格保密。對(duì)稱加密好處是運(yùn)算速度快。常用的有DES,3DES,AES,以及我國(guó)的SM1。

poYBAGRB4iKAKB4OAABn-fMbAOw174.jpg

非對(duì)稱加密

它的密鑰分為公鑰和私鑰,公鑰是公開(kāi)的,但是從公鑰無(wú)法推導(dǎo)出私鑰。非對(duì)稱加密的好處是,只需要保密私鑰就行了。其缺點(diǎn)是消耗資源比較多,運(yùn)算速度慢。常用的有RSA,ECC以及我國(guó)的SM2。

pYYBAGRB4jSAdhI8AABiTudrXzg364.jpg

反過(guò)來(lái),我們也可以用私鑰加密,然后用公鑰解密,這種方式通常用來(lái)完成簽名的驗(yàn)證。把MCU的UDID讀出來(lái),用私鑰加密生成授權(quán)碼,和應(yīng)用程序一起寫(xiě)入MCU的Flash,然后MCU的應(yīng)用程序就可以用公鑰完成授權(quán)碼的驗(yàn)證。采用非對(duì)稱加密算法的好處是,即使算法是公開(kāi)的,公鑰也是公開(kāi)的,別人只要沒(méi)有獲得私鑰,就沒(méi)辦法為其它MCU生成授權(quán)碼。

加密算法的安全性

首先想個(gè)問(wèn)題,如果我們給家里裝個(gè)防盜門,是越堅(jiān)固的越好嗎?好像沒(méi)毛病。但仔細(xì)一想還真不是這樣,我們大多數(shù)家里安裝的,并不一定是市場(chǎng)上最好最貴的。

加密算法也沒(méi)有絕對(duì)的安全。理論上只有一次一密,也就是采用跟明文長(zhǎng)度一樣密鑰,而且只使用一次,才是絕對(duì)的安全。所以我們采用什么算法,要根據(jù)我們的實(shí)際需要。在一定時(shí)間長(zhǎng)度內(nèi),如果破解的代價(jià)遠(yuǎn)大于所獲得的價(jià)值,我們就認(rèn)為是安全的。還有就是盡可能使用長(zhǎng)一些的密鑰,跟蹤密碼學(xué)的最新動(dòng)態(tài)。

安全單片機(jī)和普通單片機(jī)

對(duì)于任何加密方式,密鑰的存儲(chǔ)是安全的關(guān)鍵。對(duì)于普通的單片機(jī),現(xiàn)在一般在Flash區(qū)都會(huì)有保護(hù)字節(jié),可以設(shè)置成編程后無(wú)法讀出。密鑰存儲(chǔ)在里面,通過(guò)常規(guī)手段是無(wú)法讀到的。但是對(duì)于非常規(guī)手段,這種安全性就不夠了。

但是對(duì)于非常規(guī)手段,就無(wú)效了。比如把MCU的外殼溶解掉,然后暴露出內(nèi)部的硅片,這樣就可以直接觀察,修改里面存儲(chǔ)的內(nèi)容。所以對(duì)于安全等級(jí)高的應(yīng)用,比如金融等,也要求MCU具有更高級(jí)別的安全防范措施。這種MCU會(huì)把密鑰存儲(chǔ)在一小塊兒RAM里,用電池供電。為了保證存儲(chǔ)在RAM里的密鑰不被非法讀走,采取各種防范措施。比如芯片外部有探測(cè)引腳,一旦發(fā)現(xiàn)外部電路被破壞,馬上銷毀密鑰。在芯片內(nèi)部,用金屬絲網(wǎng)包住關(guān)鍵區(qū)域,一旦被破壞,也會(huì)銷毀密鑰。同時(shí)這種MCU內(nèi)部也會(huì)集成隨機(jī)數(shù)生成,硬加密算法模塊等,加速加解密的運(yùn)算速度。

采用哪種單片機(jī),也要根據(jù)實(shí)際需要來(lái)決定。

加密量產(chǎn)工具

創(chuàng)芯工坊的Power Writer,是一款挺實(shí)用的量產(chǎn)燒錄工具。它可以通過(guò)MCU的唯一識(shí)別碼,對(duì)每一個(gè)MCU生成單獨(dú)的授權(quán)。加密算法有消耗資源特別少的向量矩陣加密,也有加密級(jí)別更高的ECDSA橢圓數(shù)字簽名算法,還支持用戶使用自己的算法。除此之外,他還能授權(quán)燒寫(xiě)的MCU個(gè)數(shù),燒寫(xiě)MCU的UDID范圍等。用戶可以把程序上傳到云端,客戶聯(lián)網(wǎng)在線獲得授權(quán),進(jìn)行芯片燒錄,也可以把程序加載進(jìn)燒寫(xiě)器,用戶采用離線燒錄。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1663

    瀏覽量

    150981
  • AES
    AES
    +關(guān)注

    關(guān)注

    0

    文章

    106

    瀏覽量

    33472
  • DES
    DES
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    48629
  • ECC
    ECC
    +關(guān)注

    關(guān)注

    0

    文章

    97

    瀏覽量

    20956
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    256

    瀏覽量

    11962

原文標(biāo)題:辛辛苦苦的勞動(dòng)成果,如何上把鎖?

文章出處:【微信號(hào):TopSemic,微信公眾號(hào):TopSemic嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

    一種有效的可轉(zhuǎn)換的認(rèn)證加密方案

    一種有效的可轉(zhuǎn)換的認(rèn)證加密方案:針對(duì)般的認(rèn)證加密方案存在著當(dāng)簽名者否認(rèn)簽名時(shí),接收者不能使任何驗(yàn)證者證實(shí)簽名者的誠(chéng)實(shí)性等問(wèn)題,提出了一種
    發(fā)表于 06-14 00:19

    詳細(xì)介紹Flash型單片機(jī)的加密解密方法

    MC9S12DP256單片機(jī)為例,介紹Flash型單片機(jī)的加密解密方法。  BDM程序調(diào)試接口  Freescale公司的很多單片機(jī)都借用一種被稱為后臺(tái)調(diào)試模式(Background
    發(fā)表于 10-21 19:59

    請(qǐng)問(wèn)怎樣去設(shè)計(jì)一種CPLD加密電路?

    本文介紹一種基于計(jì)算機(jī)總線的CPLD加密電路的設(shè)計(jì)方案。
    發(fā)表于 04-29 06:16

    請(qǐng)問(wèn)怎樣去設(shè)計(jì)一種FPGA加密認(rèn)證系統(tǒng)?

    加密問(wèn)題是怎樣提出的?DS28E01芯片及其加密原理是什么?怎樣去設(shè)計(jì)一種FPGA加密認(rèn)證系統(tǒng)?
    發(fā)表于 04-29 06:53

    怎樣去設(shè)計(jì)一種加密短消息通信系統(tǒng)?

    加密短消息通信系統(tǒng)是由哪些部分組成的?怎樣去設(shè)計(jì)一種基于RTX51 TINY的加密短消息通信系統(tǒng)?
    發(fā)表于 06-04 07:01

    比較流行的復(fù)位方式

    現(xiàn)在比較流行的復(fù)位方式是這樣的:但我們都知道對(duì)于結(jié)構(gòu)緊湊型硬件來(lái)說(shuō),多個(gè)電阻都是沒(méi)必要的。在沒(méi)有手動(dòng)復(fù)位需求的場(chǎng)合,能不能刪掉按鍵與R24,僅保留104電容?通過(guò)閱讀stm32 pd
    發(fā)表于 08-11 08:42

    介紹藍(lán)牙通信的另一種方式--BLE

    今天我們介紹藍(lán)牙通信的另一種方式--BLE(Bluetooth Low Energy,藍(lán)牙低功耗)。什么是BLE在《無(wú)線通信3:HC05/HC06經(jīng)典藍(lán)牙B...
    發(fā)表于 12-13 06:50

    介紹在單片機(jī)裸機(jī)環(huán)境下編寫(xiě)AT指令程序一種方式

    單片機(jī)裸機(jī)環(huán)境下編寫(xiě)AT指令程序一種方式。2.程序設(shè)計(jì)首先串口底層的收發(fā)程序不在這里詳細(xì)介紹
    發(fā)表于 01-17 06:49

    介紹一種基于硬件的安全模塊

    英飛凌科技開(kāi)發(fā)了一種基于硬件的安全模塊,通過(guò)其全新的 OPTIGA TPM 2.0 保護(hù)聯(lián)網(wǎng)汽車與汽車制造商之間的通信,該模塊是一種可信平臺(tái)模塊 (TPM),制造商可以在其中整合敏感的安全密鑰以分配
    發(fā)表于 02-11 07:41

    介紹一種STM32數(shù)據(jù)傳輸方式SPI

    之前介紹了STM32數(shù)據(jù)傳輸?shù)?b class='flag-5'>一種方式IIC,這次我將進(jìn)行另外一種數(shù)據(jù)傳輸方式SPI。
    發(fā)表于 02-17 06:02

    一種基于PKI的安全公文簽名加密解決方案

    討論了基于 PKI 的簽名加密技術(shù)基本原理,詳細(xì)介紹了電子公文簽名加密方式,并將其應(yīng)用到企業(yè)內(nèi)網(wǎng)Intranet 和Internet 中的信息交換,提出了
    發(fā)表于 08-15 09:54 ?18次下載

    一種基于Net Framework文件加密方案的構(gòu)建

    本文介紹一種簡(jiǎn)明高效的文件加密方案,先用兩對(duì)稱加密算法組合加密明文,再用公鑰
    發(fā)表于 01-09 14:55 ?19次下載

    加密場(chǎng)景下的一種測(cè)試方法

    加密場(chǎng)景下的一種測(cè)試方法
    發(fā)表于 09-07 11:07 ?3次下載
    <b class='flag-5'>加密</b>場(chǎng)景下的<b class='flag-5'>一種</b>測(cè)試方法

    一種動(dòng)態(tài)選擇加密方法

    對(duì)數(shù)據(jù)進(jìn)行加密一種保證數(shù)據(jù)安全性的有效措施,但現(xiàn)有的數(shù)據(jù)加密方式般是選定某種加密算法,用該
    發(fā)表于 11-08 10:54 ?2次下載
    <b class='flag-5'>一種</b>動(dòng)態(tài)選擇<b class='flag-5'>加密</b>方法

    區(qū)塊鏈?zhǔn)?b class='flag-5'>一種新的、先進(jìn)的存儲(chǔ)和交換信息的方式

    無(wú)論如何,人們很快就清楚地認(rèn)識(shí)到,加密貨幣只是應(yīng)用分布式記分類賬技術(shù)的一種可能方式。區(qū)塊鏈實(shí)際上是一種新的、先進(jìn)的存儲(chǔ)和交換信息的方式,如果
    發(fā)表于 09-27 11:14 ?2201次閱讀