首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于跳码技术的无线密码锁设计
来源:本站整理  作者:佚名  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位无符号二进制数,可将上述函数改为:


   

[1] [2]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:217,835.90000 毫秒