DES算法

2024-10-04

DES算法(共7篇)

DES算法 篇1

随着计算机网络技术的飞速发展,产生了大量的电子数据。对数据的保护、数据传输的安全以及防止工业谍报活动等问题越来越受到重视。而数据安全的重要性也促使了密码学的发展进入一个崭新的阶段。

在众多加密算法中,1977年1月5日被美国国家标准局正式确定为美国的统一数据加密标准的DES(Data Encryption Standard)加密算法,经历了多年的考验,在数据加密领域仍占据着主要的地位,并且被各个领域广泛采用。该算法是一种对称的分组加密算法,输入的是64比特的明文,在56比特的密钥控制下,采用多次换位与代替相组合的处理方法对数据进行加密。

1 DES算法原理

1.1加密处理过程

DES加密算法的数据流程如图1所示。

该算法输入的是64比特的明文,在64比特的密钥控制下(其中每个第8位都用作奇偶校验),通过初始换位IP变成M0=IP(M),再对M0经过16层的加密变换,最后通过逆初始变换(也称最后变换)得到64比特的密文。密文的每一比特都是由明文的每一比特和密钥的每一比特联合确定的。DES的加密过程可分为初始换位、加密处理、最后换位三个部分。具体的运算过程如下:

1)初始换位

加密处理首先要对64比特的明文m按如图2所示的初始换位表IP进行换位,从而构造出64位比特的M0,M0=IP(M)=L0R0,其中L0表示M0的左32比特,R0表示M0的右32比特。

表中的数值表示输入比特被置换后的新比特位置。例如,输入的第1比特,在输出时被置换到第40比特的位置;输入的第2比特,在输出时被置换到第8比特的位置;输入的第58比特,在输出时被置换到第1比特的位置。最后换位的IP-1表如图3所示。

2)加密处理

换位处理的输出,中间经过16层复杂的加密变换。经过初始换位的64比特的输出变为下一步的输入,此64比特分成左L0、右R0两个32比特,从L0到L16和R0到R16共进行了图4所示的16次加密变换。经过i次处理后的左、右32比特分别为Li和Ri,则Li和Ri可作如下定义。

Li=Ri-1

Ri=Li-1⊕f(Ri-1,Ki)

Ki是由初始密钥(即种子密钥)导出的向第i层输入的48比特的密钥;Li-1和Ri-1分别是第i-1层的输出;f是以Ri-1和Ki为变量输出的由S盒置换构成的32比特函数。

3)最后换位

进行16次的加密变换之后,对L16、R16利用按图3所示的最后换位表IP-1作逆置换,得到64比特的密文,这就是DES加密的结果。

1.2解密处理

解密是加密的逆变换,即把最后换位表IP-1和初始换位IP完全倒过来变换,依此类推。另外,在16层的变换处理中,由于Li=Ri-1和Ri=Li-1⊕f(Ri-1,Ki),因此要求出Li-1和Ri-1,只要知道Li、Ri和Ki,并使用同一函数f所表示的变换即可实现。在各层变换中,如果采用与加密时期相同的Kn来处理,就能实现解密。具体地说,第一次迭代时用子密钥K15,第二次K14、最后一次用K0,算法本身并没有任何变化。依次类推,经过16层的变换即可得到L0和R0。

2 DES存在的问题

虽然,DES算法自出现以来一直作为非常安全的加密算法被用于各种数据的保护。但是,学术界对它进行了深入的研究后,发现了它的诸多缺点,主要集中在:

1)DES的加密单位仅有64位,对于数据传输太小。因为每个区组仅含8个字符,而且其中某些为还要用于奇偶校验。

2)密钥仅有56位太短,各次迭代中使用的密钥K(i)是递推产生,这种相关必降低了密码体制的安全性。在现有的技术条件下用穷举搜索法进行攻击,来获取正确密钥已趋于可行,所以不宜用DES算法保护10年以上的数据。

3)DES算法实现替代函数Si所用的S盒的设计原理未公开,其中可能有隐患,它是DES算法的核心,易被差分密码攻击。

为了克服以上的缺点,目前存在多种算法的改进方法,如:

1)三重DES算法

用三个不同密钥进行三重加密,即为

C=Ek3(Dk2(Ek1P))

P=Dk1(Ek2(Dk3C))

这种方法虽然提高了算法的加密强度,可以有效地抵抗穷举攻击法,但却增加了n-1倍的计算时间,降低了运行效率。

2)具有独立子密钥的DES算法

每一轮迭代都使用一个不同的子密钥,而不是由一个56位二进制密钥产生。但是密码专家证明利用261个选择明文便可破译DES变形。

3)带有交换S盒的DES算法

但是改变盒的次序将减弱抵抗差分密码分析的能力,进而减弱算法的安全性,更容易被差分密码法攻击,同时也不能提高对选择明文的攻击。

3改进的DES算法

以上各种DES算法的改进方案都存在不同的问题。针对一些比较适合大型的数据库的加密,提出了一种DES的改进方案。我们知道,DES是一种对二进制数据进行加密的算法,数据分组、密钥长度和输出密文均为64位,而数据库中每个字段长度未必是64的倍数,对尾部碎片的传统的做法是填充数据而使其成为一个整组。而当处理的数据非常大时,这种处理方法会使数据扩张,并且通常数据库的加密还有如下要求:

1)数据库加密以后,数据量不应明显增加;

2)某一数据加密后,其数据长度不变;

3)加/脱密速度要足够快,数据操作响应时间应该让用户能够接受。

所以传统的DES加密算法不适用于加密大型的数据库。为此,我们改进了DES尾部碎片的处理方法:把尾部碎片的前一整块己加密的密文再加密,其结果与尾部碎片异或,得与尾部碎片长度相同的尾部碎片密文。这样既保证系统安全性,又防止系统密文数据的膨胀。另外,字段长度本身比较短,即小于64位,不到一个分组。如果不进行数据扩张,其保密程度将会减弱,把不足一组的部分用随机数填满,弥补短字段易破译的缺陷,但这是以一定的数据膨胀为代价的。

下面把改进的DES算法描述如下:

输入:字段长度len,明文字段X,密钥key。

输出:密文字段Y

过程:

1)将明文字段X分块,X=X1||X2||…||Xn-1||Xn,其中len=(n-1)*8+|Xn|,||表示字段中连接,|X|表示x的字节数。2)若|Xn|=8则

输出Y,结束。

3)若|Xn|I<8,且n<=2则

输出YP结束。

4)若|Xn|<8,且n=1则

随机产生8-|Xn|g个价字节的串Z;

4结束语

这种改进的DES加密方案一方面保证了64位分组加密,同时又保证了数据库加密以后,数据长度不会变化。而且在加密时把尾部碎片的前一整块己加密的密文再加密,在脱密时也应该进行二次脱密,保证加解密后明文的一致性。这种改进的加密算法应用于一些在线考试系统中,既保证了安全性,又避免了数据的膨胀。所以DES的密码挪用法还是一种不错的改进方法。

参考文献

[1]陈湘.ASP.NET与网站开发编程实战[M].清华大学出版社,2002:88-90.

[2]李美满.网络考试系统题库与成绩安全性研究[J].计算机应用,2005,12:133-137.

[3]中国信息安全产品测评认证中心[J].信息安全理论与技术,2004:29-32.

[4]朱鲁华,陈荣良.数据库加密系统的设计与实现[J].计算机工程,2002,8:61.

3DES算法原理与设计 篇2

本文详细介绍了DES和3DES加密算法,并结合嵌入式系统开发知识,在以三星公司3C6410嵌入式微处理器为核心的嵌入式系统平台上,移植操作系统,并实现3DES加密算法。

1 DES和3DES加密算法简介

DES算法是一种分组对称加解密算法,明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

DES算法的入口参数有三个,即Key,Data,Mode。Key为64bit密钥,Data为64bit数据,Mode为加密或解密模式。它把64位的明文输入块变为64位的密文输出块,他所使用的密钥也是64位,其算法主要分为两部分。首先进行初始置换,对64位数据块按位重新组合,并把输出分成左半部分L0和右半部分R0,每部分各32位长。其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。然后进行逆运算,经过16轮运算后左、右部分在一起经过一个置换(初始置换的逆置换),由此即得到密文输出。其具体流程如图1所示。

3DES是DES加密算法的一种模式,它使用3条64位的密钥对数据进行三次加密。它以DES为基本模块,通过组合分组方法设计出分组加密算法,设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,3DES加密过程为:C=Ek3(Dk2(Ek1(P)));3DES解密过程为:P=Dk1((EK2(Dk3(C)))。其中K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。

2 系统实现

嵌入式系统采用三星S3C6410处理器作为系统的核心,并移植嵌入式Win CE6.0操作系统。配置1G Bytes NAND FLASH(型号为K9G8G08U0A)存贮加密/解密的数据。使用128M Bytes Mobile DDR存储器(两片Samsung K4X51163PC),使得数据传输总线频率可达266MHz,,提高的数据处理速度。集成了LCD液晶屏和触摸屏接口,方便人机交互。下面详细介绍系统系统实现方法。

2.1 硬件系统设计

硬件平台选用飞凌公司的OK6410开发板,其核心为Samsung S3C6410,它基于ARM11内核(ARM176JZF-S),采用了64/32位内部总线架构。该64/32位内部总线结构由AXI、AHB和APB总线组成。它还包括许多强大的硬件加速器,例如视频处理,音频处理,二维图形,显示操作和缩放。一个集成的多格式编编解码器(MFC)支持MPEG4/H.264编码、译码以及VC1的解码。H/W编码器/支持实时视频会议和NTSC、PL模式的TV输出。

S3C6410有一个优化的接口连线到外部存储器,存储器系统居于双重外部存储器端口、DRAM和FLASH/ROM/DRAM端口。DRAM的端口可以配置为支持移动DDR、DDR、移动SDRAM和SDRAM。。FLASH/ROM/DRAM端口支持NOR-FLASH,NAND-FLASH,ONENAND,CF,ROM类型外部存储器和移动DDR,DDR,移动SDRAM和SDRAM。

S3C6410包括许多硬件外设,如一个相机接口,TFT 24位真彩色液晶显示控制器,系统管理器(电源管理等),4通道UART,32通道DMA,4通道定时器,通用的I/O端口,IIS总线接口,IIC总线接口,USB主设备,在高速(480 MB/S)时USB OTG操作,SD主设备和高速多媒体卡接口、用于产生时钟的PLL。

S3C6410工作频率达667MHz以上,外围主要配置1G Bytes NAND FLASH、128M Bytes Mobile DDR存储器、串口、网络单元、语音单元、LCD及触摸屏等外设单元,硬件系统的核心框架如图2所示。

2.2 构建运行开发环境

嵌入式运行开发环境主要包括Visual Studio 2005软件开发平台、嵌入式操作系统Win CE 6.0以及相应的开发组件等。构建运行开发环境,首先要安装好所需的软件,具体如下:

1)Visual Studio 2005

2)Visual Studio 2005 Service Pack 1

3)MSDN(可选)

4)Windows Embedded CE6.0

5)Windows Embedded CE 6.0 Platform Builder Service Pack 1

6)WINCE6.0R2

7)Microsoft Device Emulator 2.0(可选)

8)Virtual Machine Network Driver for Microsoft Device Emulator(可选)

9)WINCE6.0 Updates

10)WINCE6.0R3

11)WINCE6.0R3 Update-Rollup

然后安装OK6410开发板的BSP,安装BSP时同时安装一个示例工程文件(S3C6410_CE6_DEMO),打开示例工程文件进行编译操作,如图3。

*方案配置:选择Samsung_SMDK6410Release。

*点击菜单“Build-->Advanced Build Commands-->Clean Sys-gen”开始编译。编译完成后,生成所需要的映像文件(tepldr.bin、Eboot.nb0、Eboot.bin、nk.bin)位于“WINCE600OSDesignsS3C6410_DEMOS3C6410_DEMORel DirSamsung_SMDK6410_Release”目录下。

最后烧写Win CE 6.0映像文件,相关的顺序烧写步骤如下:

1)使用PC端软件“IROM_Fusing_Tool.exe”,固化启动代码(OK6410_SDboot.nb0)到格式化为FAT32文件系统的SD存储卡内。并设置开发板从SD卡启动。

2)使用‘DNW’软件,通过串口线和USB线建立的PC机和开发板的联接,烧写stepldr.bin、eboot.bin到Nandflash,并设置开发板从Nandflash启动。

3)烧写Win CE内核映射文件nk.bin至Nand Flash。

完成上述操作后,开发板自动运行Win CE系统,构建运行开发环境完成。

2.3 3DES应用程序开发

在完成了Win CE 6.0操作系统的移植工作,下面开始应用程序的开发,基本思路是在Visual Studio 2005软件平台上设计开发3DES加密算法的应用程序,编译生成可执行文件,然后将可执行文件下载到嵌入式系统平台内运行即可。

首先,在Visual Studio 2005新建一个项目,命名为3DESTest。选择“Visvual C++”-->“Smart Device”-->“MFC Smart Device Application”模板。并对“MFC Smart Device Applilcation Wizard–3DES”对话框内的参数依次配置,其中“SDK”选择“TE6410board”,“Application type”选择“Dialog based”,其余参数默认即可。完成后进行窗口界面设计布局。

然后,进行3DES加密算法的编写,通过上述章节已经了解到3DES加密算法的原理和流程,具体操作如下。

*3DES算法加密明文:明文--->DES算法加密(密钥1)--->DES算法解密(密钥2)--->DES算法加密(密钥3)--->密文。

*3DES算法解密密文:密文--->DES算法解密(密钥3)--->DES算法加密(密钥2)--->DES算法解密(密钥1)--->明文。

所涉及的加密和解密的函数模块void DESWork::Encrypt Data(char*_src Data,unsigned int key X)和void DESWork::Decrypt Data(char*_src Data,unsigned int key X),“_src Data”表示所要加密或解密的字符串,“key X”表示加密或解密所使用的密钥编号。另外需要强调加密的明文或解密的密文必须是8的倍数,如果不足需要进行补充再加密或解密。最后编译程序代码直至成功。

最后,程序编译成功生成一个可执行的文件“3DES.exe”。通过微软公司Microsoft Active Sync工具,在Win CE和PC桌面系统之间建立联接。将可执行文件到Win CE系统的“Nand Flash”文件夹内。然后重新启动硬件平台进入Win CE操作系统内,运行可执行文件“3DES.exe”。图4为简单的演示界面。

运行表明,该系统能够有效的完成加密和解密的功能,实现简单灵活,易于移植,降低了系统的复杂程度。易于应用到嵌入式系统信息的安全保护上。

3 结束语

本文详细阐述了3DES算法原理,并结合嵌入式系统的相关知识,实现了3DES算法在嵌入式开发平台的系统设计。对嵌入式产品信息保护设计具有非常实用的参考价值。

摘要:该文详细介绍了3DES算法原理,嵌入式开发平台的搭建设,并此平台上实现了3DES算法功能设计。

关键词:3DES,嵌入式,移植

参考文献

[1]Schneier B.应用密码学[M].吴世忠,祝世雄,张文正,译.北京:机械工业出版社,2000.

[2]冯登国.密码分析学[M].北京:清华大学出版社,2000.

[3]Phung S.Windows CE 6.0嵌入式高级编程[M].张冬松,陈芳园,译.北京:清华大学出版社,2009.

[4](美)帕森斯,伦道夫.Visual Studio 2005高级编程[M].吴雷,译.北京:清华大学出版社,2008.

[5]孙媛.嵌入式系统基础及应用[M].北京:机械工业出版社,2009.

三重DES加密算法原理与实现 篇3

对称密码体制其特点是发送和接收的双方使用同一密钥,且该密钥必须保证不被泄露;加密算法的安全性依赖于密钥的秘密性,而非算法的秘密性。DES加密算法就是对称加密体制中的佼佼者。1977年1月,美国政府采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES)。DES被授权用于所有公开的和私人的非保密通信场合,后来它又曾被国际标准组织采纳为国际标准。

虽然现在DES已不作为数据加密标准,但至今它仍然被广泛的应用,而且它是一种最有代表性的分组加密体制。因此,研究这一算法的基本原理、设计思想、安全性分析以及实际应用中有关问题,对于掌握分组密码理论和当前的实际应用都是很有意义的。

1 DES算法原理

DES是一种分组加密算法。明文分组长度为64位。加密得到的密文分组长度为64位。密钥长度64位,8个字节。每一个字节的最高位用于奇偶效验,所以有效密钥长度为56位。其分组加密过程描述如下:(1)子密钥Ki的生成。(2)64位的明文经过一个初始置换IP后,被分成左右两半部分,每个部分32位,以L0和R0表示。(3)进行16轮迭代变换:第i轮变换将上一轮变换所得到的结果的右半部分与第i个子密钥Ki结合,这个过程称为f函数。第i轮变换结果的左半部分为上一轮变换结果的右半部分(即:Li=Ri-1),其右半部分为上一轮变换结果的左半部与上一轮变换结果的右半部经过F函数处理所的结果的异或:Ri=Li-1⊕F(Ri-1,Ki)。(4)16轮变换之后左右两部分再连接起来,经过一个初始逆置换IP-1得到密文。其加密过程如图1所示。

DES的解密算法与加密算法完全相同,只需要将密钥的应用次序与加密时相反应用即可。即解密过程是初始置换函IP数接受长度为64比特的密文输入,将16个子密钥按照K16到K1的顺序应用与F函数的16轮迭代运算中,然后将迭代的结果经由末置换函数IP-1得到64位的明文输出。

2 两个密钥的三重DES

由于DES密钥只有56bit,易于遭受穷举时攻击。作为一种替代加密方案,Tuchman提出使用两个密钥的三重DES加密方法,并在1985年成为美国的一个商用加密标准。该方法使用两个密钥,执行三次DES算法,如图2所示。加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。

采用两个密钥进行三重加密的好处有:(1)两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。(2)加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。(3)三重DES具有足够的安全性,目前还没有关于攻破三重DES的报道。

3 Java语言编程实现DES算法

3.1 子密钥的生成

1)PC-1变换。将原密钥的各位按照PC-1矩阵重新排列,这一过程剔除了奇偶校验位。PC-1如下:

2)将排好的密钥分成两部分,前面28位为C0,后面28位为D0

3)从i=1开始,循环执行16次以下步骤得到16个子密钥。

(1)对Ci-1和Di-1进行相同位数的循环左移,得到Ci和Di

左移的位数为:

i取数值:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

移动数:1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

(2)连接Ci和Di,按照矩阵PC-2排列选择合适的位,构成子密钥Ki,该过程将56位压缩到48位,PC-2如下:

(3)i=i+1,转到(1),直到生成16个全部自密钥。

3.2 对64位明文分组加密

1)取得64位明文,不足补齐(补0)

2)对明文各位按照IP矩阵进行排列,矩阵为:

3)将得到的结果分为左右各32位两部分,称为L0,R0

4)从i=1开始,循环执行16次下列的加密过程

(1)按照下面矩阵E将32位的Ri-1扩展为48位,所得结果称为E(Ri-1),E阵为:

(2)将E(Ri-1)和Ki按位异或

(3)将所得结果分为8个部分,每个部分6位,形成B[1],…B[8]

(4)S盒替代。

S盒是8个子矩阵,称为S[1],….S[8],替代如下:将B[i]的第1位和第6位组成一个数称为R,第2、3、4、5位组成一个数称为C,用S[i]中对应的(R,C)中的4位数替换B[i],这样就将原来的48位替换成32位。

(5)P盒置换,按照下面的矩阵重新排列上面的结果

(6)将上一步处理的结果与Li-1按位异或,得到新的Ri,该过程可以简单记为:Ri=Li-1⊕F(Ri-1,Ki)

(7)i=i+1转(4)的第一步,直到完成16次循环

(8)进行IP-1置换,将上面得到的L16R16按照下面的矩阵进行置换:

加密过程结束,解密过程是用K16,K15,…..K1

3.3 DES算法的伪代码表示

C[0]d[0]=PC1(KEY)

FOR I=1 TO 16

C[I]=LS[I](C[I-1])

D[I]=LS[I](D[I-1])

K[I]=PC2(C[I]D[I])

L[0]R[0]=IP(PLAIN BLOCK)

FOR I=1 TO 16

L[I]=R[I-1]

R[I]=L[I-1]⊕F(R[I-1],K[I])

CIPHER BLOCK=FP-1(L[16]R[16])

4 算法安全性分析

DES算法具有相当高的复杂性,密码函数F的非线性性质非常好,起到的“扰乱”效果非常显著,并且还遵循了严格雪崩准则和比特独立准则,这使得要破译它的开销要超过可能获得的利益。再加上其便于理解掌握,经济有效,因此,得到了广泛的应用。算法具有极高的安全性,到目前为止,除了用穷举搜索法对算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2300年的时间。而采用三重DES,破译它就更可想而知了。当然,这并不等于说是不可破解的。而实际上,随着硬件技术和网络的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。

DES算法的有效密钥长度为56位,因此,在实际应用中,我们应避开使用第8,16,24,......64位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这一点,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。

参考文献

[1]陈卓.网络安全技术[M].北京:机械工业出版社,2004.

DES算法 篇4

随着信息社会的到来, 人们在享受信息资源所带来的巨大的利益的同时, 也面临着信息安全的严峻考验。数据传输保密的数学模型主要包括数据的加密与解密, 使用加密算法能做到数据加密, 在各种信息安全技术措施中, 硬件结构的安全和操作系统的安全是基础, 密码技术是网络安全与保密的核心和关键。DES算法是目前使用最多的加密算法, 也是最有代表性的分组加密算法, 虽然DES加密算法在面对差分分析、线性分析以及穷举密钥法时有被破解的风险, 但凭借其自身的优点, 相关产品仍然占据市场的主导地位, 目前广泛的应用于保密通信之中。随着三金工程尤其是金卡工程的启动, DES算法广泛应用于POS机、银行自助终端、磁卡及智能卡 (IC卡) 、加油站等领域, 来实现核心数据的保密, 如信用卡持卡人的PIN的加密传输, IC卡与POS间的双向认证、金融交易数据包的MAC校验等, 均用到DES算法[1]。本文介绍了D E S算法的基本原理及V C++具体实现过程。

2 DES算法的实现

对DES而言, 密钥表面上是64位的, 然而只有其中的56位被实际用于算法, 其余第8、16、24、32、40、48、56、64 bit 8位可以被用于奇偶校验, 并在算法中被丢弃[2]。DES的算法是对称的, 既可用于加密又可用于解密。功能是将输入的64位数据块经过初始置换按位重新组合, 并把输入分为左右两部分 (L、R) , 各部分各有32位, 将L1=R0, R1=L0f (R0, K1) 。DES加密过程如图1所示。

将加密的数据分割成以若干个以64位为单位的数据 (如果位数不够用00或FF补足) , 按照8行8列进行排列, 使用固定的IP置换表对64位的二进制明文块进行重新排列, 置换完毕的明文块被分为两个半区L0 (前32位) 、R0 (后32位) 。

2.1 子密钥产生过程描述

初始K e y值为6 4位, 在D E S加密算法中, 第8、16、......64位用来进行奇偶校验位, 不直接应用于DES运算, 这样密钥能用位数实际只剩下56位。经过缩小选择轮位变换后, 密钥位数成为了56位, 然后把它平分为两部分, 分别占28位, 再对每部分进行循环左移, 把两部分重新生成的位数重新合并, 进行新一轮的缩小选择轮位变换, 新密钥位再次减8剩下48位, 依次循环, 可生成得到K1~K15的密钥, 每次对密钥循环左移位数要依据表1对应的规则进行:

以上是DES算法进行加密的规则, 解密过程与加密规则大致相似, 不同之处是迭代时第一次用子密钥K15, 然后用K14、……, 最后再用K0, 可以看成加密算法的逆过程[3]。

2.2 乘积变换

乘积变换包括:扩展置换, 与48比特密钥进行异或操作, S-盒置换, P-盒置换。

(1) 先将输入的32比特的数据分成8组, 每组4比特。把上一组的最后一位加在该组的前面, 把下一组的最前的一位放在该组的后面, 且8组为循环, 然后再与已经经过移位和置换的4 8比特密钥进行异或操作, 将得到的结果新的48比特数据送入S-盒进行非线性替换。

(2) S-盒将48比特的输入分成8组, 每组6比特。若输入的6比特为A= (a1, a2, a3, a4, a5, a6) 则a1和a6两位二进制数可以确定0~3之间的一个数字, 它决定S-盒置换表中的某一行, 而a2、a3、a4、a5这四位二进制数可以确定0~15之间的一个数字, 它决定S-盒置换表中的某一列, 行列交界交叉处所存的十六进制数的二进制数转换即为新的输出。

(3) 通过将48比特数据替换成新的32比特的数据, 新得到32比特的数据再经过P-盒进行换位重排.将P-盒置换的结果与最初的6 4比特分组的左半部分的3 2比特进行异或运算, 作为下一轮变换输入的右半部分, 而原来的右半部分作为下一轮变换输入的左半部分, 即完成一轮变换[4]。

2.3 逆置换

初始明文按照IP重排, 16轮后的密文按照IP-1重排即为最后密文, 如表2和表3所示:

3 主要模块设计与实现

在VC++环境中, 通过M F C工具建立工程, 实现对界面的设计和完善。类的共有接口只设计一个, 即加密解密函数。其他像读文件, 写文件, 加密变换函数等等设置为私有涉及内容:文件操作, STL向量, 数制变换, 位操作及函数设计等[5]。具体的函数功能为:

(1) bytetobit () :将输入的字节组转换为位组。

(2) transform () :通用置换函数, 根据具体情况确定要执行哪种置换。

(3) memcpy () :进行内存单元的复制。

(4) f_func () :此函数是des_run () 函数运行的关键, 是将32比特的输入转化为32比特的输出。

(5) xor () :进行异或运算, 异或运算是按位作不进位加法运算。

(6) bittobyte () :将位组转换字节组。

3.1 加解密功能的具体实现

加解密功能实现, 代码如下:

这个函数整个算法运行程序的最主要部分。这个函数用于加密还是解密取决于type的类型, 如果type为encrypt, 则进行加密;如果type的类型为decrypt, 则进行解密。文件的加密:通过浏览文件 (也可以通过选择目录选取所需要的文件) , 读取需要加密的文件, 输入密钥, 生成DES加密文件[6]。生成文档的图如图2, 加密功能实现如图3。

3.2 文件的加解密

通过浏览文件 (也可以通过选择目录选取所需要的文件) , 读取需要加解密的文件, 输入密钥, 再进行密钥确认, 生成新的密文或还原成之前的文件。如图4和图5所示, 文档加密后, 显示为乱码, 达到加密要求。

4 结束语

本系统可以加密任何格式的单个文件, 如:t x t、doc、cpp等, 计算量小, 处理速度快, 加密算法简洁, 不会占用系统太多的空间。但只限于单重加密, 且存在加密漏洞。下一步进一步改进完善, 将此加密系统做成一个DES三重加密, 安全性更高更好。

摘要:密码技术是信息安全的核心技术, 把密码算法应用到程序中对数据进行加密, 实现数据的安全保密也越来越重要, 本文简要介绍了DES (Data Encryption Algorithm, DEA) 算法的基本原理及具体实现过程, 通过对分组密码DES算法子密钥循环缩小选择轮位变换产生过程描述、扩展置换, 与48比特密钥进行异或操作的乘积变换、IP逆变换的分析, 并结合VC++编程环境, 以界面的形式实现加密和解密。实验结果表明, 生成的系统计算量小, 处理速度快, 达到了效果。

关键词:DES,VC++,加密算法,乘积变换

参考文献

[1]梁峰, 相敬林, 赵妮.基于混沌理论的差异演化算法研究[J].计算机仿真.2006.171-173

[2]解双建, 原亮, 谢方方.DES算法原理及其FPGA实现[J].计算机技术与发展, 2011, 21 (7) :158-160, 164.

[3]李永彬, 雷菁, 熊春林等.DES加密算法的高速FPGA实现[J].计算机与自动化技术, 2005, 31 (7) :39-41.

[4]贺金平, 吕杨.基于蓝牙Ad hoc网络安全机制的研究与加密设计[J].自动化技术与应用, 2007 (6) :85-87.

[5]农盛功, 周满元.基于三维空间的图像加密算法[J].计算机系统应用, 2010, 19 (8) :87-91.

DES算法 篇5

现代密码学根据密钥类型的不同将加密算法分为对称加密算法和公开密钥加密算法[1]。3DES算法[2]作为对称加密算法的一种,被实践证明是一种安全性非常高的加密算法,受到了广泛的应用。加密算法主要通过软件和硬件两种方式来实现,软件的实现方式具有灵活方便的优点,同时也具有加密速度受限制的缺点。采用硬件实现加密算法是实际应用中必须要考虑到的问题,目前经常采用硬件FPGA等来实现[3,4,5],该种实验方式具有处理速度快的特点,但是对系统的复杂度要求较高。嵌入式微处理器具有实现简单,系统集成度高,体积小,易于移植等众多优点[6],因此有必要研发基于嵌入式微处理器的加密算法硬件设备,在此提出一种基于ARM处理器的3DES的硬件实现方法。

1 3DES算法原理

DES是美国国家标准局颁布的数据加密算法,作为世界范围内的公开加密标准已经使用了20多年。随着计算机处理速度的提高,DES算法面临着一些安全威胁,DES采用56位密钥,曾经有人用穷举搜索法对DES进行过密钥搜索攻击。近年来也有人提出了差分和线性攻击方案,该方案的实施必须有超高速计算机的支持。为了增强DES算法应对差分或线性攻击的可能性,人们提出了一系列改进方案,采用增加密钥长度是一种可行的途径。为了增加密钥的长度,可将分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密。其中,最有效的方法是使用三重DES加密,它可使加密密钥长度扩展到128位,在提高加密强度的同时,足以应付目前的各种攻击。

DES是一个分组加密算法,它以64位为分组对数据加密。64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列。加密的密钥为64位,实际长度为56位,DES算法的保密性取决于密钥。 DES对64位的明文分组进行操作。首先通过一个初始置换IP,将64位的明文分成各32位长的左半部分和右半部分,该初始置换只在16轮加密过程进行之前进行一次。在经过初始置换操作后,对得到的64位序列进行16轮加密运算,这些运算被称为函数f,在运算过程中,输入数据与密钥结合。经过16轮运算后,左、右两部分合在一起得到一个64位的输出序列,该序列再经过一个末尾置换IP-1,获得最终的加密结果。过程如图1所示。

在每一轮加密过程中,函数f的运算包括以下四个部分:首先进行密钥序列移位,从移位后的56位密钥序列中选出48位;然后通过一个扩展置换将输入序列32位的右半部分扩展成48位,再与48位的轮密钥进行异或运算;再者通过8个S盒将异或运算后获得的48位序列替代成一个32位序列;最后对32位序列应用置换P进行置换变换,得到f的32位输出序列。将函数f的输出与输入序列的左半部分进行异或运算后的结果作为新一轮加密过程输入序列的右半部分,当前输入序列的右半部分作为新一轮加密过程输入序列的左半部分。上述过程重复操作16次,便实现了DES的16轮加密运算。

假设Bi是第i轮计算的结果,则Bi为一个64位的序列,Li和Ri分别是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f是实现代换、置换及密钥异或等运算的函数,那么每一轮加密的具体过程为:

undefined

以上操作的详细过程如图2所示。

在3DES加密算法中,加密过程用两个不同的密钥K1和K2对一个分组消息进行三次DES加密。首先使用第一个密钥进行DES加密,然后使用第二个密钥对第一次的结果进行DES解密,最后使用第一个密钥对第二次的结果进行DES加密。

undefined

解密过程首先使用第一个密钥进行DES解密,然后使用第二个密钥对第一次的结果进行DES加密,最后再使用第一个密钥对第二次的结果进行DES解密。

undefined

DES算法的密钥长度是56位,三重DES算法的密钥长度是112位,加密强度显著增强,可以很好地应付各种攻击,目前尚没有可行的攻击方法,应用3DES的加密系统具有很大的实用价值。

2 基于ARM的硬件实现

根据满足3DES算法和一般嵌入式应用的需求,在此设计了一个基于ARM微处理器的嵌入式系统。以三星S3C2410处理器作为系统的核心,用嵌入式Linux作为操作系统。加密的数据可以存放于NAND FLASH等存储介质上,加密后的结果可以通过液晶屏直观地显示出来,实现用户交互。在此设计过程中,难点是图形显示与加密函数的实现。这里通过移植MiniGUI,并在其上开发显示程序,完成了两者之间的联系,实验结果给出了3DES算法的演示效果。整个系统的具体实现如下。

2.1 系统设计框图

系统的核心部分是ARM微处理器,由ARM微处理器和其他一些功能单元构成了完整的嵌入式系统。这里的ARM微处理器选为基于ARM920T核心的S3C2410处理器芯片,其工作频率最高达200 MHz;外围包括64 MB的NAND FLASH 和64 MB的RAM、键盘接口、串口、CPLD译码单元、网络单元、语音单元、LCD及触摸屏等。上述部件共同构建了嵌入式系统的硬件平台。系统核心框架如图3所示。

2.2 操作系统移植

该系统建立在嵌入式Linux系统之上,因此首先要移植Linux系统到ARM处理器上。嵌入式Linux是按照嵌入式操作系统要求设计的一种小型操作系统。由一个内核以及一些根据需要进行定制的系统模块组成。

要构建运行环境,首先移植BootLoader到嵌入式系统中,通过 BootlLoader可以完成对系统板上的主要部件,如CPU,SDRAM,FLASH、串行口等进行初始化。分配内存空间的映射,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统准备好正确的环境。Linux内核采用了稳定版的linux-2.4.18内核。该系统采用Cramfs文件系统,Cramfs被设计为简单较小的只读可压缩文件系统,因此很适合用作嵌入式的文件系统。可以利用工具软件BusyBox和Mkcramfs制作Cramfs文件系统。做好文件系统后下载到开发板上,可以看到Linux系统运行正常[7,8,9]。

2.3 MiniGUI图形界面显示

MiniGUI是针对嵌入式设备,跨操作系统的图形界面支持系统,MiniGUI为实时嵌入式操作系统提供了非常完善的图形及用户界面支持。MiniGUI小巧、灵活且对中文的支持性最好。从技术架构上看,MiniGUI包括几个模块:输入抽象层、输出抽象层、消息模块、窗口模块、图形设备接口模块及MiniGUI组件[10]。

要想使MiniGUI能在本硬件系统上执行,需要移植MiniGUI到S3C2410开发平台。首先,安装交叉编译链,下载相关资源:libminigui-1.3.4.tar.gz,minigui-res-1.3.3.tar.gz,经过相应的配置和交叉编译后就可以把相应的库拷贝到Cramfs文件系统的目录,重新用Mkcramfs工具制作文件系统。对于应用程序,只需要经过交叉编译后执行可执行程序即可。

该系统利用MiniGUI图形界面作为3DES的演示输出。消息机制是MiniGUI运行的基础,应用程序通过接收消息与外界交互。消息由系统和应用程序产生,比如创建窗口时系统会产生MSG_CREAT消息,用户在窗口中的各种操作都会产生一系列相应消息。系统采用了逻辑字体输出,建立逻辑字体的函数为CreateLogFont,设置设备hdc实用指定逻辑字体的函数为SelectFont。用TextOut作为输出,部分主函数如下:

static int 3DESWinProc(HWND hWnd,int message,WPARAM wParam,LPARAM lParam)

{ …

logfontgb24=CreateLogFont(NULL,"song","GB2312",FONT_WEIGHT_BOLD,FONT_SLANT_ROMAN,FONT_SETWIDTH_NORMAL,FONT_SPACING_CHARCELL,FONT_UNDERLINE_NONE,24,0);

case MSG_PAINT:

hdc = BeginPaint (hWnd);

show(hdc);

SelectFont(hdc,logfontgb24);

TextOut (hdc,50,10,"欢迎进入3DES加密系统");

SelectFont(hdc,logfontgb16);

TextOut (hdc,50,50,"输入的明文:");

…}

其中调用的show(hdc)是3DES加密算法的具体实现。

实验的简单演示结果如图4所示。实验结果表明,该系统可以实现正确的加密和解密功能,因此可以用基于ARM的嵌入式3DES加密系统进行数据加密,保证信息的安全。采用这种嵌入式微处理器的方法实现起来简单,体积小,易于移植到其他系统中,与采用FPGA的方法相比,实现起来灵活,系统复杂度低。

3 结 语

在此结合嵌入式系统的特点及3DES加密算法,实现了基于ARM的3DES的加密算法的系统设计,详细阐述了3DES算法原理及加密系统的实现过程,并给出了演示结果。此系统具有方便、灵活、体积小,可定制等特点,因此在实际应用中有一定的参考意义。

摘要:3DES算法是一个重要的对称加密算法,被广泛应用于实际系统中。目前并没有针对嵌入式的实现方法,依据3DES算法和一般嵌入式系统需求,详细介绍该系统硬件和软件的设计过程。硬件以三星公司的S3C2410处理器为核心,系统以嵌入式Linux为载体。在此详细阐述开发环境的搭建、Bootloader的架构及功能、内核及文件系统的编译和移植。基于系统硬件和软件设计过程,通过MiniGUI图形界面对3DES算法进行了演示。

关键词:3DES,ARM处理器,嵌入式Linux,MiniGUI

参考文献

[1]Wenbo Mao.Modern Cryptography:Theory and Practice[M].Prentice Hall,2003.

[2]范九伦,张雪锋.密码学基础[M].西安:西安电子科技大学出版社,2008.

[3]王简瑜,张鲁国.基于FPGA实现DES算法的性能分析[J].微计算机信息,2007,23(3):217-219.

[4]张丽娜,陈建华.基于ASIC的有效DES/3DES流水线设计[J].计算机工程,2007,33(2):225-226.

[5]王同庆,陆平.一种3DES算法实现的改进算法[J].计算机应用研究,2003(4):95-96.

[6]张伟.基于ARM的数据加密算法实现[D].南京:南京理工大学,2006.

[7]张杰,吴敏,曹卫华.基于S3C2410的Linux移植[J].微型电脑应用,2005(3):57-59.

[8]李亚锋,欧文盛.ARM嵌入式Linux系统开发[M].北京:清华大学出版社,2007.

[9]刘明博,邓中亮.基于ARM的嵌入式操作系统移植的研究[J].计算机系统应用,2006(11):87-88.

DES算法 篇6

1 3DES加密算法的描述

在对3DES加密算法进行描述的过程中, 已经在世界范围内制定了相关的标准, 而且能够进行准确地密码分析, 能够防止各类黑客的攻击, 而且, DES能够将数据分组操作, 而且能够对明文进行初始化的置换, 这样能够将明文分成两个不同的部分, 而且, 能够进行16轮不同形式的计算, 使密码的长度增加, 提高了网络信息的安全性。在不同的运算中, 都能够进行拓展运算, 而且能够实现代换, 在每一轮运算中都会形成一个子密钥, 这样就提高了网络信息传递的安全性。

3DES是在DES的基础上形成的, 其比DES算法的安全性更高, DES是3DES的基本构成形式, 然后通过对DES的不同的组合, 从而能够形成不同组合的加密算法, 而且, 在加密和解密的过程中, 其能够将密钥和明文配对。

2 Python语言语言

Python语言是一类功能比较完善的应用程序, 其主要能够对编程的语言进行设计, 其已经被广泛应用, 是一种比较成熟的技术。Python语言的语法结构比较简单, 而且能够将不同的模块进行拓展, 而且可以运用C语言等形式, 丰富了应用的形式, 而且能够减少开发所用的时间, 开发的成本也不高。

Python语言具有兼容性, 能够在各类系统上进行操作, 而且能够在嵌入式的环境中应用自如。其源程序可以免费安装, 而且能够运用二进制的代码进行转换。

Python语言具有多元化的模块, 方便了开发人员的工作, 而且, 能够运用这些模块, 使应用程序的规模更加得完善, Python语言中具有加密的模块, 能够进行加密的算法。

3 基于Python语言的3DES算法的优化步骤

3.1 密钥的分析

通过对密码学的相关理论进行分析, 可以运用64位的密码技术, 但是, 这64位中, 有8位是不能发挥作用的, 其主要的作用是检验, 所以, 在运用64位密码技术时, 只有56位是可以使用的, 所以, 在使用DES算法进行加密的过程中, 其位数比较低, 所以, 密码的安全性也比较低, 运用DES形成密钥的摘要部位, 运用Python语言生成函数, 函数的生成就需要运用40位的字符, 所以, 密钥在经过处理后就会形成一连串固定的长度, 在字符中, 每个字符一般都会采用二进制来描述, 从而能够形成一个以二进制为主的字符串, 。

在对密钥进行置换的过程中, 需要按照时间的顺序, 还要分析密钥置换的安全性, 所以, 要对原有的DES密钥进行压缩处理, 提高处理的效率, 而且要对置换的顺序进行调整。密钥在经过置换处理后, 就能够使人们获得原有的密钥, 如果不能知道解密的模块, 即使知道了密钥, 也不能解开密码。

3.2 S盒的分析

Python语言的语法结构是比较清晰的, 这样就能够提高解密的效率, 将已经加密的S盒中的数据统一的转化成二进制的字符, 然后, 在运算的过程中直接运用二进制的数据就可以完成任务, 在解密的过程中, 就不用在去转化字符, 节省了时间, 提高了解密的速度。

3.3 3DES算法编程的实现和代码效率的优化

被加密的消息可以按照内存分成大小不同的消息, 在Python语言中有一类自带的工具, 能够将3DES的算法进行简化, 提高了运算的效率, 还能够对完善后的系统的功能进行分析, 通过实验的方法获得数据, 一般profi le的工具是由8000个字符构成的, 在完善之前这8000个字符都要进行测试, 然后对测试前后的字符进行比较, 两个函数的调用次数是相同的, 但是, 在运行的过程中, 测试后的字符有很大的改进, 使append不用在进行频繁地操作, 使运算的效率提高。

4 测试的结果和结论分析

在对改进后和改进前的3DES的测试结果进行分析时, 主要是要把握好测试环境, 然后分别对硬件和软件进行分析, 使3DES在改进前后的设计都在系统软件上进行, 确定测试代码, 通过对测试的数据进行对比, 可以发现测试之后的数据的性能是更加完善的。而且对MDB实时累加系统进行分析, 可以发现在对整个数据进行处理的过程中, 其速度是平均的, 而且不会产生I/O操作, 系统的吞吐量也可以保持平衡, I/O不存在瓶颈的问题, 但是, 如果对数据处理的太过频繁, 就会使吞吐量发生一定的改变, 导致吞吐量的下降, 所以, 应该对MDB进行累加处理, 使系统可以处理更多的数据还能够保持平衡的吞吐量, 从而能够达到系统处理数据的效果。

5 结语

本文通过数据的处理过程中累加的效果, 从而能够运用测试的方法, 分析出累加处理的方法能够提高数据处理的效率。分析了密钥的处理, 通过运用DES密钥处理方式, 从而能够使网络信息的传递更加得安全, 运用Python语言生成函数, 函数的生成就需要运用40位的字符, 所以, 密钥在经过处理后就会形成一连串固定的长度, 在字符中, 每个字符一般都会采用二进制来描述, 简化了解密的过程。被加密的消息可以按照内存分成大小不同的消息, 在Python语言中有一类自带的工具, 能够将3DES的算法进行简化, 使运算的效率能够进一步的提升。

摘要:本文通过对3DES加密技术的相关的原理进行分析, 在此基础上, 在以Python语言为基础, 将3DES的算法进行优化, 从而能够运用编程的方法, 提高算法优化的效率, 分析3DES算法在计算的过程中存在的问题, 在对profile进行优化的基础上, 从而进行测试, 提高加密和解密的速度, 使算法的安全性提高。

关键词:Python语言,3DES算法,优化

参考文献

[1]李爱宁, 唐勇, 孙晓辉, 刘昕彤.基于Python语言的3DES算法优化[J].计算机系统应用, 2011, 08:184-187+173.

DES算法 篇7

DES是Data Encryption Standard(数据加密标准)的缩写,它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。DES算法在AT、磁卡及智能卡、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密。如信用卡PIN的加密传输、IC卡的双向认证等都用到了DES算法,而且DES在电子商务中也得到了广泛地应用。但是现在很多产品都屏蔽了DES算法的加密过程,同时在教学中,由于具体的信息通过手工的方式来实现其加密过程是非常困难的,使得掌握DES算法造成了一定的难度。本文就是在这种背景下,用Delphi语言模拟其加密实现的过程,并且把实现过程中用到的变量用文本框的方式让使用者输入,帮助初学者快速掌握DES算法。

1 DES算法的原理

DES是一个分组加密算法,它以64位为分组对数据进行加密。同时DES也是一个对称算法:加密和解密用的是同一个算法。它的密钥长度是56位(因为每个第8位都用作奇偶校验),密钥可以是任意的56位数,而且可以随时改变。DES算法的具体实现过程包括两大部分,即密钥计算和加密计算。

1.1 DES的密钥计算

从用户处取得一个64位(本文如未特指,均指二进制位)长的密码Key,Key=K1K2K3…K65K64,去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥。通过固定的置换对56位密钥进行置换,并将置换的结果分为两个部分即前28位记为C0和后28位记为D0。

DES算法的密钥是经过16次迭代得到一组密钥。把前面得到的C0和D0进行循环左移一位得到C1和D1,再通过固定的置换得到32位的密钥,即Key1。然后再把上次循环左移得到的Ci和Di依次左移,左移的位数有固定的规定,每次都不相同,然后再进行固定的置换依次得到32位的密钥,即Key2…Key16。

1.2 DES的加密过程

DES对64位的明文分组进行操作,通过一个初始置换,将明文分组成为左半部分和右半部分,各32位长。然后进行16次完全相同的运算。这些运算成为函数f,在运算过程中数据与密钥结合,经过16轮后,左、右半部分结合在一起,经过一个末置换(初始置换的逆置换),完成该算法。加密过程:DES(m)=IP-1。T16。T15。…。T2。T1。DES标法流程图如图一所示:

1.3 DES的解密过程

数据解密的算法与加密算法相同,区别在于在迭代过程中和数据进行按位异或的密钥的使用顺序不同。在加密中是按照第i次迭代就采用第i次迭代生成的密钥进行异或;而解密时第i次迭代就采用第17-i次迭代生成的密钥和数据进行异或,即密匙的次序相反。如果各轮加密密匙分别是K1,K2,K3,…,K16,那么解密密匙就是K16,K15,K14,…,K1。

2 DES算法的Delphi实现

具体的实现如图二和图三所示。输入要加密的明文和密钥,单击“加密”按钮在密文文本框中显示加密后的密文,单击“解密”按钮,在明文文本框中显示解密后的明文。单击“清屏”按钮清空所有文本框,以便进行新的加密。在本系统中可以实现对数字、字母和汉字的加、解密。

在编程的时候,如果密钥长度小于8位,就在密钥后面补x;如果输入的明文不是8的倍数,则在最后补NUL。然后把补齐后的明文转换为二进制,按照DES算法的原理先生成密钥再进行加密和解密运算。

加密实现的主要的程序:

3 结束语

本系统可以很形象地表现出该算法的加密实现过程,对初学者学习此算法提供了帮助。但是在通用性方面还要不断加以完善。

参考文献

[1]曹天杰.计算机系统安全[M].北京:高等教育出版社,2003.

[2]阙喜戎,孙锐.信息安全原理及应用[M].北京:清华大学出版社,2003.

[3]杨长春.Delphi程序设计教程[M].清华大学出版社,2003.

[4]DouglasRStinson.密码学原理与实践(第二版)[M].北京:电子工业出版社,2003.

[5]韩宝明,杜鹏,刘华.电子商务安全与支付[M].北京:人民邮电出版社,2001.

上一篇:考研英语完形填空巧解下一篇:病人的压力与护理