学年论文(设计)题目基于51单片机及一次性随机密钥加密的无线密码锁数学与计算机学院计算机专业级班学生姓名学号指导教师职称高级工程师完成日期教务处制1【摘要】本课题主要针对无线密码加密通信技术,研制了单片机与单片机之间通过无线模块传输作为无线密码锁的软硬件设计。以STC的51系列单片机为控制核心,选用性价比比较高的无线收发模块,实现了基于一次性随机密钥加密的收发系统,并进行了验证。【关键词】无线密码锁;一次性密钥;随机密钥;密码加密;安全;单片机引言无线电子锁系统相比传统机械锁系统具有无接触性、方便快捷、易于管理等优点,伴随着无线模块器件的技术成熟和成本的逐步降低及各种数控系统的集成化要求,无线电子锁在更多的领域得到了应用。早期的无线电子锁系统,钥匙向锁发送的或者是没有加密的固定密码,或者是经过PT2262,VD5026等编码芯片编码的密码,但这些方式产生的密码都是固定的内容,入侵者只要利用拷贝重发或者扫描跟踪等方法就可轻而易举地破解,因此这样的方案都应用于对安全性要求不高的场合。1课题的主要内容及研究意义1.1本课题的主要内容为满足对更高安全性和更高实用性的要求,本文提出一种基于一次性随机密钥加密技术的无线密码锁解决方案。经过加密算法的处理,钥匙每次向锁发送的密文在一个时期内是唯一而随机的,并且密文是根据用户密码和随机数通过加密得到的,入侵者无法预测,即使记录了原来的开锁密码也不能用于下次开锁,因此安全性极高该系统在设计过程中充分考虑到性价比,选用价格低、性能稳定的元器件。本课题主要研究内容包含以下几个方面:1.无线密码锁的电路构成的设计;2.实现无线收发模块间的正确通信;3.通过单片机控制显示器和用户键盘实现人机交互;4.安全性和可靠性的设计1.2本课题研究的意义本文给出一种无线密码锁设计,具有可靠性、安全性高,使用尽量少和成品低的元件构成满足实际要求的硬件系统,通过软件的编制实现所需功能,并在保证安全性的基础上设计出友好的用户操作界面,具有较高的应用价值。2研究方案的设计2.1无线密码锁主要功能及控制2.1.1钥匙的配对目前,无线密码锁的弊端之一是钥匙(遥控器)一旦丢失,不仅系统安全性受到威胁,并且配置新的遥控器并不是很方便。本课题提出了一种利用配对机制来实现无线密码锁的配对功能,方便操作,每个钥匙(遥控器)有个系统配置密码,被固化在单片机中,进入配置系统可配置钥匙(遥控器)的ID,修改开锁密码,配对操作。配对时用户需要提供正确的密码才可通过锁端验证并配对成功。锁端在进行配对操作后将钥匙的ID及同步的密钥存入存储器中,当无线模块接收到合法的信号后2回首先判断是否为相应配对的钥匙来决策是否应答,也起到一定的抗干扰作用。2.1.2存储器存储器用于锁端保存钥匙ID和用户密码以及密码处理模块的参数,本课题采用STC89C52增强型单片机,其芯片内部扩展了2K的EEPROM用户可用存储器,单片机可方便读写该存储器。2.1.3单片机通信及人机交互单片机间通过无线模块实现通信,两机间通过程序流程按照一定的协议进行交互,实现各种操作中信息的收发。当通信中出现信息错误或则硬件错误时,单片机能够进行相应判断并提示,同时保证系统的稳定。钥匙(遥控器)提供16键键盘和液晶显示器进行用户操作的输入和提示信息的显示,锁端提供三个操作按键满足配对及初始化等操作,同时蜂鸣器提供相应声音信号。2.1.4安全性及可靠性本系统除配对操作外,所有收发信息都经过加密,并且每次使用不同的随机密钥进行加密,由于配对操作需要在锁上进行相应按键才能完成,所以安全性也有保障。本系统可由用户设定密码,遥控器在进行开锁、密码修改、消除警报操作时,需发送经加密的ID及用户密码和操作标识符,锁端接收到数据并经过解密,得到的信息中与保存的已配对ID进行比对,这样既避免了一些干扰,对安全性也有所提高。ID验证通过后,锁根据操作标识符进入相应操作,各操作都需先验证用户密码是否正确,并进行相应操作及回馈信息给钥匙端,钥匙端会将操作的结果信息显示给用户。进入操作后,如果验证密码错误三次则进入报警状态,此后只能利用遥控端的消警功能进行警报消除,若消警密码错误三次则系统自动锁闭约2个小时,在此期间不能进行任何操作,2个小时候方可再次进行消除警报,次数限制仍为三次。消除警报后锁进入正常状态,可进行开锁操作。用户可通过锁端初始化密码,遥控器与之配对后可进行密码修改,密码被保存在锁端的存储器上。密码不以明文方式发送,而是使用了一次性随机密钥的加密,这样实现了密文的随机性变化,使得“拷贝重发”的破解方式失效,同时由于时间和次数的限制,使得“扫描跟踪(穷举)”等方法难以破解,系统具有很高的安全性。2.2系统总体方案的设计2.2.1总体方案设计本文设计和研制无线密码锁,以满足需求。利用单片机与单片机之间的通信。钥匙(遥控器)是以单片机为核心的,包括主模块、键盘处理模块、LCD1602显示模块、数据存储模块和数据通信模块及加解密模块等;锁是以单片机为核心,包括主模块、数据存储模块、和数据通信模块及加解密模块等。数据存储模块能够完成ID和密码及密钥的读写操作;数据通信模块是基于无线传输模块,由NRF24L01进行数据的传输,实现两块单片机之间的通信;加解密模块则根据密钥将要发送的明文信息加密成对应的密文,以及将接收到得密文解密为明文。原理框图下所示:3图2-1无线密码锁钥匙(遥控器)原理图图2-2无线密码锁(主机)原理图1.人机对话接口LCD1602显示系统(钥匙):显示信息,并提示输入相应密码,进入系统设置可显示菜单选项。LED灯(锁):显示操作结果信号键盘(钥匙):用以密码输入及相关操作。报警信号:当非法操作次数超限时,系统进行相应处理并使蜂鸣器发出警报声。2.无线传输模块用来实现单片机之间的通讯。3.数据存储模块用来存储所需ID,密钥,密码等参数数据42.2.2总体设计方框图锁(主机):图2-3无线密码锁(主机)总体设计框图钥匙(遥控器):图2-4无线密码锁钥匙(遥控器)总体设计框图2.2.3详细设计本文通过对密码在无线通信中的保密性的分析研究,对系统总体方案进行了详细设计,采用STC公司生产的STC89C52RC单片机、无线收发模块NRF24L01,LCD1602液晶显示模块。单片机通过加密函数将输入的明文信息转换为对应密文,明文信息为ID及控制信息与密码,形成能够完成相应操作的信号数据。显示部分由比较廉价的LCD液晶显示器对信息进行显示。当非法操作超限时,系统会控制自动报警。本设计采用的是系统限制和声音报警,声音报警主要是控制蜂鸣器的发声,从而达到报警的目的。具体的控制过程:A、密码锁主机端提供四个按键分别为:系统复位、配对、密码初始化、锁初始化1、密码初始化:将开锁密码重置为默认值:“6666666”,消除警报密码重置为默认值“666666”(按下此键红灯亮)2、锁初始化:将本机配对钥匙ID设为默认值(不与任何遥控器配对),(按下此键绿灯亮)3、配对:按下此键黄灯常亮进入等待状态,当接收到钥匙(遥控器)的配对信息正确配对后黄红绿灯全亮1秒、蜂鸣器响,配对成功,若等待超时则退出配对状态进入正常状态B、钥匙(遥控器)提供一个复位键及16个按键:数字“0~9”、清除、开锁、消警、系统设置、取消、5确认;1、数字键“0~9”:用于输入密码2、清除键:用于清除当前输入以便修改3、开锁:开锁:输入开锁密码,按下此键向对应锁发送开锁请求,密码正确进行开锁(锁(主机端)三盏灯齐亮2秒,蜂鸣器响,继电器接通1秒)密码输入三次错误锁(主机端)进入警报状态,报警约30秒,需进行消警操作以解除警报4、消警:输入消警(备用)密码,按下此键向对应锁号发送消除警报请求,密码正确消除警报可进行正常开锁(锁(主机端)红黄灯亮,蜂鸣器响),密码输入错误三次,锁(主机端)锁闭系统约2个小时,此期间不可进行任何操作,2个小时后可再次进行消警操作(仍以三次为限)5、系统设置:输入系统密码,按下此键可进入系统设置,有三个选项:ID锁密码及配对;相应数字键进入选项,按取消键退出5(a)、修改ID:进入此选项后提示输入新ID,按确认键使新ID生效,按取消键则返回5(b)、配对:当锁(主机端)处于配对状态时,输入锁密码,按下此键发送配对请求,密码核对正确后钥匙(遥控器)的ID被记录在锁(主机端),配对完成,按取消键可退出当前设置5(c)、密码修改:进入此选项后提示输入原密码下,输入原密码后按下确认键,若原密码正确则提示输入新密码,输入新密码后再按确认键完成密码修改,按取消键可退出当前设置,原密码输入错误超过三次,后果同编号B-3所述;C、以上所有操作,操作结果可由相应指示灯指示,蜂鸣器发声及钥匙(遥控器)的液晶显示器显示相应的提示信息;2.3本章小结本章综述了无线密码锁各个功能模块和控制方法,并针对系统进行了详细的操作流程的方案设计,为下文的展开做了前期准备。3部分硬件电路的设计3.1无线收发(NRF24L01)硬件设计随着计算机技术、短距离无线数据传输技术的迅速发展,无线传输系统的研发在技术支持上有了更多的选择。无线通信在无线传输系统中是比较关键的技术,选择一款好的无线收发芯片,不但能缩短开发时间,而且能节约开发成本。3.1.1模块简介(1)2.4Ghz全球开放ISM频段免许可证使用(2)最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合(3)126频道,满足多点通信和跳频通信需要(4)内置硬件CRC检错和点对多点通信地址控制(5)低功耗1.9-3.6V工作,待机模式下状态为22uA;掉电模式下为900nA(6)内置2.4Ghz天线,体积小巧(7)模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便(8)内置专门稳压电路,使用各种电源包括DC/DC开关电源均有很好的通信效果(9)标准DIP间距接口,便于嵌入式应用(10)工作于EnhancedShockBurst具有Automaticpackethandling,Autopackettransactionhandling,具有可选的内置包应答机制,极大的降低丢包率。6(11)与51系列单片机P0口连接时候,需要加10K的上拉电阻,与其余口连接不需要。(12)其他系列的单片机,如果是5V的,请参考该系列单片机IO口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块!如果是3.3V的,可以直接和RF2401模块的IO口线连接。比如AVR系列单片机如果是5V的,一般串接2K的电阻。3.1.2模块结构和引脚功能1、NewMsg_RF24L01模块使用Nordic公司的nRF24L01芯片开发而成,内部结构如下图:图3-1nrf24l01内部结构框图3.1.3nrf24l01的接口电路图3-2nrf24l01与单片机的接口电路接口说明:(1)VCC脚接电压范围为1.9V~3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块。推荐电压3.3V左右。(2)除电源VCC和接地端,其余脚都可以直接和普通的5V单片机I0口直接相连,无需电平转换。当然对3V左右的单片机更加适用了。(3)硬件上面没有SPI的单片机也可以控制本模块,用普通单片机I0口模拟SPI不需要单片机真正的串口介入,只需要普通的单片机IO口就可以了,当然用串口也可以了。(4)9、10脚接地脚,需要和母板的逻辑地连接起来;2脚悬空。(5)排针间距为2.54mm,标准DIP插针,如果需要其他封装接口,比如密脚插针,或者其他形式的接口,可以联系我们定做。曾强型ShockBurst模式下的NRF24L01集成了所有高速链路层操作,无需单片机硬件上一定有SPI接口与其相连,SPI接口可以利用单片机通用I/O口进行模拟。而且由于链路层完全集成在芯片上,非常方便软件的编程,这样硬件设计简单、系统的可编程性好。7CE使能无线传输芯片的发射或接收,CE为l时,芯片为发射端,CE为0时芯片为接收端。CSN使能SPI片选,低电平有效,CSN为低后SPI接