基于跳码技术的无线密码锁设计.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于跳码技术的无线密码锁设计

基于跳码技术的无线密码锁设计 时间:2009-08-12 10:17:43 来源:现代电子技术 作者:薛永前 毛敏 0 引言 ??? 无线电子锁系统相比传统机械锁系统具有无接触性、方便快捷、易于管理等优点,伴随着RF器件的价格逐步降低和各种数控系统的集成化要求,无线电子锁在更多的领域得到了应用。早期的无线电子锁系统,钥匙向锁发送的或者是没有加密的固定密码,或者是经过PT2262,VD5026等编码芯片编码的密码,但这些方式产生的密码都是固定的内容,且长度较短(一般不超过16位),入侵者只要利用拷贝重发或者扫描跟踪等方法就可轻而易举地破解,因此这样的方案都应用于对安全性要求不高的场合。 ??? 为满足对更高安全性的要求,本文提出一种基于跳码的无线锁解决方案。所谓跳码,是指钥匙每次向锁发送的密码都是唯一而随机的,入侵者无法预测,即使记录了原来的开锁密码也不能用于下次开锁,因此安全性极高。 1 跳码的软件实现 ??? 目前跳码的实现多借助于专用的处理器硬件,如Microchip的HCSXXX系列,美国MACRSTAR公司的TR13XX,ACM公司的ACM1330E系列,这些产品都是专利产品,内部算法对外不公开。设计者要想使用这些产品,必须学习新的处理器,并且付出一定的专利费。这里提出一种跳码的完全软件实现,使用合适的普通单片机就可运行这种跳码软件。 ??? 跳码的实现核心是非线性加密算法,利用32位非线性反馈移位寄存器(NLFSR)和64位密钥组成的加密单元,可实现对输入32位二进制数据的加密,加密后的输出是32位二进制随机数。输入有一位变化,加密后的输出统计上将有一半以上的位发生变化,具有相当高的随机性。图1是跳码加密和解密的示意图: ??? 注意,对于同一套加密系统,加密单元和解密单元的64位密钥是相同的,且是不公开的,这是典型的私钥加密系统。 1.1 加密单元 ??? 依据上图,加密时,将欲加密的32位二进制数据X存入32位移位寄存器(shift register,SR)中,选取32位SR的1、9、20、26、31位和固定32位二进制数据OX3A5C742E组成非线性函数(NLR)的输入,NLR的输出、SR的0、16位、以及64位密钥移位寄存器(key FSR)移位后的0位,这些位数据异或(XOR)后产生的1bit数据作为32位SR的31位。循环此操作528轮后,32位SR 中的数据即为X经加密后的跳码数据Y。这里给出用VC6.0对该加密算法的实现: ??? 1.2 解密单元 ??? 跳码解密单元是加密单元的逆操作。依据图3,解密时,将欲解密的32位二进制跳码Y存入32位SR中,选取32位SR的0、8、19、25、30位和固定32位二进制数据OX3A5C742E组成非线性函数NLR的输入,NLR的输出、SR的15、31位、以及64位key FSR移位后的15位,这些位数据异或(XOR)后产生的1bit数据作为32位SR的0位。循环此操作528轮后,32位SR中的数据即为解密后的数据X。这里给出用VC6.0对该解密算法的实现: 1.3 跳码加解密算法在单片机中的实现 ??? 上述跳码算法,即加密函数Encrypt()和解密函数Decrypt(),接收的参数为32位无符号整数和64位无符号整数,返回的是32位无符号整数。单片机大多是8位机,其编译开发环境所定义的同样数据类型的长度与PC机有所不同,如unsigned int在PC上定义为32位无符号二进制数,而在单片机上常定义为16位无符号二进制数。假设单片机的unsigned int和unsigned long分别表示16位无符号二进制数和32位无符号二进制数,可将上述函数改为: 这里,用两个32位无符号整数key_high和key_low分别表示64位无符号整数的高32位和低32位,程序的实现也要做相应的改变。 ??? 针对不同编译器所定义的数据类型,可采用相似方法移植跳码算法程序。 2 基于跳码的无线锁方案 ??? 这里选用Atmel公司的AVR单片机作为锁和钥匙的处理器,无线收发模块采用普通的RF模块即可。下面给出基于跳码的无线锁方案的硬件框图: ??? 图4中,钥匙和锁进行单向通信,即按下钥匙按键1时,钥匙向锁发送加密后的跳码数据,锁收到后解密,并判断执行。钥匙是低功耗模块,它大部分时间处于休眠状态,每当按键1按下时,钥匙被唤醒,发送加密后形成的跳码数据。钥匙要便于携带,因此要求体积小,待机时间长,故这里选用Atmel公司的Atiny系列单片机,并由钮扣电池供电。锁对功耗和尺寸不敏感,故这里选用Atmega8L单片机,供电方式可以灵活一点。 2.1 钥匙工作原理 ??? 通过对跳码算法的介绍,可以知道对于给定的任意32位二进制数,利用跳码加密算法Encrypt ()

文档评论(0)

ailuojue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档