收稿日期:2005-11-09.作者简介:杨 威(1978-),女,辽宁铁岭人,助教,硕士,主要从事数据库系统方面的研究;徐全生(1944-),男,上海人,教授,主要从事数据库系统、图像识别等方面的研究.文章编号:1000-1646(2007)03-0347-04基于DSP 的软件加密锁的设计与实现杨 威,徐全生,王 红(沈阳工业大学信息科学与工程学院,沈阳110023)摘 要:为了保护软件产品的经济价值和知识产权,开发了一种软件加密锁.主要基于DSP 和U SB 硬加密技术,并通过结合AES 算法有效实现了对软件的保护.该加密锁方案的硬件部分由U SB 接口模块、DSP 模块、A VR 单片机模块和电源块组成;软件部分采用了新的数据加密标准A ES.该加密锁实现了软件的安装序列号加密、首次使用加密、安装次数限制加密以及使用中关键数据加密的四层加密保护;其中各加密层次相对独立,并可根据需要增删.本系统很好地解决了单纯使用软件加密手段易被破解的问题.关 键 词:软件加密;加密锁;DSP 芯片;U SB 接口;A ES 算法中图分类号:T P 309.7 文献标识码:ADesign and imp lementation of software en cryption lock based on DS P technologyYANG Wei,XU Quan -sheng,WANG Hong(School of I nformation Science and Engineering,Sheny ang U niversity of T echnolog y,Shenyang 110023,China)Abstract:In order to protect the economic v alue and the intellectual property of softw are products,one softw are encryption lock has been developed.Based on DSP and USB technology and combining w ith AES algorithm,the lock is designed.The hardw are part of the design is composed of USB mold,DSP mold,AVR single chip processor mold and pow er mold,and at the same time the new datum encry ption standard,AES,is adopted in softw are part.The software encryption lock has such functions as serial number encryption,first time usage encryption,number limitation for setting up encryption and key datum encryption.Among the four encryption parts,every one is independent of others and can be added or deleted according to different needs.The developed encryption lock can solve the problem that the softw are encryption can be easily decrypted.Key words:software encry ption;encryption Lock;DSP;USB;AES algorithm 为了提高工作效率、减少人为失误,并便于管理,计算机的应用已逐渐普及到各行各业之中,各种适用于不同行业的专业软件也不断开发出来,这些专业软件往往需要行业专业人员和计算机专业人员共同开发,软件产品开发难度大、周期长、劳动多,凝聚着开发人员大量的智慧和心血.因此,保护产品的经济价值和知识产权已成为了软件开发者的任务之一[1].目前厂商所采用的加密方法主要可分为两大类:软加密和硬加密[2-3].1995年前,国内加密市场主要局限在软件加密,当时相当一部分人认为,硬件加密终究会被软件加密所代替.然而,随着1995年国外一些著名的加密厂商如彩虹公司、阿拉丁公司等先后进入中国市场,硬件加密有很好的发展势头.本设计开发的加密锁方案就属于利用硬加密方法来实现软件的保护.第29卷第3期2007年6月沈 阳 工 业 大 学 学 报Journal of Shenyang University of TechnologyVol 129No 13Jun.20071带USB接口的DSP加密锁的优点以往的软件加密锁经常采用单一的存储器存储有用信息,PC机通过读取存储器中的内容来判断软件是否为正版.后来发展成为用单片机作为加密锁的核心处理单元,这在一定程度上加强了加密锁的可靠性,其缺点在于单片机处理速度慢,且不能在单片机中使用复杂的算法,所以其加密可靠性仍然不令人满意.为了克服以上加密锁的缺点,设计了一种采用DSP技术和U SB技术相结合的加密锁.该加密锁的硬件核心部分以U SB 和DSP为主要部件;软件则是结合了AES算法进行加密,实现了对软件使用授权的验证.加密锁对软件的安装和使用完成四层加密保护,即安装序列号加密、首次使用加密、安装次数限制加密、使用中关键数据加密.上述加密层次相对独立,可以根据需要增删.111DSP芯片概述DSP芯片,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是可以实时、快速地实现各种数字信号处理算法[4].根据数字信号处理的要求,DSP芯片一般具有如下主要特点:1)在一个指令周期内可完成一次乘法和一次加法,这为快速进行算法运算提供了良好的基础;2)程序和数据空间分开,可以同时访问指令和数据;3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;4)具有低开销或无开销循环及跳转的硬件支持;5)快速地中断处理和硬件I/O支持;6)具有在单周期内操作的多个硬件地址产生器;7)可以并行执行多个操作;8)支持流水线操作,使取指、译码和执行等操作可以重叠执行.作为新兴的处理器,DSP在硬件平台上具有良好的运算速度,满足了对软件保护高速的需求;且可以使用相对复杂的算法,弥补了以往加密锁的不足.基于其优越的特点,本文将DSP技术引入了系统的设计.112AES算法的结构为了实现的方便和速度的提高,本文采用的密钥长度为128bit.由于AES(加/解密的长度为128bit,密钥为128bit)的穷尽攻击的复杂度是2128,且目前在理论上还不存在有效的攻击方法,因此其安全强度是足够的.该结构由四个不同的阶段组成,包括一个混淆和三个代换:1)字节代换:用一个S盒完成分组中的按字节的代换;2)行移位:一个简单的置换;3)列混淆:一个利用在域GF(28)上的算术特性代换;4)轮密钥加:利用当前分组和扩展密钥的一部分进行按位XOR.对加密解密操作,算法由轮密钥加开始,接着执行九轮迭代运算,每轮都包括所有四阶段的代换,然后执行只包含三个阶段的最后一轮运算.在加密过程中使用密码反馈模式(CFB)和输出反馈模式(OFB).113AES算法优越性加密锁采用了安全性好、加密速度快的新的数据加密标准AES[5-6].在安全性方面,AES能抵抗目前己知的所有攻击,特别是线性分析和差分分析,也能抵抗某些物理攻击;在和其它算法有相同安全性时它需要的轮数最少.在代价方面, AES设计简单,不管是硬件上还是低内存环境下它都能快速执行,在所有的平台上始终有卓越的性能.AES灵活性比较大,它的分组长和密钥长可以随着安全性的要求而改变.由于它的密钥方案简单,生成速度快,对内存要求低,因此非常适合于智能加密锁的实现.基于AES算法的优越特点,与DSP相结合进行系统设计[7].2硬件设计加密锁硬件部分由USB接口模块、DSP模块,AVR单片机模块和电源块组成,各部分之间的组成关系如图1所示.图1硬件原理框图Fig.1Electric cir cuit diag ram348沈阳工业大学学报第29卷U SB 接口芯片是软件加密锁与PC 机进行通信的通道,它具有传输速度快的特点[8].USB 通用串行总线已逐渐取代PC 机上的并、串口成为主流,更适合软件加密锁技术.同时USB 接口还可以提供5V 、500mA 的电源,软件加密锁可以利用这个电源为软件加密锁上的其他电子元件提供电源,这样能实现软件加密锁的即插即用和热插拔功能,增加了软件加密锁设备的使用灵活性.电源芯片采用T I 公司的TPS73HD318芯片,它是专门的电源芯片,能够将5V 电压转换成DSP 所需要的313V 和118V 电压,这样就为DSP 芯片提供了电源.DSP 芯片采用T I 公司的T MS320VC5402,这款芯片除具有上述DSP 的全部优点外,还具有功耗低、价格低廉等优点,因此特别适用于软件加密锁的使用[9].AVR 芯片采用ATMEL 公司的ATMEGA8535L.本设计通过在AVR 单片机内部编写程序,能够对软件加密锁本身实现加密,防止软件加密锁的硬件设计被人仿制.这样AVR 单片机不但起到了存储器和缓冲器的作用,而且提高了加密锁的可靠性.3 软件设计U SB 加密锁要完成软件使用许可认证功能,需要高层和底层软件协同动作,高层软件负责监控,底层软件根据高层软件的需求,向高层提供产品序列号和加解密数据等.本系统软件部分主要采用了新的数据加密标准AES 算法.使用C 语言进行编码.311 软件结构组成U SB 软件加密锁的软件分为高层软件和底层软件两部分.高层软件和软件的安装程序、应用程序嵌在一起,底层软件嵌在AVR 单片机及DSP 芯片中,高层底层软件通信通过传递加密后的产品序列号和关键数据,实现对用户使用权限的认证.U SB 加密锁软件结构如图2所示.图2 软件结构图Fig.2 Software structure diagr am312 软件功能分析1)高层软件对应用程序运行监控过程在软件安装时,首先向加密锁索取安装产品序列号次数,若其大于三次则退出安装,否则向用户索取产品安装序列号,同时向加密锁发出索取产品安装序列号的请求,并将得到加密后的产品安装序列号验证;在首次使用时,向用户索取产品使用序列号,同时向加密锁发出取加密后的产品使用序列号的请求,得到产品使用序列号后进行验证;在用户使用应用软件时,若检测到端口存在加密锁,则向加密锁索取被加密后的关键数据,否则退出该应用软件.2)高层软件调用方法高层软件的设计是以高层监控程序为主体,以树状结构控制安装程序和应用程序并且通过驱动程序访问USB 接口,取得验证数据.高层软件结构如图3所示.图3 高层软件结构图Fig.3 P C softw ar e str ucture diag ram3)底层软件响应高层软件请求过程当高层发出索取产品安装序列号次数的请求时,则先从AVR 单片机内部的E 2PROM 中读取安装次数,若未超过三次,则从AVR 单片机内部的E 2PROM 中读取产品安装序列号;然后发给DSP 芯片,DSP 芯片运行加密算法对其加密后发给高层;当高层发出取产品使用序列号的请求时,从AVR 单片机内部的E 2PROM 中读取产品使用序列号,再发给DSP 芯片,DSP 芯片运行加密算法对其加密后发给高层;当高层向加密锁索取被加密后的关键数据时,从AVR 单片机内部的E 2PROM 中读取关键数据后发给DSP 芯片,DSP 芯片运行加密算法对其加密后发给高层.4 实验结论本文将DSP 和USB 硬加密技术与AES 算法相结合,设计实现了一个可靠性高、运行效率高、使用方便的软件加密锁.该加密锁实现了对软件的四层加密保护,即安装序列号加密、首次使用加349第3期杨 威,等:基于DSP 的软件加密锁的设计与实现密、安装次数限制加密、使用中关键数据加密,且各加密层次独立,并可根据需要进行增删.通过实验和调试得知,作为将先进加密技术AES和DSP硬件技术相结合的新型软件加密锁,本系统很好地解决了单纯使用软件加密手段易被破解的问题,对进一步提高软件产品的反盗版能力有一定的实用价值.参考文献:[1]飞天诚信.软件加密原理与应用[M].北京:电子工业出版社,2004.(FEI T IAN Safe.T he principle and application of soft-ware encrypt[M].Beijing:Electronics Industr y Press, 2004.)[2]秦志光.密码算法的现状和发展研究[J].计算机应用,2004(2):1-4.(Q IN Zh-i guang.Cryptog raphy alg orithm-surv ey and trends[J].Computer Application,2004(2):1-4.) [3]徐政五,龚耀寰.信息战中的信息加密技术[J].电子科技大学学报,2000(5):469-474.(XU Zheng-wu,GON G Y rmation encry p-tion technology in infor mation w ar fare[J].Journal of U niversity of Electronic Science and T echnology of Ch-i na,2000(5):469-474.)[4]谢庆国,邓忠华,万淑芸,等.改进的刘氏加密算法及其DSP实现[J].计算机工程与应用,2001(5):100-101,125.(XIE Q ing-guo,DEN G Zhong-hua,WA N Shu-yun,et al.Mo dified L IU S alg orithm and implement w ith DSP[J].Computer Eng ineering and Application,2001(5): 100-101,125.)[5]王新房,马安光.Rijndael算法代数性质及其七轮攻击[J].计算机工程与应用,2005,21:86-88.(WA NG X in-fang,M A An-guang.Some alg ebraic pr op-er ties and7-r ound attack of the rijndael[J].Computer Eng ineering&A pplication,2005,21:86-88.)[6]卢正鼎,廖振松.Rijndael算法的研究[J].计算机工程与科学,2005(6):72-74.(LU Zheng-ding,LIA O Zhen-song.Research on the r-i jndael algorit hm[J].Computer Engineering&Science, 2005(6):72-74.)[7]李金花,周大水,李大兴.AES算法在DSP中的实现及优化[J].计算机工程,2004,12:101-102.(L I Jin-hua,ZHOU Da-shui,L I Da-xing.Implementa-tion and optimization of A ES in DSP[J].Computer En-gineer ing,2004,12:101-102.)[8]梁中华,王子威.PC机与单片机串行通信的研究[J].沈阳工业大学学报,2005(3):302-307.(L IAN G Zhong-hua,WAN G Z-i wei.Research of serial communication between PC and M CS-51ser ial sing le chip[J].Journal of Shenyang University of T echnolo-gy,2005(3):302-307.)[9]刘长军,林嘉宇.为DSP程序构造的加密体制[J].单片机与嵌入式系统应用,2002(4):5-7.(LIU Chang-jun,L IN Jia-yu.T he encrypt system con-struction for DSP pro gramme[J].M icr ocontrollers& Embedded Systems,2002(4):5-7.)(责任编辑:吉海涛英文审校:王向东)350沈阳工业大学学报第29卷。