基于HS1527的汽车防盗锁加密方法
2011-01-11杨卫,江猛
杨 卫,江 猛
(1.江苏城市职业学院张家港北校区,机电工程系,江苏 张家港 215600;2.苏州华芯微电子有限公司,江苏 苏州 215011)
对于利用MCU开发的智能化新产品,为了防止其独特设计思想或核心技术被非法侵入或窃取,设计时必须考虑采取相应的加密方法.其基本思路是对硬件电路和软件程序均采取一切可用的方法增加其读取难度,防止硬件电路原理被别人测试和软件被破译.结合实际产品的特点,采用软件的、硬件的,亦有软硬件结合的具体方法从设计阶段即对产品的加密方法作全盘考虑.
虽然不少单片机开发仿真系统声称能对加密了的存在于单片机内置程序存储器EPROM、FlashMemory、EEPROM 等之中的程序进行解密,但是,新的加密算法亦不断推出[1].随着加密和解密之间战争的不断升级,单片机及其外围器件提供的加密功能亦越来越完善.
一种防解密较好的方法,是使用掩膜ROM.掩膜是不能读出的.但一般掩膜成本较高,这种方法只使用于批量较大的产品.
程序解密的最后方法是开盖分析法,即DECAP.这种方法是通过直接把裸芯片分层拍照,然后一位一位地读出来[2].很显然,这种方法成本太高,且由于分层剥离腐蚀的不确定性而不能保证读出的数据就是对的.
单片机的应用程序常被轻易地非法复制,使单片机开发者的利益受到严重损害.所以,寻找安全可靠的加密方法是单片机开发者迫在眉睫的问题.本文针对华芯微电子有限公司的专用集成电路 HS1527的特点,从软件和硬件两方面阐述单片机的保护技术.
1 HS1527的特点和功能
1.1 HS1527的特点
HS1527是一款无线发码专用集成电路,采用CMOS工艺制造,拥有20位内码,可预烧100万组内码组合,降低了重码率.静态电流小于1 μA.工作电压在3~12 V之间.4个按键组合输入,可有15个组合按键.单端振荡电路,只需1个外围电阻.小体积8脚SOP封装如图1所示;引脚说明见表1.HS1527电路框图见图2.
表1 HS1527引脚说明
图1 HS1527封装
图2 HS1527电路框图
1.2 HS1527的功能
1) 每一帧码有25位,同步位(syn)的高低电平宽度为t∶31t(先高后低),其余每一位码的码形有两种,称为“0”码和“1”码;“0”码是一个高低电平宽度比为t∶3t的脉冲(先高后低),“1”码是一个高低电平宽度比为3t∶t的脉冲(先高后低);一帧码发完马上发下一帧码.其中t为振荡频率的32倍.
2) 发码时依次将syn、C0、C1、C2、C3、C4、C5、C6、C7、C8、C9、C10、C11、C12、C13、C14、C15、C16、C17、C18、C19、D0、D1、D2、D3的编码发出.发码时序如图3所示.
3) K0~K3按键组合共有15种,分别对应于D0~D3,当按键按下时,对应的按键位为“1”,否则为“0”.K0~K3的按键组合如表2所示.
图3 发码时序图
表2 K0~K3的按键组合
2 利用HS1527的加密方法
软件加密的一个重要目的就是防止别人分析、解剖自己的程序,因而广义地理解任何能降低程序可读性的方法都可认为是一种“加密”,除了上面所述的转移指令,还可利用大量不用的程序空间做文章,譬如可以在正常程序中夹上几段无用的程序,这些无用的程序段也会执行到,但是它们的执行不会对系统的工作产生不良影响,仅是用来混淆破译者的视听,打乱其分析程序的思路而已[3].
软件加密方法的基本思想是通过某些方法对程序和数据进行处理,迫使剽窃者放弃解密.此外,软件加密方法不能防止别人复制,只能防止别人解剖、分析和改进自己的产品,以延长产品占据市场的时间,保持产品优势.所以,软件加密只是硬件加密的补充和延伸.软件加密方法,只要不影响产品的运行功能,越多越好,亦是新产品开发者保护自己产品的有力武器.
STC89C52是和MCS51指令兼容的,并带有数据EEPROM的一款高性能单片机.但STC系列单片机的代码加密技术已被攻破,因此利用其本身的代码加密技术不足以保护程序代码的安全[4].
由于HS1527出厂时内部20位地址码已被预烧,其重码率仅百万分之一,在市场上几乎买不到两个内码一样的HS1527,因此具有很好的加密特性.
HS1527和STC89C52的接口如图4所示.接口非常简单,用两个I/O口即可.以Rosc为330 kΩ为例,其TXD的一位码的周期大概是1.5 ms.
为了加大破解的难度[5],程序分为两个部分,一个是初始化程序,程序流程如图5所示.一个是正常工作程序,程序流程如图6所示.因为不知道一个HS1527芯片的内码是多少,因此初始化程序纯粹是为了解出HS1527码,并将码值存入单片机自带的EEPROM中.在正常程序中,解出码值后,与EEPROM中初始化存入的码值比较,二者一致,则程序正常执行,否则,程序终止[6].
图4 HS1527和STC89C52的接口电路图
图5 初始化程序流程图
图6 正常工作程序流程图
3 结 论
在新产品开发推广中,可根据具体产品开发、设计合适有效的加密方法,并吸取别人的经验,开发研究出更多更新的防盗技术.
由于实际产品的程序中,是没有初始化程序的.所以,即使程序被人读出,烧入相同的单片机芯片,也不能正常执行的.对单片机应用系统软硬件而言,要做到绝对保密几乎是不可能的,只能采取合适的加密技术尽量提高解密成本,这是加密的一个基本原则,只要能使一般的剽窃者望而却步,就是成功的加密方法.
因为即使一个HS1527的内码刚好正确,那么下一个HS1527的内码就不正确了,所以本方案在加密方案中是比较可行的一种.在实际产品中,如汽车防盗锁,已得到广泛的应用.随着单片机应用的深入发展,软件保护将日益受到人们的关注和重视.因此该方法具有推广价值.
[1] 徐礼荣. 单片机破解的常用方法及应对策略[J]. 国外电子元器件,2004(9): 63-65.
[2] 张卫东. MCS51程序的软件加密方法[J]. 电子技术,1994(3):21-22.
[3] 赵望达. 基于智能化装置的单片机加密技术[J]. 仪表技术与传感器,2002(2):49-51.
[4] 赵望达. 基于单片机的高新技术产品加密方法探讨[J]. 制造业自动化,2000,22(2):59-61.
[5] 刘振栋,左文香. 单片机加密技术及其应用[J]. 河北工程技术高等专科学校学报,1996(2):30-33.
[6] 贾金玲,姚娅川. 单片机原理及应用[M]. 成都:电子科技大学出版社,2004.