实验报告模板--信息安全综合实验_第1页
实验报告模板--信息安全综合实验_第2页
实验报告模板--信息安全综合实验_第3页
实验报告模板--信息安全综合实验_第4页
实验报告模板--信息安全综合实验_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

信息安全综合实验实验报告专业信息安全班级信息安全2班小组成员韩非寒(20102033)指导教师唐召东、赵春蕾职称讲师天津理工大学计算机与通信工程学院2014年5月天津设计日期2014年5月11日至2014年5月25日小组成员在本次设计中承担的任务成绩指导教师签字年月日目录前言2实验一网络通信安全311实验概述312实验原理313实验结果以及分析1614实验小结20前言为了提高学生的动手能力,培养同学们的学习兴趣,同时对所学知识进行全面的复习,特在第7学期开设本课程。信息安全专业综合实践是信息安全专业的集中性实践环节课程。本课程的任务是训练学生综合利用所学理论知识和实践技能解决实际问题,提高学生独立钻研及团队合作能力,为适应今后的工作打下扎实的基础。通过该课程实践,使学生能够利用密码学知识实现通信系统的机密性、完整性;能够评估系统的安全性,能够利用弱点攻破远程系统,能够有效地防御远程攻击;对WEB服务、EMAIL服务能够熟练地管理和配置,增强系统的安全性;能够综合利用认证、授权、访问控制设计一个安全、高效的信息系统。实验一网络通信安全11实验概述本实验应用DES,RSA,MD5等加密算法,以及SOCKET套接字实现一个简单的加密解密的聊天工具CRYPTTALK。本实验的程序在JDK16与ECLIPSE开发环境下编写,基本实现了消息加密的聊天工具的功能。通信的步骤基本如下首先,服务器端随机产生一对RSA密钥,将公钥发送给客户端,客户端将自己的对称密钥用公钥加密发送给服务器端,服务器端接收到加密后的密钥后,用自己的私钥解密得到对称密钥。然后服务器端和客户端都利用这个对称密钥对发送的消息加密,进行加密后的聊天。同时把消息经过MD5加密生成摘要发送,在接收端解密后进行MD5加密比较,检查信息是否被篡改。12实验原理121RSA加密算法RSA加密算法原理RSA算法它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名RONRIVEST,ADISHAMIR和LEONARDADLEMAN。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。RSA算法的原理以及算法分析如下。首先,找出三个数,其中,是两个相异的质数,是与互质的PQRPQR数。,这三个数便是PRIVATEKEY。接着,找出1R,使得,这个一定存在,因为与互质M1OD1RMR,用辗转相除法就可以得到。再来,计算。,PQNPQ这两个数便是PUBLICKEY。N编码过程是,若资料为,将其看成是一个大整数,假设。如AAN果的话,就将表成进位,通常取,则每一位数均ANSN2TS小于,然后分段编码。接下来,计算,就MODBAN0B是编码后的资料。解码的过程是,计算,RCPQCPQ于是乎,解码完毕。可以证明和是相等的。如果第三者进行窃听时,他会得到几个数,。他如果要解码的话,必须想办MNPQB法得到,所以,他必须先对作质因数分解。要防止他分解,最有效R的方法是找两个非常的大质数,使第三者作因数分解时发生困难。RSA算法的安全性RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前,RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解N是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数N必须选大一些,因具体适用情况而定。RSA的速度以及分析由于进行的都是大数计算,使得RSA最快的情况也比DES慢上倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。RSA的缺点主要有A产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B分组长度太大,为保证安全性,N至少也要600BITS以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SETSECUREELECTRONICTRANSACTION协议中要求CA采用比特长的密钥,其他实体使用比特的密钥。122DES加密算法DES加密算法原理当今社会是信息化的社会。为了适应社会对计算机数据安全保密越来越高的要求,美国国家标准局NBS于1997年公布了一个由IBM公司研制的一种加密算法,并且确定为非机要部门使用的数据加密标准,简称DESDATAENCRYPTONSTANDARD。自公布之日起,DES算法作为国际上商用保密通信和计算机通信的最常用算法,一直活跃在国际保密通信的舞台上,扮演了十分突出的角色。现将DES算法简单介绍一下,并给出实现DES算法的VC源代码。DES算法由加密、解密和子密钥的生成三部分组成。DES加密算法过程DES算法处理的数据对象是一组64比特的明文串。设该明文串为MM1M2M64MI0或1。明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。其加密过程图示如下对DES算法加密过程图示的说明如下待加密的64比特明文串M,经过IP置换后,得到的比特串的下标列表如下该比特串被分为32位的L0和32位的R0两部分。R0子密钥K1子密钥的生成将在后面讲经过变换FR0,K1(F变换将在下面讲)输出32位的比特串F1,F1与L0做不进位的二进制加法运算。运算规则为F1与L0做不进位的二进制加法运算后的结果赋给R1,R0则原封不动的赋给L1。L1与R0又做与以上完全相同的运算,生成L2,R2一共经过16次运算。最后生成R16和L16。其中R16为L15与FR15,K16做不进位二进制加法运算的结果,L16是R15的直接赋值。R16与L16合并成64位的比特串。值得注意的是R16一定要排在L16前面。R16与L16合并后成的比特串,经过置换IP1后所得比特串的下标列表如下经过置换IP1后生成的比特串就是密文E。下面再讲一下变换FRI1,KI。它的功能是将32比特的输入再转化为32比特的输出。其过程如图所示对F变换说明如下输入RI132比特经过变换E后,膨胀为48比特。膨胀后的比特串的下标列表如下膨胀后的比特串分为8组,每组6比特。各组经过各自的S盒后,又变为4比特具体过程见后,合并后又成为32比特。该32比特经过P变换后,其下标列表如下经过P变换后输出的比特串才是32比特的FRI1,KI。下面再讲一下S盒的变换过程。任取一S盒。见图在其输入B1,B2,B3,B4,B5,B6中,计算出XB12B6,YB5B42B34B28,再从SI表中查出X行,Y列的值SXY。将SXY化为二进制,即得SI盒的输出。(S表如图所示)子密钥的生成过程如下。64比特的密钥生成16个48比特的子密钥。其生成过程见图子密钥生成过程具体解释如下64比特的密钥K,经过PC1后,生成56比特的串。其下标如表所示该比特串分为长度相等的比特串C0和D0。然后C0和D0分别循环左移1位,得到C1和D1。C1和D1合并起来生成C1D1。C1D1经过PC2变换后即生成48比特的K1。K1的下标列表为C1、D1分别循环左移LS2位,再合并,经过PC2,生成子密钥K2依次类推直至生成子密钥K16。注意LSII1,2,16的数值是不同的。具体见下表DES的解密过程和DES的加密过程完全类似,只不过将16圈的子密钥序列K1,K2K16的顺序倒过来。即第一圈用第16个子密钥K16,第二圈用K15,其余类推。LR15,RL15FR15,K16FR15,K16L15同理R15L14FR14,K15,L15R14。同理类推得LR0,RL0。其程序源代码与加密相同。在此就不重写。123MD5加密算法HASH原理HASH,一般翻译做“散列”,也有直接音译为“哈希“的,就是把任意长度的输入(又叫做预映射,PREIMAGE),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。数学表述为HHM,其中H单向散列函数,M任意长度明文,H固定长度散列值。在信息安全领域中应用的HASH算法,还需要满足其他关键特性第一当然是单向性ONEWAY,从预映射,能够简单迅速的得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的MH1H不可行。这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的HASH又被称为“消息摘要MESSAGEDIGEST“,就是要求能方便的将“消息“进行“摘要“,但在“摘要“中无法得到比“摘要“本身更多的关于“消息“的信息。第二是抗冲突性COLLISIONRESISTANT,即在统计上无法产生2个散列值相同的预映射。给定M,计算上无法找到M,满足HMHM,此谓弱抗冲突性;计算上也难以寻找一对任意的M和M,使满足HMHM,此谓强抗冲突性。要求“强抗冲突性“主要是为了防范所谓“生日攻击BIRTHDAYATTACK“,在一个10人的团体中,你能找到和你生日相同的人的概率是24,而在同一团体中,有2人生日相同的概率是117。类似的,当预映射的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到“相同生日“的人。第三是映射分布均匀性和差分分布均匀性,散列结果中,为0的BIT和为1的BIT,其总数应该大致相等;输入中一个BIT的变化,散列结果中将有一半以上的BIT改变,这又叫做“雪崩效应AVALANCHEEFFECT“;要实现使散列结果中出现1BIT的变化,则输入中至少有一半以上的BIT必须发生变化。其实质是必须使输入中每一个BIT的信息,尽量均匀的反映到输出的每一个BIT上去;输出中的每一个BIT,都是输入中尽可能多BIT的信息一起作用的结果。DAMGARD和MERKLE定义了所谓“压缩函数COMPRESSIONFUNCTION”,就是将一个固定长度输入,变换成较短的固定长度的输出,这对密码学实践上HASH函数的设计产生了很大的影响。HASH函数就是被设计为基于通过特定压缩函数的不断重复“压缩”输入的分组和前一次压缩处理的结果的过程,直到整个消息都被压缩完毕,最后的输出作为整个消息的散列值。尽管还缺乏严格的证明,但绝大多数业界的研究者都同意,如果压缩函数是安全的,那么以上述形式散列任意长度的消息也将是安全的。这就是所谓DAMGARD/MERKLE结构在下图中,任意长度的消息被分拆成符合压缩函数输入要求的分组,最后一个分组可能需要在末尾添上特定的填充字节,这些分组将被顺序处理,除了第一个消息分组将与散列初始化值一起作为压缩函数的输入外,当前分组将和前一个分组的压缩函数输出一起被作为这一次压缩的输入,而其输出又将被作为下一个分组压缩函数输入的一部分,直到最后一个压缩函数的输出,将被作为整个消息散列的结果。MD5和SHA1可以说是目前应用最广泛的HASH算法,而它们都是以MD4为基础设计的。MD4加密算法原理MD4RFC1320是MIT的RONALDLRIVEST在1990年设计的,MD是MESSAGEDIGEST的缩写。它适用在32位字长的处理器上用高速软件实现它是基于32位操作数的位操作来实现的。它的安全性不像RSA那样基于数学假设,尽管DENBOER、BOSSELAERS和DOBBERTIN很快就用分析和差分成功的攻击了它3轮变换中的2轮,证明了它并不像期望的那样安全,但它的整个算法并没有真正被破解过,RIVEST也很快进行了改进。MD5加密算法原理MD5RFC1321是RIVEST于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与MD4相同。它较MD4所做的改进是1加入了第四轮2每一步都有唯一的加法常数;3第二轮中的G函数从XYXZYZ变为XZYZ以减小其对称性;4每一步都加入了前一步的结果,以加快“雪崩效应“;5改变了第2轮和第3轮中访问输入子分组的顺序,减小了形式的相似程度;6近似优化了每轮的循环左移位移量,以期加快“雪崩效应“,各轮的循环左移都不同。尽管MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。消息首先被拆成若干个512位的分组,其中最后512位一个分组是“消息尾填充字节100064位消息长度”,以确保对于不同长度的消息,该分组不相同。64位消息长度的限制导致了MD5安全的输入长度必须小于264BIT,因为大于64位的长度信息将被忽略。而4个32位寄存器字初始化为A0X01234567,B0X89ABCDEF,C0XFEDCBA98,D0X76543210,它们将始终参与运算并形成最终的散列结果。接着各个512位消息分组以16个32位字的形式进入算法的主循环,512位消息分组的个数据决定了循环的次数。主循环有4轮,每轮分别用到了非线性函数FX,Y,ZXYXZGX,Y,ZXZYZHX,Y,ZXYZIX,Y,ZXYZ这4轮变换是对进入主循环的512位消息分组的16个32位字分别进行如下操作将A、B、C、D的副本A、B、C、D中的3个经F、G、H、I运算后的结果与第4个相加,再加上32位字和一个32位字的加法常数,并将所得之值循环左移若干位,最后将所得结果加上A、B、C、D之一,并回送至ABCD,由此完成一次循环。所用的加法常数由这样一张表TI来定义,其中I为164,TI是I的正弦绝对值之4294967296次方的整数部分,这样做是为了通过正弦函数和幂函数来进一步消除变换中的线性性。MD5加密算法的应用HASH算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。在这种签名协议中,双方必须事先协商好双方都支持的HASH函数和签名算法。签名方先对该数据文件进行计算其散列值,然后再对很短的散列值结果如MD5是16个字节,SHA1是20字节,用非对称算法进行数字签名操作。对方在验证签名时,也是先对该数据文件进行计算其散列值,然后再用非对称算法验证数字签名。对HASH值,又称“数字摘要“进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点首先,数据文件本身可以同它的散列值分开保存,签名验证也可以脱离数据文件本身的存在而进行。再者,有些情况下签名密钥可能与解密密钥是同一个,也就是说,如果对一个数据文件签名,与对其进行非对称的解密操作是相同的操作,这是相当危险的,恶意

温馨提示

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

评论

0/150

提交评论