加密与数字签名

上传人:ji****72 文档编号:45692127 上传时间:2018-06-18 格式:PDF 页数:68 大小:757.14KB
返回 下载 相关 举报
加密与数字签名_第1页
第1页 / 共68页
加密与数字签名_第2页
第2页 / 共68页
加密与数字签名_第3页
第3页 / 共68页
加密与数字签名_第4页
第4页 / 共68页
加密与数字签名_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《加密与数字签名》由会员分享,可在线阅读,更多相关《加密与数字签名(68页珍藏版)》请在金锄头文库上搜索。

1、第第1章章加密与数字签名加密与数字签名信息安全大赛实训,上海大学计算机学院信息安全大赛实训,上海大学计算机学院主要内容主要内容? 本章介绍如何利用Java进行:?消息摘要消息摘要?私钥加密私钥加密?公钥加密公钥加密?数字签名数字签名?数字证书数字证书?SSL双向认证双向认证消息摘要消息摘要?消息摘要的作用 ?单向散列函数 ?MD5算法 ?SHA安全散列算法消息摘要的作用消息摘要的作用?在网络安全目标中,要求信息在生成、存储或传 输过程中保证不被偶然或蓄意地删除、修改、伪 造、乱序、重放、插入等破坏和丢失,因此需要 一个较为安全的标准和算法,以保证数据的完整 性。 ?常见的消息摘要算法有: ?

2、Ron Rivest设计的MD(Standard For Message Digest,消息摘要标准)算法 ? NIST设计的SHA(Secure Hash Algorithm,安全 散列算法)单向散列函数单向散列函数?消息摘要算法采用单向散列(hash)函数从明文 产生摘要密文。 ?摘要密文又称为哈希函数、数字指纹(Digital Fingerprint)、压缩(Compression)函数、紧 缩(Contraction )函数、数据认证码DAC(Data authentication code)、篡改检验码MDC( Manipulation detection code)。 ?散列函数的

3、输出值有固定的长度,该散列值是消 息M的所有位的函数并提供错误检测能力,消息 中的任何一位或多位的变化都将导致该散列值的 变化。从散列值不可能推导出消息M ,也很难通 过伪造消息M来生成相同的散列值。HASH函数函数?也称哈希函数、散列函数 ?是一种由不定长的自变量到定长的函数值的单向 映射HASH函数函数?Hash函数的值称为作为自变量的消息的“散列值” 或“消息摘要”、“数字指纹”?不同的原像映射出相同的映象称为“碰撞”或“冲突” ?映象相同的两个原像互称为“等价原像”消息消息MHash函数函数散列值散列值h变长,称为“原像”定长,称为“映像”单向“映射”单向散列函数的特点单向散列函数的特

4、点?单向散列函数 H(M)作用于一个任意长度的数据M ,它返回一个固定长度的散列h,其中h的长度为 m,h称为数据M的摘要。单向散列函数有以下特 点: ?给定M,很容易计算h; ?给定h,无法推算出M;?除了单向性的特点外,消息摘要还要求散列函数具 有“防碰撞性”的特点: ?给定M,很难找到另一个数据N,满足H(M)=H(N)。单向散列函数的抗碰撞性单向散列函数的抗碰撞性?抗碰撞性的能力体现出单向散列函数对抗生日攻 击和伪造的能力。?弱抗碰撞性(Weak collision resistance): ?对于任意给定的M,找到满足MN且H(M)=H(N)的N,在 计算上是不可行的; ?强抗碰撞性

5、(Strong collision resistance): ?找到任何满足H(x)=H(y) 的偶对(x,y)在计算 上是不可行的。哈希函数分类哈希函数分类?根据安全水平 ?弱无碰撞 ?强无碰撞 注:强无碰撞自然含弱无碰撞! ?根据是否使用密钥 ?带秘密密钥的HashHash函数:消息的散列值由只有通信双 方知道的秘密密钥K K来控制,此时散列值称作 MAC(Message Authentication Code)MAC(Message Authentication Code) ?不带秘密密钥的HashHash函数:消息的散列值的产生无需 使用密钥,此时散列值称作MDC(Message De

6、tection Code)MDC(Message Detection Code)HASH函数的应用函数的应用?由Hash函数产生消息的散列值 ?以消息的散列值来判别消息的完整性 ?用加密消息的散列值来产生数字签名 ?用口令的散列值来安全存储口令(认证系统中的 口令列表中仅存储口令的Hash函数值,以避免口 令被窃取。认证时用输入口令的Hash函数值与其 比较)哈希函数哈希函数-生日攻击生日攻击?如果采用传输加密的散列值和不加密的报文M, 攻击者需要找到M-,使得H(M-)=H(M),以便使用 替代报文来欺骗接收者。?一种基于生日悖论的攻击可能做到这一点,生日 问题:一个教室中,最少应有多少个学

7、生,才使 至少有两人具有相同生日的概率不小于1/2? ?概率结果与人的直觉是相违背的。实际上只需2323人, 即任找2323人,从中总能选出两人具有相同生日的概率 至少为1/21/2附:生日问题和生日攻击附:生日问题和生日攻击?生日问题 ? 一个教室中至少有几个学生才能使有两个学生生日相 同的概率不小于1/2; ?等价于“球匣问题” ? 设J个球随机扔进N个匣子,存在一个匣子中至少有两 个球的概率为p,则可以推导出: J2-2Nln(1-p)或p 1-e-J2/2/N ?答案 ? 将365个生日看作N=365个匣子,将学生看作球, p=0.5,则由上式可算出J 23,即23个学生中有两个 学生

8、生日相同的概率不小于1/2附:生日问题和生日攻击附:生日问题和生日攻击?80人的班级中至少有两个学生生日相同的概率约 为0.99984422904 ?散列碰撞问题: ? 几个m位的比特串中发生碰撞(至少两个串相同)的概 率不小于1/2:在上述公式中,令N=2m,p=0.5,则可 估算出J 2m/2。即2m/2个m位比特串中发生碰撞的概率 不小于1/2。如:24个8位比特串中发生碰撞的概率不小 于1/2生日攻击举例生日攻击举例? 假设张三承诺支付李四100万,约定由李四负责起草合同 ,并通过8位的散列码H(M)实施信息认证。聪明而无德的 李四先起草一个100万的版本,并通过变化其中3个无关紧 要

9、之处以得到23=8个不同的消息明文并计算它们的H(M) ,形成集合A;然后再起草一个200万的版本,用同样方 法又得到23=8 个不同的消息明文及其H(M),形成集合B。 ? 由生日问题知:24个8位比特串中发生碰撞的概率不小于 1/2,故在A和B共24=16个H(M)中有可能存在相同的一对 ,并极有可能一个在A中而另一个在B中。假设与它们对 应的明文为MA(100万版)和MB(200万版)。于是李 四用MA让张三签署并公证,而在传送时偷偷地用MB替代 MA。由于H(MA)= H(MB),故张三确信签署的文件未被篡 改。当李四要求张三支付200万时,法院根据MB判李四胜 诉,而张三因此损失10

10、0万。生日问题与生日攻击生日问题与生日攻击?生日攻击的前提就是存在碰撞?为有效抵御生日攻击,必须使散列码的位数充分 大,使得获得碰撞在计算上是不可能的。 ?著名的SHA-1散列算法的散列码取160位,由生日 原理攻击者至少得算出2801.21025个散列码才 有机会遇到碰撞(如以每秒算1000万个散列码计 算,需380亿年)安全安全HASH函数的一般结构函数的一般结构?输入数据分成L个长度固定为r的分组: M=(M1,M2,ML) ?末组附加消息的长度值并通过填充凑足r位 ?压缩函数 f使用n位的链接变量Hi,其初值H0=IV可 任意指定 ?压缩函数 f的最后n位输出HL取作散列值H0=IVH

11、i=f(Hi-1,Mi), (11 ?用户私钥x:x为0xq内的随机数 ?用户公钥y:y=gxmod p盲签名盲签名?盲签名 ?一般数字签名中,总是要先知道文件内容而后才签 署,这正是通常所需要的。但有时需要某人对一个 文件签名,但又不让他知道文件内容,称此为盲签 名(Blind Signature) ?Chaum在1983年提出 ?适应于电子选举、数字货币协议中群签名群签名?群签名 ?群体密码学由Desmedt于1987年提出,群签名是群 体密码学中的课题,1991由Chaum和van Heyst提 出,其特点有: ?只有群体成员才能代表群体签名; ?接收到签名的人可以用公钥验证群签名,但不

12、可能 知道由群体中哪个成员所签; ?发生争议时可由群体中的成员或可信赖机构识别群 签名的签名者。群签名群签名?群签名的应用 ?例如在电子投标中,所有公司应邀参加投标,这些公 司组成一个群体,且每个公司都匿名地采用群签名对 自己的标书签名。事后当选中了一个满意的标书,就 可识别出签名的公司,而其它标书仍保持匿名。中标 者若想反悔已无济于事,因为在没有他参加下仍可以 正确识别出他的签名。?群签名也可以由可信赖中心协助执行,中心掌握各签 名人与所签名之间的相关信息,并为签名人匿名签名 保密;在有争执时,可以由签名识别出签名人。数字水印数字水印数字水印(Digital Watermark)是指永久镶嵌

13、在其它数据(主要指宿主数 据)中具有可鉴别性的数字信号或数字模式。 数字水印的主要特征有: ? 不可感知性(imperceptible):包括视觉上的不可见性和水印算法的不可推 断性。 ? 鲁棒性(Robustness):嵌入水印必须难以被一般算法清除。也就是说多媒 体信息中的水印能够抵抗各种对数据的破坏,如A/D 、D/A转换、重量化、 滤波、平滑、有失真压缩以及旋转、平移、缩放及分割等几何变换和恶意的 攻击等。 ? 可证明性:指对嵌有水印信息的图像,可以通过水印检测器证明嵌入水印的 存在。 ? 自恢复性:指含水印的图像在经受一系列攻击后(图像可能有较大的破 坏),水印信息也经过了各种操作或

14、变换。但可以通过一定的算法从剩余的 图像片段中恢复出水印信息,而不需要整个原始图像的特性。 ? 安全保密性:数字水印系统使用一个或多个密钥以确保安全,防止修改和擦 除。同时若与密码学进行有机的结合,对数据可起到双重加密作用。数字水印的工作过程数字水印的工作过程数字证书数字证书?数字证书的作用 ?数字证书的定义 ?数字证书的内容 ?认证中心数字证书的作用数字证书的作用?任何的密码体制都不是坚不可摧的,公开密钥体 制也不例外。由于公开密钥体制的公钥是对所有 人公开的,从而免去了密钥的传递,简化了密钥 的管理。 ?但是这个公开性在给人们带来便利的同时,也给 攻击者冒充身份篡改公钥有可乘之机。所以,密

15、 钥也需要认证,在拿到某人的公钥时,需要先辨 别一下它的真伪。这时就需要一个认证机构,将 身份证书作为密钥管理的载体,并配套建立各种 密钥管理设施。数字证书的定义数字证书的定义?数字证书(Digital Certificate)又称为数字标识( Digital ID)。它提供一种在Internet上验证身份的 方式,是用来标志和证明网络通信双方身份的数 字信息文件。?数字安全证书是由权威公正的第三方机构即CA中 心签发的。它是在证书申请被认证中心批准后, 通过登记服务机构将其发放给申请者。数字证书的内容数字证书的内容? 最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。 一般情况下

16、证书中还包括密钥的有效时间,发证机关(证书授权中心)的 名称,该证书的序列号等信息,证书的格式遵循ITU-T X.509国际标准。? 一个标准的X.509数字安全证书包含以下一些内容:(1)证书的版本号。不同的版本的证书格式也不同,在读取证书时首先需要检查版本号。 (2)证书的序列号。每个证书都有一个唯一的证书序列号。 (3)证书所使用的签名算法标识符。签名算法标识符表明数字签名所采用的算法以及使用的参数。 (4)证书的发行机构名称。创建并签署证书的CA的名称,命名规则一般采用X.500格式。 (5)证书的有效期。证书的有效期由证书有效起始时间和终止时间来定义。 (6)证书所有人的名称。命名规则一般采用X.500格式; (7)证书所有人的公开密钥及相关参数。相关参数包括加密算法的标识符及参数等 (8)证书发行机构ID。这是版本2中增加的可选字段。 (9)证书所有人ID。这是版本2中增加的可选字段。 (10)扩展域。这是版本3中增加的字段,它是一个包含若干扩展字段的集合。 (11)证书发行机构对证书的签名,即CA对证书内除本签名字段以外的所有字段

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

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

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