密码学Word格式文档下载.docx

上传人:b****6 文档编号:19535079 上传时间:2023-01-07 格式:DOCX 页数:31 大小:413.76KB
下载 相关 举报
密码学Word格式文档下载.docx_第1页
第1页 / 共31页
密码学Word格式文档下载.docx_第2页
第2页 / 共31页
密码学Word格式文档下载.docx_第3页
第3页 / 共31页
密码学Word格式文档下载.docx_第4页
第4页 / 共31页
密码学Word格式文档下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

密码学Word格式文档下载.docx

《密码学Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《密码学Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。

密码学Word格式文档下载.docx

 

目录

1、前言1

1.1背景1

2、DES算法简介2

2.1概述2

2.2算法特点2

2.3算法原理3

2.4算法分析4

2.5算法工作流程7

3、结果验证7

3.1验证过程7

4、实验总结10

5、参考文献11

附录12

1、前言

1.1背景

数据加密标准(DES,Data 

Encryption 

Standard)是一种使用密钥加密的块密码,它基于使用56位密钥的对称算法。

美国国家标准局(NBS)于1973年向社会公开征集一种用于政府机构和商业部门的加密算法,经过评测,最终选择了IBM公司提出的一种加密算法。

经过一段时间的试用,美国政府于1977年颁布DES。

DES是分组密码的典型代表,也是第一个被公布出来的标准算法,曾被美国国家标准局(现为国家标准与技术研究所NIST)确定为联邦信息处理标准(FIPS 

PUB 

46),使用广泛,特别使在金融领域,曾是对称密码体制事实上的世界标准。

DES自从公布以来,已成为金融界及其他各种行业最广泛应用的对称密钥密码系统。

DES是分组密码的典型代表,也是第一个被公布出来的标准算法。

原来规定DES算法的使用期为10年,可能是DES尚未受到严重威胁,更主要是新的数据加密标准研制工作尚未完成,或意见尚未统一,所以当时的美国政府宣布延长它的使用期。

因而DES超期服役到2000年。

近三十年来,尽管计算机硬件及破解密码技术的发展日新月异,若撇开DES的密钥太短,易于被使用穷举密钥搜寻法找到密钥的攻击法不谈,直到进入20世纪90年代以后,以色列的密码学家Shamir等人提出一种“差分分析法”,以后日本人也提出了类似的方法,这才称得上对它有了攻击的方法。

严格地说Shamir的“差分分析法”也只是理论上的价值。

至少到目前为止是这样,比如后来的“线形逼迫法”,它是一种已知明文攻击,需要243≈4.398×

1012个明、密文对,在这样苛刻的要求下,还要付出很大的代价才能解出一个密钥。

不管是差分攻击还是线性攻击法,对于DES的安全性也仅仅只做到了“质疑”的地步,并未从根本上破解DES。

也就是说,若是能用类似Triple-DES或是DESX的方式加长密钥长度,仍不失为一个安全的密码系统。

早在DES提出不久,就有人提出造一专用的装置来对付DES,其基本思想无非是借用硬件设备来实现对所有的密钥进行遍历搜索。

由于电子技术的突飞猛进,专门设备的造价大大降低,速度有质的飞跃,对DES形成了实际的威胁。

DES确实辉煌过,它的弱点在于专家们一开始就指出的,即密钥太短。

美国政府已经征集评估和判定出了新的数据加密标准AES以取代DES对现代分组密码理论的发展和应用起了奠基性的作用,它的基本理论和设计思想仍有重要参考价值。

安全性是分组密码最重要的设计原则,它要求即使攻击者知道分组密码的内部结构,仍不能破译该密码,这也意味着,不存在针对该密码的某种攻击方法,其工作量小于穷密钥搜索。

但是随着密码分析技术的发展,使得对于具有更多轮的分组密码的破译成为可能。

现如今,依靠Internet的分布式计算能力,用穷举密钥搜索攻击方法破译已成为可能。

数据加密标准DES已经达到它的信任终点。

但是作为一种Feistel加密算法的例子仍然有讨论的价值。

2、DES算法简介

2.1概述

DES是DataEncryptionStandard(数据加密标准)的缩写。

它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准,二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。

DES是一个分组加密算法,它以64位为分组对数据加密。

同时DES也是一个对称算法,加密和解密用的是同一个算法。

它的密匙长度是56位(因为每个第8位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。

其中有极少量的数被认为是弱密匙,但是很容易避开他们。

所以保密性依赖于密钥。

2.2算法特点

DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。

而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。

然而,这并不等于说DES是不可破解的。

而实际上,随着硬件技术和Intemet的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。

为了克服DES密钥空间小的缺陷,人们又提出了三重DES的变形方式。

2.3算法原理

DES使用一个56位的密钥以及附加的8位奇偶校验位(每组的第8位作为奇偶校验位),产生最大64位的分组大小。

这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。

使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;

接着交换这两半,这一过程会继续下去,但最后一个循环不交换。

DES使用16轮循环,使用异或,置换,代换,移位操作四种基本运算。

DES的工作原理可用下图(a)表示。

需要进行加密处理的明文(plaintext)被分成64位(64-bit)的块,DES的目标就是对这64位的明文56位的密钥(初始Key值为64位,但DES算法规定,其中第8、16、......64位是奇偶校验位,不参与DES运算,故Key实际可用位数便只有56位)进行加密处理,生成对应的64位的密文(ciphertext)。

为讨论方便,以下假设初始明文就是64位的。

DES加密过程可分为19步。

第1步是对64位明文进行置换操作;

最后1步则是对前面一步的64位数进行反向置换操作。

倒数第2位是将前面一步的64位数的前32位与后32位进行交换。

剩下的16位操作功能是一样的,只是每一位所使用的密钥K是不同的。

DES的工作原理

2.4算法分析

(1) 

初始置换IP和初始逆置换IP-1 

初始置换和初始逆置换为互逆运算,初始置换发生在加/解密运算前,初始逆置换发生在加/解密运算后。

初始置换和初始逆置换的变换分别如表3.1和表3.2所示。

这里表格的数字是指数据所在的位置。

初始置换IP

初始逆置换IP-1

(2)扩展置换

32位的右半部分明文数据首先要进行扩展置换,扩展置换将32位的输入数据扩展成为48位的输出数据,它有三个目的:

第一,它产生了与子密钥同长度的数据以进行异或运算;

第二,它提供了更长的结果,使得在以后的子加密过程中能进行压缩;

第三,它产生雪崩效应(avalanche 

effect),这也是扩展置换最主要的目的,使得输入的一位将影响两个替换,所以输出对输入的依赖性将传播的更快(雪崩效应)。

扩展置换的置换方法与初始置换相同,只是置换表不同,扩展置换表如下所示。

扩展置换表

(3)16轮循环

经过了初始置换的64位明文数据在中间分成2部分,每部分32位,左半部分和右半部分分别记为L0和R0。

然后,L0和R0进入第一轮子加密过程。

R0经过一系列的置换得到32位输出,再与L0做逐位异或(XOR)运算。

其结果成为下一轮的R1,R0则成为下一轮的L1,如此连续运作16轮。

我们可以用下列两个式子来表示其运算过程:

16轮循环

2.5算法工作流程

des加密流程

3、结果验证

3.1验证过程

1.编辑代码,运行代码得到如图4-1的运行结果

图4-1

2.输入数据进行测试。

(1)输入纯字母进行测试,运行结果如图4-2所示。

图4-2

(2)输入纯数字进行测试,运行结果如图4-3所示。

图4-3

(3)输入数字与字母进行测试,运行结果如图4-4所示。

图4-4

(4)输入数字、字母、特殊字符进行测试,运行结果如图4-5所示

图4-5

4、实验总结

通过本次的课程设计,我对DES加密算法的有关知识有了进一步的了解,刚刚开始我并不知道如何去完成这次的课程设计,但通过我去网上查询有关的资料,我最终知道该从哪里下手去写这篇课程设计。

通过本次的课程设计,我知道了自己身上的不足和自己知识的欠缺。

本次课程设计,我不断的调试代码,花了较多的时间,最终成功的把代码调试好,心中充满着喜愉,通过本课程设计,我增加了许多的知识,对DES算法的使用有了更进一步的了解。

通过本次的课程设计,发现自己在数据结构方面的了解不足,在调试代码中,发现有较多的错误,这些错误的产生都是因为我对知识的认识不够深入而产生的。

通过本次的课程设计,我对如何去设计DES算法有了一定的了解。

5、参考文献

[1]张延伟 

杨金岩,Verilog 

HDL 

程序设计实例详解,人民邮电出版社,2008,258-276

[2]TomstDenis,SimonJohnson,沈晓斌,程序员密码学,机械工业出版社,2006,16-31 

[3] 

毛明,大众密码学,高等教育出版社,2003,5-13 

[4] 

Ranjan 

Bose,吴传坤,信息论编码与密码学,机械工业出版社,2005,18-35

[5] 

宋震等.密码学.中国水利水电出版社,2002 

[6] 

冯登国,吴文玲.分组密码的设计与分析.清华大学出版社,2000 

[7]张焕国,冯秀涛,覃中平,等.演化密码与DES的演化研究[J].计算机学报,2003,26(12).

[8]沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学(E辑:

信息科学),2007

(2).

[9]谷利泽,郑世慧,杨义先.现代密码学教程[M].北京:

北京邮电大学出版社,2009

[10]章照止. 

现代密码学基础(第一版).北京邮电大学出版社 

2004,(3) 

[11]叶阮健.曹英.张长富.经典密码学与现代密码学,2004 

[12]赖溪松 

韩亮.计算机密码学及其应用 

.国防科技大学, 

2001 

附录

#include<

stdio.h>

stdlib.h>

string.h>

voidshow1()//主界面

{

printf("

\n\n\n\t\t###############DES加密解密系统#############\n\n"

);

\t\t--------------------------------------------------\n"

//printf("

\t\t##################################################\n"

\t\t\t\t\t\t\t\t\n"

\t\t\t1.加密"

\t2.解密"

\t3.退出\t\t\t\n"

}

voidshow2()//加密界面

\n\n\n\t\t#################DES加密######################\n\n"

\t\t\t请选择明文和密钥的输入方式:

\t\t\n"

\t\t\t1.直接输入"

\t2.从文件读取"

\t3.退出\n"

\t\t\t选择:

"

voidreader(charstr[30],chars[8])//读取明文和密钥

FILE*fp;

fp=fopen(str,"

r"

if(fp==NULL)

{

printf("

明文读取失败!

\n"

}

else

fscanf(fp,"

%s"

s);

fclose(fp);

voidTo2Bin(charp[8],intb[64])//将字节转换成二进制流

inti,k=0;

for(i=0;

i<

8;

i++)

intj=0x80;

for(;

j;

j>

>

=1)

{

if(j&

p[i])

{

b[k++]=1;

}

else

b[k++]=0;

}

}

intIP_Table[64]=//初始置换(IP)

{

57,49,41,33,25,17,9,1,

59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,

63,55,47,39,31,23,15,7,

56,48,40,32,24,16,8,0,

58,50,42,34,26,18,10,2,

60,52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6

};

intE_Table[]={//扩展变换E

31,0,1,2,3,4,

3,4,5,6,7,8,

7,8,9,10,11,12,

11,12,13,14,15,16,

15,16,17,18,19,20,

19,20,21,22,23,24,

23,24,25,26,27,28,

27,28,29,30,31,0

intS_Box[8][4][16]={//8个s盒

{

{14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7},

{0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8},

{4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0},

{15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13}

},

{15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10},

{3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5},

{0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15},

{13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9}

{10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8},

{13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1},

{13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7},

{1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12}

{7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15},

{13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9},

{10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4},

{3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14}

{2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9},

{14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6},

{4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14},

{11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3}

{12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11},

{10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8},

{9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6},

{4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13}

{4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1},

{13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6},

{1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2},

{6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12}

{13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7},

{1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2},

{7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8},

{2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11}

}

};

intIP_1_Table[64]=//逆初始置换IP^-1

39,7,47,15,55,23,63,31,

38,6,46,14,54,22,62,30,

37,5,45,13,53,21,61,29,

36,4,44,12,52,20,60,28,

35,3,43,11,51,19,59,27,

34,2,42,10,50,18,58,26,

33,1,41,9,49,17,57,25,

32,0,40,8,48,16,56,24

intP_Table[32]=//置换运算P

15,6,19,20,

28,11,27,16,

0,14,22,25,

4,17,30,9,

1,7,23,13,

31,26,2,8,

18,12,29,5,

21,10,3,24

intPC_1[56]=

56,48,40,32,24,16,8,//密钥置换PC_1

0,57,49,41,33,25,17,

9,1,58,50,42,34,26,

18,10,2,59,51,43,35,

62,54,46,38,30,22,14,

6,61,53,45,37,29,21,

13,5,60,52,44,36,28,

20,12,4,27,19,11,3

intPC_2[48]=//密钥置换PC_2

13,16,10,23,0,4,

2,27,14,5,20,9,

22,18,11,3,25,7,

15,6,26,19,12,1,

40,51,30,36,46,54,

29,39,50,44,32,47,

43,48,38,55,33,52,

45,41,49,35,28,31

voidReplacement(intarry1[],intarry2[],

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1