基于FPGA的电子密码锁设计

2014-10-17 11:05汪浩陈学英
现代电子技术 2014年19期

汪浩 陈学英

摘 要: 设计并实现了一种基于FPGA的电子密码锁,具有解锁、报警、修改密码、死锁等功能。利用FPGA器件本身具有的并行性和其逻辑电路的本质,实现了高效、可靠的密码锁设计;采用基础电路加模式控制的设计方法,得到了简单稳定且低冗余的电路结构,节省了逻辑资源;提出了一种冗余编码结合掩码加密的硬件加密方法,使得开锁密码在对外部密码存储器读写的过程中难以被泄露,提高了密码锁的安全性。结果表明,设计的电子密码锁具有稳定高效、简单可靠、安全性高等优点。

关键词: FPGA; 电子密码锁; 模式控制; 冗余编码; 掩码加密

中图分类号: TN97?34 文献标识码: A 文章编号: 1004?373X(2014)19?0157?03

Design of electronic password lock based on FPGA

WANG Hao, CHEN Xue?ying

(University of Electronic and Technology of China, Chengdu 610054, China)

Abstract: The electronic password lock based on FPGA was designed and implemented. It possesses the functions of unlocking, alarming, password changing and deadlocking. An efficient and reliable password lock was realized by taking the advantages of parallelism and the logic circuit essence of FPGA. A simple, stable and low redundancy circuit structure was achieved with the design method of basis circuit and mode control, which reduced the consumption of logical resource. A hardware encryption method of combining redundant coding with mask encryption is proposed, which makes it much more difficult to leak the password during the process of reading or writing the extern password memory, and makes the security of password lock enhanced. The result shows that the electronic password lock possesses the advantages of high?stability, briefness, high?efficiency, high?reliability and high?security.

Keywords: FPGA; electronic password lock; mode control; redundant coding; mask encryption

0 引 言

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

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

1 电子密码锁设计原理

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

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

2 基于FPGA的逻辑电路实现

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

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

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

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

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

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

3 密码锁安全性设计

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

3.1 设计原理

所谓掩码加密,就是将原开锁密码[K]同一未知掩码[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)中的流程完成新密码的输入,并将掩码加密后的新密码写入到密码存储模块。

4 结 语

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

参考文献

[1] 王蕴红,朱勇,谭铁牛.基于虹膜识别的身份鉴别[J].自动化学报,2002,28(1):1?10.

[2] 陆继远.电子密码锁的FPGA实现[J].微计算机信息,2011,27(7):3?5.

[3] 尹常永.EDA技术与数字系统设计[M].西安:西安电子科技大学出版社,2004.

[4] 孙海涛,刘洁,何循来,等.FPGA密码模块恶意木马后门设计[J].微型机与应用,2013,32(22):20?22.

[5] 李珍,王国宇,崔丽娟.基于FPGA的可靠性电子密码锁设计[J].现代电子技术,2013,36(7):151?153.

[6] 王卫兵,刘克刚,朱秋萍.用FPGA的电子密码锁[J].电子技术,2005(1):26?28.

[7] 刘东,周晴天.利用字符的冗余编码携带隐藏信息的文本数字化水印技术[J].计算机应用研究,2007(2):155?157.

[8] 彭涛,王栓杰,席伟,等.FPGA密码芯片改进掩码防护方法研究[J].信息技术,2011(11):31?33.

[9] 王红,彭亮,于宗光.FPGA现状与发展趋势[J].电子与封装,2007,7(7):32?37.

[10] 杨海钢,孙嘉斌,王慰.FPGA器件设计技术发展综述[J].电子与信息学报,2010,32(3):714?727.

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

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

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

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

3 密码锁安全性设计

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

3.1 设计原理

所谓掩码加密,就是将原开锁密码[K]同一未知掩码[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)中的流程完成新密码的输入,并将掩码加密后的新密码写入到密码存储模块。

4 结 语

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

参考文献

[1] 王蕴红,朱勇,谭铁牛.基于虹膜识别的身份鉴别[J].自动化学报,2002,28(1):1?10.

[2] 陆继远.电子密码锁的FPGA实现[J].微计算机信息,2011,27(7):3?5.

[3] 尹常永.EDA技术与数字系统设计[M].西安:西安电子科技大学出版社,2004.

[4] 孙海涛,刘洁,何循来,等.FPGA密码模块恶意木马后门设计[J].微型机与应用,2013,32(22):20?22.

[5] 李珍,王国宇,崔丽娟.基于FPGA的可靠性电子密码锁设计[J].现代电子技术,2013,36(7):151?153.

[6] 王卫兵,刘克刚,朱秋萍.用FPGA的电子密码锁[J].电子技术,2005(1):26?28.

[7] 刘东,周晴天.利用字符的冗余编码携带隐藏信息的文本数字化水印技术[J].计算机应用研究,2007(2):155?157.

[8] 彭涛,王栓杰,席伟,等.FPGA密码芯片改进掩码防护方法研究[J].信息技术,2011(11):31?33.

[9] 王红,彭亮,于宗光.FPGA现状与发展趋势[J].电子与封装,2007,7(7):32?37.

[10] 杨海钢,孙嘉斌,王慰.FPGA器件设计技术发展综述[J].电子与信息学报,2010,32(3):714?727.

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

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

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

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

3 密码锁安全性设计

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

3.1 设计原理

所谓掩码加密,就是将原开锁密码[K]同一未知掩码[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)中的流程完成新密码的输入,并将掩码加密后的新密码写入到密码存储模块。

4 结 语

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

参考文献

[1] 王蕴红,朱勇,谭铁牛.基于虹膜识别的身份鉴别[J].自动化学报,2002,28(1):1?10.

[2] 陆继远.电子密码锁的FPGA实现[J].微计算机信息,2011,27(7):3?5.

[3] 尹常永.EDA技术与数字系统设计[M].西安:西安电子科技大学出版社,2004.

[4] 孙海涛,刘洁,何循来,等.FPGA密码模块恶意木马后门设计[J].微型机与应用,2013,32(22):20?22.

[5] 李珍,王国宇,崔丽娟.基于FPGA的可靠性电子密码锁设计[J].现代电子技术,2013,36(7):151?153.

[6] 王卫兵,刘克刚,朱秋萍.用FPGA的电子密码锁[J].电子技术,2005(1):26?28.

[7] 刘东,周晴天.利用字符的冗余编码携带隐藏信息的文本数字化水印技术[J].计算机应用研究,2007(2):155?157.

[8] 彭涛,王栓杰,席伟,等.FPGA密码芯片改进掩码防护方法研究[J].信息技术,2011(11):31?33.

[9] 王红,彭亮,于宗光.FPGA现状与发展趋势[J].电子与封装,2007,7(7):32?37.

[10] 杨海钢,孙嘉斌,王慰.FPGA器件设计技术发展综述[J].电子与信息学报,2010,32(3):714?727.