洪家平,高美珍
(1.湖北師范學院 計算機科學與技術(shù)學院,湖北 黃石 435002;2.湖北師范學院 物理與電子科學學院,湖北 黃石 435002)
據(jù)統(tǒng)計,全球每三款嵌入式應用系統(tǒng)中就有一款應用軟件被非法拷貝或盜版,而面對種類眾多的解密公司,單純的軟件保護已無濟于事, 且其保護力度也遠遠不能經(jīng)受市場的考驗,如果用特定的硬件來保護這些嵌入式系統(tǒng)應用軟件,或使用軟硬件相結(jié)合的保護技術(shù),這樣就有可能有效地加大對盜版和破解的難度。針對這種MCU加密易被破解的局面,防抄版嵌入式加密芯片DM2016能有效地解決上述問題。
DM2016的內(nèi)部結(jié)構(gòu)如圖1所示,在結(jié)構(gòu)上內(nèi)嵌了1024bits的E2PROM,采用明文隨機數(shù)產(chǎn)生方式、密鑰OTP寫入、數(shù)據(jù)線自動熔斷不可讀等多種保護措施。嵌入式加密芯片DM2016廣泛應用于GPS、DVD、DVR、DVB以及大部分嵌入式應用系統(tǒng)中。
DM2016還有如下特性,如表1所示:
表1 DM2016的特性
DM2016是一款基于嵌入式系統(tǒng)的專業(yè)防抄版加密與解密芯片,如圖2所示,是CPU與DM2016在進行加、解密時數(shù)據(jù)傳遞關(guān)系原理圖。DM2016通過I2C總線與主控器芯片CPU相連,通過在主程序中嵌入加密程序,當加密程序被調(diào)用運行時,即從RAM里面隨機調(diào)用一組數(shù)據(jù)作為明文,與程序里面的密鑰混合后產(chǎn)生一組暗文,暗文再通過I2C總線傳送到加密芯片,按反算法與加密芯片中密鑰產(chǎn)生明文,再與RAM中的明文進行比較,兩者一致則資格認證通過,程序繼續(xù)運行, 如果兩者不一致則程序中斷退出,從而保護用戶程序。如圖3是DM2016加密與解密系統(tǒng)流程圖。
圖1 DM2016的內(nèi)部結(jié)構(gòu)圖 圖2 CPU與DM2016加、解密數(shù)據(jù)傳遞關(guān)系原理圖
圖3 DM2016加密與解密流程圖
如圖4所示,是DM2016加密芯片在嵌入式系統(tǒng)加密領(lǐng)域中的應用結(jié)構(gòu)原理示意圖。從圖中可以看出,DM2016是通過I2C總線與微處理器(Processor)相連的。DM2016與微處理器之間的數(shù)據(jù)傳輸與通信完全遵守I2C總線的通信協(xié)議。
微處理器對DM2016的讀寫操作分兩種情況:
首先看微處理器對DM2016的E2PROM執(zhí)行寫操作,只能使用I2C總線的單字節(jié)寫,不能使用I2C總線的多字節(jié)寫方式,E2PROM寫一個字節(jié)大約需要5ms的時間。但處理器對DM2016的E2PROM執(zhí)行讀操作時,則既可以使用I2C總線的多字節(jié)讀,也可以使用I2C總線的單字節(jié)讀方式。
另外,微處理器往DM2016中寫密文時,要使用I2C總線的多字節(jié)寫方式,一次寫8個字節(jié),立即讀明文。處理器從DM2016中讀明文時要使用I2C總線的多字節(jié)讀方式,也是一次讀8個字節(jié)。
下面是一個實際數(shù)據(jù)輸入的例子:
{
......
unsigned char srcData[8]; //存放原始數(shù)據(jù)(隨機數(shù))
unsigned char decData[8]; //存放需加密的運算數(shù)據(jù)(隨機數(shù))或運算結(jié)果(密文)
......
//在具體的開發(fā)平臺上產(chǎn)生一組隨機數(shù)共64位,假設(shè)數(shù)據(jù)為0x01、0x23、0x45、0x67、0x89、0xab、0xcd、0xef
SrcData [0]=0x01;
SrcData [1]=0x23;
SrcData [2]=0x45;
SrcData [3]=0x67;
SrcData [4]=0x89;
SrcData [5]=0xab;
SrcData [6]=0xcd;
SrcData [7]=0xef;
DecData [0]=0x01;
DecData [1]=0x23;
DecData [2]=0x45;
DecData [3]=0x67;
DecData [4]=0x89;
DecData [5]=0xab;
DecData [6]=0xcd;
DecData [7]=0xef;
.....
//用戶自定一個128位的Key1,該值與芯片中燒入的值一樣,這里假設(shè)定義的值如下:
unsigned char Key [16]=
{ 0x01,0x23,0x45,0x67,0x89,0xab,0xcd0xef,
0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10};
unsigned char result=EDesEn_Crypt (decData, Key);
If (result! =0)
{
//進行出錯處理
}
//此時在decData數(shù)組中存放著密文,值為0xf7、0x73、0x72、0xb7、0xba、0xdf、0x2f、0x81
//將產(chǎn)生的decData數(shù)組中存放著的這8個字節(jié)密文通過I2C 總線送給DM2016芯片進行解密。
圖4 DM2016與嵌入式芯片連接原理圖
本文介紹了嵌入式防抄版加密解密系統(tǒng)加密芯片DM2016的結(jié)構(gòu)、特點,同時給出了DM2016在嵌入式系統(tǒng)中的加密方法及應用。隨著嵌入式系統(tǒng)越來越廣泛的應用,嵌入式系統(tǒng)的安全保密問題也越來越受到廣泛的重視。而嵌入式防抄版芯片DM2016為防止嵌入式系統(tǒng)開發(fā)成果被仿制或剽竊提供了更為強有力的保障。
[1]洪家平.基于嵌入式系統(tǒng)的數(shù)字視頻加密技術(shù)[J] 電子技術(shù)應用,2009,5:141~144.
[2]洪家平.加密芯片DM2016在數(shù)字電視加密中的應用[J]. 單片機與嵌入式系統(tǒng)應用,2008,8:38~40.
[3]洪家平.AES在嵌入式系統(tǒng)起動加載程序中的應用[J]. 信息安全與通信保密,2007,2:54~56.
[4]李桂滿,李 國.加解密算法BlowFish在單片機上的應用 [J].單片機與嵌入式系統(tǒng)應用,2007,10:12~14.
[5]洪家平,董武世.基于嵌入式系統(tǒng)的時分多址通信協(xié)議的實現(xiàn) [J].微計算機信息,2005,7:31~33.
[6]宋 凱,嚴麗平,甘 嵐. 嵌入式圖像處理系統(tǒng)的設(shè)計與實現(xiàn)[J]. 計算機工程與設(shè)計,2009,(19) :4368~4370.
[7]郭協(xié)潮.遺傳算法在信息安全中的應用研究[J]. 計算機工程與應用,2012,(3):127~131.
[8]鄭更生,方 勇,肖 婧. 嵌入式無線視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J]. 武漢工程大學學報,2012(10):66~68.