DM2016數(shù)字電視信號在加密領(lǐng)域中的應(yīng)用

隨著嵌入式系統(tǒng)越來越廣泛的應(yīng)用,其安全保密問題也越來越受到重視,嵌入式系統(tǒng)應(yīng)用系統(tǒng)的開發(fā)者必然面臨系統(tǒng)被仿制或剽竊的問題。面對形形色色的解密公司,封裝和PCB布線的保護已經(jīng)顯得力不從心,而單純的軟件保護也無濟于事,為此我們推出了一款基于嵌入式系統(tǒng)的專業(yè)防抄版加密芯片——DM2016。

一、DM20T6的特點

DM2016在結(jié)構(gòu)上有如下特性:符合I2C總線標(biāo)準(zhǔn),支持兩位I2C地址選撮內(nèi)置128位密鑰解密算法,保密性能類似于3DES算法,且一次性燒錄完成內(nèi)置1024位E2PROM;采用隨機數(shù)通訊算法。

二、DM2016的工作原理

DM2016通過PIC總線與主芯片CPU相連,通過主程序中嵌入加密程序,當(dāng)加密程序調(diào)用運行時,即從RAM里面隨機調(diào)用一組數(shù)據(jù)作為明文,與程序里面的密鑰混合產(chǎn)生一組暗文,暗文通過PIC總線傳送到加密芯片,按反算法與加密芯片中密鑰產(chǎn)生明文,再與RAM中的明文比較,兩者一致則程序繼續(xù),兩者不一致則程序中斷退出,從而起到保護用戶程序的目的。

三、DM2016數(shù)字電視信號加密領(lǐng)域中的應(yīng)用

1、DM2016加密芯片在數(shù)字電視信號加密領(lǐng)域應(yīng)用中的硬件結(jié)構(gòu)

DM2016加密芯片是一歉針對性很強的芯片,它接收標(biāo)準(zhǔn)的TS流,選擇進(jìn)行解復(fù)用.解擾,將處理好的TS流以DMA方式通過PCI總線送到計算機內(nèi)存。該芯片可以通過與CI接口控制芯片DM1021搭配實現(xiàn)兩個CAM卡控制;并可以接收外部紅外遙控信號實現(xiàn)遙控功能;DM1105只需外掛加密芯片DM2016,通過12C接口與DM2016連接還可以實現(xiàn)加密控制和部分內(nèi)部寄存器上電配置。DM2016芯片內(nèi)部具有128位密鑰區(qū),廠商可以一次寫入,通過加密算法保護自己的軟件,同時DM2016還具有1 024位E2PROM區(qū)域,DM1105部分需配置的寄存器可以保存在此,上電時將其讀入,完成DM1105部分寄存器的配置。

2、DM2016加密芯片在數(shù)字電視信號加密領(lǐng)域中應(yīng)用的軟件實現(xiàn)

DM2016加密芯片在數(shù)字電視加密領(lǐng)域中加解密的認(rèn)證流程:主系統(tǒng)芯片DMI105根據(jù)DM2016的返回值A(chǔ)隨機產(chǎn)生64位的隨機數(shù)作為明文(如加密前的數(shù)字電視信號),該明文與主系統(tǒng)芯片DM1105程序里的密鑰通過調(diào)用加密庫來參與加密運算,得到運算結(jié)果暗文A,主系統(tǒng)芯片DM1105將暗文A通過12C總線傳到加密芯片DM2016,然后DM2016使用與主系統(tǒng)芯片DM1105程序里的密鑰相同的密鑰對暗文A進(jìn)行解密運算,將得到的運算結(jié)果與原來加密前的64位的隨機數(shù)進(jìn)行比較,如果一致則表示認(rèn)證通過,此時被加密的數(shù)字電視信號就可以破解密還原成正常信號,合法用戶就可以收看到相關(guān)的數(shù)字信號電視節(jié)目;否則就表示認(rèn)證失敗,被加街的數(shù)字電視信號不能被解密還原成正常信號,用戶就不能收看到相關(guān)的電視節(jié)目。

下面以BlowFish算法為例來看加密算法在嵌入式主系統(tǒng)中的應(yīng)用。

32位微處理器誕生后,Blowfish算法在加密速度上超越了DES,引起了人們的關(guān)注。Blowfish算法沒有注冊專利,不需要授權(quán),可以免費使用。正是由于這些特點,它廣泛應(yīng)用于很多產(chǎn)品中。在這里,BlowFish算法用來加密64Bit長度的字符串,它使用兩個“盒”-ungigned lorig pbox和unsigned long sbox。BlowFish算法中,有一個核心加密函數(shù):BF_En。該函數(shù)輸入64位信息,運算后以64位密文的形式輸出。用BlowFish算法加密信息,需要兩個過程:密鑰預(yù)處理和信息加密.以密鑰預(yù)處理為例說明如下:

密鑰預(yù)處理時,BlowFish算法的源密鑰-pbox和sbox足固定的。要加密一個信息,需要自己選擇一個key,用這個key對pbox和sbox進(jìn)行變換,得到下一步信息加密所要用的key_pbox和kcy_sbox。具體的變化算法如下:

(1)用sbox填充key_sbox。

(2)用自己選擇的key,8個一組地去異或pbox,用異或的結(jié)果填充key_pbox,key可以循環(huán)使用。

(3)用BF_En加密一個全0的64位信息,用輸出的結(jié)果替換key_pbox和key_pbox,i=0。

(4)用BF_En加密替換后的key_pbox[i],key_pbox[i+l],用輸出替代key_pbox[i+2]和key_pbox[i+3]。

(5)i+2,繼續(xù)第4步,直到key_pbox全部被替換。

(6)用key_pbox和key_pbox做首次輸入(相當(dāng)于上面的全0的輸入),用類似的方法替換key_sbox信息加密。

信息加密就是用函數(shù)把待加密信息x分成32位的兩部分xL和xR。再用BF_En函數(shù)對輸入信息進(jìn)行變換。

小知識之PCB

PCB( Printed Circuit Board),中文名稱為印制電路板,又稱印刷線路板,是重要的電子部件,是電子元器件的支撐體,是電子元器件電氣連接的載體。