加密的目的[/b]:保护自家方案轻易被别家抄袭,从硬件上保护自己的知识产权.
加密的原理[/b]:利用系统的flash或者其他能够产生随机数的机制,在每次上电后系统取得一个16位的随机数,并将这个随机数通过类似iic的协议传给外部的硬件加密ic.随后系统按先前约定的算法进行结果计算,等待外部ic接收到随机数并也算出结果后,外部ic会将计算结果传回给系统.如果系统的计算结果和外部ic的计算结果相同,则说明外部的加密ic存在.
加密的核心技术[/b], 算法的确定,一旦算法被别人识破后,即可很方便的找到替代的产品来解决硬件加密技术.所以此种加密方式一定要确定外部加密ic是一种极难被***的ic,这样加密才有一些意义.
主控和外部加密ic的端口连接:
http://blog.gkong.com/uploadfile3/200971222318652.jpg
该系统加密ic采用oc输出的方式,更保证了调试时的安全性.不会轻易的造成io冲突.
其实很多所谓的加密ic都是通过mcu来实现的,比如朗宇国际的l6105,对mcu熟悉一点的人,看引脚就可以猜测出来,这个ic完全可能是用em78p153的sop8来实现的.想想看em78p153是什么产品,卖得很烂,极容易硬破解的ic,采用这样一个ic来加密,还能够对自己的系统有保证能力吗.我的工作方式和他们的一样,也是这样来识别加密ic存在与否的.请看流程图.
http://blog.gkong.com/uploadfile3/2009712221553148.jpg
为了简化通信的过程,采用一个启动位,一个停止位来控制同步和位数定义.在一些场合是很有意义的.比如对方将加密ic直接挂在iic总线上,而加密ic一般在上电时检测一下就好了.这样在主控确认加密ic存在后,可以立即通知对方进入idle模式,以后也就不会输出一些数据来影响总线的工作了.请看数据发送的协议示意图.
http://blog.gkong.com/uploadfile3/200971222219284.jpg
再看看,我的功能演示板,利用2个led来表示成功与否.一个at89c2051来模拟主控.我们的c程序都是很容易申请到原代码的.而且我保证针对算法部分都会有一点点小的修改,而不止象一些代理公司,请了一个人开发完后,随便修改一个客户代码或者常数就可以给另外一个公司去加密了.这样虽然代理商是方便了,但是,只要拿到他们这样的c程序后,就很容易破解了同型号的加密ic.因为他们针对不同的客户,其实只是一些客户代码或者某几个常数不同而已.算法都是一样的,那么用一个mcu都很容易写个代码来破解同行使用了该加密ic的产品了.
http://blog.gkong.com/uploadfile3/2009712222748897.jpg
可以使用的场合:
1. 数码像框
2. dvd产品
3. 数码相机
4. dvb产品
5. 高端mp4,mp5
6. 其他一些高利润产品
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=93649&Name=gongkong