欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)的制作方法

文檔序號(hào):12803417閱讀:229來(lái)源:國(guó)知局
非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)的制作方法與工藝

本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)。



背景技術(shù):

隨著物聯(lián)網(wǎng)(internetofthings,iot)產(chǎn)業(yè)的不斷發(fā)展,智能硬件開始興起,使得嵌入式系統(tǒng)的設(shè)計(jì)趨向復(fù)雜化。開發(fā)者在對(duì)某一款產(chǎn)品進(jìn)行開發(fā)時(shí),若從零開始設(shè)計(jì),則研發(fā)周期過(guò)長(zhǎng),在競(jìng)爭(zhēng)對(duì)手快速推出新產(chǎn)品的情況下,會(huì)失去市場(chǎng)競(jìng)爭(zhēng)力。通常情況下,開發(fā)者使用芯片廠商或者其他第三方的函數(shù)庫(kù)、通信協(xié)議?;蛱囟ǖ暮诵乃惴◣?kù)來(lái)加快產(chǎn)品的開發(fā)。

相對(duì)于硬件而言,軟件程序更容易通過(guò)反向工程破解,例如,直接讀取二進(jìn)制代碼并復(fù)制到另一芯片,即可實(shí)現(xiàn)簡(jiǎn)單的抄板。因此,芯片生產(chǎn)廠商或其他第三方需要采取安全措施來(lái)保護(hù)芯片程序數(shù)據(jù)的核心知識(shí)產(chǎn)權(quán)。

現(xiàn)有技術(shù)中,通常是將芯片上的程序數(shù)據(jù)進(jìn)行全部加密。然而,若其他開發(fā)者允許在同一微處理器上進(jìn)行程序開發(fā),將芯片上的程序數(shù)據(jù)進(jìn)行全部加密的方法不再適用。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例解決的技術(shù)問(wèn)題是如何兼顧芯片中的程序數(shù)據(jù)安全性與芯片中程序開發(fā)的開放性。

為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng),包括:處理器以及非易失性存儲(chǔ)器,其中:所述非易失性存儲(chǔ)器,對(duì)應(yīng)的存儲(chǔ)區(qū)域內(nèi)預(yù)先設(shè)置有加密區(qū),所述加密區(qū)中存儲(chǔ)有加密的第一讀操作指令及第一數(shù)據(jù),所述第一讀操作指令為對(duì)所述第一數(shù)據(jù)的讀操作指令;所述處理器,與所述非易失性存儲(chǔ)器耦接,適于讀取讀操作指令;當(dāng)讀取到的所述讀操作指令為所述第一讀操作指令時(shí),執(zhí)行所述第一讀操作指令,對(duì)所述第一數(shù)據(jù)進(jìn)行讀取操作;當(dāng)讀取到的所述讀操作指令不是所述第一讀操作指令時(shí),拒絕對(duì)所述第一數(shù)據(jù)執(zhí)行讀取操作。

可選的,所述非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)還包括:加密訪問(wèn)控制單元以及存儲(chǔ)器訪問(wèn)控制單元,其中:所述處理器通過(guò)系統(tǒng)總線與所述存儲(chǔ)器訪問(wèn)控制單元耦接,適于向所述存儲(chǔ)器訪問(wèn)控制單元發(fā)送訪問(wèn)指令;所述非易失性存儲(chǔ)器,還設(shè)置有加密控制信息區(qū),所述加密控制信息區(qū)中存儲(chǔ)有所述加密區(qū)對(duì)應(yīng)的地址范圍;所述加密訪問(wèn)控制單元,與所述存儲(chǔ)器訪問(wèn)控制單元耦接,適于在上電時(shí),從所述非易失性存儲(chǔ)器的加密控制信息區(qū)中獲取所述加密區(qū)對(duì)應(yīng)的地址范圍,并輸出至所述存儲(chǔ)器訪問(wèn)控制單元;所述存儲(chǔ)器訪問(wèn)控制單元,與所述加密訪問(wèn)控制單元耦接,適于獲取所述加密區(qū)對(duì)應(yīng)的地址范圍,并將所述加密區(qū)對(duì)應(yīng)的地址范圍與所述訪問(wèn)指令對(duì)應(yīng)的地址區(qū)間進(jìn)行比較;當(dāng)所述訪問(wèn)指令對(duì)應(yīng)的地址區(qū)間處于所述加密區(qū)對(duì)應(yīng)的地址范圍內(nèi)時(shí),拒絕將所述訪問(wèn)指令輸出至所述非易失性存儲(chǔ)器。

可選的,所述非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)還包括:編程校驗(yàn)單元,通過(guò)所述系統(tǒng)總線與所述非易失性存儲(chǔ)器耦接,適于對(duì)寫入至所述加密區(qū)中的數(shù)據(jù)進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果經(jīng)由所述系統(tǒng)總線輸出至所述處理器。

可選的,所述加密控制信息區(qū)內(nèi)存儲(chǔ)有加密區(qū)間配置字以及加密保護(hù)字,其中:所述加密區(qū)間配置字適于標(biāo)識(shí)所述加密區(qū)對(duì)應(yīng)的地址區(qū)間,所述加密保護(hù)字適于保持所述加密區(qū)處于加密狀態(tài);所述加密訪問(wèn)控制單元,適于在上電時(shí),從所述非易失性存儲(chǔ)器的加密控制信息區(qū)中讀取所述加密區(qū)間配置字,以獲取所述加密區(qū)對(duì)應(yīng)的地址范圍。

可選的,所述非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)還包括:系統(tǒng)內(nèi)可編程單元,與所述非易失性存儲(chǔ)器耦接,適于從所述非易失性存儲(chǔ)器的加密控制信息區(qū)中獲取所述加密區(qū)對(duì)應(yīng)的地址范圍以及所述加密保護(hù)字;在對(duì)所述非易失性存儲(chǔ)器進(jìn)行編程操作時(shí),若所述編程操作對(duì)應(yīng)的地址區(qū)間處于所述加密區(qū)對(duì)應(yīng)的地址范圍之內(nèi)時(shí),清除所述加密區(qū)中的數(shù)據(jù)以及所述加密保護(hù)字,并進(jìn)行編程操作。

可選的,所述非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)還包括:應(yīng)用內(nèi)可編程控制單元,與所述非易失性存儲(chǔ)器以及所述加密訪問(wèn)控制單元耦接;所述加密訪問(wèn)控制單元,還適于將所述加密區(qū)對(duì)應(yīng)的地址范圍輸出至所述應(yīng)用內(nèi)可編程控制單元;所述非易失性存儲(chǔ)器的加密區(qū)中,還存儲(chǔ)有加密的第一編程操作指令以及所述第一編程操作指令對(duì)應(yīng)的第一編程地址區(qū)間;所述應(yīng)用內(nèi)可編程控制單元,適于接收編程操作指令;當(dāng)接收到的所述編程操作指令為所述第一編程操作指令時(shí),對(duì)所述第一編程地址區(qū)間進(jìn)行編程操作;當(dāng)接收到的所述編程操作指令不是所述第一編程操作指令時(shí),拒絕對(duì)所述第一編程地址區(qū)間進(jìn)行編程操作。

可選的,所述加密區(qū)還存儲(chǔ)有升級(jí)引導(dǎo)程序;所述升級(jí)引導(dǎo)程序適于對(duì)接收到的經(jīng)過(guò)加密處理的更新數(shù)據(jù)進(jìn)行解密處理。

可選的,所述非易失性存儲(chǔ)器包括如下任一種:flash閃存、eeprom、多次可編程存儲(chǔ)器。

與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:

預(yù)先在非易失性存儲(chǔ)器對(duì)應(yīng)的存儲(chǔ)區(qū)域內(nèi)設(shè)置加密區(qū),在加密區(qū)中存儲(chǔ)有加密的第一讀操作指令及第一數(shù)據(jù)。當(dāng)處理器讀取到的讀操作指令并不是第一讀操作指令時(shí),拒絕對(duì)第一數(shù)據(jù)執(zhí)行讀取操作。換句話說(shuō),當(dāng)存在讀取第一數(shù)據(jù)的需求時(shí),僅允許通過(guò)第一讀操作指令來(lái)讀取第一數(shù)據(jù),其他的讀操作指令均無(wú)法讀取到第一數(shù)據(jù),因此,可以確保非易失性存儲(chǔ)器中加密區(qū)數(shù)據(jù)的安全性。針對(duì)非易失性存儲(chǔ)器中的其他區(qū)域,開發(fā)人員可以進(jìn)行數(shù)據(jù)讀取等操作,從而在兼顧數(shù)據(jù)安全性的同時(shí),確保程序開發(fā)的開放性。

進(jìn)一步,通過(guò)編程校驗(yàn)單元對(duì)寫入至加密區(qū)中的數(shù)據(jù)進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果經(jīng)由系統(tǒng)總線輸出至處理器,而不是由處理器經(jīng)由系統(tǒng)總線從加密區(qū)中讀取寫入的數(shù)據(jù),可以避免處理器從加密區(qū)中讀取寫入的數(shù)據(jù)時(shí)被攻擊,從而可以避免發(fā)生數(shù)據(jù)泄露的情況。

進(jìn)一步,應(yīng)用內(nèi)可編程控制單元僅在接收到存儲(chǔ)在加密區(qū)中的第一編程操作指令時(shí),才對(duì)第一編程地址區(qū)間進(jìn)行編程操作;在接收到其他的編程操作指令時(shí),拒絕對(duì)第一編程地址區(qū)間進(jìn)行編程操作,可以進(jìn)一步提高加密區(qū)的數(shù)據(jù)安全性。

此外,在對(duì)非易失性存儲(chǔ)器中的加密區(qū)中的數(shù)據(jù)進(jìn)行更新時(shí),用于更新的數(shù)據(jù)是經(jīng)過(guò)加密處理的更新數(shù)據(jù)。通過(guò)升級(jí)引導(dǎo)程序?qū)?jīng)過(guò)加密處理的更新數(shù)據(jù)進(jìn)行解密處理并存儲(chǔ)于加密區(qū),可以有效避免更新數(shù)據(jù)外泄。

附圖說(shuō)明

圖1是本發(fā)明實(shí)施例中的一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)的結(jié)構(gòu)示意圖;

圖2是本發(fā)明實(shí)施例中的另一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)的結(jié)構(gòu)示意圖;

圖3是本發(fā)明實(shí)施例中的又一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實(shí)施例中的一種應(yīng)用內(nèi)可編程控制單元編程的流程圖。

具體實(shí)施方式

現(xiàn)有技術(shù)中,為保護(hù)芯片上的數(shù)據(jù)的核心知識(shí)產(chǎn)權(quán),通常是將芯片上的數(shù)據(jù)進(jìn)行全部加密。然而,若允許其他開發(fā)者在同一芯片上進(jìn)行程序開發(fā),則將芯片上的數(shù)據(jù)進(jìn)行全部加密的方法不再適用。

在本發(fā)明實(shí)施例中,預(yù)先在非易失性存儲(chǔ)器對(duì)應(yīng)的存儲(chǔ)區(qū)域內(nèi)設(shè)置加密區(qū),在加密區(qū)中存儲(chǔ)有加密的第一讀操作指令及第一數(shù)據(jù)。當(dāng)處理器讀取到的讀操作指令并不是第一讀操作指令時(shí),拒絕對(duì)第一數(shù)據(jù)執(zhí)行讀取操作。換句話說(shuō),當(dāng)存在讀取第一數(shù)據(jù)的需求時(shí),僅允許通過(guò)第一讀操作指令來(lái)讀取第一數(shù)據(jù),其他的讀操作指令均無(wú)法讀取到第一數(shù)據(jù),因此,可以確保非易失性存儲(chǔ)器中加密區(qū)數(shù)據(jù)的安全性。針對(duì)非易失性存儲(chǔ)器中的其他區(qū)域,開發(fā)人員可以進(jìn)行數(shù)據(jù)讀取等操作,從而在兼顧數(shù)據(jù)安全性的同時(shí),確保程序開發(fā)的開放性。

為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)的說(shuō)明。

參照?qǐng)D1,本發(fā)明實(shí)施例提供了一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng),包括:處理器11以及非易失性存儲(chǔ)器12。

在具體實(shí)施中,非易失性存儲(chǔ)器12與處理器11耦接。開發(fā)者可以在非易失性存儲(chǔ)器12中預(yù)先設(shè)置加密區(qū)121。在加密區(qū)121中,存儲(chǔ)有加密的第一讀操作指令以及加密的第一數(shù)據(jù),且第一讀操作指令為讀取第一數(shù)據(jù)的讀操作指令。

在實(shí)際應(yīng)用中可知,針對(duì)同一塊芯片,可能會(huì)被不同的開發(fā)者進(jìn)行開發(fā)。對(duì)每一個(gè)開發(fā)者而言,都希望自己的數(shù)據(jù)不被其他的開發(fā)者隨意獲取,因此,每一個(gè)開發(fā)者都可以在非易失性存儲(chǔ)器12中,預(yù)先設(shè)置一塊專屬于自己的加密區(qū)121。

例如,開發(fā)者a在非易失性存儲(chǔ)器12中,預(yù)先設(shè)置地址范圍0000h~000ah為專屬于自己的加密區(qū)1,在加密區(qū)1中存儲(chǔ)有開發(fā)者a設(shè)置的專屬于自己的第一讀操作指令及第一數(shù)據(jù)。又如,開發(fā)者b在非易失性存儲(chǔ)器12中,預(yù)先設(shè)置地址范圍000bh~002ah為專屬于自己的加密區(qū)2,在加密區(qū)2中存儲(chǔ)有開發(fā)者b設(shè)置的專屬于自己的第一讀操作指令及第一數(shù)據(jù)。

在具體實(shí)施中,開發(fā)者可以通過(guò)外部輸入設(shè)備與芯片進(jìn)行通信。例如,外部輸入設(shè)備通過(guò)通用異步收發(fā)傳輸器(universalasynchronousreceivertransmitter,uart)端口與芯片進(jìn)行通信。

開發(fā)者可以通過(guò)外部輸入設(shè)備向處理器11輸入經(jīng)過(guò)加密的命令。處理器11通過(guò)uart接口接收到經(jīng)過(guò)加密的命令后,對(duì)接收到的命令進(jìn)行解密。在完成解密后,處理器11可以獲取解密的命令所對(duì)應(yīng)的操作指令,操作指令的類型可以包括讀操作指令、寫操作指令、擦除操作指令、編程操作指令等。

當(dāng)解密的命令所對(duì)應(yīng)的操作指令為讀操作指令,且存儲(chǔ)該讀操作指令的地址區(qū)間處于非易失性存儲(chǔ)器12中的加密區(qū)時(shí),處理器11可以從非易失性存儲(chǔ)器12的加密區(qū)中讀取該讀操作指令。當(dāng)該讀操作指令為第一讀操作指令時(shí),處理器11執(zhí)行第一讀操作指令,從非易失性存儲(chǔ)器12的加密區(qū)中讀取相應(yīng)的第一數(shù)據(jù)。當(dāng)該讀操作指令為非第一讀操作指令時(shí),處理器不會(huì)從非易失性存儲(chǔ)器12的加密區(qū)中讀取相應(yīng)的第一數(shù)據(jù)。

也就是說(shuō),處理器11只能通過(guò)從加密區(qū)中讀取第一讀操作指令,來(lái)讀取加密區(qū)中加密的第一數(shù)據(jù)。開發(fā)者可以預(yù)先設(shè)置命令與第一讀操作指令對(duì)應(yīng)的映射關(guān)系。當(dāng)開發(fā)者存在讀取第一數(shù)據(jù)的需求時(shí),可以通過(guò)外部輸入設(shè)備向處理器11輸入相應(yīng)的經(jīng)過(guò)加密的命令。處理器11在對(duì)經(jīng)過(guò)加密的命令進(jìn)行解密之后,即可根據(jù)預(yù)設(shè)的映射關(guān)系來(lái)獲取命令對(duì)應(yīng)的第一讀操作指令。

在具體實(shí)施中,不同的開發(fā)者通過(guò)在非易失性存儲(chǔ)器12中分別設(shè)置自己專屬的加密區(qū),對(duì)自己專屬的加密區(qū)中的第一數(shù)據(jù)讀取只能通過(guò)自己預(yù)先設(shè)定的命令才能夠被處理器11讀取,從而可以確保自己的關(guān)鍵數(shù)據(jù)不被其他開發(fā)者隨意獲取。由于每一個(gè)開發(fā)者只是在非易失性存儲(chǔ)器12中預(yù)先設(shè)定某一塊地址區(qū)間作為自己專屬的加密區(qū),其他的地址區(qū)間仍然可以被其他開發(fā)者所使用,因此,可以在兼顧數(shù)據(jù)安全性的同時(shí),確保程序開發(fā)的開放性。

在具體實(shí)施中,處理器11可以包括讀取單元111、解密單元112、判斷單元113以及執(zhí)行單元114。處理器11可以通過(guò)讀取單元111來(lái)讀取外部輸入設(shè)備輸入的經(jīng)過(guò)加密的命令,通過(guò)解密單元112對(duì)經(jīng)過(guò)加密的命令進(jìn)行解密。當(dāng)解密的命令對(duì)應(yīng)的操作指令為讀操作指令時(shí),處理器11通過(guò)判斷單元113來(lái)判斷讀操作指令是否為第一讀操作指令。當(dāng)讀操作指令為第一讀操作指令時(shí),處理器11可以控制執(zhí)行單元114來(lái)執(zhí)行讀操作指令。

需要說(shuō)明的是,處理器11中的讀取單元111、解密單元112、判斷單元113以及執(zhí)行單元114均可以采用軟件實(shí)現(xiàn),也可以均采用硬件實(shí)現(xiàn),還可以部分采用軟件實(shí)現(xiàn),部分采用硬件實(shí)現(xiàn)。例如,處理器11中的讀取單元111、判斷單元113以及執(zhí)行單元114采用軟件實(shí)現(xiàn),解密單元114采用硬件實(shí)現(xiàn)。

可以理解的是,讀取單元111、解密單元112、判斷單元113以及執(zhí)行單元114等單元還可以獨(dú)立于處理器11存在。且上述所說(shuō)明的讀取單元111、解密單元112、判斷單元113以及執(zhí)行單元114等僅為便于理解而進(jìn)行說(shuō)明。在具體實(shí)施中,上述的讀取單元111、解密單元112、判斷單元113以及執(zhí)行單元114的功能還可以采用其他的功能模塊來(lái)實(shí)現(xiàn)。

參照?qǐng)D2,給出了本發(fā)明實(shí)施例中的另一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)的結(jié)構(gòu)示意圖,下面結(jié)合圖1進(jìn)行說(shuō)明。

在具體實(shí)施中,非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)還可以包括系統(tǒng)總線13、加密訪問(wèn)控制單元14以及存儲(chǔ)器訪問(wèn)控制單元15。在圖2中,加密訪問(wèn)控制單元14以及存儲(chǔ)器訪問(wèn)控制單元15可以等價(jià)實(shí)現(xiàn)讀取單元111、判斷單元113以及執(zhí)行單元114的功能。

在非易失性存儲(chǔ)器12中,還可以設(shè)置有加密控制信息區(qū)。在加密控制信息區(qū)中,存儲(chǔ)有加密區(qū)對(duì)應(yīng)的地址范圍的信息。

加密訪問(wèn)控制單元14與存儲(chǔ)器訪問(wèn)控制單元15耦接。當(dāng)非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)上電時(shí),加密訪問(wèn)控制單元14自動(dòng)從非易失性存儲(chǔ)器12的加密控制信息區(qū)中讀取加密區(qū)對(duì)應(yīng)的地址范圍,并將讀取到的加密區(qū)對(duì)應(yīng)的地址范圍輸出至存儲(chǔ)器訪問(wèn)控制單元15。存儲(chǔ)器訪問(wèn)控制單元15接收并保存加密區(qū)對(duì)應(yīng)的地址范圍。

在具體實(shí)施中,非易失性存儲(chǔ)器可以為flash閃存,也可以為電可擦可編程只讀存儲(chǔ)器(electricallyerasableprogrammablereadonlymemory,eeprom),還可以為多次可編程存儲(chǔ)器(multipletimeprogrammable,mtp),或其他非易失性存儲(chǔ)器。

在本發(fā)明一實(shí)施例中,非易失性存儲(chǔ)器12為flash閃存。相應(yīng)地,存儲(chǔ)器訪問(wèn)控制單元15可以為flash閃存訪問(wèn)控制單元。當(dāng)非易失性存儲(chǔ)器12為flash閃存時(shí),非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)中還可以設(shè)置有flash多路選擇器,通過(guò)flash多路選擇器來(lái)控制對(duì)flash閃存的訪問(wèn)。

在具體實(shí)施中,非易失性存儲(chǔ)器12中的加密控制信息區(qū)中,可以存儲(chǔ)有加密區(qū)間配置字以及加密保護(hù)字,其中:加密區(qū)間配置字適于標(biāo)識(shí)加密區(qū)對(duì)應(yīng)的地址區(qū)間,加密保護(hù)字適于保持加密區(qū)處于加密狀態(tài)。當(dāng)非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)上電上電時(shí),加密訪問(wèn)控制單元14從加密控制信息區(qū)中讀取加密區(qū)間配置字,從而可以獲取加密區(qū)對(duì)應(yīng)的地址范圍。

加密區(qū)間配置字可以包括加密區(qū)的起始地址以及結(jié)束地址。加密區(qū)間配置字可以占用加密控制信息區(qū)中的一個(gè)或多個(gè)地址,可以指定具體的字節(jié)或字地址作為加密區(qū)間配置字,也可以僅指定存儲(chǔ)塊編號(hào)作為加密區(qū)間配置字,例如flash閃存的頁(yè)編號(hào)。

在具體實(shí)施中,加密控制信息區(qū)可以獨(dú)立于加密區(qū)設(shè)置,也即加密控制信息區(qū)對(duì)應(yīng)的地址區(qū)間與加密區(qū)對(duì)應(yīng)的地址范圍之間不存在交集。加密控制信息區(qū)也可以設(shè)置在加密區(qū)內(nèi)部,也即加密控制信息區(qū)對(duì)應(yīng)的地址區(qū)間處于加密區(qū)對(duì)應(yīng)的地址范圍之內(nèi)。加密控制信息區(qū)中的加密區(qū)間配置字可以獨(dú)立于加密區(qū)設(shè)置,加密保護(hù)字設(shè)置在加密區(qū)中。加密控制信息區(qū)中的加密保護(hù)字可以獨(dú)立于加密區(qū)設(shè)置,加密區(qū)間配置字可以設(shè)置在加密區(qū)中。

也就是說(shuō),加密控制信息區(qū)和加密區(qū)可以獨(dú)立設(shè)置,加密控制信息區(qū)也可以被加密區(qū)完全包括,加密控制信息區(qū)還可以被加密區(qū)部分包括。

例如,加密區(qū)間配置字獨(dú)立于加密區(qū)設(shè)置,加密保護(hù)字設(shè)置在加密區(qū)的最后一個(gè)地址。

在具體實(shí)施中,可以預(yù)先設(shè)定加密控制信息區(qū)的擦除條件。為確保加密區(qū)數(shù)據(jù)的安全性,可以設(shè)定當(dāng)加密區(qū)中的數(shù)據(jù)被完全擦除后,方可擦除加密控制信息區(qū)。

在具體實(shí)施中,系統(tǒng)總線13耦接在處理器11以及存儲(chǔ)器訪問(wèn)控制單元15之間,處理器11可以通過(guò)系統(tǒng)總線13向存儲(chǔ)器訪問(wèn)控制單元15發(fā)送訪問(wèn)指令。在訪問(wèn)指令中,攜帶有訪問(wèn)指令對(duì)應(yīng)的地址區(qū)間。

當(dāng)存儲(chǔ)器訪問(wèn)控制單元15接收到訪問(wèn)指令時(shí),將訪問(wèn)指令對(duì)應(yīng)的地址區(qū)間與存儲(chǔ)的加密區(qū)對(duì)應(yīng)的地址范圍進(jìn)行比較。當(dāng)訪問(wèn)指令對(duì)應(yīng)的地址區(qū)間處于加密區(qū)對(duì)應(yīng)的地址范圍之內(nèi)時(shí),拒絕將訪問(wèn)指令輸出至非易失性存儲(chǔ)器12,也即處理器11無(wú)法通過(guò)訪問(wèn)指令來(lái)訪問(wèn)加密區(qū)中存儲(chǔ)的數(shù)據(jù),從而可以確保加密區(qū)中的數(shù)據(jù)安全。

在具體實(shí)施中,在非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)中,還可以包括系統(tǒng)內(nèi)可編程(insystemprogramming,isp)單元。在實(shí)際應(yīng)用中可知,系統(tǒng)內(nèi)可編程是指:通過(guò)專門的接口,例如串口,完成對(duì)芯片內(nèi)部可編程存儲(chǔ)器的編程,無(wú)需將芯片放置于專用編程器內(nèi)編程,便于芯片的調(diào)試或升級(jí)。

系統(tǒng)內(nèi)可編程單元17與非易失性存儲(chǔ)器12耦接,可以從非易失性存儲(chǔ)器12的加密控制信息區(qū)中獲取加密區(qū)對(duì)應(yīng)的地址范圍以及加密保護(hù)字。在實(shí)際應(yīng)用中,當(dāng)存在對(duì)系統(tǒng)內(nèi)可編程單元17的編程操作時(shí),用戶可以通過(guò)上位機(jī)21向編程器20輸入編程操作指令,進(jìn)而通過(guò)編程器20對(duì)系統(tǒng)內(nèi)可編程單元17進(jìn)行編程操作。

當(dāng)開發(fā)者通過(guò)系統(tǒng)內(nèi)可編程單元17向非易失性存儲(chǔ)器12輸出讀操作指令,且讀操作指令對(duì)應(yīng)的數(shù)據(jù)位于加密區(qū)內(nèi)時(shí),為提高數(shù)據(jù)安全性,避免加密數(shù)據(jù)被其他開發(fā)者輕易獲取,非易失性存儲(chǔ)器12可以不響應(yīng)讀操作指令,或者讀操作指令讀取到的數(shù)據(jù)為定值,例如,讀操作指令讀取到的數(shù)據(jù)為恒0。

當(dāng)開發(fā)者通過(guò)系統(tǒng)內(nèi)可編程單元17對(duì)非易失性存儲(chǔ)器12進(jìn)行編程操作時(shí),系統(tǒng)內(nèi)可編程單元17可以獲取編程操作對(duì)應(yīng)的地址區(qū)間。當(dāng)編程操作對(duì)應(yīng)的地址區(qū)間處于加密區(qū)對(duì)應(yīng)的地址范圍之內(nèi)時(shí),清除加密區(qū)中的數(shù)據(jù),并在將加密保護(hù)字以及加密區(qū)間配置字清除完成之后,再進(jìn)行編程操作。

在系統(tǒng)內(nèi)可編程單元17編程操作完成后,加密區(qū)中的數(shù)據(jù)以及加密控制信息區(qū)中的數(shù)據(jù)均被完全清除,從而保證了加密區(qū)中原有數(shù)據(jù)的安全性。

在實(shí)際應(yīng)用中,開發(fā)者可以預(yù)先獲知非易失性存儲(chǔ)器12中的哪些地址區(qū)間為加密區(qū)。在通過(guò)系統(tǒng)內(nèi)可編程單元17對(duì)非易失性存儲(chǔ)器12進(jìn)行編程操作時(shí),可以決定是否對(duì)加密區(qū)進(jìn)行編程操作。若開發(fā)者存在對(duì)加密區(qū)進(jìn)行編程操作的需求,則可以提醒開發(fā)者存在加密區(qū)中的數(shù)據(jù)被完全清除的風(fēng)險(xiǎn)。

在具體實(shí)施中,加密區(qū)可以支持應(yīng)用內(nèi)編程(inapplicationprogramming,iap)的擦除和寫操作。在實(shí)際應(yīng)用中可知,iap技術(shù)是指應(yīng)用程序通過(guò)通信端口,例如通用異步收發(fā)器、usb、程序調(diào)試接口或者藍(lán)牙等通信端口,接收應(yīng)用程序的更新數(shù)據(jù)進(jìn)行自編程的技術(shù)。通過(guò)使用iap技術(shù)可以實(shí)現(xiàn)系統(tǒng)軟件的遠(yuǎn)程更新,例如在無(wú)線應(yīng)用場(chǎng)景下,上位機(jī)通過(guò)網(wǎng)絡(luò)自動(dòng)更新系統(tǒng)軟件,無(wú)需工程師現(xiàn)場(chǎng)更新,從而可以節(jié)省系統(tǒng)更新成本,并可完成一些人力不可及的惡劣環(huán)境下的系統(tǒng)更新。

在具體實(shí)施中,非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)還可以包括應(yīng)用內(nèi)可編程控制單元18。應(yīng)用內(nèi)可編程控制單元18分別與非易失性存儲(chǔ)器12以及加密訪問(wèn)控制單元14耦接,且應(yīng)用內(nèi)可編程控制單元18與系統(tǒng)總線13耦接。參照?qǐng)D3,給出了本發(fā)明實(shí)施例中的又一種非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)的結(jié)構(gòu)示意圖。在實(shí)際應(yīng)用中,開發(fā)者可以通過(guò)程序調(diào)試接口19控制應(yīng)用內(nèi)可編程控制單元18,從而實(shí)現(xiàn)對(duì)非易失性存儲(chǔ)器12進(jìn)行編程操作。在實(shí)際應(yīng)用中可知,對(duì)非易失性存儲(chǔ)器12進(jìn)行編程操作,實(shí)質(zhì)上是對(duì)非易失性存儲(chǔ)器12進(jìn)行擦除操作和寫操作。

在非易失性存儲(chǔ)器12的加密區(qū)中,存儲(chǔ)有加密的第一編程操作指令以及第一編程地址區(qū)間,第一編程操作指令與第一編程地址區(qū)間相對(duì)應(yīng)。加密訪問(wèn)控制單元14在獲取到加密區(qū)對(duì)應(yīng)的地址范圍后,可以將加密區(qū)對(duì)應(yīng)的地址范圍輸出至應(yīng)用內(nèi)可編程控制單元18。

開發(fā)者可以通過(guò)程序調(diào)試接口19向應(yīng)用內(nèi)可編程控制單元18輸入編程操作指令,編程操作指令可以為第一編程操作指令以及其他非第一編程操作指令。當(dāng)應(yīng)用內(nèi)可編程控制單元18檢測(cè)到接收到的編程操作指令為第一編程操作指令時(shí),對(duì)第一編程操作指令對(duì)應(yīng)的第一編程地址區(qū)間進(jìn)行編程操作。當(dāng)應(yīng)用內(nèi)可編程控制單元18檢測(cè)到接收到的編程操作指令為非第一編程操作指令時(shí),拒絕對(duì)第一編程地址區(qū)間進(jìn)行編程操作。

在實(shí)際應(yīng)用中,程序調(diào)試接口19可以外接聯(lián)合測(cè)試工作組(jointtestactiongroup,jtag)、swd等協(xié)議的調(diào)試器。

在對(duì)第一編程地址區(qū)間進(jìn)行編程操作時(shí),應(yīng)用內(nèi)可編程控制單元18先將第一編程地址區(qū)間中已存儲(chǔ)的數(shù)據(jù)進(jìn)行擦除操作。在完成擦除操作之后,再將第一編程操作指令對(duì)應(yīng)的數(shù)據(jù)寫入到第一編程地址區(qū)間中。

從上述實(shí)施例中可以得知,第一編程操作指令是存儲(chǔ)在加密區(qū)中的。也就是說(shuō),對(duì)第一編程地址區(qū)間的編程操作是從加密區(qū)內(nèi)部發(fā)起的。換句話說(shuō),當(dāng)開發(fā)者存在對(duì)第一編程地址區(qū)間進(jìn)行編程操作的需求時(shí),開發(fā)者需要獲知如何控制處理器11從加密區(qū)中讀取出第一編程操作指令。若開發(fā)者無(wú)法控制處理器11從加密區(qū)中讀取第一編程操作指令,則開發(fā)者就無(wú)法通過(guò)應(yīng)用內(nèi)可編程控制單元18對(duì)第一編程地址區(qū)間進(jìn)行編程操作。

相比于系統(tǒng)內(nèi)可編程單元17對(duì)非易失性存儲(chǔ)器12的加密區(qū)進(jìn)行的編程操作,通過(guò)應(yīng)用內(nèi)可編程控制單元18對(duì)非易失性存儲(chǔ)器12的加密區(qū)所進(jìn)行的編程操作過(guò)程中,無(wú)需擦除加密控制信息區(qū)中的數(shù)據(jù)。因此,在通過(guò)應(yīng)用內(nèi)可編程控制單元18對(duì)非易失性存儲(chǔ)器12的加密區(qū)進(jìn)行的編程操作過(guò)程中,由于加密保護(hù)字未被清除,因此加密區(qū)仍處于加密狀態(tài)。

由于只是對(duì)加密區(qū)中的第一編程地址區(qū)間進(jìn)行編程操作,而不是對(duì)加密區(qū)中的所有區(qū)域都進(jìn)行編程操作,因此可以提高系統(tǒng)的編程效率。

在具體實(shí)施中,在加密區(qū)中,還存儲(chǔ)有升級(jí)引導(dǎo)程序,升級(jí)引導(dǎo)程序可以為bootloader等程序。在對(duì)加密區(qū)中的數(shù)據(jù)進(jìn)行更新時(shí),開發(fā)者可以預(yù)先對(duì)更新數(shù)據(jù)進(jìn)行加密處理,也即輸入至加密區(qū)的更新數(shù)據(jù)是加密之后的數(shù)據(jù)。升級(jí)引導(dǎo)程序可以支持對(duì)加密數(shù)據(jù)的解密操作,因此可以將接收到的加密之后的更新數(shù)據(jù)進(jìn)行解密處理,并將解密之后的數(shù)據(jù)存儲(chǔ)在加密區(qū)中。

當(dāng)非易失性存儲(chǔ)器12為flash閃存時(shí),由于flash閃存以頁(yè)為單元進(jìn)行擦除,若加密區(qū)占用flash閃存中的一頁(yè),則會(huì)導(dǎo)致bootloader程序也被擦除。因此,為能夠正常進(jìn)行iap操作,在具體實(shí)施中,可以在flash閃存中預(yù)先留出一頁(yè)作為bootloader程序保存頁(yè)。

從本發(fā)明上述實(shí)施例中可知,在通過(guò)應(yīng)用內(nèi)可編程控制單元18對(duì)加密區(qū)進(jìn)行擦除和編程等操作時(shí),需要調(diào)用加密區(qū)中的bootloader程序。在實(shí)際應(yīng)用中,bootloader程序及其采用的加解密算法均可由用戶自行設(shè)計(jì),對(duì)用戶的開發(fā)能力要求較高。用戶如有能力開發(fā)插件,或者芯片原廠商提供一定的技術(shù)支持,則可以通過(guò)二次開發(fā)實(shí)現(xiàn)通過(guò)編程調(diào)試器與應(yīng)用內(nèi)可編程控制單元18與bootloader程序的通信。為保證安全性,用戶可以不將自己開發(fā)的bootloader程序及其采用的加解密算法作為通用插件公開發(fā)布。

在具體實(shí)施中,非易失性存儲(chǔ)器數(shù)據(jù)加密系統(tǒng)中,還可以包括編程校驗(yàn)單元16,編程校驗(yàn)單元16可以通過(guò)系統(tǒng)總線13與處理器11耦接。在完成對(duì)非易失性存儲(chǔ)器12的加密區(qū)的編程操作之后,可以通過(guò)編程校驗(yàn)單元16對(duì)寫入至加密區(qū)中的數(shù)據(jù)進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果經(jīng)由系統(tǒng)總線輸出至處理器。

現(xiàn)有技術(shù)中,處理器經(jīng)由系統(tǒng)總線直接從加密區(qū)中讀取寫入的數(shù)據(jù),可能導(dǎo)致數(shù)據(jù)不安全;本技術(shù)方案中,通過(guò)編程校驗(yàn)單元對(duì)寫入至加密區(qū)中的數(shù)據(jù)進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果輸出至處理器,可以避免處理器從加密區(qū)中讀取寫入的數(shù)據(jù)時(shí)被攻擊而導(dǎo)致數(shù)據(jù)泄露的情況發(fā)生,確保芯片程序數(shù)據(jù)的安全性。

下面對(duì)本發(fā)明實(shí)施例中提供的iap編程過(guò)程進(jìn)行詳細(xì)說(shuō)明。

參照?qǐng)D4,給出了本發(fā)明實(shí)施例中的一種應(yīng)用內(nèi)可編程控制單元的編程操作流程圖,下面結(jié)合圖1~圖3進(jìn)行說(shuō)明。

步驟s401,判斷接收到的擦除操作指令是否為第一擦除操作指令。

在具體實(shí)施中,加密區(qū)中存儲(chǔ)有第一編程操作指令以及第一編程地址區(qū)間。在實(shí)際應(yīng)用中可知,應(yīng)用內(nèi)可編程控制單元18的編程操作包括擦除操作以及寫操作。因此,第一編程操作指令包括第一擦除操作指令以及第一寫操作指令。

當(dāng)存在對(duì)加密區(qū)中的第一編程地址區(qū)間進(jìn)行編程操作的需求時(shí),處理器11從加密區(qū)中讀取第一編程操作指令并輸出至應(yīng)用內(nèi)可編程控制單元18。

由于在編程過(guò)程中,應(yīng)用內(nèi)可編程控制單元18接收到的擦除操作指令可能是開發(fā)者輸入的其他擦除操作指令,也可能是處理器11輸出的第一擦除操作指令,因此,應(yīng)用內(nèi)可編程控制單元18在接收到擦除操作指令之后,判斷接收到的擦除操作指令是否為第一擦除操作指令。當(dāng)接收到的擦除操作指令為第一擦除操作指令時(shí),執(zhí)行步驟s402;當(dāng)接收到的擦除操作指令為非第一擦除操作指令時(shí),拒絕對(duì)第一編程地址區(qū)間的擦除操作。

當(dāng)接收到的擦除操作指令為第一擦除操作指令時(shí),執(zhí)行擦除操作。

步驟s402,判斷擦除操作是否完成。

在擦除操作的過(guò)程中,當(dāng)檢測(cè)到擦除操作完成后,執(zhí)行步驟s403;當(dāng)檢測(cè)到擦除操作未完成時(shí),繼續(xù)執(zhí)行步驟s402,也即繼續(xù)執(zhí)行擦除操作,并判斷擦除操作是否完成。

在具體實(shí)施中,當(dāng)非易失性存儲(chǔ)器12為flash閃存時(shí),基于flash閃存的特性,在進(jìn)行擦除操作時(shí),可以對(duì)第一編程地址區(qū)間按頁(yè)進(jìn)行擦除操作。

步驟s403,接收經(jīng)過(guò)加密的更新數(shù)據(jù)。

在具體實(shí)施中,在擦除操作完成后,應(yīng)用內(nèi)可編程控制單元18向第一編程地址區(qū)間輸出經(jīng)過(guò)加密的更新數(shù)據(jù)。

步驟s404,判斷接收到的寫操作指令是否為第一寫操作指令。

在具體實(shí)施中,當(dāng)接收到的寫操作指令為第一寫操作指令時(shí),執(zhí)行步驟s405;當(dāng)接收到的寫操作指令為非第一寫操作指令時(shí),拒絕對(duì)第一編程地址空間的寫操作。

步驟s405,對(duì)更新數(shù)據(jù)進(jìn)行解密并存儲(chǔ)在第一編程地址區(qū)間。

步驟s406,判斷更新數(shù)據(jù)寫入操作是否完成。

在具體實(shí)施中,當(dāng)更新數(shù)據(jù)寫入操作完成時(shí),結(jié)束操作流程;當(dāng)更新數(shù)據(jù)寫入操作未完成時(shí),可以重新執(zhí)行步驟s404。

在具體實(shí)施中,針對(duì)本發(fā)明上述實(shí)施例中步驟s401~步驟s406的每一個(gè)步驟,均可以采用軟件進(jìn)行實(shí)現(xiàn),也均可以采用硬件進(jìn)行實(shí)現(xiàn),還可以通過(guò)軟硬件結(jié)合的方式進(jìn)行實(shí)現(xiàn)。

本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指示相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:rom、ram、磁盤或光盤等。

雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
屏山县| 桂林市| 武城县| 顺昌县| 准格尔旗| 佛冈县| 桐梓县| 兴山县| 鄱阳县| 多伦县| 康平县| 新沂市| 六枝特区| 胶南市| 庆元县| 南丹县| 四川省| 乐山市| 始兴县| 行唐县| 固原市| 新余市| 金秀| 石泉县| 长泰县| 玛曲县| 恩平市| 梓潼县| 克拉玛依市| 五华县| 林州市| 内黄县| 铁岭市| 抚宁县| 桃江县| 新乡市| 阜康市| 大丰市| 获嘉县| 泰顺县| 门头沟区|