密码学实验报告模板

上传人:ji****72 文档编号:37705288 上传时间:2018-04-21 格式:DOC 页数:32 大小:773.50KB
返回 下载 相关 举报
密码学实验报告模板_第1页
第1页 / 共32页
密码学实验报告模板_第2页
第2页 / 共32页
密码学实验报告模板_第3页
第3页 / 共32页
密码学实验报告模板_第4页
第4页 / 共32页
密码学实验报告模板_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《密码学实验报告模板》由会员分享,可在线阅读,更多相关《密码学实验报告模板(32页珍藏版)》请在金锄头文库上搜索。

1、院 系: 计算机科学学院 专 业:计算机科学与技术 年 级: 08 级 课程名称: 信息安全 班级 : 计科一大班 姓名学号: 指导教师: 孟博 2011 年 11 月 14 日年级 2008 学号专业计算机科学与技术班号计科一大班姓名设计型综合型创新型实验名称Engima 密码算法实验 类型实 验 目 的 或 要 求通过使用 Engima 密码模拟器,加深对古典密码体制的了解,为深入学习现代密码学奠定基础。实 验 原 理 ( 算 法 流 程 )ENIGMA 看起来是一个装满了复杂而精致的元件的盒子。不过要是我们把它打开 来,就可以看到它可以被分解成相当简单的几部分。下面的图是它的最基本部分的

2、示 意图,我们可以看见它的三个部分:键盘、转子和显示器。 在上面 ENIGMA 的照片上,我们看见水平面板的下面部分就是键盘,一共有 26 个键, 键盘排列接近我们现在使用的计算机键盘。为了使消息尽量地短和更难以破译,空格 和标点符号都被省略。在示意图中我们只画了六个键。实物照片中,键盘上方就是显 示器,它由标示了同样字母的 26 个小灯组成,当键盘上的某个键被按下时,和此字 母被加密后的密文相对应的小灯就在显示器上亮起来。同样地,在示意图上我们只画 了六个小灯。在显示器的上方是三个转子,它们的主要部分隐藏在面板之下,在示意 图中我们暂时只画了一个转子。键盘、转子和显示器由电线相连,转子本身也

3、集成了 6 条线路(在实物中是 26 条) , 把键盘的信号对应到显示器不同的小灯上去。在示意图中我们可以看到,如果按下 a 键,那么灯 B 就会亮,这意味着 a 被加密成了 B。同样地我们看到,b 被加密成了 A,c 被加密成了 D,d 被加密成了 F,e 被加密成了 E,f 被加密成了 C。于是如果我 们在键盘上依次键入 cafe(咖啡) ,显示器上就会依次显示 DBCE。这是最简单的加 密方法之一,把每一个字母都按一一对应的方法替换为另一个字母,这样的加密方式 叫做“简单替换密码”。简单替换密码在历史上很早就出现了。著名的“凯撒法”就是一种简单替换法,它把每个字母和它在字母表中后若干个位

4、置中的那个字母相对应。比如说我们取后三个位置, 那么字母的一一对应就如下表所示:明码字母表:abcdefghijklmnopqrstuvwxyz 密码字母表:DEFGHIJKLMNOPQRSTUVWXYZABC于是我们就可以从明文得到密文:(veni, vidi, vici, “我来,我见,我征服”是儒勒凯撒 征服本都王法那西斯后向罗马元老院宣告的名 言)明文:veni, vidi, vici 密文:YHAL, YLGL, YLFL很明显,这种简单的方法只有 26 种可能性,不足以实际应用。一般上是规定一个比 较随意的一一对应,比如明码字母表:abcdefghijklmnopqrstuvwxy

5、z 密码字母表:JQKLZNDOWECPAHRBSMYITUGVXF甚至可以自己定义一个密码字母图形而不采用拉丁字母。但是用这种方法所得到的密 文还是相当容易被破解的。至迟在公元九世纪,阿拉伯的密码破译专家就已经娴熟地 掌握了用统计字母出现频率的方法来击破简单替换密码。破解的原理很简单:在每种 拼音文字语言中,每个字母出现的频率并不相同,比如说在英语中,e 出现的次数就 要大大高于其他字母。所以如果取得了足够多的密文,通过统计每个字母出现的频率, 我们就可以猜出密码中的一个字母对应于明码中哪个字母(当然还要通过揣摩上下文 等基本密码破译手段) 。柯南道尔在他著名的福尔摩斯探案集中跳舞的人里详细

6、 叙述了福尔摩斯使用频率统计法破译跳舞人形密码的过程。所以如果转子的作用仅仅是把一个字母换成另一个字母,那就没有太大的意思了。但 是大家可能已经猜出来了,所谓的“转子”,它会转动!这就是谢尔比乌斯关于 ENIGMA 的最重要的设计当键盘上一个键被按下时,相应的密文在显示器上显示, 然后转子的方向就自动地转动一个字母的位置(在示意图中就是转动 1/6 圈,而在实 际中转动 1/26 圈) 。下面的示意图表示了连续键入 3 个 b 的情况: 当第一次键入 b 时,信号通过转子中的连线,灯 A 亮起来,放开键后,转子转动一格, 各字母所对应的密码就改变了;第二次键入 b 时,它所对应的字母就变成了

7、C;同样 地,第三次键入 b 时,灯 E 闪亮。这不是一种简单替换密码。同一个字母 b 在明文的不同位置时,可以被不同的字母替 换,而密文中不同位置的同一个字母,可以代表明文中的不同字母,频率分析法在这 里就没有用武之地了。这种加密方式被称为“复式替换密码”。但是我们看到,如果连续键入 6 个字母(实物中 26 个字母) ,转子就会整整转一圈, 回到原始的方向上,这时编码就和最初重复了。而在加密过程中,重复的现象是很危 险的,这可以使试图破译密码的人看见规律性的东西。于是谢尔比乌斯在机器上又加 了一个转子。当第一个转子转动整整一圈以后,它上面有一个齿拨动第二个转子,使 得它的方向转动一个字母的

8、位置。看下面的示意图(为了简单起见,现在我们将它表 示为平面形式): 这里(a)图中我们假设第一个转子(左边的那个)已经整整转了一圈,按 b 键时显示器 上 D 灯亮;当放开 b 键时第一个转子上的齿也带动第二个转子同时转动一格,于是(b) 图中第二次键入 b 时,加密的字母为 F;而再次放开键 b 时,就只有第一个转子转动 了,于是(c)图中第三次键入 b 时,与 b 相对应的就是字母 B。(写不完时,可另加附页。 )组 内 分 工 ( 可 选 )实 验 结 果 分 析 及 心 得 体 会加密成 绩 评 定教师签名:年 月 日备注:源代码附后,源代码要求有注释说明年级 2008 学号0806

9、1010 08061014 08061112专业计科班号计科一大班姓名钟豪钟豪 温德兴温德兴 刘万杰刘万杰设计型综合型创新型实验名称基于 RSA 的数字签名实现实验 类型实 验 目 的 或 要 求掌握 RSA 算法的基本原理,通过用 RSA 算法对实际数据进行加密和解密 来深刻了解 RSA 的运行原理。对数字签名有所了解,理解和掌握 MD5 算法, 以及如何利用 RSA 和 MD5 算法来实现数字签名。实 验 原 理 ( 算 法 流 程 )公钥密码体制中,解密和加密密钥不同,解密和加密可分离,通信双方无 须事先交换密钥就可建立起保密通信,较好地解决了传统密码体制在网络通 信中出现的问题.另外,

10、随着电子商务的发展,网络上资金的电子交换日益频繁, 如何防止信息的伪造和欺骗也成为非常重要的问题.数字签名可以起到身份 认证,核准数据完整性的作用.目前关于数字签名的研究主要集中基于公钥密 码体制的数字签名. 公钥密码体制的特点是:为每个用户产生一对密钥(PK 和 SK);PK 公开,SK 保 密;从 PK 推出 SK 是很困难的;A,B 双方通信时,A 通过任何途径取得 B 的公 钥,用 B 的公钥加密信息.加密后的信息可通过任何不安全信道发送.B 收到密 文信息后,用自己私钥解密恢复出明文. .RSA 公钥密码体制到目前为止还是一种认可为安全的体制. RSA 算法和用 RSA 算法实现数字

11、签名的理论,以及它们在实际应用中的实现. 1、RSA 算法 RSA 算法是一种非对称密码算法,所谓非对称,就是指该算法需要 一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA 的算法涉及三个参数, n、e1、e2。 其中,n 是两个大质数 p、q 的积,n 的二进制表示时所占用的位数, 就是所谓的密钥长度。 e1 和 e2 是一对相关的值, e1 可以任意取,但要求 e1 与(p-1)*(q- 1)互质;再选择 e2,要求(e2*e1)mod(p-1)*(q-1)=1。 (n 及 e1),(n 及 e2)就是密钥对。 RSA 加解密的算法完全相同 ,设 A 为明文,B 为密文,则:

12、A=Be1 mod n;B=Ae2 mod n; e1 和 e2 可以互换使用,即: A=Be2 mod n;B=Ae1 mod n; 2、RSA 数字签名算法的理论描述 RSA 数字签名算法的过程为:A 对明文 m 用解密变换作: s Dk (m)=md mod n,其中 d,n 为 A 的私人密钥,只有 A 才知道它;B 收到 A 的签名后,用 A 的公钥和加密变换得到明文,因: Ek(s)= Ek(Dk (m)= (md)e mod n,又 de1 mod (n)即 de=l(n)+1,根据欧拉定理 m(n)=1 mod n,所以 Ek(s)=ml(n)+1=m(n) em=m mod

13、n.若明文 m 和签名 s 一起送给用户 B,B 可以确信信息确实是 A 发送的.同时 A 也不能否认送给这个信息,因为除了 A 本人外,其他任何人都 无法由明文 m 产生 s.因此 RSA 数字签名方案是可行的.但是 RSA 数字签名算法存在着因计算方法本身同构造成签名易被伪 造和计算时间长的弱点,因此实际对文件签名前,需要对消息做 MD5 变换. MD5 函数是一种单向散列函数,它将任意长度的消息压缩成 128 位的消息摘 要.应用 MD5 的单向性(即给定散列值,计算消息很难)和抗碰撞性(即给定消 息 M,要找到另一消息 M 并满足两者的散列值很难),可以实现信息的完整性 检验.另外该函

14、数的设计不基于任何假设和密码体制而直接构造,执行的速度 快,是一种被广泛认可的单向散列算法. 3、MD5 算法的实现 算法描述:对 MD5 算法简要的叙述可以为: MD5 以 512 位分组来 处理输入的信息,且每一分组又被划分为16 个 32 位子分组,经过了一 系列的处理后,算法的输出由四个 32 位分组组成,将这四个 32 位分组级联后将生成一个 128 位散列值。在 MD5 算法中,首先需要对信息进行填充,使其字节长度对512 求余的结果等于 448。因此,信息的字节长度( Bits Length)将被扩展 至 N*512+448,即 N*64+56 个字节(Bytes),N 为一个正

15、整数。填充 的方法如下,在信息的后面填充一个 1 和无数个 0,直到满足上面的条 件时才停止用 0 对信息的填充。然后,在在这个结果后面附加一个以 64 位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字 节长度=N*512+448+64=(N+1)*512,即长度恰好是 512 的整数倍。这 样做的原因是为满足后面处理中对信息长度的要求。MD5 中有四个 32 位被称作链接变量( Chaining Variable)的整数 参数,他们分别为: A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。当设置好这四个链接变量后,就开始进入

16、算法的四轮循环运算。循 环的次数是信息中 512 位信息分组的数目。将上面四个链接变量复制到另外四个变量中: A 到 a,B 到 b,C 到 c,D 到 d。主循环有四轮( MD4 只有三轮),每轮循环都很相似。第一轮进行 16 次操作。每次操作对 a、b、c 和 d 中的其中三个作一次非线性函数 运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。 再将所得结果向右环移一个不定的数,并加上a、b、c 或 d 中之一。最 后用该结果取代 a、b、c 或 d 中之一。MD5 的安全性MD5 相对 MD4 所作的改进:1. 增加了第四轮;2. 每一步均有唯一的加法常数;3. 为减弱第二轮中函数 G 的对称性从(Ximport java.security.*; import java.security.interfaces.*; import java.math.*; import java.io.*;public class Pa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号