當前比較流行的單片機常用加密手段
現(xiàn)在一些類型的單片機,從幾百塊錢到幾萬塊錢,也有人可以做破解,為了防止大家的產(chǎn)品被剽竊,那今天我給大家簡單介紹一種當前比較流行的常用加密手段。這種加密手段其實原理很簡單,現(xiàn)在是單片機的主流加密手段,還有尤其FPGA這種內(nèi)部不帶程序存儲空間的器件,更是比較多的利用這種加密手段,就是唯一ID。那我們現(xiàn)在手上的銀行卡芯片卡,就是用的這種加密手段。這個唯一ID的意思就是,每顆芯片出廠的時候,都帶了一個號碼,這個號碼是唯一不重復(fù)的,和我們每個人的身份證號碼一樣,現(xiàn)在剛出生的嬰兒,辦理出生證的時候就給他一個身份證號,那么每個芯片一生產(chǎn)出來,也就具備了這個身份證號。那有了這個身份證號可以做什么呢?
我們可以在單片機的外設(shè)上添加一個EERPOM存儲器(或者有的單片機內(nèi)部有),然后我們自己組織一種特殊的算法,利用這個唯一ID,產(chǎn)生一組數(shù)據(jù),每生產(chǎn)一個產(chǎn)品,我們預(yù)先存儲在我們的EEPROM內(nèi)這樣一個數(shù)據(jù),當然,燒寫這個數(shù)據(jù)我們也可以用軟件程序來實現(xiàn)的。我們的單片機上電程序初始化的時候,會來讀一下EEPROM內(nèi)部這個數(shù)據(jù)X,然后用自身內(nèi)部的ID加這個算法運算一下一個值Y,然后比較X和Y是否一致,如果一致就繼續(xù)工作,如果不一致就停止工作。
舉個例子,如果我們這個芯片內(nèi)部的ID是147258369這9位數(shù)字,那么我們的算法就是每一位數(shù)字乘以2加1,進位部分直接舍掉,那形成的數(shù)字就是:395517739。我們只需要把395517739這個數(shù)字預(yù)先燒寫到我們的EEPROM內(nèi)部,然后我們編寫功能程序的時候,在初始化部分,會上電讀一下EEPROM的這個數(shù)字,讀出來X是395517739,然后再讀一下我們的這個芯片的唯一ID是147258369,用我們的算法計算一下這個結(jié)果Y是395517739,比較兩者相等,則程序繼續(xù)執(zhí)行,兩者不相等則不工作。
一、芯片破解者,只能把芯片的二進制碼讀出來,源程序他是改不了的,所以他只能復(fù)制程序,并不能隨便更改程序。
二、每個產(chǎn)品上的主單片機的唯一ID,都會預(yù)先和自己產(chǎn)品的EEPROM內(nèi)部的數(shù)據(jù)做比較,即使他們復(fù)制了這個EERPOM的數(shù)據(jù),那他們只要換了其他一顆單片機,還是依然無法運行。
現(xiàn)在公眾號還不具備留言功能,大概一個月左右可以具備這個功能,具備這個功能后,大家可以留言提出你的疑問,我盡量給大家解惑。
編輯:admin 最后修改時間:2018-05-21