應(yīng)用于通用數(shù)字信號(hào)處理器的加密電路的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種應(yīng)用于通用數(shù)字信號(hào)處理器的加密電路,具體是將通用信號(hào)處理器經(jīng)加密設(shè)計(jì)成具有加密功能的專用數(shù)字信號(hào)處理器。
【背景技術(shù)】
[0002]目前市面上常用的數(shù)字信號(hào)處理器均不具備加密功能,在應(yīng)用過程中,其程序代碼往往都在片外或者置于片內(nèi)的ROM中,并以明文的形式存在,競爭對手可以非常方便的通過仿真器直接讀取程序代碼,對于代碼中核心算法、通信協(xié)議無法得到有效保障。
[0003]在民用領(lǐng)域,產(chǎn)品的硬件電路的復(fù)制是非常方便的,關(guān)鍵就在于程序代碼,如果產(chǎn)品使用不具備加密功能的通用數(shù)字信號(hào)處理器,競爭對手可以非常低廉的獲取新產(chǎn)品的所有技術(shù)并轉(zhuǎn)化為自己的產(chǎn)品。
[0004]在軍事應(yīng)用領(lǐng)域,一旦處理器中的代碼被讀取,輕者,敵人可以仿制你的武器;重者你的武器的不再具有秘密,敵方可以根據(jù)從代碼中獲得的控制邏輯,干擾或控制你的其他武器,后果非常嚴(yán)重。在軍事領(lǐng)域特別是那些用于出口的武器上,對于通用數(shù)字信號(hào)處理器的加密需求非常迫切。
[0005]因此無論是在軍用還是民用領(lǐng)域,都急需一種加密電路或者加密方法對通用數(shù)字信號(hào)處理器進(jìn)行加密處理。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種應(yīng)用于通用數(shù)字信號(hào)處理器的加密電路,將加密電路與通用數(shù)字信號(hào)處理器進(jìn)行相關(guān)設(shè)計(jì),確保時(shí)序與原電路一致,即可實(shí)現(xiàn)加密的專用數(shù)字信號(hào)處理器,解決現(xiàn)下常用數(shù)字信號(hào)處理器保密性能缺失的問題。
[0007]按照本發(fā)明提供的技術(shù)方案,所述的應(yīng)用于通用數(shù)字信號(hào)處理器的加密電路包括:
一個(gè)通用數(shù)字信號(hào)處理器;
一個(gè)加密模塊;
一個(gè)解密模塊;
一個(gè)或多個(gè)程序存儲(chǔ)器,與所述加密模塊和解密模塊相連;
一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)器,與所述加密模塊和解密模塊相連;
所述加密模塊和解密模塊與通用數(shù)字信號(hào)處理器連接;
基于通用數(shù)字信號(hào)處理器開發(fā)完成的程序代碼經(jīng)上位機(jī)加密軟件加密后形成密文程序代碼固化于所述程序存儲(chǔ)器中,上位機(jī)加密軟件密鑰與解密模塊的相應(yīng)空間的密鑰一致;加密電路工作模式分為加密模式、通用模式,加密模式與通用模式時(shí)序一致;
在加密模式工作時(shí),固化于程序存儲(chǔ)器中的密文代碼經(jīng)解密模塊解密后形成通用數(shù)字信號(hào)處理器能識(shí)別的明文代碼進(jìn)行執(zhí)行;電路運(yùn)行過程中的中間數(shù)據(jù)既有明文也有密文,并且密文部分根據(jù)不同數(shù)據(jù)空間采用不同的密鑰,密文數(shù)據(jù)經(jīng)解密模塊解密后送入通用數(shù)字信號(hào)處理,加密模塊根據(jù)數(shù)據(jù)空間將需要加密的數(shù)據(jù)經(jīng)相應(yīng)密鑰加密后存放于數(shù)據(jù)存儲(chǔ)器中。
[0008]其中,所述程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器集成在加密電路內(nèi)部或置于加密電路外部掛在與加密模塊相連的外部總線上。
[0009]所述通用數(shù)字信號(hào)處理器是帶有外部總線、具有外部尋址空間的處理器。
[0010]所述加密模塊、解密模塊通過并行總線將程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器與所述通用數(shù)字信號(hào)處理器連接通信。
[0011]在加密模式下通用數(shù)字信號(hào)處理器外部總線接口傳輸?shù)木鶠槊芪臄?shù)據(jù)。若程序存儲(chǔ)器集成在加密電路內(nèi)部,密文程序代碼需在電路設(shè)計(jì)時(shí)固化碼點(diǎn)。
[0012]加密模式下工作時(shí),所述通用數(shù)字信號(hào)處理器通過數(shù)據(jù)、地址總線讀取程序存儲(chǔ)器中的密文代碼經(jīng)解密模塊轉(zhuǎn)變成明文代碼后開始運(yùn)行程序。
[0013]所述加密模塊針對數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)空間加密,加密密鑰根據(jù)地址段確定,對不同地址段的數(shù)據(jù)采用不同密鑰;所述解密模塊負(fù)責(zé)程序空間、數(shù)據(jù)空間的解密,程序存儲(chǔ)器的程序空間采用唯一的密鑰,數(shù)據(jù)空間采用與加密時(shí)相對應(yīng)的密鑰;多種密鑰的采用由加密模塊、解密模塊根據(jù)通用數(shù)字信號(hào)處理器的總線片選信號(hào)及地址信號(hào)譯碼決定。
[0014]進(jìn)一步的,加密、解密算法引擎采用DES算法,密鑰在算法電路設(shè)計(jì)時(shí)固化于加密模塊、解密模塊的電路中,密鑰的更改必須通過更改電路設(shè)計(jì)實(shí)現(xiàn)。
[0015]通過外部硬件電路選擇本發(fā)明所述加密電路工作模式,加密電路設(shè)計(jì)過程中增加一個(gè)電路端口,通過改變該端口的電平實(shí)現(xiàn)工作模式切換;通用模式下,用戶通過JTAG端口進(jìn)行代碼調(diào)試,通用模式下所有的程序代碼、數(shù)據(jù)都是明文,無法執(zhí)行密文代碼;加密模式下JTAG端口將失效,加密電路無法通過JTAG端口對電路進(jìn)行調(diào)試,所有的程序代碼都被認(rèn)為是密文代碼,若密鑰錯(cuò)誤,程序?qū)o法正常運(yùn)行。
[0016]本發(fā)明的優(yōu)點(diǎn)是:將通用信號(hào)處理器經(jīng)加密設(shè)計(jì)成有加密功能的專用數(shù)字信號(hào)處理器,禁止競爭對手通過總線接口直接讀取程序代碼,對運(yùn)行于通用處理器內(nèi)的程序進(jìn)行了嚴(yán)密保護(hù),必須通過解剖芯片的方式才能讀取程序代碼,有效防止了抄板,保障了應(yīng)用程序代碼的安全性。
【附圖說明】
[0017]圖1是本發(fā)明的電路結(jié)構(gòu)框圖。
[0018]圖2是流水線優(yōu)化前后對比。
[0019]圖3是加密電路的實(shí)施流程圖。
【具體實(shí)施方式】
[0020]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明。
[0021]本發(fā)明采用的技術(shù)方案是反向研制通用數(shù)字信號(hào)處理器,加密算法引擎采用DES算法,正向設(shè)計(jì)算法邏輯,采用超前地址譯碼功能優(yōu)化原電路流水線結(jié)構(gòu)確保電路加密前后時(shí)序的一致性,經(jīng)歷邏輯設(shè)計(jì)、仿真、版圖設(shè)計(jì)、制版、流片、測試封裝后形成專用電路,從而將通用數(shù)字信號(hào)處理器升級(jí)為加密數(shù)字信號(hào)處理器電路。
[0022]本發(fā)明基于通用數(shù)字信號(hào)處理器設(shè)計(jì)開發(fā),將通用數(shù)字信號(hào)處理器升級(jí)為時(shí)序與原電路一致的專用加密數(shù)字信號(hào)處理器。通用數(shù)字信號(hào)處理器可以是反向開發(fā)的,正向設(shè)計(jì)加密、解密模塊,加密、解密算法采用DES算法。如圖1所示,本發(fā)明的電路結(jié)構(gòu)包括:通用數(shù)字信號(hào)處理器、加密模塊、解密模塊,所述加密模塊和解密模塊與通用數(shù)字信號(hào)處理器連接,所述加密模塊和解密模塊還通過總線連接一個(gè)或多個(gè)程序存儲(chǔ)器以及一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)器。
[0023]程序、數(shù)據(jù)存儲(chǔ)器可以是集成在加密電路內(nèi)部的ROM、E2PROM, Flash等存儲(chǔ)器,同樣也可以是掛在片外總線的各類存儲(chǔ)器,固化于程序空間的代碼