数字签名实验报告
比较散列算法MD5和SHA所得到的结果
从三方面进行分析:
一、安全性:SHA优于MD5,由于160>128
二、速度:SHA慢了约25%,因为160>128且80>60
三、简易性:SHA对每一步骤的操作描述比MD5简单
对实验记录2这个源文件进行各类实验:
SHA-1的信息摘要比MD5的要长,无论对源文件做出空格、修改、删除、增加等任何操作,两种散列函数的信息摘要都会发生改变。
1 查找资料,掌握不同散列算法的原理和特点,掌握MD5和SHA散列算法的特点和应用条件。
散列函数有三个主要特点:
(1)它能处理任意大小的信息,并将其按信息摘要(Message Digest)方法生成固定大小的数据块,对同一个源数据反复执行Hash函数将总是得到同样的结果。
(2)它是不可预见的。
产生的数据块的大小与原始信息看起来没有任何明显关系,原始信息的一个微小变化都会对小数据块产生很大的影响。
(3)它是完全不可逆的,没有办法通过生成的数据块直接恢复源数据。
常见散列函数有MD5、SHA、MAC、CRC。
MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,MD5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128位的数值。
有两个特点:
1、输入两个不同的明文(一段原始的数字信息)不会得到相同的输出值
2、根据输出值,不能得到原始的明文,即过程不可逆
所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,然后在所谓的解密的时候,都是通过这个映射表来查找其所对应的原始明文。
而绝对没有一种算法,可以通过输出加密后的散列值算出原始明文。
·SHA(Secure Hash Algorithm)这是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值;
·MAC(Message Authentication Code):消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。
HMAC(用于消息认证的密钥散列法)就是这种函数的一个例子。
·CRC(Cyclic Redundancy Check):循环冗余校验码,CRC校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。
占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段(CRC 并不是严格意义上的散列算法,但它的作用与散列算法大致相同,所以归于此类)。
2 总结信息摘要的特点,分析比较原始文件和信息摘要的关系。
(1)对于任何大小的数据,单向散列函数产生定长的信息摘要——定长性
(2)对于任何信息,单向散列函数产生指纹都不同——唯一性
(3)知道信息摘要,也不能通过推算得到相关数据——单向性
信息摘要是通过散列函数所得,一旦原文发生任何改变,信息摘要都会变化。
不能通过推算得到原文,因其单一性决定。
信息摘要的产生要由原文经过散列函数得到的,摘要随原文的变化而变化。
3 查找资料,掌握数字签名的原理和过程,画出数字签名的过程。
数字签名技术是不对称加密算法的典型应用。
数字签名的原理是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。
利用散列函数进行数字签名和验证的传输过程如下:
(1) 发送方首先用哈希函数将需要传送的消息转换成报文摘要。
(2)发送方用自己的私钥对报文摘要进行加密,形成数字签名。
(3)发送方把数字签名附加在要发送的报文后面,传给接收方。
(4)接收方使用发送方的公钥对数字签名进行验证,得到发送方形成的报文
摘要。
(5)接收方将收到的报文用哈希函数计算其报文摘要,与发送方形成的报文
摘要比较,若相同,说明文件没被破坏。
上述流程可以用图1来表示。
图1数字签名的过程
4 分析总结,如何在开放的网络环境中应用数字签名?分析并总结数字签名在目前的电子商务应用中情况。
随着网络技术的迅速发展和日益普及,电子商务务建设和发展中的信息安全越来越显得重要。
而数字签名技术是信息安全理论与技术的基础和重要保证,使其应用于电子商务务中,可以提供身份认证服务、权限控制服务、信息保密服务、数据完整性服务和不可否认服务。
从而,为电子商务提供了一个安全的环境。
5 比较传统签名和数字签名的特点,分析数字签名的优点和缺点。
(1)签署文件方面:一个手写签名是所签文件的物理部分,而数字签名不是,所以要使用其他的办法将数字签名与所签文件“绑定”。
(2)验证方面:一个手写签名是通过和一个真实的手写签名相比较来验证的而数字签名是通过一个公开的验证算法来验证:
(3)签名的复制:一个手写签名不容易被复制,因为复制品通常比较容易被鉴别来:而数字签名很容易被复制,因为一个文件的数字签名的复制品和原文件是一样的:所以要使用数字时问戳等特殊的技术避免数字签名的重复使用。
(4)手书签名是模拟的,且因人而异。
数字签名是0和1的数字串,因人和消息而异。
一个安全有效的签名方案必须满足以下要求:1)任何人都可以验证签名的有效性;2)除了合法的签名者外,其他人伪造签名是困难的;3)对一个消息的签名不可复制为另一个消息的签名;4)签名的消息不可被篡改,一旦被篡改,则任何人都可以发现消息与签名的不一致;5)签名者事后不能否认自己的签名。
安全的数字签名实现的条件:发方必须向收方提供足够的非保密信息,以便使其能验证消息的签名,但又不能泄露用于产生签名的机密信息,以防止他人伪造签名。
此外,还有赖于仔细设计的通信协
数字签名的优点和缺点:
优点:数字签名可以用来验证文档的真实性和完整性,数字签名使用强大的加密技术和公钥基础结构,以更好地保证文档的真实性、完整性和受认可性。
该流程非常安全,一些政府已经立法赋予数字签名法律效力。
数字签名可以确定以下三点:第一,信息是由签发者发送的(身份认证)。
第二,信息自签发后到收到为止未曾做过任何修改(完整性),第三,如果A否认对信息的签名,可以通过仲裁解决A和B之间的争议(不可抵赖)。
因此,数字签名就可以用来防止电子信息因易被修改而有人作伪,或冒用别人的名义发送信息,或收到信息后又否认等情况。
缺点:(1)、验证模式依赖于发送方的保密密钥,发送方要抵赖发送某一消息时,可能会声称其私钥弄失或被盗,从而他人伪造了他的签名。
(2)、通常需要采用与私钥安全性相关的行政管理手段来制止或减少这情况,但威胁某种程度上依然存在。
(3)、需要立法机构对数字签名技术有足够的重视,并且在立法上加快脚步,迅速制定有关法律,以充分实现数字签名具有的特殊鉴别作用,有力地推动电子商务以及其他网上事务的发展。
(4)、如果发送方的信息已经进行了数字签名,那么接收方就一定要有数字签名软件,这就要求软件具有很高的普及性。
(5)、假设某人发送信息后脱离了某个组织,被取消了原有数字签名的权限,以往发送的数字签名在鉴定时只能在取消确认列表中找到原有确认信息,这样就需要鉴定中心结合时间信息进行鉴定。
(6)、基础设施(鉴定中心、在线存取数据库等)的费用,是采用公共资金还是在使用期内向用户收费,如果在使用期内收费,会不会影响到这项技术的全面推广。
6、比较对称加密算法和非对称加密算法的特点。
(1)对称密码算法:加密密钥和解密密钥相同,Ke=kd,密钥必须特殊保管。
优点:保密强度高,计算开销小,处理速度快、发展历史悠久。
缺点:密钥管理困难
(2)非对称密码算法:加密密钥与解密密钥不同,不可能由加密密钥解出解密密钥。
每个用户都有两个密钥:一个在信息团体内公开称公钥,一个由用户秘密保存,称为私钥。
优点:便于密钥管理、分发、便于签字签名、发展历史较短。
缺点:计算开销大,处理速度慢、密钥尺寸大。