0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用FPGA技术实现冗余编码结合掩码加密的电子按键密码锁设计

电子设计 作者:电子设计 2018-11-19 09:24 次阅读

电子密码锁与传统密码锁相比,具有安全性高、成本低、易操作等诸多优点。正因如此,电子密码锁近年来发展迅速,诸如按键式密码锁、卡片式密码锁、以及更加复杂的指纹识别、虹膜识别等密码锁相继出现。目前应用最广泛、技术最成熟的电子密码锁还属按键式和卡片式密码锁,但卡片设备具有易磨损、寿命短、易受外界磁场干扰等缺点,并且一旦卡片丢失,将对密码锁的使用造成极大不便。

FPGA作为发展迅速的现代设计技术,已经被广泛应用于军事、空间、电子消费类产品等领域,是现代密码协议、算法实现的优选平台。FPGA 内部算法可以并行执行,且不存在程序跑飞等风险。论文针对当前电子密码锁的发展现状,设计了一种基于FPGA的按键密码锁。为简化电路结构,节省逻辑资源,充分发挥FPGA的可靠性,本文采用了基本电路加模式控制的设计方法;同时提出了一种冗余编码结合掩码加密的硬件加密方法,使得开锁密码在对外部密码存储模块读写的过程中难以被泄漏,从而极大地提高了密码锁的安全性。

1 电子密码锁设计原理

采用6位十六进制数作为开锁密码,外部密码输入正确,能成功指示,输入错误也能清除和重置;连续3次密码输入错误后,系统将死锁,此时密码锁不再响应按键输入信号,只能通过特定解锁信号解除死锁;具有修改密码功能,能够按照特定的流程对开锁密码进行修改。密码锁工作在正常解锁、修改密码和死锁三种状态下,状态转移如图1所示。

图1中,“正常解锁”状态下,按下特定功能按键使密码锁进入“修改密码”状态,密码修改完成后返回“正常解锁”状态;任一状态下连续三次输入密码错误,进入“死锁”状态,此时只有特定 硬件解锁信号才能使密码锁返回“正常解锁”状态。

采用FPGA技术实现冗余编码结合掩码加密的电子按键密码锁设计

图1 密码锁状态转移图

2 基于FPGA的逻辑电路实现

根据密码锁功能需求,密码锁电路原理框图如图2所示。

采用FPGA技术实现冗余编码结合掩码加密的电子按键密码锁设计

图2 密码锁电路原理框图

图2中,灰色方框内为FPGA内部模块,完成整个密码锁的逻辑功能。外接键盘是密码锁的输入设备,包括十六进制密码按键和密码锁功能按键。由于目前FPGA芯片大多基于SRAM 架构,掉电后程序和数据都会清零,因此需要外接一片密码存储芯片对用户设置的密码进行存储。部分基于FLASH 架构的FPGA 芯片虽然具有掉电后保存程序的能力,但是内部FLASH的读写只能通过JTAG进行,仍旧需要外接密码存储芯片。显示、开锁和报警模块分别实现密码锁的按键位数显示、开锁信号和报警信号输出功能。

FPGA 内部电路主要由输入控制、密码比较、输出控制、密码管理和模式控制等模块构成。其中输入控制模块完成对外接键盘信号的键值提取和按键消抖功能;密码比较模块用于对当前输入密码和密码存储模块中保存的正确密码进行比较;输出控制模块用于控制显示模块显示密码输入位数,并针对密码比较结果和当前电路模式,控制开锁和报警信号;密码管理模块负责处理对外部密码存储模块的读/写以及掩码加/解密等操作。当按键输入密码时,密码管理模块从密码存储模块中读取密码,送入密码比较模块与输入密码进行比较;当修改密码时,密码管理模块将按键输入新密码写入密码存储模块,更新密码锁的开锁密码。

上述输入控制、密码比较、输出控制、密码管理等模块足以保证上锁、解锁这一基本功能得以实现。然而本文设计要求中还包括修改密码和 死锁报警功能,使得电路逻辑更加复杂。为此,本文采用一种基础电路加模式控制的方法来设计密码锁,就是将一个功能相对复杂的逻辑电路划分为几个相对独立的工作模式,针对不同模式分别设计电路模块;然后综合各个模式共用的电路模块作为基础电路,并引入模式控制模块对基础电路的工作模式进行有效的管理。具体到本设计当中,整个密码锁可以分为正常解锁、修改密码和死锁三种模式。其中正常解锁和修改密码的流程分别如图3(a)和图3(b)所示。

采用FPGA技术实现冗余编码结合掩码加密的电子按键密码锁设计

图3 正常解锁和修改密码流程图

如图3 所示,在正常解锁和修改密码模式下,都需要完成按键输入、原密码读取、密码比较、密码输入错误计数、显示输出等功能。因此基础电路可以由图2中的输入控制、密码比较、输出控制、密码管理等模块构成,而模式控制模块负责控制基础电路在不同模式间进行切换。例如,在正常解锁模式下,基础电路按照图3(a)中的流程工作;按下修改密码键,模式变为修改密码,基础电路工作流程如图3(b)所示。

基础电路中各个模块在不同模式下各司其职,分模式复用,不会产生冗余的功能模块;模式控制模块统领全局,控制整个基础电路的模式转换。因此,采用上述设计方法,可以简化电路结构,节省逻辑资源,使得逻辑流程更加清晰,便于电路结构和功能的拓展。

3 密码锁安全性设计

安全性作为密码锁的首要特性,一直以来都是密码锁设计的重点。然而以往基于FPGA 的密码锁都是参考机械式密码锁的方法,通过提高密码位数来提高密码的破译难度。但是由于基于FPGA的电子密码锁与机械密码锁构造的不同,这种方法对FPGA密码锁安全性的提高并不全面。前面已经提到,由于FPGA芯片数据掉电易失的特点,必须将密码锁的正确密码存储在外部密码存储器中,每次解锁都需要从密码存储器中读取正确密码与按键输入进行比对,这就使得正确密码很容易在密码存储器读写的过程中被泄露出去,严重影响密码锁的安全性。为解决这一问题, 本文提出一种冗余编码结合掩码加密的硬件加密方法,该方法能够大大降低开锁密码泄露的可能性。

3.1 设计原理

所谓掩码加密,就是将原开锁密码K 同一未知掩码M 进行异或运算,再将运算得到的新开锁密码K′ 存储在密码存储模块中,如:

K⊕M = K′

K′⊕M = K⊕M⊕M = K

从上式中可以看出,由于掩码M 未知,即使在密码读取的过程中K′ 被泄露,也无法得到原开锁密码K;解锁过程中只需要将K′ 再次与掩码进行M 异或运算,就能得到原开锁密码K.然而上述掩码加密方法还存在一个不足,就是当掩码M 取值数量较少的时候,加密效果将会受到很大的限制。如前所述,密码锁的密码为6位十六进制数。一般编码方式将这6位密码分别以4 b二进制数的形式进行编码,对应掩码M 一共只有24 种取值,被破解的风险就比较大;而掩码M 一旦被破解,掩码加密对原密码K 的保护作用也将不复存在。

为解决这一问题,本文在掩码加密之前对密码进行了冗余编码,即用16 b 二进制数对原密码进行编码。这样一来,掩码M 为一个16 b 二进制数,具有216种取值,被破解的概率大大降低了。

如表1 所示,一个未知十六进制数K,经过冗余编码和掩码加密处理,即使掩码加密后的密码泄露,但由于掩码未知且掩码数量巨大,原密码K 的值也无法被破解。由此可见,采用冗余编码结合掩码加密的设计方法,密码锁的安全性可以得到极大的提高。

3.2 设计实现

如前所述,图2 中密码管理模块在正常解锁模式下,从密码存储模块中读取正确密码;在修改密码模式下,负责处理如图3(b)所示的修改流程,并将新密码写入密码存储模块。除此之外,密码锁的掩码加密也需要在密码管理模块中完成,其内部框图如图4所示。

输入控制模块提取按键信号并对其进行冗余编码。正常解锁模式下,逻辑控制模块控制读写控制模块读取密码存储模块中的正确密码,经过掩码解密后与输入控制模块生成的冗余码同时输入密码比较模块进行比较;修改密码模式下,逻辑控制模块按照图3(b)中的流程完成新密码的输入,并将 掩码加密后的新密码写入到密码存储模块。

采用FPGA技术实现冗余编码结合掩码加密的电子按键密码锁设计

图4 密码管理模块框图

4 结语

本文设计了一种基于FPGA的的电子密码锁,具有解锁、报警、修改密码、死锁等功能。由于电路逻辑流程较为复杂,本文对电路进行分模式设计,综合各模式电路得到基础电路,再在基础电路之上加入模式控制模块的设计方法,从而避免了冗余模块的产生,节省了逻辑资源,并得到结构简洁、逻辑清晰的电路设计。该方法对于基于FPGA的复杂电路的设计具有借鉴意义。同时,针对FPGA器件数据掉电易失的特性,提出了一种冗余编码结合掩码加密的硬件加密方法。该方法使得在对外部密码存储模块读/写的过程中开锁密码难以被泄露,从而提高了密码锁的破解难度,使其安全性得到很大提高。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21667

    浏览量

    601843
  • 存储
    +关注

    关注

    13

    文章

    4263

    浏览量

    85671
  • 指纹识别
    +关注

    关注

    43

    文章

    1741

    浏览量

    102165
收藏 人收藏

    评论

    相关推荐

    基于FPGA的数字密码锁

    本文介绍了一种以FPGA 为基础的数字密码锁采用自顶向下的数字系统设计方法, 将数字密码锁系统分解为若干子系统, 并且进一步细划为若干模块, 然后用硬件描述语言VHDL 来设计这些模
    发表于 08-04 16:47 9341次阅读
    基于<b class='flag-5'>FPGA</b>的数字<b class='flag-5'>密码锁</b>

    FPGA数字密码锁设计

    十二、数字密码锁设计本文由山东大学研友袁卓贡献,特此感谢 实验目的实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码
    发表于 02-15 06:35

    基于单片机的电子密码锁设计

    、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用    关键词:STC89C52,AT24C02, 电子密码锁,矩阵键盘一、 引言    随着人们生活水平的提高,如何实现家庭
    发表于 09-24 08:50

    如何去实现一种基于单片机的指纹密码锁双重加密设计

    设计简介:本设计是基于单片机的指纹密码锁双重加密设计,主要实现以下功能:LCD1602显示提示信息具有指纹与密码双重加密(先确定指纹再确定相
    发表于 02-18 07:28

    使用单片机设计电子密码锁

    本课程设计题目是基于单片机的电子密码锁,由单片机控制程序结合LCD1602显示器实现密码输入、密码
    发表于 09-26 07:52

    采用GAL器件的电子密码锁电路图

    采用GAL器件的电子密码锁电路图 采用通用可擦除型GAL器件的电子密码锁
    发表于 11-17 22:41 1120次阅读
    <b class='flag-5'>采用</b>GAL器件的<b class='flag-5'>电子</b><b class='flag-5'>密码锁</b>电路图

    电子密码锁的EDA技术设计方案

    电子密码锁的EDA技术设计方案 基于EDA技术设计的电子密码锁,以其价格便宜、安全可
    发表于 04-29 10:52 3927次阅读
    <b class='flag-5'>电子</b><b class='flag-5'>密码锁</b>的EDA<b class='flag-5'>技术</b>设计方案

    基于FPGA电子密码锁的设计

    基于FPGA电子密码锁的设计的技术论 文
    发表于 10-29 17:15 26次下载

    电子密码锁论文

    基于51单片机电子密码锁 1602和AT24C02结合使用
    发表于 12-18 11:08 52次下载

    简易电子密码锁

    简易电子密码锁 四位电子密码锁设计 思路简述
    发表于 06-17 16:00 69次下载

    密码锁控制器如何采用IIC通信方式使密码锁密码掉电不丢失的程序

    密码锁控制器 ,键盘上有0-9个数字按键,功能键:确认和取消等,可设置复合键。密码的位数及密码可以任意设定,,当输入数字和设置的密码相同的
    发表于 06-06 08:00 12次下载

    基于RFID技术电子密码锁是怎样设计实现

    系统采用高性能的控制芯片 STC89C58RD+并结合技术成熟的射频识别技术,分析了非 接触式IC 卡电子
    发表于 01-06 17:17 2565次阅读
    基于RFID<b class='flag-5'>技术</b>的<b class='flag-5'>电子</b><b class='flag-5'>密码锁</b>是怎样设计<b class='flag-5'>实现</b>的

    使用单片机实现电子密码锁的设计资料说明

    随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。电子
    发表于 10-23 16:10 28次下载
    使用单片机<b class='flag-5'>实现</b><b class='flag-5'>电子</b><b class='flag-5'>密码锁</b>的设计资料说明

    基于单片机的指纹密码锁双重加密设计

    矩阵按键进行添加指纹、输入密码、修改密码等操作 对指纹以及密码进行操作前需要先输入管理员密码 管理员密码
    发表于 12-23 19:32 28次下载
    基于单片机的指纹<b class='flag-5'>密码锁</b>双重<b class='flag-5'>加密</b>设计

    基于FPGA电子按键密码锁设计

    技术成熟的电子密码锁还属按键式和卡片式密码锁,但卡片设备具有易磨损、寿命短、易受外界磁场干扰等缺点,并且一旦卡片丢失,将对
    的头像 发表于 07-12 16:03 1777次阅读