一种基于DES算法的RFID加解密模块计
来源:用户上传
作者:刘齐宏 杨豪
摘 要:該文针对现今RFID系统应用的安全威胁进行了分析,分析了RFID的安全系统对于硬件设计的需求,基于DES加密算法的理论,提出并设计了一个适用于RFID系统的加密模块,保护RFID标签和读写器通信过程间的通信数据,使用ModelSim软件对设计出的模块进行自底向上的仿真测试,保证每一个子模块满足整体模块完成加密算法的功能。并使用ISE硬件设计软件对代码进行综合设计,获得综合生成的模块电路。设计技术指标达到860~960M、95dBm、40~640kbps,实现了将明文/密文进行加密/解密的方式,达到提高RFID通信安全性的目标。
关键词:DES加解密模块计 860~960M 95dBm 40~640kbps RFID技术指标
中图分类号:TP391.44 文献标识码:A 文章编号:1672-3791(2019)09(c)-0013-03
RFID技术已经得到了广泛应用,特别是现在的物联网时代,RFID在物流管理、门禁系统等方面都被大规模地采用,然而正因为在其得到广泛应用,也出现了越来越多非法攻击以及破解RFID系统的现象,其安全问题和隐私问题逐渐引起了人们的注意。正如同许多的通信设备一样,RFID系统在通信过程中十分容易遭到攻击。RFID受到攻击很有可能使用户的个人信息遭到泄露。当标签贴在某些物品上面,可能因攻击而导致物品的信息和位置的泄露。一些关注个人隐私问题的组织甚至直接宣布不购买使用了RFID技术的产品。可以想象的是,随着RFID技术的快速发展,使用RFID技术的加密应用也会越来越多,如何应对他人恶意的非法攻击、如何有效解决RFID的安全问题和隐私问题是推广RFID技术的关键部分。
1 系统分析
RFID系统的工作频率跨度很大,主要可以分为低频、高频、超高频和微波频段。不同频段的RFID系统特性差异很大,因此主要用途也相差甚远。低频系统的工作频率为125~134kHz的常见工作频率。低频RFID系统的读写工作距离很近,成本也低,存储的信息量少。高频RFID一般适用于大数据量通信的系统。超高频系统的工作频率在300MHz~3GHz,有860~960MHz的常见工作频率。其标签芯片和读写器的生产成本消耗都很高,储存的信息量较大,读写速度快,工作距离可以在十多米之外,通信过程有较强的方向性。微波系统的工作频率在3GHz以上。
DES加密算法即属于对称加密算法,加密密钥和解密密钥相同,要求在进行通信之前,通信双方要商议一个共同使用密钥,通信能否保持安全主要需要的是密钥的保密性。根据这种算法设计出来的电路更为满足RFID标签芯片低成本的要求。而对于其安全保密能力,DES加密算法的安全性需要的是密钥的隐秘保存,针对DES加密的破解方法也只有穷举。DES算法应用在RFID系统中的话,是一种十分安全的算法,因为RFID的通信时间极短,理论上被攻击成功的可能性为零。
整个DES加密过程是以64位明文为一个单位进行一次加密,将64位数据分为8个字节,同时随着64位的密钥的同步工作,在初始代换后进行16轮的循环加密,然后再加其做逆初始代换,最终得到64位加密过后的密文作为输出。对信息的解密过程与加密时的过程相同,然而每轮循环加密采用的子密钥顺序对称。对现今RFID系统应用的安全威胁进行分析,分析了RFID的安全系统对于硬件设计的需求,基于DES加密算法的理论,提出并设计了一个适用于RFID系统的加密模块,保护RFID标签和读写器通信过程间的通信数据。
2 系统设计
2.1 设计流程
在开始数字电路设计之前,需要制定出设计的计划,抽象描述各部件所完成的功能、接口以及整个电路的结构。在分析完成电路应满足的功能、性能指标以及其他问题之后,才能开始进行行为级描述和RTL级描述,以硬件描述语言(HDL)为工具描述电路构成。完成硬件描述之后,需要进行的是对代码的仿真测试,通过对各部分的测试以及对整体的测试检查错误并优化算法。仿真完成之后,现有的电子设计自动化(EDA)工具可以对以RTL级描述的代码文件自动进行逻辑综合,逻辑综合是将RTL级描述转换为门级网表,门级网表是对门电路及门电路内部连接方式的描述文件,也是版图设计的基础。
在门级网表生成之后,还要进行对于时序的仿真,又称为后仿真,如果时序仿真结果不符合设计时提出的要求,则需要修改布局和布线或进行逻辑综合时预定的约束条件,或回到行为级描述或是RTL级描述阶段进行修改,在完成验证之后即可开始流片。该文采用了Verilog HDL硬件描述语言来实现能够作为一个内嵌模块运用的DES加密电路。采用了硬件设计常用的自顶向下的层次性设计流程,设计了基于DES加密算法的加密电路,并且对设计后的HDL文件进行了功能仿真及逻辑综合。
2.2 DES加密模块顶层结构设计
要实现DES加密算法的硬件设计,就要从加密算法的功能开始分析,可以看到DES加密算法完成的功能是对于一个64位的信息,使用64位的密钥进行加密或是解密。因此要实现DES加密算法的硬件设计,应该有信息、密钥以及加解密选择的输入信号,以及处理后信息的输出。
根据对于加密算法的分析,加密电路的顶层结构如下。
输入:Encrypt:加/解密控制 输出:out[1:64]:64位密文/明文输出
in[1:64]:64位明文/密文输入
Key[1:64]:密钥输入
2.3 DES加密模块分类
以自顶向下的硬件设计思路,完成DES加密电路的顶层功能分析之后,应将整个电路分为若干个可以实现的子模块,甚至子模块里又有更加细分的子模块。对DES加密算法的分析后可以发现,加密过程可以拆为3个不同的阶段,即对初始信息进行处理的初始置换阶段,然后是十六次重复的加密过程,一轮加密过程后的输出是下一轮加密的输入,16次加密之后再进行一次逆初始置换,此外对于每一轮的加密的过程,还要输入根据最初输入的密钥变化后的子密钥。因此按需要实现的功能可以分为以下几点。 (1)密钥产生模块:生成每轮加密循环所需的子密钥。
(2)一轮加/解密模块:进行十六轮循环加密之中的一轮加/解密。
(3)初始置换模块:对最开始的64位信息进行初始置换。
(4)逆初始置换模块:对16轮循环加/解密后的输入数据进行最终置换,输出密/明文。
2.3.1 密钥产生模块
根据对加密算法的分析,DES加密过程中要经历16次的循环加密,因此要使用到16个不同的子密钥,这些子密钥都是按照一定规律通过初始密钥产生的,因此密钥产生模块应具有输入初始密钥,产生16个子密钥的功能。此外,DES加密过程和解密过程步骤相同,只是每一轮加密过程中使用的子密钥顺序对称,即加密过程是key1顺序使用直到key15,而解密过程是从key15倒序使用直到key1,因此密钥产生模块应该同时具有加解密选择的功能。根据算法可以知道,密钥产生的过程需要大量的数据选择,即S盒变换,因此密钥产生模块需要拆分为若干个子模块进行设计。密钥产生模块的结构如下。
输入:encrypt:加/解密密钥产生控制/ 输出:key1[1:48]、key2[1:48]……
Key [1:64]:64位初始密钥输入 key16[1:48]:48位子密钥输出
2.3.2 一轮加密模块
一轮加密模块实现的功能是DES加密算法中16轮循环加密过程中的一次,它将上一轮加密过程中的输出结果作为这一轮的输入inR以及inL,并且根据子密钥的不同,生成不同的加密结果outL和outR。因为一轮加密过程较为复杂,大多数的操作都是在这一轮加密过程中完成,因此还要划分为更小的子模块进行设计。一轮加密模块的结构如下。
输入:inR[1:32]:32位右明文输入 输出:outL[1:32]:32位左密文输出
inL[1:32]:32位左明文输入 outR[1:32]:32位右密文输出
key[1:48]:48位子密钥输入
2.3.3 初始置换模块
初始置换模块实现将最初的信息進行位置的置换,因为除换位以外并没有任何变换,所以初始置换模块并不需要拆分为多个子模块。初始置换模块结构如下。
输入:in[1:64]:64位明/密文输入 输出:out[1:64]:64位初始置换输出
2.3.4 逆初始置换模块
与初始置换模块相同,逆初始置换模块满足的功能同样是单纯的位置变换,所以也不需要拆分为多个子模块。逆初始置换模块结构如下。
输入:in[1:64]:64位逆初始置换输入 输出:out[1:64]:64位密/明文输出
3 系统仿真验证及逻辑综合
3.1 仿真及综合设计技术
现代EDA技术就是通过计算机以各种EDA软件为手段,对由硬件描述语言所写出的代码进行处理,自动将以代码形式描述的电子电路系统进行编译、化简优化、逻辑综合、功能仿真以及电路的布局布线,甚至是将特定的芯片进行适配性的编译以及编程下载到其中。仿真是通过对需要进行测试的模块输入激励信号,观测被测试的模块在信号激励下的输出信号,判断模块的逻辑功能以及时序逻辑是否正确。仿真软件的优劣主要表现在其仿真的速度、准确性以及易用性。该文设计采用了Mentor公司的Modelsim,它是业界最优秀的HDL仿真软件,是一种硬件描述语言的仿真工具,它的界面友好,性能强大。综合是数字电路设计过程中十分重要的步骤,是将层次较高的描述性设计转换为层次较低的电路结构。综合工具即为将硬件描述语言转换了具体电路结构网表的工具,其好坏决定了综合后的电路性能及结构的优劣。该项目也设计采用了Xilinx公司新的高性能设计开发工具ISE软件工具进行综合设计。
3.1.1 仿真验证设计
要验证电路功能是否正确,电路仿真是不可或缺的方法。电路设计进行仿真分析,采用自底向上的验证方法,首先验证了每个底层模块的基础功能是否正常,再验证顶层模块的整个加密系统功能是否正常。
3.1.2 密钥产生
根据DES加密算法描述,在针对一个特定的64位初始密钥输入时,会根据加密或是解密的功能选择,生成16个有规律的48位子密钥,并且加密所使用的密钥与解密所使用的密钥顺序相反。使用仿真软件对密钥产生模块输入一个64位信号key作为激励后,可以看到模块输出了16个48位密钥key1,key2,…,key16,并且加解密情况下满足上述理论上会出现的结果。因此99可以认为子密钥生成成功,密钥产生模块的设计符合了算法描述。
3.1.3 一轮循环加密
根据加密算法描述,16轮循环加密过程中的每一轮步骤相同,将上一次加密过程中的两部分32位信号输出作为该次加密过程中的左明文输入与右明文输入,并且还有一个48位子密钥同样伴随输入。加密过程将经过计算后的32位输出作为下一轮的右明文输入,而本轮的右明文作为下一轮的左明文输入。使用仿真软件对一轮加密模块分别输入了32位的左明文信号inL、32位的右明文信号inR以及48位的子密钥信号key,模块经激励的输出结果中显示,outL就是输入的inR,而outR是经加密计算后的值。可以看到一轮加密模块实现功能正常,因此认为模块设计满足算法描述。
3.1.4 DES加密仿真
按自底向上的验证思路,在进行了对若干个子模块的仿真测试并验证无误之后,便需要对整个模块的功能进行仿真测试。按照算法描述,加密算法实现的功能是对于一个64位明文,在64位初始密钥的控制之下,可以加密生成一个64位的密文,同时若对这个密文用同一个密钥解密的话,便能生成最初的明文。使用仿真软件,对整个加密模块输入64位的明/文信号、64位初始密钥信号以及1位的加/解密控制信号,可以看到在同一个密钥控制下,明文加密与密文解密的输出信号符合加密算法的预期,因此可以认为整个DES加密模块设计符合算法描述。 3.2 逻辑设计综合测试
对硬件描述语言设计的代码进行仿真测试,验证功能正常后,即可进行对其进行逻辑综合的过程。逻辑综合的结果可以把HDL代码转换为具体的门级网表。
该设计的加密模块采用的是16级加密同步完成的思路进行设计,相比起经16次时钟周期循环加密的设计思路,该文的设计可以将一次加密过程所需要的时间大幅缩短,同时也消耗了较多的硬件资源。
4 结语
该文针对RFID芯片技术面临的一系列安全威胁,提出了对RFID芯片内部增加DES加密模块来提升其安全性的想法,结合DES的加密算法,并在DES密算法的基础之上,提出了基于RFID芯片的DES加密模块的设计思想。实施了DES算法的硬件可实现性以及实现方法,并采用分层的、自顶向下的硬件设计思路,其中RFID加密模块设计进行三重相互认证方法,实现安全无遗漏。达到设计技术指标:860~960M、95dBm、40~640kbps。
与现有技术相比,该文具有以下有益的创新成果:采用DES对称加密算法,无论与非对称算法或是其他对称算法相比,其结构更为简单,加密和解密的速度更快。在應用于RFID芯片时,可以在满足其低成本的要求下,兼具较高的安全保密能力和更小的存储空间需求,较好地适用RFID的内存条件。该文的加密模块采用的是16级加密同步完成的思路进行设计,相比起经16次时钟周期循环加密的设计思路,该文的设计可以将一次加密过程所需要的时间大幅地缩短,同时也消耗了较小的硬件资源。
参考文献
[1] Lee YK, Sakiyama K,Batina L,et al.Elliptic-cure-base security process for RFID[J].IEE Transacyions on Computer,2008,57(11):151-152.
[2] Bernstein DJ,Lange T,Farashaihi RR,Binary Edwards curves[A].Cryptographic Hardware and Embedded System-CHES 2008[C].Berlin-Heiderg:Speinger,2008:244-256.
[3] Liu D,Liu Z,Yong Z, et al. Design and Implementation of An ECC-Based Digital Baseband Controller for RFID Tag Chip[J].IEEE Transaction on Industrial Electroni-cs,2015,62(7):4365-4373.
[4] Azarderakhsh R,Reyhani-Masoleh A.Parallel and high-speed computations of elliptic cure cryptography using hybrid-double multiplers[J],IEEE Transaction on Parallel and Distributed Systems,2015,26(6):1668-1677.
转载注明来源:https://www.xzbu.com/8/view-15054351.htm