《现代密码学》实验报告.docx

上传人:b****2 文档编号:17658556 上传时间:2023-07-27 格式:DOCX 页数:16 大小:304.75KB
下载 相关 举报
《现代密码学》实验报告.docx_第1页
第1页 / 共16页
《现代密码学》实验报告.docx_第2页
第2页 / 共16页
《现代密码学》实验报告.docx_第3页
第3页 / 共16页
《现代密码学》实验报告.docx_第4页
第4页 / 共16页
《现代密码学》实验报告.docx_第5页
第5页 / 共16页
《现代密码学》实验报告.docx_第6页
第6页 / 共16页
《现代密码学》实验报告.docx_第7页
第7页 / 共16页
《现代密码学》实验报告.docx_第8页
第8页 / 共16页
《现代密码学》实验报告.docx_第9页
第9页 / 共16页
《现代密码学》实验报告.docx_第10页
第10页 / 共16页
《现代密码学》实验报告.docx_第11页
第11页 / 共16页
《现代密码学》实验报告.docx_第12页
第12页 / 共16页
《现代密码学》实验报告.docx_第13页
第13页 / 共16页
《现代密码学》实验报告.docx_第14页
第14页 / 共16页
《现代密码学》实验报告.docx_第15页
第15页 / 共16页
《现代密码学》实验报告.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《现代密码学》实验报告.docx

《《现代密码学》实验报告.docx》由会员分享,可在线阅读,更多相关《《现代密码学》实验报告.docx(16页珍藏版)》请在冰点文库上搜索。

《现代密码学》实验报告.docx

《现代密码学》实验报告

学生姓名骆秀娟

学号0909121906

专业班级计科1204班

指导教师段桂华

学院信息科学与工程学院

完成时间2014年4月25日

 

实验一对称密码算法实验

[实验目的]

1.掌握密码学中经典的对称密码算法DES、AES、RC4的算法原理。

2.掌握DES、AES、RC4的算法流程和实现方法。

[实验预备]

1.DES算法有什么特点?

算法中的哪些结构保证了其混淆和扩散的特性?

2.AES算法的基本原理和特点。

3.流密码RC4的密钥流生成以及S盒初始化过程。

[实验内容]

1.分析DES、AES、RC4、SHA的实现过程。

2.用程序设计语言将算法过程编程实现。

3.完成字符串数据的加密运算和解密运算

输入明文:

Idolikethisbook

输入密钥:

cryption

[实验步骤]

1.预习DES、AES、RC4算法。

2.写算法流程,用程序设计语言将算法过程编程实现。

3.输入指定的明文、密钥进行实验,验证结果。

4.自己选择不同的输入,记录输出结果。

写出所编写程序的流程图和运行界面、运行结果。

 

DES程序流程图:

 

 

DES运行结果:

 

AES程序流程图:

轮密钥加

逆字节代替

逆行移位

逆列混合

轮密钥加

逆字节代替

逆行移位

轮密钥加

逆列混合

轮密钥加

逆字节代替

逆行移位

明文

 

K0K1...Kn-1Kn

 

K0K1...Kn-1Kn

轮密钥加

字节代替

行移位

轮密钥加

字节代替

行移位

列混合

轮密钥加

字节代替

行移位

列混合

轮密钥加

明文

 

AES运行结果:

 

RC4流程图:

 

RC4运行结果:

[问题讨论]

1.在DES算法中有哪些是弱密钥?

哪些是半弱密钥?

2.改变明文或密钥中的一个比特值可能影响AES值中的多少比特?

3.分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。

回答问题

解:

1>弱密钥有以下几种情况:

全0;全1;一半为0,一半为1;

半弱密钥如下:

E01FE01FE01FE01F

FE01FE01FE01FE01

E001E001F101F101

FE1FFE1FFE01FE01

2>改变一个比特值最多改变4个AES值。

3>在RC4实验中,为了将输入的char型密钥分个存储进数组中,刚开始我想把它转化为string型,再存储,但是string型数据不能直接从键盘输入,且最后也要转换存储在char型数组中,但是都有各种问题,最后,直接定义char型数组,再直接向其中输入数据。

实验二公钥密码算法实验

[实验目的]

1.掌握密码学中常用的公钥密码算法RSA、ECC的算法原理。

2.掌握RSA、ECC的算法流程和实现方法。

[实验预备]

1.RSA和ECC密码系统所基于的数学难题是什么?

2.RSA和ECC算法的基本原理。

3.公钥密码系统可以取代对称密码系统吗?

4.RSA和ECC的实现过程。

[实验内容]

1.分析RSA、ECC的实现过程。

2.用程序设计语言将算法过程编程实现

3.完成数据的加密运算和解密运算

输入明文:

security

输入密钥:

cryption

对ASCII码进行加密和解密。

[实验步骤]

1.预习RSA、ECC算法。

2.了解大素数的生成、大数的运算、公钥、私钥的生成。

3.写出算法流程,用程序设计语言将算法过程编程实现。

4.输入指定的明文和密钥进行实验,验证结果。

写出所编写程序的流程图和运行界面、运行结果。

程序流程图:

 

 

N

 

Y

 

N

 

Y

 

运行结果:

[问题讨论]

1.总结算法的特点,分析算法的安全性;

2.分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。

回答问题

解:

1>RSA是第一个既能用于数据加密,也能用于数字签名的算法,它易于理解和操作,因而很流行。

RSA的安全性依赖于大素数n的因子分解难题,当n足够大时,可使n的分解无法在多项式时间内完成,因此p、q越大,安全性越高。

但是当用户密钥使用不当,或是攻击者获得e1、e2、n、c1、c2,共用模数n,根据c1=m^e1modn,c2=m^e2modn,若e1,e2互素,则有r*e1+s*e2=1,可以根据(c1^-1)^-r*(c2)^s=m^(r*e1+s*e2)=mmodn,从而得到明文m。

RSA签名算法亦可根据其指数的特点进行攻击,一般攻击者是将某一信息做一下伪装(盲签名思想),再拥有私钥的实体签署,经过计算很容易得到攻击者所想要的信息。

2>由于字母无法进行指数运算,所以需要将字母通过ASCII码转换成数字,再进行指数运算,最后再将数字转化成字符输出。

另由于素数检测函数用的是循环,其时间复杂度太高,如果输入的素数及公钥太大,会一直循环,时间花费太大,所以只能对小素数进行运算。

 

实验三SKEY协议设计实验

[实验目的]

1.掌握身份认证协议的原理和基本思想。

2.掌握SKEY协议的机制和实现方法。

[实验预备]

1.SKEY协议的作用。

2.SKEY协议的安全性分析。

3.SKEY协议的实现过程。

[实验内容]

1.分析SKEY协议的实现过程。

2.用程序设计语言将算法过程编程实现。

3.演示SKEY协议的身份鉴别过程。

[实验步骤]

1.预习SKEY协议的机制。

2.选择和实现相应的摘要算法MD5或SHA。

3.写出算法流程,用程序设计语言将协议过程编程实现。

4.验证SKEY协议的身份鉴别过程。

写出所编写程序的流程图和运行界面、运行结果。

程序流程图:

 

 

不同

 

相同

 

 

 

每输入一次活动密钥就验证一次。

 

运行结果:

100个活动密钥:

输入第100个验证密钥:

[问题讨论]

1.分析SKEY的安全性;

2.分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。

回答问题

解:

1>该协议的安全性依赖于MD5算法的单向性,但是若密码简单,攻击者可以通过碰撞的方法有可能构造两个具有相同MD5的信息,也可通过大字典的方法破解MD5,将常用密码进行MD5后建立数据库,然后和MD5数值进行对比,通过这样的方法来“破解”MD5。

2>运行时将x[R]也打印出来了,这是不安全的,故mian函数里的打印循环程序需要更改。

编译时出现LNK2005错误,选择VC菜单Project->Setting->Link->Catagory,选择Input,再在Ignorelibraries的Edit栏中填入需要忽略的库,然后在Object/library Modules的Edit栏中填入正确的库的顺序。

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2