<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 詳解單片機系統的動(dòng)態(tài)加密技術(shù)

詳解單片機系統的動(dòng)態(tài)加密技術(shù)

作者: 時(shí)間:2011-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏

1 概述

隨著(zhù)單片機技術(shù)的發(fā)展和廣泛應用,許多使用單片機的高新技術(shù)產(chǎn)品諸如智能化儀器、儀表、小型工業(yè)控制系統等都面臨著(zhù)一個(gè)令人頭痛的問(wèn)題,那就是新產(chǎn)品剛一推出就被仿制和剽竊。這種現象會(huì )使產(chǎn)品開(kāi)發(fā)商蒙受很大損失,同時(shí)也極大地挫傷了開(kāi)發(fā)商的積極性。創(chuàng )新開(kāi)發(fā)是一個(gè)公司競爭力的關(guān)鍵,如何保護好自己的勞動(dòng)成果,除用法律手段外,在產(chǎn)品面市前作好加密是一個(gè)必不可少的環(huán)節。

一般都采用MCU+EPROM模式。通常EPROM都是透明的,而采用的MCU一般有Intel公司的MCS51、52系列,Zilog公司的Z80、Z84系列、Motorola公司的MC68HC系列以及Microchip公司的PIC16C系列等。雖然有許多的MCU都帶有加密位,但現在已大多能破解。因此,單靠MCU本身加密位來(lái)進(jìn)行加密已極不可靠的。

2 常用加密技術(shù)分析

常用的單片機加密技術(shù)無(wú)非是硬件加密和軟件加密兩種。軟件加密不能防止別人復制,只能增加別人解剖分析的難度,但對高手而言,這不足為慮。所以,這里討論的加密主要是硬件加密??偨Y起來(lái),主要是以下三大類(lèi)。

2.1 總線(xiàn)亂置法

總線(xiàn)亂置法通常是將MCU和EPROM之間的數據線(xiàn)和地址線(xiàn)的順序亂置??偩€(xiàn)亂置法通常包括下面幾種:

(1)將數據或地址總線(xiàn)的某些線(xiàn)位交換或求反;

(2)將數據或地址總線(xiàn)中的某些線(xiàn)進(jìn)行異或。例如,D5'=D5,D6'=D5+6等;

(3)把(1)(2)結合起來(lái)以構成較復雜的電路;

(4)采用EPROM時(shí),把地址總線(xiàn)(或數據總線(xiàn))與系統程序的存儲器地址(或數據)的對應關(guān)系按密鑰交換。例如,用一片2764芯片存儲密鑰,把地址的高8位重新按密鑰編碼,也就是說(shuō),把原程序的頁(yè)號順序打亂;

(5)采用GAL器件,利用GAL的加密片來(lái)對硬件電路進(jìn)行加密。

2.2 RAM替代法

用電池對RAM進(jìn)行掉電數據保護。即先將一系列數據寫(xiě)入RAM并接上電池,然后將其余的芯片插上。這樣,當單片微機系統運行后,CPU首先從RAM讀出數據,這些數據可以是CPU執行程序的條件判別依據,也可以是CPU將要執行的程序。如果數據正確,整個(gè)系統正常運行。反之,系統不能運行。

2.3 利用MCU本身的加密位進(jìn)行加密

現在很多的MCU都帶有加密位,其中最成功的加密方法是總線(xiàn)燒毀法,此法在A(yíng)T89C51中運行用得最成功。即把單片機數據總線(xiàn)的特定I/O永久性地破壞,解密者即使擦除了加密位,也無(wú)法讀出片內程序的正確代碼。此外還有破壞EA引腳的方法。

一般來(lái)說(shuō),上述的加密方法各有優(yōu)點(diǎn),但都存在致命的缺點(diǎn):第一種方法有兩個(gè)主要缺點(diǎn):一是密鑰放在哪里才能不被破譯;二是用仿真器很容易就能把源程序截取出來(lái)。第二種方法同樣可以用仿真器把數據區調出來(lái),另外還可以把RAM接上電池,取下來(lái)放在仿真器上讀出來(lái)。第三種方法用來(lái)加密小程序是成功的,但由于總線(xiàn)已被破壞,因而不能再使用總線(xiàn)來(lái)擴展接口芯片和存儲器。同時(shí),片內存儲器也不再具有重復編程特性。

3 常用解密方法分析

加密和解密長(cháng)期以來(lái)就是一對矛盾。要做好加密,必須先了解現在的解密水平及手段。目前的解密手段大致可分為下面四種。

3.1 恢復加密位法

該方法能破解常規用E2COMS工藝的存儲加密位芯片。它包括兩個(gè)系列:

第一是MCU系列,例如MCS51系列(包括89C、97C、W78E/77E系列等)、Z84E系列、PIC16C/12C系列、MC68HC系列等。

第二是PLD,如CPLD的GAL,PALCE的16V8、20V8、22V10,Altera的EPM7032、EMP7064、EMP7128,Lattice的LSP1016、LSP1024和Atmel的ATV750/2500等。

3.2 邏輯分析法

該方法主要采用示波器、邏輯分析儀和MDU解密儀等分析工具分配一些邏輯較簡(jiǎn)單的可編程器件的邏輯功能。

3.3 仿真器軟件跟蹤分析法

此方法適用于破解一些未帶加密功能的(如8031,Z80等系統),而對于有加密功能的,則可先破解其單片機的源程序,然后進(jìn)行仿真分析。

3.4 芯片揭蓋分析法

現在市場(chǎng)上十萬(wàn)門(mén)以下的芯片多功能通過(guò)揭蓋來(lái)進(jìn)行逆向分析,但此破解法費用甚高。此法適用于破解專(zhuān)門(mén)的ASIC芯片。

綜上所述,一般芯片及常規加密手段很難實(shí)現有效加密。嚴格來(lái)說(shuō),要做到絕對的加密是不可能的。選好適當的芯片,采用合適的加密技術(shù),使仿制者面對需付高昂的解密費而卻步,那就意味著(zhù)加密工作的成功。

4 原理

的主要思路是:在程序看到的是虛地址,而虛地址對應的存儲器的實(shí)地址由CPU程序運行時(shí)通過(guò)賦予。其原理如圖1所示。

舉例說(shuō)明,若調用子程序CALL Function時(shí),對應于同一個(gè)子程序調用,第一次調用的是真正的Function,絕對地址可能在1000H。而在第二次調用Function時(shí),實(shí)地址可能是2000H,功能可能根本與Function不相同,這樣,只要在調用前把實(shí)地址通過(guò)軟件置進(jìn)去就可以了。因此可以通過(guò)連續表面調用同一個(gè)子程序Function,而實(shí)際則是分別調用幾個(gè)不同的子程序來(lái)實(shí)現加密。至于虛地址映射到何處的實(shí)地址,可由編程者自己安排,故只需在調用前輸出實(shí)地址的對應關(guān)系即可。這種軟件與硬件相結合、虛地址與實(shí)地址相結合的加密方法使破解者即使獲得源程序也極難分析出對應關(guān)系。

但這種也有漏動(dòng),如很難對付仿真器單步跟蹤分析,因此,須做進(jìn)一步個(gè)性。改進(jìn)的方法之一是在內設計一個(gè)計數器,并由CPU定時(shí)清零,否則一旦超過(guò)時(shí)限,將停止一切操作而使CPU無(wú)法運行,就更不用說(shuō)仿真了。改進(jìn)方法之二是在FPGA內做一密,并由CPU運行足夠長(cháng)的時(shí)間后去訪(fǎng)問(wèn)FPGA,以讀取密碼并比較,若出錯則由CPU破壞主內存RAM的內容,從而導致所有結果出錯。用這種方法足可以對付邏輯分析儀的跟蹤分析。

對于數據加密,可采用與密鑰邏輯異或的方法。對于這種方法密鑰以及動(dòng)態(tài)加密技術(shù)的邏輯函數都必須放在一個(gè)較難破譯的芯片上。鑒于對芯片解密技術(shù)的了解,筆者推薦使用Actel公司生產(chǎn)的42MX系列的FPGA來(lái)進(jìn)行一次性編程,該芯片不可讀出碼點(diǎn)文件,市場(chǎng)上無(wú)法破解。同時(shí),其資源也極為豐富,設計工具完整,且用VHDL語(yǔ)言極易實(shí)現各種功能。

5 結束語(yǔ)

隨著(zhù)單片機系統越來(lái)越廣泛的,其安全保密問(wèn)題也越來(lái)越受到重視。密碼學(xué)為其提供了正確的理論基礎。同時(shí),性能優(yōu)良的硬件是實(shí)現其安全保密的物質(zhì)基礎。二者缺一不可。加密解密長(cháng)期以來(lái)就是一對矛盾,解密技術(shù)隨著(zhù)科學(xué)技術(shù)的發(fā)展不斷創(chuàng )新。因此,只有對解密技術(shù)有了深刻的了解,才能做好加密工作,從在則確保產(chǎn)品的安全。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>