文档库 最新最全的文档下载
当前位置:文档库 › 密码学实验----

密码学实验----

密码学实验----
密码学实验----

《密码学与信息安全》实验报告精品文档,你值得期待

专业

班级

姓名

学号

2015年 6 月 5 日

实验一古典密码实验

1实验目的

1.理解代替密码学加密过程

2.理解置换密码学加密过程

2实验内容

1.手动完成Caesar密码

2.Caesar加密

3.Caesar密码分析

4.单表置换密码

5.单表置换密码分析

3实验过程

本练习主机A、B为一组,C、D为一组,E、F为一组。

首先使用“快照X”恢复Windows系统环境。

1.手动完成Caesar密码

(1)在实验原理部分我们已经了解了Caesar密码的基本原理,那么请同学们写出当密钥k=3时,对应明文:data security has evolved rapidly的密文:data security has evolved rapidly 。

(2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击“Caesar密码”。在明文输入区输入明文:data security has evolved rapidly。将密钥k 调节到3,查看相应的密文,并与你手动加密的密文进行比较。

请根据密钥验证密文与明文对应关系是否正确。

2.Caesar加密

(1)进入“加密解密”|“Caesar密码”视图,在明文输入区输入明文(明文应为英文),单击“加密”按钮进行加密。

请将明文记录在这里:I am a stident 。

(2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值,并记下该密钥k值用于同组主机的解密。加密工作完成后,单击“导出”按钮将密文默认导出到Caesar共享文件夹(D:\Work\Encryption\Caesar\)中,默认文件名为Caesar密文.txt。

(3)通知同组主机接收密文,并将密钥k通告给同组主机。6

(4)单击“导入”按钮,进入同组主机Work\Encryption\Caesar目录(\\同组主机IP\Work\Encryption\Caesar),打开Caesar密文.txt。

(5)调节密钥k的微调按钮或对照表的移位按钮,将k设为同组主机加密时的密钥k 值,这时解密已经成功。请将明文写出:I am a stident 。

(6)将解密后的明文与同组主机记录的明文比较,请对比明文是否相同。3.Caesar密码分析

(1)本机进入“密码工具”|“加密解密”|“Caesar密码”,在明文输入区输入明文(要求明文有一定的意义以便让同组主机分析)。

请将明文记录在这里:I am a stident 。

(2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值完成Caesar 加密,单击“导出”按钮,将密文默认导出到Caesar共享文件夹中。

(3)通告同组主机(不要通告密钥值k)密文已经放在共享文件夹中,让同组主机获取密文。

(4)单击“导入”按钮将同组主机Caesar密文导入。

(5)调节密钥k的微调按钮或者对照表的移位按钮来调节密钥,从而进行密码分析(平均13次,最坏26次破解)。请将破解出的明文和密钥记录在这里:

密钥k= 6 。

明文I am a stident 。

(6)将破解后的密钥和明文与同组主机记录的密钥和明文比较。如果不同请调节密钥k继续破解。

4.单表置换密码

(1)单击“密码工具”按钮,进入“加密解密”|“单表置换”|“加密/解密”视图,与同组主机协商好一个密钥词组k= i am a student .

(2)根据“单表置换”实验原理计算出置换表。

(3)计算完成置换表以后,在明文输入区输入明文,单击“加密”按钮用置换表的对应关系对明文进行加密,加密完成后,单击“导出”按钮,将密文导出到SingleTable 共享目录中,并通告同组主机获取密文。

请将明文记录在这里:data security has evolved rapidly。

(4)单击“导入”按钮将同组主机单表置换密文导入,根据同组主机置换表完成本机置换表,单击“解密”按钮对密文进行解密。

(5)本机将解密后的明文与同组主机记录的明文对照,如果双方的明文一致,则说明实验成功,否则说明本机或同组主机的置换表计算错误。

5.单表置换密码分析

(1)图5-2-1是由统计学得出的英文字母相对频率表。

图5-2-1

由图5-2-1可以看出,英文字母E出现的频率最高,而J和Z出现的频率最低,这样,就可以通过英文字母出现的频率大致上判定单表置换密码的置换表,从而得到明文。(2)本机进入“密码工具”|“加密解密”|“单表置换”|“密码分析”页面,单击“导入”按钮,将密文“单表置换密码分析密文.txt”导入,单击“统计”按钮,统计密文中每个字母出现的频率,回答下列问题:

在密文中出现频率最高的字母是 A

与上表比较,它可能是由字母 E 置换的。

(3)置换表组框中点击“解密”按钮,这时将得到一个明文。然而此时的明文并不是最终要得到的,可以通过明文的特征和各个字母的比例来调节置换表中的对应关系,从而得到正确的明文。

例如,明文第一段和置换表如图5-2-2所示。

图5-2-2

根据明文我们可猜测图中画线的单词“soe dlda’r”应该为“she didn’t”。首先在置换表中找到明文小写字母o对应的密文大写字母E,然后改变置换表,使猜测的h对应E,依此类推则i对应F,n对应M,t对应T,变换后的置换表如图5-2-3所示。

图5-2-3

单击“解密”按钮,得到明文如图5-2-4所示。

图5-2-4

依此类推便可以得到明文,请根据你的置换表填写表5-2-1。

a b c d e f g h i j k l m

C H I N A B

D

E N G J K L

n o p q r s t u v w x y z

M O P Q R S T U V W X Y Z

4结论

古典密码算法曾经被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要对象是文字信息,利用密码算法实现文字信息的加密和解密。古典密码学可以分为代替密码(也叫做移位密码)和置换密码(也叫做换位密码)两种,其中代替密码典型的有Caesar密码,数乘密码和仿射变换等,置换密码有单表置换和多表置换等。

实验二分组密码实验

1实验目的

1.理解对称加密算法的原理和特点

2.理解DES算法的加密原理

3理解AES算法的加密原理

2实验内容

1.DES加密解密

2.DES算法

3.AES加密解密

4.AES算法

3实验过程

本练习主机A、B为一组,C、D为一组,E、F为一组。

首先使用“快照X”恢复Windows系统环境。

1.DES加密解密

(1)本机进入“密码工具”|“加密解密”|“DES加密算法”|“加密/解密”页签,在明文输入区输入明文:i am a student,you are a pig。

(2)在密钥窗口输入8(64位)个字符的密钥k,密钥k= students 。单击“加密”按钮,将密文导出到DES文件夹(D:\Work\Encryption\DES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。

(3)单击“导入”按钮,从同组主机的的DES共享文件夹中将密文导入,然后在密钥窗口输入被同组主机通告的密钥k,点击“解密”按钮进行DES解密。

(4)将破解后的明文与同组主机记录的明文比较。

2.DES算法

本机进入“密码工具”|“加密解密”|“DES加密算法”|“演示”页签,向64位明

文中输入8个字符(8*8bit=64),向64位密钥中输入8个字符(8*8bit=64)。点击“加密”按钮。完成加密操作,分别点击“初始置换”、“密钥生成演示”、“十六轮加密变换”和“终结置换”按钮,查看初始置换、密钥生成演示、十六轮加密变换和终结置换的详细加密操作流程。

3.AES加密解密

(1)本机进入“密码工具”|“加密解密”|“AES加密算法”|“加密/解密”页签,在明文输入区输入明文:i am a student,you are a pig。

(2)在密钥窗口输入16(128位)个字符的密钥k,要记住这个密钥以用于解密,密钥k= ilikechinesebest。单击“加密”按钮,将密文导出到AES文件夹(D:\Work\Encryption\AES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。

(3)单击“导入”按钮,从同组主机的AES共享文件夹中将密文导入,然后在密钥窗口输入被同组主机通告的密钥k,点击“解密”按钮进行AES解密。

(4)将破解后的明文与同组主机记录的明文比较。

4.AES算法

进入“密码工具”|“加密解密”|“AES加密算法”|“演示”页签。输入128位明文与密钥,执行加密操作,查看各演示模块。

根据实验原理中对AES加密算法的SubBytes变换和ShiftRows变换的介绍,对于以下给出的状态矩阵:

请计算它的SubBytes变换,以及经过SubBytes变换之后,再经过ShiftRows变换的结果。

4结论

对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。对称密码体系通常分为两大类,一类是分组密码(如DES、AES算法),另一类是序列密码(如RC4算法)。

实验三公钥密码实验

1实验目的

1.了解非对称加密机制

2.理解RSA算法的加密原理

3.理解ELGamal算法的加密原理

2实验内容

1.RSA生成公私钥及加密解密过程演示

2.RSA加密解密

3.ELGamal生成公钥及加密解密过程演示

4.ELGamal加密解密

3实验过程

本练习主机A、B为一组,C、D为一组,E、F为一组。

首先使用“快照X”恢复Windows系统环境。

一.RSA生成公私钥及加密解密过程演示

(1)本机进入“密码工具”|“加密解密”|“RSA加密算法”|“公私钥”页签,在生成公私钥区输入素数p和素数q,这里要求p和q不能相等(因为很容易开平方求出p与q的值)并且p与q的乘积也不能小于127(因为小于127不能包括所有的ASCII 码,导致加密失败),你选用的素数p与q分别是:p= 53 ;q= 67 。

(2)单击“随机选取正整数e”下拉按钮,随机选取e,e= 1099 。

(3)单击“生成公私钥”按钮生成公私钥,记录下公钥(1099,3551) ,私钥(1627,3551) 。

(4)在公私钥生成演示区中输入素数p= 53 和素数q= 67 ,还有正整数e= 1099 。

单击“开始演示”按钮查看结果,填写表3-1-1。

表3-1-1 公私钥生成演示结果

私钥d 1627 私钥n 3551

公钥e 1099 公钥n 3551

(5)在加/解密演示区中输入明文m= 2255,公钥n= 3551(m

单击“加密演示”按钮,查看RSA加密过程,然后记录得到的密文c= 2402 。

(6)在密文c编辑框输入刚刚得到的密文,分别输入私钥n= 3551 ,私钥d= 1627 ,点击“解密演示”按钮,查看RSA解密过程,然后记录得到的明文m= 2255 。

(7)比较解密后的明文与原来的明文是否一致。

根据实验原理中对RSA加密算法的介绍,当素数p=13,素数q=17,正整数e=143时,写出RSA私钥的生成过程:

当公钥e=143时,写出对明文m=40的加密过程(加密过程计算量比较大,请使用密码工具的RSA工具进行计算):

利用生成的私钥d,对生成的密文进行解密:

二.RSA加密解密

(1)本机在生成公私钥区输入素数p和素数q,这里要求p和q不能相等,并且p与q 的乘积也不能小于127,记录你输入的素数,p= 23 ,q= 19 。

(2)点击“随机选取正整数e:”下拉按钮,选择正整数e,e= 149 。

(3)点击“生成公私钥”按钮生成公私钥,记录下公钥e= 149 ,n= 437 ;私钥d= 101 ,n= 437 。将自己的公钥通告给同组主机。

(4)本机进入“加密/解密”页签,在“公钥e部分”和“公钥n部分”输入同组主机的公钥,在明文输入区输入明文:112233445566 。

单击“加密”按钮对明文进行加密,单击“导出”按钮将密文导出到RSA共享文

件夹(D:\Work\Encryption\RSA\)中,通告同组主机获取密文

292,292,255,255,337,337,219,219,249,249,289,289。

(5)进入“加密/解密”页签,单击“导入”按钮,从同组主机的RSA共享文件夹中将密文导入,点击“解密”按钮,切换到解密模式,在“私钥d部分”和“私钥

n部分”输入自己的私钥,再次点击“解密”按钮进行RSA解密。

(6)将破解后的明文与同组主机记录的明文比较。

三.ELGamal生成公钥及加密解密过程演示

(1)本机进入“密码工具”|“加密解密”|“ELGamal加密算法”|“公钥”页签,输入素数p,这里要求p不能小于127,记录你输入的素数p= 163 。

单击“本原元素g”下拉按钮,选择本原元素g= 159 。

输入私钥X,X在区间[0, p)上,记录下私钥用于解密,x= 155 。

点击“生成公钥”按钮生成公钥,记录下公钥y= 130 。

(2)在公钥生成演示区中输入素数p= 163 ,本原元素g= 159,私钥x= 155 。

单击“开始演示”按钮查看ELGamal算法生成公钥过程,记录下公钥y= 130 。

(3)在加密演示区中输入明文m= 111 ,素数p= 163 ,本原元素g= 159 ,公钥y= 130 ,和随机数x= 155 。

单击“开始演示”按钮,查看ELGamal加密过程,记录密文C1= 130 ,C2= 101 。

(4)在解密演示区中输入刚刚得到的密文C1和C2,输入素数p= 163 ,私钥x= 155 。

单击“开始演示”按钮,查看ELGamal解密过程,记录得到的明文m= 111 。

根据实验原理中对ELGamal加密算法的介绍,当素数P=311,本原元素g=136,私钥X=3时,写出ElGamal公钥的生成过程:

利用生成的公钥,写出对明文m=40,随机数x=2的加密过程:

利用私钥X=3, 对生成的密文进行解密,请写出解密过程:

四.ELGamal加密解密

(1)本机进入“密码工具”|“加密解密”|“ELGamal加密算法”|“公钥”页签,输入素数p,这里要求p不能小于127,记录你输入的素数p= 163 。

单击“本原元素g”下拉按钮,选择本原元素g= 159 。

输入私钥X,X在区间[0,p)上,记录下私钥用于解密,私钥X= 6 。

单击“生成公钥”按钮生成公钥,记录下公钥Y= 21 。将自己的公钥通告给同组主机。

(2)进入“加密”页面,将同组主机的系统素数、本原元素和公钥输入,再选择一个随机数x输入(0

在明文输入区输入明文:112233445566 。

加密后将密文导出到ELGamal共享文件夹(D:\Work\Encryption\ELGamal\)中,通告同组主机获取密文。c1: 10.

c2: 81,81,76,76,71,71,66,66,61,61,56,56

(3)本机进入“解密”页签,单击“导入”按钮,从同组主机的ELGamal共享文件夹中将密文导入,输入自己的“系统素数P”和“私钥X”,点击“解密”按钮进行ELGamal 解密。

(4)将破解后的明文与同组主机记录的明文比较。

4结论

所谓非对称密钥加密是指每个实体都有自己的公钥和私钥两个密钥,用其中的一个密钥对明文进行加密,都只能用另一个密钥才能解开,并且从其中的一个密钥推导出另一个密钥在计算上都是困难的。非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的发明。

实验四Hash函数实验

1实验目的

1.理解Hash函数的计算原理和特点

2.理解MD5算法原理

3.理解SHA1函数的计算原理和特点

4理解SHA1算法原理

2实验内容

1.MD5生成文件摘要

2.MD5算法

3.SHA1生成文件摘要

4.SHA1算法

3实验过程

本练习主机A、B为一组,C、D为一组,E、F为一组。

首先使用“快照X”恢复Windows系统环境。

一.MD5生成文件摘要

(1)本机进入“密码工具”|“加密解密”|“MD5哈希函数”|“生成摘要”页签,在明文框中编辑文本内容:i am a student 。

单击“生成摘要”按钮,生成文本摘要:3C8A430925A238D7EE931D9A05821E3AD6F8592A 。

单击“导出”按钮,将摘要导出到MD5共享文件夹(D:\Work\Encryption\MD5\)中,并通告同组主机获取摘要。

(2)单击“导入摘要”按钮,从同组主机的MD5共享文件夹中将摘要导入。

在文本框中输入同组主机编辑过的文本内容,单击“生成摘要”按钮,将新生成的摘要与导入的摘要进行比较,验证相同文本会产生相同的摘要。

(3)对同组主机编辑过的文本内容做很小的改动,再次生成摘要,与导入的摘要进行对比,验证MD5算法的抗修改性。

二.MD5算法

本机进入“密码工具”|“加密解密”|“MD5哈希函数”|“演示”页签,在明文输入区输入文本(文本不能超过48个字符),单击“开始演示”,查看各模块数据及算法流程。

根据实验原理中对MD5算法的介绍,如果链接变量的值分别为(其中,M[1]=31323334):A: 2B480E7C

B: DAEAB5EF

C: 2E87BDD9

D: 91D9BEE8

请写出第2轮第1步的运算过程以及经过运算后的链接变量。

三.SHA1生成文件摘要

(1)本机进入“密码工具”|“加密解密”|“SHA1哈希函数”|“生成摘要”页面,在明文框中编辑文本内容:。

单击“生成摘要”按钮,生成文本摘要:。

单击“导出”按钮,将摘要导出到SHA1共享文件夹(D:\Work\Encryption\SHA1\)中,并通告同组主机获取摘要。

(2)单击“导入”按钮,从同组主机的SHA1共享文件夹中将摘要导入。

在文本框中输入同组主机编辑过的文本内容,单击“生成摘要”按钮,将新生成的摘要

与导入的摘要进行比较,验证相同文本会产生相同的摘要。

(3)对同组主机编辑过的文本内容做很小的改动,再次生成摘要,与导入的摘要进行对比,验证SHA1算法的抗修改性。

四.SHA1算法

本机进入“密码工具”|“加密解密”|“SHA1哈希函数”|“演示”页签,在明文输入区输入文本(文本不能超过48个字符),单击“开始演示”,查看各模块数据及算法流程。

根据实验原理中对SHA1算法的介绍,如果链接变量的值分别为(其中,M[1]= E7CBEB94):

A: 39669B34

B: 61E7F48C

C: C04BD57B

D: 8279FF1E

E: 4E85FC91

请写出第21步的运算过程以及经过运算后的链接变量。

4结论

信息安全的核心技术是应用密码技术。密码技术的应用远不止局限于提供机密性服务,密码技术也提供数据完整性服务。密码学上的散列函数(Hash Functions)就是能提供数据完整性保障的一个重要工具。

实验五数字签名实验

1实验目的

1.掌握安全通信中常用的加密算法

2.掌握数字签名过程

3.掌握安全文件传输基本步骤

4.学会利用PGP工具实现安全通信

5.理解安全通信实现过程

2实验内容

1.手动实现信息的安全传输

2.实验操作步骤设计

3.PGP安全通信

3实验过程

本练习主机A、B为一组,C、D为一组,E、F为一组。

首先使用“快照X”恢复Windows系统环境。

一.手动实现信息的安全传输

说明:实验应采用对称加密算法、非对称加密算法和哈希算法相结合的方式,通过使用密码工具实现信息的安全传输。以终端A为发送方,终端B为接收方为例,实现流程大致应如下。

终端A操作

与终端B预先协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;

采用对称加密算法(密钥称之为会话密钥)对传输信息进行加密得到密文,确保传输信息的保密性;

使用终端B的公钥对会话密钥进行加密,确保传输信息的保密性以及信息接收方的不可否认性;

采用哈希函数(生成文件摘要)确保传输信息的完整性,并使用自己的私钥对文件摘要进行签名(得到数字签名),确保信息发送方的不可否认性;

将密文、加密后的会话密钥和数字签名打包封装(放到一起)后,通过网络传输给终端B。

终端B操作:

与终端A预先已协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;使用自己的私钥对终端A加密的会话密钥进行解密,得到准会话密钥;

使用准会话密钥对得到的密文进行解密,得到准明文;

使用终端A的公钥对得到的数字签名进行签名验证,得到准明文摘要;

使用哈希函数计算得到准明文摘要;

将计算得到的摘要与准明文摘要进行比较,若相同则表明文件安全传输成功。

要求:实验同组主机根据实验流程自行设计实验操作步骤,最终实现文件安全传输。二.实验操作步骤设计

请详细描述你所设计的实验步骤。

终端A操作

(1)与终端B预先协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;对称加密算法: DES

非对称加密: RSA

哈希函数: SHA1

(2)采用对称加密算法(密钥称之为会话密钥)对传输信息进行加密得到密文,确保传输信息的保密性;

(3)使用终端B的公钥对会话密钥进行加密,确保传输信息的保密性以及信息接收方的不可否认性;

(4)采用哈希函数(生成文件摘要)确保传输信息的完整性,并使用自己的私钥对文件摘要进行签名(得到数字签名),确保信息发送方的不可否认性;

(5)将密文、加密后的会话密钥和数字签名打包封装(放到一起)后,通过网络传输给终端B。

密文:FC5D0043B5C83431

会话密钥:171

数字签名:(171,107)

终端B操作:

(1)与终端A预先已协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;

对称加密算法: DES

非对称加密: RSA

哈希函数: SHA1

(2)使用自己的私钥对终端A加密的会话密钥进行解密,得到准会话密钥

(3)使用准会话密钥对得到的密文进行解密,得到准明文;

(4)使用终端A的公钥对得到的数字签名进行签名验证,得到准明文摘要;

使用哈希函数计算得到准明文摘要;

将计算得到的摘要与准明文摘要进行比较,若相同则表明文件安全传输成功。三.PGP安全通信

说明:实验应用PGP工具实现信息的安全通信,其实现流程为:本机首先生成公私钥对,并导出公钥给同组主机;在收到同组主机的公钥后将其导入到本机中,并利用其对文件进行加密;将加密后的密文传回给同组主机,本机利用自己的私钥对来自同组主机的密文进行解密。

要求:应用PGP工具过程中所使用的用户名均为userGX格式,其中G为组编号(1-32),X为主机编号(A-F),如第2组主机D,其使用的用户名应为user2D。

1.生成公私密钥

(1)本机单击实验平台“GnuPG”工具按钮,进入工作目录,键入命令:gpg --gen-key 开始生成公私钥对。期间gpg会依次询问如下信息:

欲产生密钥种类(默认选择1)

密钥大小(默认大小2048字节)

密钥有效期限(默认选择0—永不过期)

确定上述输入后进入步骤(2)操作。

(2)生成用户标识,期间gpg会依次询问如下信息:

Real name(用户名,请按本机的组编号和主机编号确定你的用户名)

Email address(Email地址,如user2D@https://www.wendangku.net/doc/7e4402092.html,lab)

Common(注释信息,建议与用户名相同)

确定上述输入后,gpg会提示你将要生成的USER-ID,形如:

user2D (user2D) (user2D@https://www.wendangku.net/doc/7e4402092.html,lab)

键入“O”确定以上信息后,gpg需要一个密码来保护即将生成的用户私钥,为了方便记忆,我们选择密码与用户名相同。

(3)接下来gpg会根据以上信息生成公私密钥对,并将它们存放在C:\Documents and Settings\Administrator\Application Data\gnupg目录下,名字分别为:pubring.gpg和secring.gpg。

「说明」默认情况下Application Data目录是隐藏的,通过“资源浏览器”|“工具”菜单|“文件夹选项”|“查看”选项卡,选中“显示所有文件和文件夹”项,即可显示隐藏的目录和文件。

2.导出公钥

本机在gpg工作目录键入命令:gpg -a -o D:\Work\PGP\userGXpubkey.asc --export userGX (userGX) (userGX@https://www.wendangku.net/doc/7e4402092.html,lab),gpg会将公钥导入到D:\Work\PGP\这个指定目录的userGXpubkey.asc文件中。

将userGXpubkey.asc文件发送到同组主机PGP共享目录中。

3.导入同组主机公钥

本机从同组主机发送来的userGYpubkey.asc文件中,将对方公钥导入至本机gpg库,其命令如下:gpg --import D:\Work\PGP\userGYpubkey.asc。

4.利用对方公钥进行加密

(1)在“D:\Work\PGP\”目录中新建一文本文件“userGX.txt”,内容是: I am a student 。

(2)利用对方公钥对userGX.txt加密,并对其进行签名

在gpg工作目录键入如下命令:gpg -sea -r userGY@https://www.wendangku.net/doc/7e4402092.html,lab 加密文件绝对路径,其中userGY@https://www.wendangku.net/doc/7e4402092.html,lab为USER-ID。加密完成后,gpg还要对其进行签名表明这个密文文件是“我”发出的,而不是“其它人”,在提示处输入前面设置的用于保护本机私钥的密码即可。最后在原文件所在目录下,生成一个名为“userGX.txt.asc”的文件,将该文件发送到同组主机PGP目录中。

5.解密密文

(1)在gpg工作目录下键入命令:gpg -d 加密文件绝对路径> 解密后文件路径,此时gpg要求输入前面设置的用于保护本机私钥的密码,输入密码,解开私钥。在存放加密文件的目录下就生了一个解密后的文件,打开解密文件,浏览正文,与同组主机确定其正确性。

4结论

伴随着密码学的发展,数字签名技术也得以实现,利用数字签名技术可以保证信息传输过程中的数据完整性以及提供对信息发送者身份的认证和不可抵赖性。

实验二 古典密码

实验2 古典密码 1.实验目的 (1)了解古典密码中的基本加密运算。 (2)了解几种典型的古典密码体制。 (3)掌握古典密码的统计分析方法。 2.实验内容 (1)古典密码体制 ①简单移位加密(单表代换) 该加密方法中,加密时将明文中的每个字母向前推移K位。经典恺撒密码加密变换就是这种变换,取k=3。 步骤1:打开CAP4软件,并加载实验一附带的“mw.txt”,如图2-1所示。 图2-1加载文件

步骤2:采用恺撒加密方法手工加密“mw.txt”;打开CAP4菜单栏“Cipher”菜单项选择“simple shift”选项,并选择移位值“shift value”为3,加密步骤1中加载的文件,如图2-2所示。 图2-2 参数设置 图2-3加密文件

步骤3:比较二者的加密结果是否相同。 步骤4:点击CAP4软件中的“Simple analysis”下的“shift”键,观察恺撒加密法的可能密钥值,并分析其攻击的难度,如图2-4所示。 图2-4密钥分析 ②仿射密码加密(单表代换) 在仿射密码加密(affine cipher)中,字母表中的字母被赋予一个数字,例如,a=0,b=1,c=2,…,z=25.仿射密码加密法的密钥为0~25之间的数字对(a,b)。a与26的最大公约数必须为1,这就是说能整除a和26的数只有1.现在假设m为明文字母的数字,而c为密文字母的数字,那么,这两个数字之间有如下关系: c=(am+b)(mod 26) m=a-1(c-b)(mod 26) 其中,(mod 26)的操作是:除以26,得其余数。 例如,选取密钥为(7,3)。因为7与26互素,也就是只有公约数1,所以(7,3)可以作为仿射密码的加密钥。将“hot”转换成数字7、14、19,利用仿射等式生成: c(H)=(7×7+3) mod 26=52 mod 26=0,即为字母“a“。 c(O)=(7×14+3) mod 26=101 mod 26=23,即为字母“x“. c(T)=(7×19+3) mod 26=136 mod 26=6,即为字母”g”. 这样,对于这个密钥,”hot”变成了“axg“.

现代密码学实验报告

现代密码学 实验报告 学生姓名 学号 专业班级计算机科学与技术指导教师段桂华 学院信息科学与工程学院完成时间2016年4月

实验一密码算法实验 [实验目的] 1.掌握密码学中经典的对称密码算法AES、RC4的算法原理。 2.掌握AES、RC4的算法流程和实现方法。 [实验预备] 1.AES算法的基本原理和特点。 2.流密码RC4的密钥流生成以及S盒初始化过程。 [实验内容] 1. 分析AES、RC4的实现过程。 2. 用程序设计语言将算法过程编程实现。 3. 完成字符串数据的加密运算和解密运算 输入十六进制明文:11223344556677889900AABBCCDDEEFF 输入十六进制密钥:13579BDF02468ACE1234567890ABCDEF [实验步骤] 1. 预习AES、RC4算法。 2. 写出算法流程,用程序设计语言将算法过程编程实现。 3. 输入指定的明文、密钥进行实验,验证结果。 4. 自己选择不同的输入,记录输出结果。 写出所编写程序的流程图和运行界面、运行结果。 一、AES算法 1、AES算法简介 AES 是一种可用来保护电子数据的新型加密算法。特别是,AES 是可以使用128、192 和 256 位密钥的迭代式对称密钥块密码,并且可以对 128 位(16 个字节)的数据块进行加密和解密。与使用密钥对的公钥密码不同的是,对称密钥密码使用同一个密钥来对数据进行加密和解密。由块密码返回的加密数据与输入数据具有相同的位数。迭代式密码使用循环结构来针对输入数据反复执行排列和置换运算。 2、算法实现及流程 以加密函数为例,如下所示,首先对密钥进行预处理密钥扩展,然后明文进行Nr(Nr与密钥长度有关)次迭代运算,包括字节替换SubBytes、移位行运算ShiftRows、混合列运算MixColumns、以及轮秘钥加密AddRoundKey。

密码学实验报告模板总结模板计划模板.doc

密码学应用与实践课程实验报告 实验 1:实现 DES密码体制 一、实验目的 1.编写程序实现 DES的加、解 密:1)编程构造 DES的密钥; 2)应用上述获得的密钥将一段英文或文件进行加、解密。 2.用 DES算法实现口令的安全 二、实验内容 1.DES原理 DES综合运用了置换,代换,移位多种密码技术,是一种乘积密码。在算法结构上采用迭代 结构,从而使其结构清晰,调理清楚,算法为对合运算,便于实现,运行速度快。DES使用了初始置换IP 和 IP-1 各一次(相应的置换看算法描述图表)置换P16 次,安排使用这 3 个置换的目的是把数据彻底打乱重排。选择置换 E 一方面把数据打乱重排,另一方面把32 位输入扩展为48 位,算法中除了S- 盒是非线性变换外,其余变换均为显示变换,所以保密 的关键是选择S- 盒。符合以下 3 条准则: (1)对任何一个 S- 盒而言,没有任何线性方程式等价于此S-盒的输出输入关系,即是S- 盒是非线性函数。 (2)改变 s- 盒的任何一位输入,都会导致两位以上的输出改变,即满足" 雪崩效应 " 。(3)当固定某一个位的输入时,S- 盒的 4 个出位之间,其中0 和 1 的个数之差小。这个准 则的本质是数据压缩,把四位输入压缩为 4 位输出。选择 S-盒函数的输入中任意改变数位, 其输出至少变化两位。因为算法中使用了16 次迭代,大大提高了保密性。 2.DES算法由加密、解密和子密钥的生成三部分组成 1)加密 DES算法处理的数据对象是一组64 比特的明文串。设该明文串为m=m1m2m64 (mi=0 或 1) 。明文串经过64 比特的密钥K 来加密,最后生成长度为64 比特的密文E。其加密过程图示如下:

古典密码学实验

一、实验背景与目的 通过实现简单的古典密码算法,理解密码学的相关概念如明文(plaintext)、密文(ciphertext)、加密密钥(encryption key)、解密密钥(decryption key)、加密算法(encryption algorithm)、解密算法(decryption algorithm)等。 二、实验环境 Visual C++6.0 三、实验内容 (1)用C\C++语言实现仿射变换(Affine)加/解密算法;2) (2)用C\C++语言实现统计26个英文字母出现的频率的程序; (3)利用仿射变换加/解密程序对一段较长的英文文章进行加密,再利用统计 软件对明文和密文中字母出现的频率进行统计并作对比,观察有什么规 律。 其中a, b为密钥, 25 , 0≤ ≤b a ,且gcd(a, 26)=1 实验要求:加/解密程序对任意满足条件的a、b都能够处理。仿射变换: 加密: ()26 mod , b am m E c b a + = = 解密: ()()26 mod 1 , b c a c D m b a - = =- 四、实验原理 一个仿射变换对应于一个矩阵和一个向量的乘法,而仿射变换的复合对应于普通的矩阵乘法,只要加入一个额外的行到矩阵的底下,这一行全部是0除了最右边是一个1,而列向量的底下要加上一个1。仿射变换原理在基于MQ问题的多变元公钥密码中,公钥一般是方程组,但是这种没有处理的方程组很容易受到插值法的攻击,例如:首先在q元有限域上选取个变量以及个变量。构造方程组:这里面公钥信息方程组就是:其中是明文信息,而则是密文。可以看出这样的公钥信息很容易受到插值法的攻击,下面使用仿射将

杭电密码学DES密码实验报告

课程实验报告 课程密码学实验 学院通信工程学院 专业信息安全 班级14083611 学号14084125 学生姓名刘博 实验名称DES密码实验 授课教师胡丽琴

DES密码实验 一、实验要求: 1、了解分组密码的起源与涵义。 2、掌握DES密码的加解密原理。 3、用Visual C++实现DES密码程序并输出结果。 二、实验内容: 1、1949年,Shannon发表了《保密系统的通信理论》,奠定了现代密码学的基础。他还指出混淆和扩散是设计密码体制的两种基本方法。扩散指的是让明文中的每一位影响密文中的许多位,混淆指的是将密文与密钥之间的统计关系变得尽可能复杂。而分组密码的设计基础正是扩散和混淆。在分组密码中,明文序列被分成长度为n的元组,每组分别在密钥的控制下经过一系列复杂的变换,生成长度也是n的密文元组,再通过一定的方式连接成密文序列。 2、DES是美国联邦信息处理标准(FIPS)于1977年公开的分组密码算法,它的设计基于Feistel对称网络以及精心设计的S盒,在提出前已经进行了大量的密码分析,足以保证在当时计算条件下的安全性。不过,随着计算能力的飞速发展,现如今DES已经能用密钥穷举方式破解。虽然现在主流的分组密码是AES,但DES的设计原理仍有重要参考价值。在本实验中,为简便起见,就限定DES 密码的明文、密文、密钥均为64bit,具体描述如下: 明文m是64bit序列。 初始密钥K是64 bit序列(含8个奇偶校验bit)。 子密钥K1, K2…K16均是48 bit序列。 轮变换函数f(A,J):输入A(32 bit序列), J(48 bit序列),输出32 bit序列。 密文c是64 bit序列。 1)子密钥生成: 输入初始密钥,生成16轮子密钥K1, K2 (16) 初始密钥(64bit)经过置换PC-1,去掉了8个奇偶校验位,留下56 bit,接着分成两个28 bit的分组C0与D0,再分别经过一个循环左移函数LS1,得到C1与D1,连成56 bit数据,然后经过置换PC-2,输出子密钥K1,以此类推产生K2至K16。

密码学实验指导

密码学实验指导

目录 实验一凯撒密码算法实验 1 实验二维吉利亚密码算法实验 5 实验三普莱费尔密码算法实验 9 实验四 IDEA密码算法实验 17 实验五 BCH纠错编码算法任务书 27

实验一凯撒密码算法实验 1 实验目的 通过实验熟练掌握凯撒密码算法,学会凯撒密码算法程序设计,提高C++程序设计能力。 2 实验学时:2 实验类别:验证实验■综合性实验□设计性实验□ 3 实验环境 软件环境Windows Xp/Windows 2000 Visual c++/Turbo c++ 3.0 硬件系统Pentium 4 3.0G 512MRAM 计算机等 4 算法原理 按照a~z依次对应0~25编码,变量K存放密钥-正整数。变量M存放一明文字符ASCII码,变量C存放M中的数据经加密后得到的一密文字符的ASCII码。 加密算法:C≡(M+K)mod 26,如此继续下去,实现逐个字符进行加密。 5 实验步骤与内容 1)编写程序 2)编辑录入 3)记录调试及进行情况 4)程序结构说明文档 5)程序使用说明文档 6 思考密钥K的有效的最小取值范围 7 实验总结与体会 8 要求提交完整的实验报告 9 参考程序代码 #include #include using namespace std; //获取密钥函数getKey()

int getKey() { int key; cout<<"请输入密钥:"; cin>>key; return key; } //将明文中的字符全部转化为大写的函数change() void change(char s[]) { int i; for(i=0;i96&&s[i]<122) s[i] = s[i]-32; } } //判断输入的明文格式是否有误的函数getError() //有误则返回0,否则就返回1 int getError(char s[]) { int i,error; for(i=0;i65&&s[i]<=82)||(s[i]>96&&s[i]<=122)) { error = 1;

实验一_经典密码学实验_

实验一经典密码学实验 【实验原理】 古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。 1.替代密码 替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做对应替换后形成密文。 替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码。它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。它的加密过程可以表示为下面的函数: E(m)=(m+k) mod n 其中:m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数。 例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的密文为L: E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L 2.置换密码 置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码有时又称为换位密码。 矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6列的形式排在矩阵中,形成如下形式: a t t a c k b e g i n s

密码学实验报告总结

密码学实验报告(本文档为Word版本,下载后可自由编辑) 项目名称:××××××××× 项目负责人:××× 联系电话:××××× 编制日期:×××××

密码学实验报告 实验目的:掌握Caesar密码加密解密原理,并利用VC++编程实现。 实验内容:Caesar密码的加密原理是对明文加上一个密钥(偏移值)而得到密文。假设密钥为3,那么字母“a”对应的ASCII码为97,加上3得100正好是字母“d”的ASCII码值, 实验说明:加密实现的两种方式,只限定英文字母(区分大小写),加密时,根据明文字符是小(大)写字母,采用加密运算: 密文字符=“a”或“A”+(明文字符-“a”或“A”+password%26+26)%26 如果输入其他字符,则直接原样输出,不作处理 可以是任意字符 加密时,我们不做任何区分,直接利用Caesar密码算法 密文字符=明文字符+password 解密反之。 实验结果: void CCaesarDlg::OnButton1() //加密按钮 { UpdateData(TRUE); //从界面上的输入的值传入成员变量 m_crypt=m_plaintxt; //密文进行初始化,它与明文的长度是相同的 for(int i=0;i=48&&m_plaintxt.GetAt(i)<=57) //如果输入的字符是数字 { m_crypt.SetAt(i,'0'+(m_plaintxt.GetAt(i)-'0'+m_password%10 +10)%10);

现代密码学-RC4校验 实验报告

现代密码学 实 验 报 告 院系:理学院 班级:信安二班 姓名: 学号:

前言 密码学(Cryptology)是研究秘密通信的原理和破译秘密信息的方法的一门学科。密码学的基本技术就是对数据进行一组可逆的数学变换,使未授权者不能理解它的真实含义。密码学包括密码编码学(Cryptography)和密码分析学(Cryptanalyst)两个既对立又统一的主要分支学科。研究密码变化的规律并用之于编制密码以保护信息安全的科学,称为密码编码学。研究密码变化的规律并用之于密码以获取信息情报的科学,称为密码分析学,也叫密码破译学。 密码学在信息安全中占有非常重要的地位,能够为信息安全提供关键理论与技术。密码学是一门古老而深奥的学问,按其发展进程,经历了古典密码和现代密码学两个阶段。现代密码学(Modern Cryptology)通常被归类为理论数学的一个分支学科,主要以可靠的数学方法和理论为基础,为保证信息的机密性、完整性、可认证性、可控性、不可抵赖性等提供关键理论与技术。

RC4密码算法算法实现 实验目的: 理解流密码的概念及相关结构; 理解并能够编写基本的流密码体制; 熟练应用C/C++编程实现RC4密码算法体制。 实验内容: 编程实现RC4加/解密算法。 实验原理: RC4算法是一种序列密码体制或称流密码体制,其加密密钥和解密密钥相同RC4的 密钥长度可变,但为了确保哪去安全强度,目前RC4至少使用128位的密钥。 用1~256个字节(8~2048位)的可变长度密钥初始化一个256个字节的状态向量S,S的元素记为S[0],S[1],…,S[255],从始至终置换后的S包含从0到255的所有8位数。对于加密和解密,字节K是从S的255个元素中按一种系统化的方式选出的一个元素生成的。每生成一个K的值,S中的元素个体就被重新置换一次。 实验代码: Encrypt.h文件: #ifndef _ENCRYPT_RC4_ #define _ENCRYPT_RC4_ #include

古典加密实验报告

古典密码算法 一、实验目的 学习常见的古典密码学算法,通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 二、实验要求 分析替代密码算法和置换密码算法的功能需求,详细设计实现替代密码算法和置换密码算法的数据结构和流程,给出测试用例和测试步骤,得出测试和结论。替代密码算法和置换密码算法的实现程序必须提供加密和解密两个接口:int encrypt()和int decrypt()。当加密或者解密成功时返回CRYPT_OK,失败时返回CRYPT_ERROR。 三、实验原理 古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种算法:替代密码和置换密码。 1.替代密码的原理是使用替代法进行加密,就是将明文由其它的字母、数字或符合所代替后形成密文。这里每个明文字母对应的密文字母可能是一个,也可能是多个。接收者对密文进行逆向替换即可得到明文。 2.置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。 我实验过程中替代密码是单表替换,用字母的下一个字母代替:for(j = 0; j < i; j++)

{ if(96 < Mingwen[j]&&Mingwen[j] < 123) { Miwen[j] = 'a' + (Mingwen[j] - 'a' + 1) % 26; } else { Miwen[j] = 'A' + (Mingwen[j] - 'A' + 1) % 26; } } 置换加密主要是对密钥进行整理,还有就是动态分配二维数组,将明文和密文填充置的过程,换密码关键代码如下: for(a = 0; a < k; a++) { for(b = 0; b < hang; b++) { Miwen[i] = p[b][ord[j]]; i++; } j++; } for(a = 0; a < 26; a++) { for(b = 0; b < k; b++) { if(key1[b] == alphatable[a]) { ord[b] = ind++; } } } 具体加密见下图:

密码学实验报告(AES,RSA)

华北电力大学 实验报告| | 实验名称现代密码学课程设计 课程名称现代密码学 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:

[综合实验一] AES-128加密算法实现 一、实验目的及要求 (1)用C++实现; (2)具有16字节的加密演示; (3)完成4种工作模式下的文件加密与解密:ECB, CBC, CFB,OFB. 二、所用仪器、设备 计算机、Visual C++软件。 三. 实验原理 3.1、设计综述 AES 中的操作均是以字节作为基础的,用到的变量也都是以字节为基础。State 可以用4×4的矩阵表示。AES 算法结构对加密和解密的操作,算法由轮密钥开始,并用Nr 表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表2所示)。AES 算法的主循环State 矩阵执行1 r N 轮迭代运算,每轮都包括所有 4个阶段的代换,分别是在规范中被称为 SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换) 和AddRoundKey ,(由于外部输入的加密密钥K 长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥 K 扩展成更长的比特串,以生成各轮的加密和解密密钥。最后执行只包括 3个阶段 (省略 MixColumns 变换)的最后一轮运算。 表2 AES 参数 比特。

3.2、字节代替(SubBytes ) AES 定义了一个S 盒,State 中每个字节按照如下方式映射为一个新的字节:把该字节的高4位作为行值,低4位作为列值,然后取出S 盒中对应行和列的元素作为输出。例如,十六进制数{84}。对应S 盒的行是8列是4,S 盒中该位置对应的值是{5F}。 S 盒是一个由16x16字节组成的矩阵,包含了8位值所能表达的256种可能的变换。S 盒按照以下方式构造: (1) 逐行按照升序排列的字节值初始化S 盒。第一行是{00},{01},{02},…,{OF}; 第二行是{10},{l1},…,{1F}等。在行X 和列Y 的字节值是{xy}。 (2) 把S 盒中的每个字节映射为它在有限域GF(k 2)中的逆。GF 代表伽罗瓦域,GF(82) 由一组从0x00到0xff 的256个值组成,加上加法和乘法。 ) 1(] [2)2(3488++++= x x x x X Z GF 。{00}被映射为它自身{00}。 (3) 把S 盒中的每个字节记成),,,,,,,,(012345678b b b b b b b b b 。对S 盒中每个字节的每位 做如下变换: i i i i i i c b b b b b i b ⊕⊕⊕⊕⊕='++++8mod )7(8mod )6(8mod )5(8mod )4( 上式中i c 是指值为{63}字节C 第i 位,即)01100011(),,,,,,,,(012345678=c c c c c c c c c 。符号(')表示更新后的变量的值。AES 用以下的矩阵方式描述了这个变换: ?? ? ?? ? ? ? ? ? ??? ? ????????????+???????????????????????????????????????? ????????????=??????????????????????????0110001111111000011111000011111000011111100011111100011111100011111100017654321076543210b b b b b b b b b b b b b b b b 最后完成的效果如图:

密码学实验报告

《—现代密码学—》 实验指导书 适用专业:计算机科学与技术 江苏科技大学计算机科学学院 2011年11 月 实验一古典密码 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的

编程实现古典密码的加解密方法。 二、实验内容 (1)移位密码的加密和解密函数。 (2)仿射密码的加密和解密函数。 (3)维吉尼亚密码的加密和解密函数。 三、实验原理、方法和手段 (1)移位密码 对于明文字符x ,加密密钥k ,加密方法为 ,1,2,,25y x k k =+= 解密方法为 ,1,2,,25x y k k =-= (2)仿射密码 对于明文字符x ,加密密钥(,)a b ,加密方法为 ,gcd(,26)1,1,2,,25y ax b a b =+== 解密方法为 1()x a y b -=- (3)维吉尼亚密码 选取密钥字Key ,将明文按照密钥字长度分组,将明文与密钥字对应字符相加并对26求余,即为密文字符。 i i i y x k =+ 解密过程为 i i i x y k =- 四、实验组织运行要求 本实验采用集中授课形式,每个同学独立完成上述实验要求。 五、实验条件 每人一台计算机独立完成实验,有如下条件: (1)硬件:微机;

(2)软件:VC++6.0、VC++.Net 2005。 六、实验步骤 (1)将各函数编写完成; (2)在主函数中调用各函数,实现加密和解密。 七、实验报告 实验报告主要包括实验目的、实验内容、实验原理、源程序及结果。移位密码加密: #include #define n 3 //移位位数 void change(char string[]) { int i; for(i=0;string[i]!='\0';i++) { if(string[i]>='a'&&string[i]<='z') string[i]=(string[i]+n>='z'?string[i]+n-26:string[i]+n); } } void main() { char str[100]; printf("请输入一段明文"); gets(str); change(str); printf("密文为:\n"); puts(str); }

现代密码学学习报告

现代密码学学习报告 第一章 概论 1.1信息安全与密码技术 信息的一般定义属于哲学范畴。信息是事物运动的状态与方式,是事物的一种区别于物质与能量的属性。 “信息”——数据。 机密性——拥有数据的一方或交换数据的各方不希望局外人或对手获得、进而读懂这些数据。 完整性——数据在交换及保存中不被未授权者删除或改动,或者合法的接受者能方便的判断该数据是否已经被篡改。 认证性——也称“不可否认性”或“抗抵赖”,包括信息源和接收端认证性,即信息系统中的实体不能否认或抵赖曾经完成的发送消息或接收消息的操作。利用信息源证据可以检测出消息发送方否认已发送某消息的抵赖行为,利用接收端证据可以检测出消息接收方否认已接收某消息的抵赖行为。此类证据通常还包括时间/时序或“新鲜性”证据。 可用性——授权用户能对信息资源有效使用。显然,信息系统可靠性是其支撑之一。 公平性——信息具有的社会或经济价值只能在交互中体现。公平性就是指交换规则或交互协议要使得参与信息交互的各方承担安全风险上处于相同或相当的地位。 可控性——是指对信息的传播及传播的内容以至信息的机密性具有控制能力的特性。一般指信息系统或(社会)授权机构根据某种法规对信息的机密性、信息的传播通道、特定内容信息的传播具有控制能力的特性,以及获取信息活动审计凭证能力的特性,如“密钥托管”、“匿名撤销”、实时内容检测与过滤、计算机犯罪或诉讼的司法取证等。 1.2密码系统模型和密码体制 密码系统基本模型: 密码体制的分类:对称密码体制的古典算法有简单代换、多名代换、多表代换等。 非对称密码体制:使用非对称密码体制的每一个用户一个是可以公开的,称为公开密钥,简称公钥,用pku 表示;另外一个则是秘密的,称为秘密秘钥,简称私钥,用sku 表示。非对称密码体制又称为双钥密码体制或公钥密码体制。 公钥密码体制的主要特点是将加密能力分开并分别并分别授予不同的用户,因而可以实现信 源M 加密器() c m =1k E 非法接入者密码分析员 (窃听者)搭线信道 (主动攻击) 搭线信道(被动攻击)解密器接收者 ()m c =2k D 密钥源密钥源1K 2 K m m 'm c ' c 1 k 2k 信道密钥信道

Shannon与现代密码学

Shannon与现代密码学 王育民 西安电子科技大学 教育部计算机网络与信息安全重点实验室 1949年Shannon公开发表了《保密系统的通信理论》[8],开辟了用信息论研究密码学的新方向,使他成为密码学的先驱、近代密码理论的奠基人。这篇文章是他在1945年为贝尔实验室所完成的一篇机密报告《A Mathematical Theory of Cryptograph》[1,[24]]。Boston 环球报称此文将密码从艺术变成为科学。(Transformed cryptography from an art to a science.)。本文发表后促使他被聘为美国政府密码事务顾问。 这一工作的背景是他在1941年在贝尔曾从事密码学研究工作,接触到SIGSAL Y电话,这是一种马桶大小的语言置乱设备,供丘吉尔和罗斯福进行热线联系。这一电话保密机所用的密码就是在今天也破不了[1,p.xx]。 SIGSAL Y电话机 这篇文章对于研究密码的人来说是需要认真读的一篇经典著作。本文奠定了现代密码理论的基础。可以说,最近几十年来密码领域的几个重要进展都与Shannon这篇文章所提出的思想有密切关系。 1.保密通信系统的数学模型 Shannon以概率统计的观点对消息源、密钥源、接收和截获的消息进行数学描述和分析,用不确定性和唯一解距离来度量密码体制的保密性,阐明了密码系统、完善保密性、纯密码、理论保密性和实际保密性等重要概念,从而大大深化了人们对于保密学的理解。这使信息论

成为研究密码学和密码分析学的一个重要理论基础,宣告了科学的密码学时代的到来。 2. 2. 正确区分信息隐藏和信息保密 Shannon在引论中就明确区分了信息隐藏(隐匿信息的存在)和信息保密(隐匿信息的真意),以及模拟保密变换和数字信号加密(密码)不同之处。Shannon称后者为真保密系统(True secrecy system) 3. 密码系统与传信系统的对偶性 传信系统是对抗系统中存在的干扰(系统中固有的或敌手有意施放的),实现有效、可靠传信。 Shannon说:“从密码分析者来看,一个保密系统几乎就是一个通信系统。待传的消息是统计事件,加密所用的密钥按概率选出,加密结果为密报,这是分析者可以利用的,类似于受扰信号。” 密码系统中对消息m的加密变换的作用类似于向消息注入噪声。密文c就相当于经过有扰信道得到的接收消息。密码分析员就相当于有扰信道下原接收者。所不同的是,这种干扰不是信道中的自然干扰,而是发送者有意加进的、可由己方完全控制、选自有限集的强干扰(即密钥),目的是使敌方难于从截获的密报c中提取出有用信息,而己方可方便地除去发端所加的强干扰,恢复出原来的信息。 传信系统中的信息传输、处理、检测和接收,密码系统中的加密、解密、分析和破译都可用信息论观点统一地分析研究。密码系统本质上也是一种传信息系统。是普通传信系统的对偶系统。 4. 含糊度在破译和设计密码中的作用

密码学实验----

《密码学与信息安全》实验报告 专业 班级 姓名 学号 2015年 6 月 5 日

实验一古典密码实验 1实验目的 1.理解代替密码学加密过程 2.理解置换密码学加密过程 2实验内容 1.手动完成Caesar密码 2.Caesar加密 3.Caesar密码分析 4.单表置换密码 5.单表置换密码分析 3实验过程 本练习主机A、B为一组,C、D为一组,E、F为一组。 首先使用“快照X”恢复Windows系统环境。 1.手动完成Caesar密码 (1)在实验原理部分我们已经了解了Caesar密码的基本原理,那么请同学们写出当 密钥k=3时,对应明文:data security has evolved rapidly的密文:data security has evolved rapidly 。 (2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点 击“Caesar密码”。在明文输入区输入明文:data security has evolved rapidly。 将密钥k调节到3,查看相应的密文,并与你手动加密的密文进行比较。 请根据密钥验证密文与明文对应关系是否正确。 2.Caesar加密 (1)进入“加密解密”|“Caesar密码”视图,在明文输入区输入明文(明文应为英 文),单击“加密”按钮进行加密。 请将明文记录在这里:I am a stident 。 (2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值,并记下该密钥k值用于同组主机的解密。加密工作完成后,单击“导出”按钮将密文默认导出到Caesar共享文件夹(D:\Work\Encryption\Caesar\)中,默认文件名为Caesar密文.txt。 (3)通知同组主机接收密文,并将密钥k通告给同组主机。 6 (4)单击“导入”按钮,进入同组主机Work\Encryption\Caesar目录(同组主机IP\Work\Encryption\Caesar),打开Caesar密文.txt。 (5)调节密钥k的微调按钮或对照表的移位按钮,将k设为同组主机加密时的密钥k 值,这时解密已经成功。请将明文写出:I am a stident 。 (6)将解密后的明文与同组主机记录的明文比较,请对比明文是否相同。 3.Caesar密码分析 (1)本机进入“密码工具”|“加密解密”|“Caesar密码”,在明文输入区输入明文(要求明文有一定的意义以便让同组主机分析)。 请将明文记录在这里:I am a stident 。 (2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值完成Caesar 加密,单击“导出”按钮,将密文默认导出到Caesar共享文件夹中。 (3)通告同组主机(不要通告密钥值k)密文已经放在共享文件夹中,让同组主机获 取密文。 (4)单击“导入”按钮将同组主机Caesar密文导入。

《现代密码学》实验报告

现代密码学实验报告 学生姓名骆秀娟 学号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程序流程图: AES运行结果:

RC4流程图:

RC4运行结果: [问题讨论] 1. 在DES算法中有哪些是弱密钥?哪些是半弱密钥? 2. 改变明文或密钥中的一个比特值可能影响AES值中的多少比特? 3.分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。 回答问题 解:1>弱密钥有以下几种情况:全0;全1;一半为0,一半为1; 半弱密钥如下:E01F E01F E01F E01F FE01 FE01 FE01 FE01 E001 E001 F101 F101 FE1F FE1F FE01 FE01 2>改变一个比特值最多改变4个AES值。 3>在RC4实验中,为了将输入的char型密钥分个存储进数组中,刚开始我想把它转化为string型,再存储,但是string型数据不能直接从键盘输入,且最后

古典密码实验一

一、实验名称古典密码算法 二、实验目的 通过编程实现经典的代替密码算法和置换密码,包括移位密码、维吉尼亚密码、周期置换密码、列置换密码,加深对代替技术的了解,为现代分组密码实验奠定基础。 三、实验环境(实验所使用的器件、仪器设备名称及规格) 运行Windows 或Linux 操作系统的PC 机,具有gcc(Linux)、VC(Windows)等C 语言编译环境。 四、实验任务及其要求 (1)根据实验原理部分对移位密码的介绍,自己创建明文信息,并选择一个密钥,编 写移位密码的实现程序,实现加密和解密操作。 (2)根据实验原理部分对维吉尼亚密码的介绍,自己创建明文信息,并选择一个密钥, 编写维吉尼亚密码的实现程序,实现加密和解密操作。 (3)根据实验原理部分对周期置换密码的介绍,自己创建明文信息,并选择一个密钥, 编写周期置换密码的实现程序,实现加密和解密操作。 (4)根据实验原理部分对列置换密码的介绍,自己创建明文信息,并选择一个密钥, 编写列置换密码的实现程序,实现加密和解密操作。 五、实验设计(包括原理图、真值表、分析及简化过程、卡诺图、源代码等) 1.移位密码 移位密码(Shift Cipher)是一种典型的单表替代密码,也称为加法密码。 移位密码的加密方法就是将明文中的每个字母用其在字母表后面的第k 个字母替代,它的加密过程可以表示为: c = (m + k) mod n 其中,m 为明文字母在字母表中的位置数;n 为字母表中的字母总数;k 为密钥; c 为密文字母在字母表中对应的位置数。相应的,移位密码的解密过程可以表示为:m = (c - k) mo d n 移位密码的一个典型代表就是凯撒密码(Ceaser Cipher),它是k=3 时的移位密码。使用英文字母表的撒密码的加(解)密可以表示为:m = (c + 3) mod 26 m = (c - 3) mod 26,例如, 明文:attacks at nine am

密码学实验

实验一古典密码实验 1实验目的 理解置换加密过程 2实验内容 1.利用单表置换密码实现简单加密解密. 2.对单表置换密码的分析. 3实验过程 (1).与同组协商的密钥词组:K=IAMSTUDENT (2)根据“单表置换”实验原理计算出置换表; (3)得到置换表后在明文区输入明文进行加密. (3)将加密结果导入,根据同组主机置换表完成本机置换表,对密文解密,(4)本机解密明文与同组主机明文对照,结果一致,实验完成. 二,单表置换密码分析 (1)本机进入“密码工具”|“加密解密”|“单表置换”|“密码分析”页面,单击“导入”按钮,将密文“单表置换密码分析密 文.txt”导入,单击“统计”按钮,统计密文中每个字母出现的 频率, (2),置换表组框中点击“解密”按钮,这时将得到一个明文。然而此时的明文并不是最终要得到的,通过明文的特征和各个字母的比例来调节置换表中的对应关系,得到正确的明文。调整后的置换表如下:

(3)对密文解密如下: 4结论 通过将解密后的明文和同组主机记录的明文对照,得到相同结果,说明成功。古典密码学中的单表置换在算法上简洁明了,易懂,并对明文进行一定的加密,然而通过对单表置换密码的分析,通过统计规律,我们可以通过英文字母出现的频率来破解密文,这样看来其实并不是完全安全的,

实验二分组密码实验 1实验目的 1.理解对称加密算法的原理和特点 2.理解DES算法的加密原理 3理解AES算法的加密原理 2实验内容 1.进行简单的DES加密解密. 2.利用AES原理实现加密解密, 3实验过程 一.进入“密码工具”|“加密解密”|“AES加密算法”|“加密/解密” 页签,在明文输入区输入明文 二.(1) 本机进入“密码工具”|“加密解密”|“AES加密算法”|“加密/解密”页签,在明文输入区输入明文:。本机进入“密码工具”|“加密解密”|“AES加密算法”|“加密/解密”页签,在明文输入区输入明文 (2)在密钥窗口输入16(128位)个字符的密钥k,要记住这个密钥以用于解密,密钥k= 。单击“加密”按钮,将密文导出到AES文件夹(D:\Work\Encryption\AES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。 (3)单击“导入”按钮,从同组主机的AES共享文件夹中将密文导入,然后

实验报告_密码学

信息安全实验报告 学号: 学生姓名: 班级:

实验三密码学实验 一、古典密码算法实验 一、实验目的 通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 二、编译环境 运行 windows 或 linux 操作系统的 PC 机,具有 gcc(linux)、VC (windows)等 C语言编译环境。 三、实验原理 古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。 1.替代密码 替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如:明文字母 a、b、c、d ,用 D、E、F、G做对应替换后形成密文。 替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码。它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第 k个字母替代。它的加密过程可以表示为下面的函数:E(m)=(m+k) mod n 其中:m 为明文字母在字母表中的位置数;n 为字母表中的字母个数;k 为密钥;E(m)为密文字母在字母表中对应的位置数。例如,对于明文字母 H,其在字母表中的位置数为 8,设 k=4,则按照上式计算出来的密文为 L: E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L

AES——密码学实验报告

实验报告 【实验名称】AES加密解密实验 姓名:学号:班级:日期:10月20日 【实验目的】 1.掌握AES算法的基本原理 2.了解AES算法的详细步骤 【实验环境】 1.本试验需要密码教学实验系统的支持 2.操作系统为Windows 2000或者Windows XP 【实验内容】 1.掌握AES算法的原理及过程 2.完成AES密钥扩展运算 3.完成AES数据加密运算 【实验步骤】 1.打开“AES理论学习”,掌握DES算法的加解密原理; 2.打开“AES算法流程”,开始DES单步加密实验,如图10-1; 3.选择密钥输入为ASCII码或十六进制码模式,输入密钥;若为ASCII码模式,则输入 8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F); 4.点击“字节矩阵”按钮,将输入的密钥转化为密钥字节矩阵,从左至右每一列依次 为W0, W1, W2, W3; 5.依次点击“RotWord”、“SubWord”、“轮常量异或”,对W3依次进行“循环移 位”、“S盒”、“轮常量异或”操作并与W0异或得到W4,; 6.点击“异或”按钮,使得W1与W4进行异或得到W5 7.点击“生成W6和W7”按钮,生成W6和W7 8.点击“生成所有轮密钥”按钮,生成1~10轮轮密钥

9.进入第二部分——加密,选择加密输入为ASCII码或十六进制码模式,输入明文;若 为ASCII码模式,则输入8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F); 10.点击“字节矩阵”按钮,将输入明文转化为明文字节矩阵; 11.点击“AddRoundKey”按钮,使明文字节矩阵与密文字节矩阵进行逐比特异或; 12.接下来进行第一轮操作,依次点击“SubBytes”、“ShiftRows”、“MixColumns”、

相关文档