基于51单片机的硬件加密锁.docx
《基于51单片机的硬件加密锁.docx》由会员分享,可在线阅读,更多相关《基于51单片机的硬件加密锁.docx(24页珍藏版)》请在冰豆网上搜索。
基于51单片机的硬件加密锁
本科学生主题论文
论文题目:
基于51单片机的硬件加密锁的设计与实现
学院:
电子工程学院
年级:
2011
专业:
电子信息工程
姓名:
陈丽君
学号:
20114117
指导教师:
王英丽
2014年4月23日
摘要
单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。
单片机即单片微型计算机(Single-ChipMicrocomputer),是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
其中51单片机是各种单片机中最为典型和最有代表性的一种,广泛应用于各个领域。
本课题选择MCS-51单片机为核心控制元件,设计了一个日常生活中用到的硬件加密锁系统。
该系统是由单片机系统及MAX232组成。
使用单片机汇编语言进行编程,实现了硬件加密锁的功能本论文主要介绍了硬件加密锁的软、硬件部分的设计,以及在设计、调试过程中遇到的问题及解决方案。
经过实践证明,本课题设计的该系统结构简单,稳定,造价成本低,功能完全,具有很强的实用性。
关键词
8051单片机;硬件加密锁系统;MAX232
Abstract
Thesingleslicemachineisthemicrocomputerwhichallintegratesmaincalculatorfunctionpartsonapieceofchipsingleslicemachinenamelysingleslicemicrocomputer(theMicrocomputeroftheSingle-Chip),gatherCPU,RAM,ROM,counttoconnectinthetinycontrollerofintegralwholewithvarietyinfixedtimeAmongthem51singleslicemachinesisvarioussingleslicemachineinisatypicalmodelmostandhaverepresentative1kindmost,extensivelyappliedineachrealm.
ThistopicchoiceMCS-51singleslicemachineisacorecontrolcomponent,designedadailylifeconvenientarriveofthehardwareencryptlocksystemthatsystemconstitutestofromsingleslicemachinesystemandMAX232.Usingthesingleslicemachineeditscollectedmaterialslanguagetocarryonweavingadistance,thefunctionwhichcarriesouthardwaretoencryptalockoriginallythethesismainlyintroducedhardwaretoencrypttolockofsoft,thedesignofhardwarepart,andmeetinthedesign,adjusttrytheprocessoftheproblemandthesolutionpassbytopracticeacertificate,thesystem'sstructureof[with]thistopicdesignsimple,stabilize,buildpricecostlow,functioncomplete,haveverystrongfunction.
Keywords
SingleChipComputer805151ThehardwareencryptslocksystemMAX232
目录
摘要I
AbstractI
前言1
第一章绪论1
1.1课题背景1
1.1.1课题的国内外现状1
1.1.2课题的发展趋势2
1.1.3本课题研究的主要内容4
1.2本章小结5
第二章总体方案与论证5
2.18051单片机5
2.1.18051简介5
2.2本章小结9
第三章硬件电路设计10
3.1设计部分10
3.1.1硬件部分10
3.2本章小结15
第四章软件电路设计15
4.1程序框图15
4.1.1软件设计的主程序流程图15
4.1.2软件电路设计16
4.2系统调试17
4.3测试过程17
4.4本章小结18
结论19
参考文献20
致谢21
前言
电子产品被竞争对手破解,这往往给生产厂家造成很大损失。
针对这种现象,很多厂家采用了加密技术来防止产品被破解。
目前,大多数的厂家采用的是使用软件方法的加密,方法主要有[1]:
用软件的方法把产品中使用到的部分程序代码隐藏或掩盖起来、使用混淆的办法把部分程序代码和数据混同起来、使用乱跳的方法使程序跳来跳去、在程序中设置大量的冗余指针和冗余数据单元等;少数厂家采用比较简单的硬件加密,方法主要有[2]:
交换总线(总线乱置)、使用替代RAM、使用GAL器件对器件外EPROM中的软件加密等。
这样做也确实在一定程度上增大了破解产品的难度,但总体来看产品仍有较大可能被破解,加密效果不太理想。
目前对硬件加密较深入的研究局限于少数的贵重电子产品上,这样的加密所用到的元器件、电路比较复杂,价格也比较昂贵;如何能对大众化的电子产品实施价格低廉而有效的加密成为一个迫切需要解决的问题。
第一章绪论
1.1课题背景
1.1.1课题的国内外现状
随着PC机的普及,各种不同功能的计算机软件相继产生,使PC机的功能不断增强,方便了人们的学习,工作,和生活。
但是在利益的驱使下,软件盗版盗用的现象日益严重。
如何保护软件开发者的知识产权和经济利益,保证正版软件用户的利益是一个急需解决的问题。
单纯的软件加密显然是不够的。
因此我们需要一种更为有效的硬件加密方式。
硬件加密锁,俗程“加密狗”。
它通过硬件设备实现防止软件在使用过程中被非法复制和盗版。
在当今中国市场上最主要的加密锁品牌有:
1。
美国彩虹公司(也是最早做硬件加密的公司)的国产品牌“加密狗”、美国品牌“圣天诺软件加密锁”;2。
阿拉丁的“HASP”系列加密锁;3。
德国威博公司的“WBU-KEY”加密锁;4。
深思洛克的“深思加密锁”;5。
蓝宇风公司的“金盾加密锁”;6。
飞天公司的“ROCKEY”加密锁等几个主要品牌。
以上加密锁品牌的工作原理都是大同小异:
被保护的软件--加密锁之间形成一一对映的关系,被保护的软件在运行的过程当中不断通过其API函数向加密锁发指令来判断加密锁是否存在于,软件离开保护锁不能运行。
第一代硬件保护锁,只是通过一个简单查询函数来验证并口的硬件保护锁是否存在,存在则程序继续运行,不再则软件终止运行,来完成并保护软件开发商的利益;第二代的硬件加密锁与第一代的产品相比较最大的改变在于加密锁硬件里头的运算芯片由RAINBOW公司写入了一个固定的“加密算法”,但这个算法是单一的固定的。
以上两种产品对于软件开发商来说有一个相当大的风险。
如果RAINBOW把相同的产品出售给别人的话,别人拿到这个加密锁就能使用开发商的软件;第三代的硬件加密产品,这种产品彻底解决了软件开发商的后顾之忧。
这种产品其运算芯片中内置了28种算法,共分为56个单元,每两个单元可以单独保护一个应用程序,故用RAINBOW公司的说法其一把锁可以保护28个应用程序;且这种加密锁的每个算法单元所采用的算法因子是由软件开发商自己设定的,当其写入加密锁后对于外界来说就相当于一个暗箱,是任何人也读不出来的。
但随着解密者的技术的不断提高,RAINBOW中国公司研发出了第四代的产品-智能狗,与现今的差不多所有品牌的加密锁相比较,这种狗有了一个质的飞跃:
其通过在开发过程中把一段代码加密后写入加密狗,当程序运行时再把加密狗里的代码在加密狗里自行运行,程序调用其运算结果来完成软件的加密,如此就从理论上杜绝了软件被破解的可能。
现在市面上的加密狗的工作原理不外乎RAINBOW的这两种形式:
1、程序发命令查询--加密狗运算后相应程序;2、把源代码放入加密狗内部执行
1.1.2课题的发展趋势
盗版既是软件行业的问题,也是一个社会问题。
在软件行业,所有的软件开发商、销售商都为来自光盘、来自Internet的全球范围内的软件盗版而困扰。
从软件使用者的角度来讲,往往只看到购买盗版“所占到的便宜”,而忽视了服务无法保证、系统安全风险等诸多问题的存在,也正是由于这种“忽视”,在很大程度上限制了软件产业特别是民族软件产业的成长。
我们回想一下有多少软件企业被盗版而扼杀在摇篮里?
又有多少企业倒在了反盗版的路上?
软件企业要生存,软件行业要持续、健康发展,因此软件保护才应运而生,大部分软件商最初采用的保护方式主要是软加密,主要有密码方式、软件自校验方式和钥匙盘方式等纯软件的手段,但是随着软件保护行业的发展,解密技术也随之出现并快速的发展起来,软加密的方式已经“不堪一击”;在这种情况下,依赖于硬件的保护开始被广泛应用,成为最常用的保护手段。
加密卡、加密狗(加密锁)等也成为了软件保护技术进步下的产物。
但是,加密与解密的斗争是永无休止的;很快,普通的硬件保护技术受到了挑战!
于是,2001年以后,软件保护行业形成一轮新的技术升级浪潮,突破性地在金融、军队、网络身份认证等对安全性、稳定性要求极高的领域广泛使用的智能卡(SmartCard)技术来对商业软件的进行保护。
以智能卡技术为核心构建的新一代的软件保护系统,对用户的软件代码和重要数据提供了全方位、高安全度的保护,被称为软件盗版的“终结者”。
在与盗版的激烈斗争中,中国软件保护行业市场逐步形成并在市场的强烈激发和需求下快步的蓬勃发展,深思洛克、阿拉丁、彩虹天地(现为美国赛孚耐)等都是其中的佼佼者。
时至今日,在以智能卡技术为基础构建的软件保护技术已经非常完善,以深思洛克的代表产品--精锐IV加密锁为例。
她所采用的芯片是目前国际上唯一通过EAL5+的安全芯片,以其优秀的防物理攻击、电子探测功能为加密锁提供了一个安全的“芯”。
利用她强大的处理能力,软件开发商可以将软件中一段或几段关键的代码移植到加密锁中运行,或将软件运行所需的关键数据保存在锁内,外部软件通过接口函数访问硬件中的关键代码或数据,由于这些代码和数据在PC端没有副本存在,解密者根本无从猜测算法或窃取数据。
然而,就在软件保护行业正在为技术变革带来的高安全性而欣喜的时候,软件开发商却提出了新的需求――要求加密锁将软件销售渠道、加密锁生产、发行管理起来。
目前,我国软件开发商大多采用代理制、分销制的发行方式,在享受其带来的诸多优势的同时,也给软件发行管理带来了诸多问题,而这是传统加密锁根本无法解决的,事实证明所谓的这类普通加密锁已经在逐渐失去其存在的价值和意义。
首先,如果软件开发商是采用传统加密锁进行软件保护的,那么在软件升级及功能更新时候,必须将加密锁通过邮寄的方式往返于软件开发商和最终用户,这种方式大大增加了运输和管理成本;其次传统加密锁采用的是普通的单片机,所以单纯从硬件来说很难抵御目前快速发展的解密技术攻击,硬克隆这种完全的破解对于解密者来说也并非难事,传统的加密锁存在极大的被解密的风险;另外,传统的加密锁由于天生的安全缺陷,无法帮助软件企业对发行渠道进行有效地控制和管理,所以对渠道过程中“兼守自盗”束手无策,然而往往一些软件的盗版压力就来自发行渠道。
基于以上亟待解决的问题,深思洛克率先在2002年推出基于安全智能卡芯片的高强度加密锁,辅以及安全、高效的加密解决方案,使数千套软件得到安全无忧的保护,并利用智能卡所具有的网络安全特质,将加密锁的远程升级功能,以及软件授权管理功能赋予了安全的智能卡加密锁,从而成功的解决了软件企业及软件保护行业共同面临的难题。
如果说智能卡加密锁的安全解决方案以及“远程更新”技术是实现软件销售管理的基础,那么授权管理技术则是这一应用得以实现的保障。
他不仅可以成功解决软件企业眼前的难题,更重要的是基于软件授权管理可以打造全新的软件销售模式,为软件行业带来革命性的进步。
客户可以根据自己的需求按使用时间或使用次数定制软件,也可以按自己的要求定制使用的软件种类与模块组合,客户只需要为自己必须的应用功能或服务付款;并通过试用,确定符合自己的需求的基础上,购买服务,并通过远程开通来使用这种服务!
可见,新的“加密锁整体保护方案”与传统“软件加密”有太大不同。
首先,软件企业利用这种管理模式可以非常方便的管理自己的销售渠道和最终用户;其次,消费者可以通过远程申请使用满足自己需求的软件模块,并且不需要初期昂贵的投资,而仅仅需要按次或按时支付固定的费用。
可以预见,软件租赁服务一旦成为软件销售的主流形式,对软件保护行业来说,则意味着许多商业机会,如财务、CRM、HR等需要较多服务的管理类软件或建筑类、娱乐类对安全有较高要求,对客户信息需要管理的软件采用传统的加密已远远无法满足需求!
大多数软件企业将采用这种新的管理模式,软件企业关心的将不仅仅是盗版问题,而是在软件安全的情况下如何提高服务质量、如何轻松实现渠道、客户信息的可控管理、如何保证授权管理的高安全性
1.1.3本课题研究的主要内容
本设计目的:
使学生熟练掌握MCS-51本操作和调试程序的各种指令。
熟悉编程及调试程序的方法。
掌握8051的工作原理和应用编程方法,练习编写中断程序的方法。
掌握8051的工作原理、工作方式及其应用编程。
本设计的要求:
1.查阅与课题相关的文献,了解硬件“看门狗”的作用及工作原理
2.实现硬件电路
3.实现单片机软件算法
4.编制一个简单的Demo
1.2本章小结
本章简单介绍了本次设计的课题国内外现状和发展趋势和研究的主要内容,为以后的设计的设计作好准备。
第二章总体方案与论证
2.18051单片机
2.1.18051简介
8051系列单片机是8051是MCS-51系列单片机的典型产品,美国ATMEL公司前些年推出的一种新型高性能低价位、低电压低功耗的8位CMOS微型计算机。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
⑴中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
⑵存储器:
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:
片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。
这种程序存储和数据存储分开的结构形式被称为哈佛结构。
但从用户的角度,8051存储器地址空间可分为3类:
片内、片外统一编址0000H~FFFFH的64KB程序存储器地址空间(用16位地址);64KB片外数据存储器地址空间,地址也从0000H~FFFFH(用16位地址)编址;256B片内数据存储器地址空间(用8位地址)。
上述4个存储空间地址是重叠的,如图所示。
8051的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:
CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。
数据存储器(RAM):
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
程序存储器用于存放编好的程序和表格常数。
程序通过16位程序计数器寻址,寻址能力为64KB。
这使得指令能在64KB的地址空间内任意跳转,但不能使程序从程序存储器空间转移到数据存储器空间。
实际上,当引脚EA接高电平时,8051的程序计数器PC执行片内ROM中的程序,当指令地址超过片内ROM地址时,就自动转向片外ROM中去取指令。
当引脚EA接低电平(接地)时,8051片内ROM不起作用,CPU只能从片外ROM中取指令,地址可以从0000H开始编址。
8051从片内程序存储器和片外程序存储器取指时的执行速度相同。
⑶定时/计数器(ROM):
8051不仅有丰富的可用端口,其还内含有两个16位的计时器/定时器,称为计数器TO及计数器T1,以实现定时或计数产生中断用于控制程序转向。
其主要作用有两点:
第一,做一段特定时间长短的计时。
第二,可以计算由TO或Tl引脚的输入脉冲数。
前者在应用上可以产生正确的时间延迟及定时去执行中断服务程序,这是MCU在软件控制程序上常用到的技巧,而后者的应用则是计数器或是频率计的设计。
这两个计数器本身都有4种工作模式可以选用:
模式0:
13位计时工作模式
模式1:
16位计时工作模式
模式2:
具有从新载入计数值的8位计时模式
模式3:
计数器Tl停止计时工作,而计数器0分为两个独立的8位计数
器由TLO和THO来负责计时工作。
计数器的初值设定是由下面的公式来计算的,设C为要计数的次数则:
⑷并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
P0口有三个功能:
1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)
2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)
3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:
其内部有上拉电阻。
P2口有两个功能:
1、扩展外部存储器时,当作地址总线使用
2、做一般I/O口使用,其内部有上拉电阻;
P3口有两个功能:
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。
⑸全双工串行口:
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
8051单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。
其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还可用作多机通信,以构成分布式多微机系统。
串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。
串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。
发送时,只写不读;接收时,只读不写。
串行通信的波特率可以程控设定。
在不同工作方式中,由时钟振荡频率的分频值或由定时器Tl的定时溢出时间确定,使用十分方便灵活。
8051的串行I/O有4中工作模式可供选择:
模式0:
此模式是做串行传送1/0控制,而非真正的串行通信应用。
工作于此模式时由TXD引脚发送出同步移位脉冲,由RXD引脚送出或接收串行数据。
串行数据形式是8位数据,同步脉冲的宽度也是固定的,为系统工作震荡的1/12,等于8051的一个工作周期。
模式1:
此模式为经常使用的串行工作模式,串行数据位由TXD引脚传送出去,由RXD引脚将对方发来的串行数据位接收进来。
至于传输的波特率是由计时器T1来规划的,只要将不同的计数器初值载入计时器中,可以做不同的波特:
而在模式1和模式3下的波特率由内部计数器T1来控制,此时应使用计数器工作模式2,自动重新载入计时模式。
在模式2下,使用的计数寄存器为TL1,而TH1则是在做自动载入计时值的设定。
波特率的计算公式为:
将上式整理得:
⑹中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
8051单片机的中断系统简单实用,其基本特点是:
有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。
5个中断源的符号、名称及产生的条件如下:
INT0:
外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
INT1:
外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:
定时器/计数器0中断,由T0计满回零引起。
T1:
定时器/计数器l中断,由T1计满回零引起。
TI/RI:
串行I/O中断,串行端口完成一帧字符发送/接收后引起。
外部中断有下跳沿引起和低电平引起的选择;串行中断有发送(TI)相接收(R1)的区别;各个中断源打开与否,受中断自身的允许位和全局允许位的控制,并具有高优先级和低优先级的选择。
中断系统的控制寄存器:
中断系统有两个控制寄存器IE和IP,它们分别用来设定各个中断源的打开/关闭和中断优先级。
此外,在TCON中另有4位用于选择引起外部中断的条件并作为标志位。
⑺时钟电路:
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
后面章节详细介绍。
2.2本章小结
本章介绍了8051单片机的结构及工作原理,为以后的设计做准备。
第三章硬件电路设计
3.1设计部分
3.1.1硬件部分
18051单片机的引脚介绍
目前制造工艺为HMOS的MCS-51的单片机都采用40只引脚的双列直插封装方式,40只引脚按其功能分,可分为三个部分:
图3-1-1引脚示意图
1.电源及时钟引脚:
Vcc,Vss;XTAL1.XTAL2.
2.控制引脚:
PSEN、ALE、EA、RESET
3.I/O口引脚:
P0、P1、P2、P3,为4个8位I/O口的外部引脚。
电源及时钟引脚
(1)电源引脚接入单片机的工作电源。
Vcc(40脚):
接+5V电源;Vss(20脚):
接地。
(2)时钟引脚XTAL1、XTAL2。
时钟引脚接外接晶体与片内的反相放大器构成了一个振荡器,它提供单片机的时钟控制信号。
时钟引脚也可外接晶体振荡器。
(3)控制引脚
此类引脚提供控制信号,有的还具有复制功能。
(4)RST/VPD(9脚):
当振荡器运行时,在此引脚外加上两个机器周期的高电平将使单片复位(RST)。
掉电