本發(fā)明涉及舞臺(tái)燈技術(shù)領(lǐng)域,特別是涉及一種芯片防破解的方法。
背景技術(shù):
單片機(jī)(MCU)一般都有內(nèi)部EEPROM/FLASH供用戶存放程序和工作數(shù)據(jù)。為了防止未經(jīng)授權(quán)訪問(wèn)或拷貝單片機(jī)的機(jī)內(nèi)程序,大部分單片機(jī)都帶有加密鎖定位或者加密字節(jié),以保護(hù)片內(nèi)程序。如果在編程時(shí)加密鎖被鎖定,就無(wú)法用普通編程器直接讀取單片機(jī)內(nèi)的程序,這就叫單片機(jī)加密或芯片加密。然而,單片機(jī)攻擊者借助專(zhuān)用設(shè)備或者自制設(shè)備,利用單片機(jī)芯片設(shè)計(jì)上的漏洞或軟件缺陷,通過(guò)多種技術(shù)手段,能夠突破單片機(jī)帶有的加密鎖定位或者加密字節(jié),能夠從芯片中提取關(guān)鍵信息,獲取單片機(jī)機(jī)內(nèi)程序。
技術(shù)實(shí)現(xiàn)要素:
為克服上述現(xiàn)有技術(shù)的缺陷,本發(fā)明實(shí)施例所要解決的技術(shù)在于,提供一種芯片防破解的方法,其能很好地保護(hù)單片機(jī)芯片機(jī)內(nèi)的程序。
為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案是:
一種芯片防破解的方法,包括如下步驟:
S001生成加密數(shù)據(jù),加密數(shù)據(jù)基于芯片的身份數(shù)據(jù)計(jì)算生成;
S002存儲(chǔ)加密數(shù)據(jù),將加密數(shù)據(jù)寫(xiě)入并存儲(chǔ)在外部存儲(chǔ)器中;
S003校驗(yàn)加密數(shù)據(jù),運(yùn)行芯片中的程序時(shí),分別運(yùn)算處理身份數(shù)據(jù)與加密數(shù)據(jù),并逐一校驗(yàn)運(yùn)算結(jié)果,全部一致則程序繼續(xù)執(zhí)行,否則程序終止運(yùn)行。
優(yōu)選的,身份數(shù)據(jù)與芯片具有唯一的一一對(duì)應(yīng)關(guān)系。
優(yōu)選的,身份數(shù)據(jù)為芯片ID數(shù)據(jù)。
優(yōu)選的,外部存儲(chǔ)器基于IIC總線協(xié)議與芯片相連接。
優(yōu)選的,加密數(shù)據(jù)存儲(chǔ)在外部存儲(chǔ)器前保存在芯片內(nèi)的臨時(shí)存儲(chǔ)單元中。
優(yōu)選的,加密數(shù)據(jù)完全寫(xiě)入外部存儲(chǔ)器時(shí)用于指示完成的部件發(fā)生變動(dòng)。
優(yōu)選的,用于指示完成的部件為L(zhǎng)ED指示燈。
優(yōu)選的,校驗(yàn)加密數(shù)據(jù)時(shí),身份數(shù)據(jù)存儲(chǔ)在芯片的第一存儲(chǔ)單元中。
優(yōu)選的,校驗(yàn)加密數(shù)據(jù)時(shí),芯片讀取外部存儲(chǔ)器中的加密數(shù)據(jù)并將其存儲(chǔ)在芯片的第二存儲(chǔ)單元中。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
通過(guò)將加密數(shù)據(jù)存儲(chǔ)在外部存儲(chǔ)器中,在芯片原有的防破解技術(shù)基礎(chǔ)上再增加一項(xiàng)加密措施,使芯片破解難度加大,破解成本增加。
附圖說(shuō)明
圖1是本發(fā)明一種芯片防破解的方法的示意圖。
具體實(shí)施方式
下面將結(jié)合附圖進(jìn)一步說(shuō)明本發(fā)明的具體實(shí)施方式。
本發(fā)明一種芯片防破解的方法主要分兩階段完成:
一、芯片注冊(cè)步驟:將注冊(cè)程序通過(guò)芯片燒錄器寫(xiě)入芯片然后運(yùn)行。注冊(cè)程序運(yùn)行時(shí),首先獲取n個(gè)基于芯片ID數(shù)據(jù),將n個(gè)數(shù)據(jù)經(jīng)過(guò)一系列計(jì)算后放入臨時(shí)存儲(chǔ)單元中,之后使用IIC總線協(xié)議將處理后的數(shù)據(jù)寫(xiě)入與芯片相連接的外部存儲(chǔ)器件中的地址A。為確保數(shù)據(jù)已寫(xiě)入,在寫(xiě)入完成之后程序會(huì)點(diǎn)亮一個(gè)LED指示燈。
二、芯片運(yùn)行步驟:在注冊(cè)程序正確運(yùn)行之后,將需要保護(hù)的程序?qū)懭胄酒?。程序開(kāi)始運(yùn)行時(shí),先讀取n個(gè)基于芯片ID數(shù)據(jù)并放入第一存儲(chǔ)單元中,然后將外部存儲(chǔ)器件地址A中的數(shù)據(jù)讀取并放入第二存儲(chǔ)單元中,將第一存儲(chǔ)單元與第二存儲(chǔ)單元中的數(shù)據(jù)分別進(jìn)行運(yùn)算處理。將第一存儲(chǔ)單元與第二存儲(chǔ)單元中處理后的數(shù)據(jù)進(jìn)行逐一校驗(yàn),全部一致則驗(yàn)證通過(guò)程序繼續(xù)執(zhí)行,否則程序終止運(yùn)行。
綜上所述,本方將一個(gè)基于IIC總線協(xié)議的存儲(chǔ)器件與需要加密保護(hù)的芯片相連接。在存儲(chǔ)器件中寫(xiě)入加密數(shù)據(jù),程序運(yùn)行時(shí),讀取存儲(chǔ)器件中的加密數(shù)據(jù)進(jìn)行校驗(yàn),校驗(yàn)結(jié)果一致則繼續(xù)運(yùn)行程序,不一致則停止程序運(yùn)行。
以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。