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