随着嵌入式系统越来越广泛的应用,其安全保密问题也越来越受到重视,嵌入式系统应用系统的开发者必然面临系统被仿制或剽窃的问题。面对形形色色的解密公司,封装和PCB布线的保护已经显得力不从心,而单纯的软件保护也无济于事,为此我们推出了一款基于嵌入式系统的专业防抄版加密芯片——DM2016。
一、DM20T6的特点
DM2016在结构上有如下特性:符合I2C总线标准,支持两位I2C地址选撮内置128位密钥解密算法,保密性能类似于3DES算法,且一次性烧录完成内置1024位E2PROM;采用随机数通讯算法。
二、DM2016的工作原理
DM2016通过PIC总线与主芯片CPU相连,通过主程序中嵌入加密程序,当加密程序调用运行时,即从RAM里面随机调用一组数据作为明文,与程序里面的密钥混合产生一组暗文,暗文通过PIC总线传送到加密芯片,按反算法与加密芯片中密钥产生明文,再与RAM中的明文比较,两者一致则程序继续,两者不一致则程序中断退出,从而起到保护用户程序的目的。
三、DM2016数字电视信号加密领域中的应用
1、DM2016加密芯片在数字电视信号加密领域应用中的硬件结构
DM2016加密芯片是一歉针对性很强的芯片,它接收标准的TS流,选择进行解复用.解扰,将处理好的TS流以DMA方式通过PCI总线送到计算机内存。该芯片可以通过与CI接口控制芯片DM1021搭配实现两个CAM卡控制;并可以接收外部红外遥控信号实现遥控功能;DM1105只需外挂加密芯片DM2016,通过12C接口与DM2016连接还可以实现加密控制和部分内部寄存器上电配置。DM2016芯片内部具有128位密钥区,厂商可以一次写入,通过加密算法保护自己的软件,同时DM2016还具有1 024位E2PROM区域,DM1105部分需配置的寄存器可以保存在此,上电时将其读入,完成DM1105部分寄存器的配置。
2、DM2016加密芯片在数字电视信号加密领域中应用的软件实现
DM2016加密芯片在数字电视加密领域中加解密的认证流程:主系统芯片DMI105根据DM2016的返回值A随机产生64位的随机数作为明文(如加密前的数字电视信号),该明文与主系统芯片DM1105程序里的密钥通过调用加密库来参与加密运算,得到运算结果暗文A,主系统芯片DM1105将暗文A通过12C总线传到加密芯片DM2016,然后DM2016使用与主系统芯片DM1105程序里的密钥相同的密钥对暗文A进行解密运算,将得到的运算结果与原来加密前的64位的随机数进行比较,如果一致则表示认证通过,此时被加密的数字电视信号就可以破解密还原成正常信号,合法用户就可以收看到相关的数字信号电视节目;否则就表示认证失败,被加街的数字电视信号不能被解密还原成正常信号,用户就不能收看到相关的电视节目。
下面以BlowFish算法为例来看加密算法在嵌入式主系统中的应用。
32位微处理器诞生后,Blowfish算法在加密速度上超越了DES,引起了人们的关注。Blowfish算法没有注册专利,不需要授权,可以免费使用。正是由于这些特点,它广泛应用于很多产品中。在这里,BlowFish算法用来加密64Bit长度的字符串,它使用两个“盒”-ungigned lorig pbox和unsigned long sbox。BlowFish算法中,有一个核心加密函数:BF_En。该函数输入64位信息,运算后以64位密文的形式输出。用BlowFish算法加密信息,需要两个过程:密钥预处理和信息加密.以密钥预处理为例说明如下:
密钥预处理时,BlowFish算法的源密钥-pbox和sbox足固定的。要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和kcy_sbox。具体的变化算法如下:
(1)用sbox填充key_sbox。
(2)用自己选择的key,8个一组地去异或pbox,用异或的结果填充key_pbox,key可以循环使用。
(3)用BF_En加密一个全0的64位信息,用输出的结果替换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,继续第4步,直到key_pbox全部被替换。
(6)用key_pbox和key_pbox做首次输入(相当于上面的全0的输入),用类似的方法替换key_sbox信息加密。
信息加密就是用函数把待加密信息x分成32位的两部分xL和xR。再用BF_En函数对输入信息进行变换。
小知识之PCB
PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的载体。