自其诞生之日起,DES加密算法的可靠性备受质疑,主要集中在:其一,DES的密钥长度(56)位可能太小;其二,DES迭代的次数可能太少;其三,S盒中可能有不安全的因素;其四,DES的一些关键部分不应当保密。基于上述四点质疑,人们通过各种方法,比如用穷尽密钥搜索攻击法,来破解DES加密算法,并且获得成功,这极大影响了DES加密算法的应用。但是迄今为止,DES作为一种分组密码算法,在所有的分组密码算法中仍是世界上最为广泛使用和流行的。
对于DES加密算法的实现,我们通常不会选择用软件的方式来实现。首先,这是因为采用软件的办法会使系统资源被很大程度的占用,从而引起系统性能的严重下降;其次,如果用软件的方法来实现DES加密算法,可能会给不法者留下更多的施展空间,从而造成不可估量的安全隐患;其三,DES加密算法本身并没有复杂的数学计算,比如乘、带进位的加法等,在加密或解密的过程中以及密钥生成的过程中仅有逻辑运算和查表运算。因此,从各种角度来考虑,采用硬件实现都是一个理想的方案,这导致现在越来越多的系统都采用了硬件方式的DES加密方案。文献综述
1.4 设计语言及设计工具
1.4.1 VHDL语言介绍
VHDL语言的全称是超高速集成电路硬件描述语言,其英文全称是 Very High Speed Integrated Circuit Hardware Description Language,考虑到当时军事保密的原因,该语言简称为VHDL。 [2]
VHDL是编程语言的一种,它可以用于描述系统的数字接口、内部结构以及运行算法。VHDL语言与C和C++等计算机语言类似,可以通过代码语句实现很多硬件功能。一个元件,电路模块或系统可以被分成可视部分,及端口和不可视部分,这对于VHDL的编译程序来说,就是完成了一项工程设计,在这个过程中算法被封装成模块,从而可以实现预期功能。当内部结构完成之后,需要对外部界面进行开发优化,这样的话,就可以方便地被其他设计调用。将实体分成内外部分设计是VHDL的设计特点。
VHDL 语言自诞生之日起,就以燎原之势迅猛成为了标准化的硬件描述语言,然后在全世界获得广泛应用。这主要是由于VHDL语言本身具有很多其他硬件描述语言所不具备的特点和功能。总的说来,VHDL 语言主要有以下几个特点:
(1) VHDL 语言除了拥有十分强悍的功能,还兼具多种多样的设计方式;
(2) VHDL 语言具有多层次的电路描述功能,其不但兼容标准定义的数据类型,还支持用户自定义的数据类型,在硬件描述方面具有强大的能力;
(3) VHDL 语言具有很强的移植能力,它可以在模拟器间、综合器间和工作平台间进行移植,当然这只适用于同一个硬件电路。
1.4.2 设计工具
在本设计中选用的仿真器用到QuartusⅡ软件。QrartusⅡ软件是Altera公司研发的,是一款提供可编程逻辑器件的集成开发软件,用来替换前一代可编程逻辑器件的集成开发软件Max+plus Ⅱ。QrartusⅡ集成开发软件支持可编程逻辑器件开发的整个过程,它提供一种与器件无关的设计环境,使设计者能方便地进入设计输入、设计处理和器件编程。
2 DES加密算法原理
2.1 DES加密算法简介
数据加密标准DES(Data Encryption Standard)算法是对二元数字分组进行加密的一种典型的分组密码算法,同时DES算法也是一个使用对称性原则的算法,加密过程和解密过程都使用了同一个算法。DES算法通过对64位的密钥进行分组对待加密的数据进行加密,每64位的明文数据加密成64位的密文,没有数据产生压缩和扩展,密钥长度为56比特,若输入64比特,那么由于密钥的第8、16、24、32、40、48、56、64位为奇偶校验码,所以实际密钥只有56位。DES算法完完全全的公开,其保密性完完全全依赖于密钥,加密过程和解密过程使用了同一个密钥。