您的位置 首页 解答

一种密钥可装备的DES加密算法的FPGA完成

在传统的DES加密算法的基础上,提出一种对密钥实行动态管理的硬件设计方案,给出了其FPGA实现方法。通过对DES加密原理的分析,利用其子密钥的生成与核心算法相关性较弱的特点,对密钥进行重新配置。

跟着暗码学技能的飞速发展,软件加密现已十分盛行,但因为硬件加密的稳定性和兼容性更好并且速度更快,所以仍是商业和军事用处的首要挑选。而FPGA在完成算法方面具有灵活性、物理安全性和比软件更高的速度功用,已成为硬件完成加密算法的最好挑选。

数据加密规范[1]DES(Data Encryption Standard)是迄今为止世界上最为广泛运用的一种分组暗码算法。本文提出了一种密钥可装备的DES算法的FPGA完成计划:即在传统DES算法的基础上,采纳密钥可装备的办法,添加密钥杂乱度,加强密钥维护,运用初始密钥挑选的随机性,增强算法抗进犯才能,经过挑选多种密钥发生办法,进行DES加密。因而,即使知道了密文和密钥,因为不知道采纳何种密钥发生办法,依然难以攻破。

1 加密算法理论

1.1 DES算法原理
数据加密规范DES算法是用于计算机数据加密维护的分组加密的数学算法,算法以64 bit为一个分组对数据进行加密。运用64 bit的密钥加密64 bit分组的信息。首先将原始数据64 bit明文进行初始置换IP,然后与子密钥(由加密密钥发生)进行一系列迭代运算,最终再经过逆置换IP-1,即可得到64 bit密文(加密后数据)。在每一轮中,数列块的右边32 bit数据和密钥(Key)一同传送给函数f,函数f运算的成果再与数列块左面32 bit数据进行“异或”操作。其间S盒(S挑选函数)是DES算法的心脏,由它完成非线性改换。

解密进程与此相似,只是在运用子密钥时,次序颠倒为k16,k15,…k2,k1。图1所示为DES加密原理。从图中能够看到轮密钥发生器相对于DES算法是独立运算的,这就为密钥的装备供给了或许和便当。

因为该算法是揭露的,因而64 bit的密钥算法是极端重要的,因为它是导致由64 bit的明文到64 bit密文仅有调集的暗码运算。故DES的加密安全依赖于对暗码的维护。

1.2 线性反应移位寄存器

线性反应移位寄存器LFSR(Linear Feedback Shift Register)如图2所示,是一种十分老练的序列生成办法,已被广泛地运用于暗码技能、通讯技能等方面。

若反应函数为线性函数f(a1,a2,…an)=c1a1c2a2…cnan,则称为线性反应移位寄存器(LFSR)。其间,a1,a2,…an为二值(0,1)存储单元,这n个二值存储单元称为该反应移位寄存器的级。任一时刻,这些级的内容构成反应移位寄存器的状况,每个状况能够用n长序列(a1,a2,…an)来表明,对应1个GF(2)域上的n维向量。反应函数f(a1,a2,…an)是n元布尔函数。在时钟脉冲的操控下,每经过1个时刻,每一级存储器ai都要将自己存储的内容向下一级ai-1传递,反应函数由存储器当时状况计算出an下一时刻的内容。

因为线性反应移位寄存器易于结构且易于运用软件和数字硬件完成,所以暗码规划者常用它来结构序列暗码。本文选用线性反应移位寄存器作为对初始密钥的一种装备。

1.3 混沌暗码

因为混沌体系具有的宽频谱、类随机特性、对结构参数及初始状况的极点敏感性等性质,日益成为暗码学的重要分支。混沌暗码在硬件完成时,应该在尽量进步精度、迫临混沌特性的一起,进步运算速度,满意工程中实时处理的要求。而一维Logistic映射从数学方式上来看是一个十分简略的混沌映射,但此体系具有极端杂乱的动力学行为,在保密通讯范畴的运用十分广泛[2]。因而本规划就选用了Logistic映射对密钥进行混杂。

2 FPGA上的算法完成

选用依据SRAM技能的FPGA规划的电路尽管不具有保密性,可是依据Kerckhoff准则,所完成算法的硬件电路是可行且安全的。为了增强DES算法的安全性,本文提出了对密钥进行动态装备来改善DES算法,运用线性反应移位寄存器和Logistic映射添加初始密钥的杂乱度。详细装备办法为:依据操控信号,将输入的64 bit密钥进行装备,既能够直接将初始密钥引进,参加DES加密算法,又能够经过线性反应移位寄存器,得到新的密钥流参加DES加密算法,还能够经过混沌加密进一步增强DES算法的密钥安全性。

2.1 密钥流生成器的选取

本规划中,选取线性反应移位寄存器和混沌序列作为密钥流生成器。
因为N级线性反应移位寄存器输出的序列是周期性的,十分合适硬件完成,且最大周期为2n-1,为了发生64 bit的密钥序列,规划5级移位寄存器(周期为31),其状况关系为:

这样无需等64个时钟周期,只需31个周期就能够得到64 bit的密钥。
为了从混沌序列中取得每轮64 bit的轮密钥,需要对发生的混沌序列进行有限精度的二进制编码,即把混沌序列中的每一项与一个定长的二进制编码相对应。当u=4时,量化后的表达式为:

2.2 硬件完成结构

传统的DES算法首要有2组输入信号:明文datain[63:0]、密钥keyin[63:0];2组输出信号:密文dataout[63:0]以及有用信号dataout_en。为了完成对密钥的装备,添加了密钥挑选输入信号key_sel[1:0]:当取00或许11时,直接将密钥keyin送至DES模块中的密钥发生模块;当取01时,将密钥keyin先送至线形反应移位寄存器中生成新的序列暗码作为新的密钥送至密钥发生模块中;当keyin取10时,将密钥keyin先送至混沌加密模块中生成新的混沌序列作为新的密钥参加后续的加密运算。这2个模块不或许一起作业,当其间1个作业时,另1个封闭时钟。采纳封闭时钟法挑选对应的加密算法,既能简化电路,削减操控信号,削减门的翻转次数,又能下降芯片集成度,然后到达下降功耗的意图。其逻辑结构如图3所示。

为了有用地操控密钥生成模块的作业,一起下降体系功耗,本规划选用了FPGA规划中的乒乓操作技巧[4],详细操作为:对线性反应移位寄存器(LFSR)和混沌加密模块(logistic)别离运用独立的时钟信号clk_lf、clk_lo,而不运用体系时钟clk。经过密钥挑选输入信号key_sel的取值不同,使clk_lf和clk_lo的值别离等于0或是体系时钟clk。
DES加密算法作为本规划中的中心算法,以多轮的密钥改换轮函数、密钥和数据运算轮函数为特征,相应的硬件完成办法有2种:一种是经过轮函数的16份硬件复制,到达深度细化的流水线处理,完成功用最优;另一种是经过分时复用,重复调用1份轮函数的硬件复制,以时刻换空间,然后得到硬件资源占用的最小化。

本规划采纳的是资源优先计划:即仅用硬件完成一套密钥改换和密钥加数据运算轮函数,经过重复16次调用这一硬件结构来完成1次DES加密运算。这样能够大大削减了硬件开支,但芯片的功用有所下降。因而,又采纳在轮函数内部设置一级流水线来进步全体处理的速度。在硬件上完成数据加密钥轮函数和密钥改换函数的同步流水线架构,削减了相邻流水线级间的逻辑杂乱度,经过设置轮计数器对所进行的轮运算计数,操控数据挑选器,然后完成轮函数复用。其硬件结构如图4所示。

3 仿真及验证

本文一切算法均选用Verilog HDL完成,并在Modelsim仿真环境下,编写了测验鼓励,进行RTL级功用仿真,如图5所示。由图能够看到,此刻key_sel和arith_sel输入为1时,密钥流采纳了混沌加密,算法选用了DES算法,输入明文为:636F6D7075746572,密钥数据为7365637572697479,经过组合加密后得到的密文为49D28E37281FFFB2。

行为级仿真通往后,又选用了FPGA专用归纳东西Synplify对算法进行了归纳。成果表明:该组合加密模块消耗3 056 LE,该模块下载到Virtex-II芯片中,最高作业频率可达50 MHz。因为本规划选用16级流水总线规划,所以最高数据编码/解码速率可达3 Gb/s。归纳完成后,又运用XILINX的ISE软件进行布局布线,并提取了网表和延时文件,在Modelsim后仿其环境中进行了时序后仿真,成果完全符合时序要求,到达了规划意图。

加密数据的安全不只依赖于加密算法的保密,更依赖于加密密钥的安全。本文经过对整个加密算法的剖析,提出了较为合理的密钥动态装备的DES加密算法的规划办法和完成途径,并在FPGA渠道进步行了测验和验证,数据的连续加/解密传输到达了预先的规划要求。这种完成办法全体处理速度高,相邻流水线级间的逻辑杂乱程度低,程序对编译器的依赖性少,进步了算法的全体功用。经过恰当改善,能够规划出通用型芯片,完成对通讯数据的实时、牢靠加密传输,在通讯、军事、加密等范畴有着广泛的运用远景。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/196260.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部