引 言
据统计,每三款软件就有一款被拷贝或盗版,使得正规厂家的正版系统销量锐减。面对形形色色的解密公司,封装和PCB布线的保护已经显得力不从心,而单纯的软件保护也无济于事,如E2PROM和MCU保护软件,由于E2PROM的易复制以及MCU的易读性,保护力度远远不能经受市场的考验。如果用硬件来保护软件,或软硬件相结合,就能加大盗版和破解的难度。
针对MCU加密易被破解,防抄版嵌入式系统加密芯片DM2016内嵌了1024位E2PROM,采用特殊算法、明文随机数产生、密钥OTP(性可编程)写入数据线自动熔断等多种保护措施。加密芯片DM2016广泛适用于PMP、GPS、DVD、DVR、DVB等嵌入式应用系统。
1 DM2016的特点
◆符合I2C总线标准;
◆支持2位I2C地址选择;
◆内置128位密钥解密算法,保密性能类似于3DES算法,且性烧录;
◆内置1 024位E2PROM;
◆采用随机数通信算法。
下面以BlowFish算法为例介绍加密算法在嵌入式系统中的应用。
32位微处理器诞生后,Blowfistl算法在加密速度上超越了DES,引起了人们的关注。Blowfish算法没有注册,不需要授权,可以使用。正是由于这些特点,它广泛应用于很多产品中。在这里,BlowFish算法用来加密64位的字符串,BlowFish算法使用2个“盒”——unSigned long pbox[18]和unsigned long sbox[4,256]。BlowFish算法中,有一个加密函数:BF_En。该函数输入64位信息,运算后以64位密文的形式输出。用BlowFish算法加密信息需要2个过程,即密钥预处理和
信息加密。
以密钥预处理为例,这时,BlowFish算法的源密钥——pbox和sbox是固定的。要加密一个信息,需要自己选择一个。key,用这个key对pbox和sbox进行变换,得到下一步信息加密所需的key_pbox和keg_sbox。具体的变换算法如下:
①用sbox填充key_sbox。
②用自己选择的key以8个一组去异或pbox,用异或的结果填充key_pbox。key可以循环使用。例如,选的key是”abcdefghijklmn”,则异或过程为
keg_pbox[O]=pbox[O]abcdefgh
keyr_pbox[1]=pbox[1]ijklmnab
…………
如此循环,直到key_box填充完毕。
③用BF_En加密一个全“O”的64位信息,用输出的结果替换key__pbox[O]和key_pbox[1]。此时,i=O。
④用BF_En加密替换后的key_pbox[i]和key_phox[i+1],用输出替代key_pbox[i+2]和key_phox[i+3]。
⑤i=i+2,继续第4步,直到key_pbox全部被替换。
⑥用key_pbox[16]和keyl_pbox[17]做首次输入(相当于上面的全“O”输入),用类似的方法替换key_sbox进行信息加密。信息加密就是用函数把待加密信息x分成32位的两部分:xL和xR,再用BF_En函数对输入信息进行变换。
以下是初始化sbox、pbox及定义全局变量key_pbox、key_sbox的C程序例子。
结 语
随着嵌入式系统越来越广泛的应用,安全保密问题也越来越受到重视。密码学为其提供了正确的理论基础。同时,性能优良的硬件(如DM2016)成为实现其安全保密的物质基础。二者的有效结合为防止嵌入式系统开发成果被仿制或剽窃提供了有力的保障。
如果你想保护你的产品,请马上联系吧,联系电话13751060721 奥先生
欢迎转载,信息来自维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。