密码学课程实验指导书_第1页
密码学课程实验指导书_第2页
密码学课程实验指导书_第3页
密码学课程实验指导书_第4页
密码学课程实验指导书_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、密码学课程实验指导书一、密码学课程实验的意义当前,重视实验与实践教育是各国高等教育界的发展潮流,实验与实践教学与理论教学是相辅相成的,具有同等重要的地位。它是在开放教育的基础上,为配合理论教学、培养学生分析问题和解决问题的能力以及加强训练学生专业实践能力而设置的教学环节;对于完成教学计划、落实教学大纲,确保教学质量,培养学生分析问题、解决问题的能力和实践操作技能更具有特别重要的意义。密码学是信息安全与保密技术的核心,是一门实践性非常强的课程,实践教学是培养密码技术应用性人才的重要途径,实践教学质量的好环,实际上也决定了应用型人才培养质量的高低。因此,加强密码学课程实践教学环节,提高实践教学质量

2、,对培养高质量的应用型人才至关重要。二、实验的目的与要求本实验指导书并不给出一些非常具体的实验步骤,让学生们照着做一遍的实验“指导书”。这样的实验无法发掘这群充满活力的人群的智慧和创造性。本书中的每个实验都是按照这种模式编写的:先给出有关的理论介绍,然后抛砖引玉地给出几范例,再给出一个简单的实验要求。同时,希望每个实验都完成准备-预约-实验-答辩4个环节。实验内容包含对称密码和公钥密码二个方面,以DES和RSA为代表通过具体实验使学生掌握这二类密码的结构、特性、攻击方法以及实际应用技术。第一部分 数据加密标准DES1实验目的(1)掌握DES中各加密函数对其性能影响;(2)DES的特性分析,包括

3、互补性和弱密钥;(3)DES的实际应用,包括各种数据类型的加/脱密、DES的短块处理。2实验原理信息加密根据采用的密钥类型可以划分为对称密码算法和非对称密码算法。对称密码算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可以从其中任意一个推导出另一个,更形象的说就是用同一把钥匙开锁和解锁。在对称密码算法的发展历史中曾出现过多种优秀的算法,包括DES、3DES、AES等。下面我们以DES算法为例介绍对称密码算法的实现机制。DES算法是由美国IBM公司在20世纪70年代提出,并被美国政府、美国国家标准局和美国国家标准协会采纳和承认的一种标准加密算法。它属于分组加密算法,即在明文加密和密文

4、解密过程中,信息都是按照固定长度分组后进行处理的。混淆和扩散是它采用的两个最重要的安全特性。混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数学上描述或者统计。扩散是指明文和密钥中每一位信息的变动,都会影响到密文中许多位信息的变动,从而隐藏统计上的特性,增加密码的安全。DES算法将明文分成64位大小的众多数据块,即分组长度为64位,同时用56位密钥对64位明文信息加密,最终形成64位的密文。如果明文长度不足64位,则将其扩展为64位(如补零等方法)。具体加密过程首先是将输入的数据进行初始换位(IP),即将明文M中数据的排列顺序按一定的规则重新排列,生成新的数据序列,以打乱原来的次

5、序。然后将变换后的数据平分成左右两部分,左边记为L0,右边记为R0,然后对R0实行在子密钥(由加密密钥产生)控制下的变换f,结果记为,再与L0做逐位异或运算,其结果记为R1,R0则作为下一轮的L1。如此循环16轮,最后得到L16、R16。再对L16、R16实行逆初始置换IP-1,即可得到加密数据。解密过程与此类似,不同之处仅在于子密钥的使用顺序正好相反。DES全部16轮的加密过程如图1-1所示。DES的加密算法包括3个基本函数。1初始换位(IP)它的作用是把输入的64位数据块的排列顺序打乱,每位数据按照下面换位规则重新组合,即将第58位换到第1位,第50位换到第2位,依次类推,重组后的64位输

6、出分为L0、R0(左、右)两部分,每部分分别为32位。58,50,42,36,18,10,2,60,52,44,36,28,20,12,462,54,46,38,30,22,14,6,64,56,48,40,32,24,16,857,49,41,33,25,17,9,1,59,51,43,35,27,19,11,361,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7R0和K1经过变换后的输出结果,再和L0进行异或运算,输出结果做为R1,R0则赋给L1。L1和R1同样再做类似运算生成L2和R2,经过16次运算后生成L16的R16。2f函数f函数是多个置换函数

7、和替代函数的组合函数,它将32位比特的输入变换为32位的输出,如图1-2所示。Ri经过扩展运算E变换后扩展为48位的,与Ki+1进行异或运算后输出的结果分成8组,每组6比特的并联B,B=B1B2B3B4B5B6B7B8,再经过8个S盒的选择压缩运算转换为4位,8个4位合并为32位后再经过P变换输出为32位的。其中,扩展运算E与置换P主要作用是增加算法的扩展效果。4逆初始置换函数IP-1它将L16和R16作为输入,进行逆初始换位得到密文输出。逆初始换位是初始位的逆运算,换位规则如下所列:40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,3138,6,46,14

8、,54,22,62,30,37,5,45,13,53,21,61,2936,4,44,12,52,20,60,28,35,3,43,11,51,19,59,2734,2,42,10,50,18,58,26,33,1,41,9,49,17,57,25DES的加密算法中除了上面介绍的3个基本函数,还有一个非常重要的功能模块,即子密钥的生成模块,具体子密钥的产生流程如图1-3所示。输入的初始密钥值为64位,但DES算法规定,基中第8、16、64位是奇偶检验位,不参与EDS运算。所以,实际可用位数只有56位,经过缩小选择换位表1-1即密钥置换PC-1的变换后,初始密钥的位数由64位变成了56位,将其平

9、分为两部分C0、D0,然后分别进行第1次循环左移,得到C1、D1,将C1(28位)合并后得到56位的输出结果,再经过缩小选择换位表1-2即密钥置换PC-2,从而得到了密钥K1(48位),依次类推,便可得到K2、K16。需要注意的是,16次循环左移对应的左移位数要依据表1-3的规则进行。3实验环境运行Windows或Linux操作系统的PC机,具有gcc(Linux)、VS(Windows)等C语言编译环境。4实验题目及要求表1-1 缩小选择换位表157494133251791585042342618102595143352719113605244366355473931231576254463

10、830221466153453729211352820124表1-2 缩小选择换位表21417112415328156211023191242681672720132415231374755304051453348444939563453464250362932表1-3 左移位数规则i12345678910111213141516LSi1122222212222221实验1 DES的编程实现(1)实验原理本实验的原理包括DES算法的加密过程、脱密过程和16个内部密钥生成过程,已在前面进行详细地描述。(2)实验要求 输入加密密钥和一串有意义的汉字,显示相应的加密结果;输入密文和脱密密钥,显示所还

11、原的一串有意义的汉字。 设计用户界面,界面中要有加/脱密选择、输入明/密文栏、密钥栏和加/脱密结果显示栏。实验2 DES的短块处理(1)实验意义在采用DES实施加密的实际应用中,为增加安全性,通常要求明文的长度等于密文的长度,特别是在对数据库的数据项加密时有这一要求,因此必须设计一种有效的处理方法,使得当明文长度不是64bit倍数时,加密产生的结果满足上述要求。(2)实验原理 将明文X按64bit分块,若X的长度为64bit的倍数时,则按常规的方法实施加密否则 设,其中长度64bit(称为短块),加密方式如图1-4所示,脱密方式如图1-5年示。x1x2xnxn+1加密加密图1-4 含有短块的加

12、密方式y1y2ynyn+1脱密脱密图1-5 含有短块的脱密方式(3)实验要求 针对有短块和无短块二种情况,编写并实现具有短块处理功能的DES通用加/脱密软件。 短块处理对用户透明。 设计用户界面,其结构与实验1的用户界面基本相同,但要增设明文长度和密文长度栏。实验3 DES弱密钥过滤软件设计(1)实验原理 DES中弱密钥的危害明文加密二次后还原成明文 存在232个明文,其密文=明文 过滤软件设计原理弱密钥是使16个内部密钥相同的密钥,由DES的密钥生成算法推出它的4个弱密钥 过滤软件设计 编程求出4个弱密钥 每当用户输入密钥K时,将K与四个弱密钥比较,若K不是弱密钥,则取定密钥K,否则界面窗口

13、显示“请重新输入一个新密钥”的提示。(2)实验要求 设计用户界面,当用户输入弱密钥时会出现提示信息 编制过滤程序,实现对弱密钥的过滤实验4 DES密码强度测试软件设计(1)实验原理 密文的随机性密文的随机性反映了密码的强度,通过设计随机性测试算法来测试DES的密码强度 随机性测试方法对于一个用DES加密产生的密文序列,分别以下面三种情况设计测试随机性工具 0和1在密文中所占比例 00、01、10、11在密文中所占比例 000、001、010、011、100、101、110、111在密文中所占比例(2)实验要求 设计随机性测试工具 设计用户界面,显示测试结果 修改DES的S盒,对修改后的DES密

14、文进行随机性测试,显示测试结果,在实验报告中对结果进行评价。第二部分 公钥密码RSA1实验目的 通过实际编程掌握非对称密码算法RSA的加密和解密以及快速加、解密过程,加深对非对称密码算法的认识。 实现对RSA的解密密钥攻击。2实验原理前面讲的对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥的管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。非对称密码算法是指一个加密系统的加密密钥和解密密钥是不同的,或者说不能用其中一个推导出另一个。在非对称密码算法的两个密钥中,一个是用于加密的密钥,它是可以公开的,称为公钥;另一个是用于解密的密钥,是保密的,称为私钥。非对称密

15、码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证手段,是现代密码学最重要的发明。RSA密码体制是目前为止最成功的非对称密码算法,它是在1977年由Rivest、Shamir和Adleman提出的第一个比较完善的非对称密码算法。它的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将该乘积分解为两个大素数因子的计算量相当大。虽然它的安全性还未能得到理论证明,但经过20多年的密码分析和攻击,迄今仍然被实践证明是安全的。RSA算法描述如下:1公钥选择两个互异的大素数p和q,n是二者的乘积,即n=pq,使为欧拉函数。随机选取正整

16、数e,使其满足,即e和互质,则将作为公钥。2私钥求出正数d,使其满足,则将(n,d)作为私钥。3加密算法对于明文M,由,得到密文C。4解密算法对于密文C,由,得到明文M。如果窃密者获得了n、e和密文C,为了破解密文必须计算出私钥d,为此需要先分解n。为了提高破解难度,达到更高的安全性,一般商业应用要求n的长度不小于1024位,更重要的场合不小于2048位。3实验环境运行Windows或Linux操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境。4实验题目及要求实验5 RSA的加/解密及快速加解密(1)实验原理 RSA的加/解密原理(参前) RSA的快速加/解密在计算时,将K化成二进制序列,则由此将乘法次数由下降至(2)实验要求 编制或网上下载大素数生成算法,产生二个大素数p和q; 编写RSA的加/解密过程和快速加/解密过程; 通过调用时钟对二种加/解密方法的时间开销进行测试; 设计用户界面,界面要有加/解密方式选择,快速方式与一般方式的选择及时间开销显示。实验6 RSA的解密密钥攻击(1)实验原理 对于方程中,设和是其非平凡根,若能求出或则可按下述方法求出大素数q和p:, 求非平凡根的概率算法记(V为奇数),因此当时,M即为非

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论