0
加 密 方 案
目前市場(chǎng)上很多嵌入式產(chǎn)品方案都是可以破解復(fù)制的,主要是因?yàn)榉桨钢?a style='color:#0000CC;' href='http://m.dszhyy.com/show-19-10157-1.html' title="arm微處理器體系結(jié)構(gòu) 網(wǎng)易 國(guó)產(chǎn)芯片開(kāi)始進(jìn)攻移動(dòng)芯片和PC處理器市場(chǎng),ARM終于嘗到了苦果" target='_blank'>芯片不具備防破解的功能,這就導(dǎo)致開(kāi)發(fā)者投入大量精力、財(cái)力開(kāi)發(fā)的新產(chǎn)品一上市就被別人復(fù)制,到市場(chǎng)上的只能以價(jià)格競(jìng)爭(zhēng),最后工廠復(fù)制的產(chǎn)品反而價(jià)格更有優(yōu)勢(shì),因?yàn)樗麄兊拈_(kāi)發(fā)投入幾乎可以忽略不計(jì)。
所以針對(duì)這種主芯片可以被破解的產(chǎn)品方案,開(kāi)發(fā)者需要在開(kāi)發(fā)時(shí)在產(chǎn)品方案中使用加密芯片并設(shè)計(jì)合理的加密方案。開(kāi)發(fā)者首先需要選定性價(jià)比高的加密芯片,然后再設(shè)計(jì)加密方案。
市面上加密芯片一般有兩種:一種是傳統(tǒng)的邏輯加密芯片,可配數(shù)據(jù)與主芯片做相互認(rèn)證起到簡(jiǎn)單的加密功能;另一種是智能卡內(nèi)核的可編程CPU加密芯片,可以將主芯片部分核心的算法、功能代碼以及核心數(shù)據(jù)放入加密芯片。
本方案選用具有智能卡內(nèi)核的加密芯片來(lái)舉例實(shí)現(xiàn)使用STM32作為主芯片的產(chǎn)品的加密方案。提供2K Bytes RAM、24K Bytes CODE,8K Bytes Data,用戶可根據(jù)自己的需要來(lái)編程設(shè)計(jì)與STM32配合的加密方案。下表為與STM32配的的各種加密功能說(shuō)明數(shù)據(jù)加密技術(shù)原理可畫圖,具體可參見(jiàn)評(píng)估板(STM32)源代碼。
注:
①STM32與間的I2C協(xié)議指令接口規(guī)則開(kāi)發(fā)者自定義。
②上述加解密密鑰均為對(duì)稱DES或3DES密鑰,每一對(duì)密鑰開(kāi)發(fā)者須在開(kāi)發(fā)時(shí)分別在STM32和上同時(shí)存儲(chǔ)相同的值。
③上述隨機(jī)數(shù)都是8字節(jié)隨機(jī)數(shù),加解密算法采用DES或3DES。客戶也可以根據(jù)自身需要設(shè)計(jì)或使用其他加解密算法。
④隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)是真隨機(jī)數(shù),這樣可以保證關(guān)鍵數(shù)據(jù)在通訊時(shí)每次都是隨機(jī)數(shù)參與的,每次通訊的數(shù)據(jù)密文都是不一樣的,可有效防止破解者在I2C通道上的數(shù)據(jù)監(jiān)聽(tīng)分析。
⑤DES或3DES加解密數(shù)據(jù)塊必須為8字節(jié)整數(shù)倍數(shù)據(jù)加密技術(shù)原理可畫圖,加密原始數(shù)據(jù)不是8的整數(shù)倍的按開(kāi)發(fā)者自己定義補(bǔ)足8的整數(shù)倍,對(duì)于密文讀寫數(shù)據(jù)建議按LV結(jié)構(gòu)補(bǔ),比如: