第18讲 消息认证和散列函数

上传人:飞*** 文档编号:46991179 上传时间:2018-06-29 格式:PPT 页数:44 大小:1,009.50KB
返回 下载 相关 举报
第18讲 消息认证和散列函数_第1页
第1页 / 共44页
第18讲 消息认证和散列函数_第2页
第2页 / 共44页
第18讲 消息认证和散列函数_第3页
第3页 / 共44页
第18讲 消息认证和散列函数_第4页
第4页 / 共44页
第18讲 消息认证和散列函数_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《第18讲 消息认证和散列函数》由会员分享,可在线阅读,更多相关《第18讲 消息认证和散列函数(44页珍藏版)》请在金锄头文库上搜索。

1、1n教学内容:理解并掌握消息认证码、 散列函数的基本概念和使用方式n教学重点:理解掌握消息认证码、散 列函数消息认证和杂凑算法12攻击的类型攻击主动攻击被动攻击获取消息的内容业务流分析假冒 重放 篡改抗击被动攻击的方法是前面已介绍过的加密 抗击主动攻击的方法是本章介绍的消息认证231 用来验证消息的真实性 的确是由它所声称的实体发来的 2 用来验证消息的完整性 未被篡改、插入、删除 3 用来验证消息的顺序性和时间性 未重排、重放、延迟 4 用来验证消息的不可否认性 防止通信双方中的某一方对所传输消息的否认认证的功能341.消息加密: 整个消息的密文作为认证符 2.消息认证码(密码校验和): (

2、MACMessage Authentication Code)以消息和密钥作为公开函数的输入,产生定长的输出,并以此输出值作为认证标识。3.杂凑/散列函数(Hash function) :是一个不需要密钥的公开函数,它将任意长度的输入消息映射成一个固定长度的输出值,并以此值作为认证标识。认证的实现:认证符45消息加密对称加密能够提供认证?由于密钥没有第三方知道,所以接收方应该可以确信 消息的来源真实性。 这并不绝对,因为存在一种可能性,是对密文的篡改 。问题:对密文的篡改,能否一定被察觉?5能够察觉的举例nCBC模式加密得到密文n某处被窜改,导致其后续部分解密失败 #openssl enc -

3、e -des-cbc -in 2.txt -out 2.out #openssl enc -d -des-cbc -in 2modi.out -out 2modi.txt6不能够察觉的举例nrc4加密中,对密文部分比特的窜改导致明 文对应部分解密错误n另外,精心伪造的密文可能恰好解密为有 效的明文n结论:加密并不能完全抵抗篡改或假冒7教训:对密文的保护n在加密之前,给明文添加结构特征 x | h(x)/ h=crc,md5,sha1n加密 E ( x | h(x), k ) = yn传输有可能出错或被窜改ny会变做yn解密n判断是否依旧符合 x | h(x) 的结构特征8公钥加密nA使用B的公

4、钥加密消息,能否提供认证?910nA可以先使用自己的私钥加密消息(即签名),再用B的公 钥加密,这样可以提供认证。n缺点:4次复杂的公钥运算 1011密钥K是A和B的共享密钥 发送方:A首先计MAC=CK(M),其中CK()是密钥控制的公 开函数,然后向B发送MMAC 接收方:B收到后做与A相同的计算,求得一新MAC,并与收 到的MAC做比较,如果与接收到的MAC一致,则通过验证消息认证码:使用方式之一1112 接收方相信发送方发来的消息未被篡改 这是因为攻击者不知道密钥,所以不能够在篡改消息后相 应地篡改MAC,而如果仅篡改消息,则接收方计算的新 MAC将与收到的MAC不同。 接收方相信发送

5、方不是冒充的 这是因为除收发双方外再无其他人知道密钥,因此其他人 不可能对自己发送的消息计算出正确的MAC。6.1 消息认证码:使用方式之一1213消息认证码:使用方式之一n特点:nMAC函数无需可逆n收发双方使用相同的密钥n只提供消息认证,不能提供机密性 1314发送方和接收方共享两对密钥k1和k2 发送方:在计算MAC后,对MMAC进行整体加密再发送 接收方:解密后进行比较提供保密性和认证性 消息认证码:使用方式之二1415发送方和接收方共享两对密钥k1和k2 发送方: M先被加密再与MAC链接后发送。 接收方:解密后进行比较。消息认证码:使用方式三15避免使用加密方法产生MAC码n生成M

6、AC没有必要对整个报文加密n速度、进出口障碍n不需要能恢复原文nMAC的计算过程只需体现明文的特征唯一nKey是必要的n从报文产生特征的数学方法:HASH函数n先计算特征,再把特征加密的思想n把散列函数和Key结合得MAC HMAC = HashKey(Message)1617消息认证码:FIPS PUB 1131.算法基于CBC模式的DES算法,其初始向量取为零向量。 需被认证的数据被分为64比特长的分组D1,D2,DN, 最后一个分组不够64比特的话,可在其右边填充一些0 2.数据认证码或者取为ON或者取为ON的最左M个比特,其中 16M64。1718(1) 数字签名 (2) 身份认证(3

7、)消息完整性认证 在密码学和数据安全技术中,它是实现有效 、安全可靠数字签字和认证的重要工具,是 安全认证协议中的重要模块。杂凑/散列函数散列函数的应用背景1819别名:压缩(Compression)函数、 紧缩(Contraction)函数、 数据认证码(Data Authentication Code)、 消息摘要(Message Digest)、 数字指纹(Digital Finger Print)、 数据完整性校验(Data Integity Check)、 密码检验和(Cryptographic Check Sum)、 窜改检测码MDC(Manipulation Detection

8、Code)1920散列函数H是一公开函数,用于将任意长 的消息M映射为较短的、固定长度的一个值 H(M)。 它是消息中所有比特的函数,改变消息 中任何一个比特或几个比特都会使杂凑码发 生改变。散列函数的定义及使用方式2021 A和B共享密钥K 由于所用密钥仅为收发双方A、B共享,可保证消息的确来 自A并且未被篡改。 同时还由于消息和杂凑码都被加密,提供了保密性。散列函数的使用方式之一2122n 用单钥加密算法仅对杂凑码加密。n这种方式用于不要求保密性的情况下,可减少处理负担。散列函数的使用方式之二2223散列函数的使用方式之三 用公钥加密算法和发送方的秘密钥仅加密杂凑码。 功能:提供认证性和数

9、字签名,不提供保密性 由于只有发送方能产生加密的杂凑码,因此对发送方发送 的消息提供了数字签字。方式选择 2324 消息的杂凑值用公钥加密算法和发送方的秘密钥加密后 与消息链接,再对链接后的结果用单钥加密算法加密 功能:提供了保密性和数字签字散列函数的使用方式之四2425 通信双方共享一个秘密值S,A计算消息M和秘密值S链接在一起的杂 凑值,并将此杂凑值附加到M后发往B。 接收方B可重新计算杂凑值以对消息进行认证。 由于敌手无法得到S,所以无法对截获的消息加以篡改,也无法产生假 消息。 功能:提供认证性.散列函数的使用方式之五2526 将消息与杂凑值链接以后再增加单钥加密运算 功能:提供认证性

10、和保密性.散列函数的使用方式之六2627由于加密运算的速度较慢,代价较高, 而且很多加密算法还受到专利保护,在不要 求保密性的情况下,方式和将比其他方 式更具优势。散列函数的使用方式选择22728散列函数应满足以下条件: 函数的输入可以是任意长。 函数的输出是固定长。 已知x,求H(x)较为容易,可用硬件或软件实现 。 这三个条件是散列函数能用于消息认证的基本要求 。散列函数应满足的条件 已知h,求使得H(x)=h的x在计算上是不可行的 这一性质称为函数的单向性,称H(x)为单向散列函数。2829散列函数应满足的条件n 找出任意两个不同的输入x、y,使得H(y)=H(x)在计 算上是不可行的。

11、如果单向散列函数满足这一性质,则 称其为强单向散列函数。n第6个条件用于抵抗生日攻击。n第和第个条件给出了散列函数无碰撞性的概念n如果散列函数对不同的输入可产生相同的输出,则称该 函数具有碰撞性。 已知x,找出y(yx)使得H(y)=H(x)在计算上是不可 行的。如果单向散列函数满足这一性质,则称其为弱单 向散列函数。这使得敌手无法在已知某个消息时,找到 与该消息具有相同杂凑值的另一消息,防止敌手的伪造 。MD52930Hash函数的两种穷举攻击生日问题 附录中 n第类生日攻击n一是给定消息的Hash函数H(x),破译者逐个生成其他文件y,以 使H(x)=H(y)n第类生日攻击n二是攻击者寻找

12、两个随机的消息:x,y,并使H(x)=H(y)n在一个教室中最少应有多少学生才使得找一个学生与某人生日(该 人也在教室)相同的概率不小于1/2?n在一个教室中最少应有多少学生才使得至少有两个学生的生日在同 一天的概率不小于1/2? 3031在一个教室中最少应有多少学生才使得找一个学生与某学生 生日(该学生也在教室)相同的概率不小于1/2?n教室中有k人:n一同学(给定)生日为某天;n其他某个同学不是和他同一天生的概率是364/365(1-1/365 )n随机取k个人与该同学都不同生日的概率是(364/365)kn所以随机取k个人至少有一个人与该同学同生日的概率是n1-(364/365)kn25

13、43132在一个教室中最少应有多少学生才使得至少有两个学生的生日在同一天的概率不小于1/2?(生日悖论)n第一个人的生日为为一个特定生日n第二个人不在该该日出生的概率是(1-1/365)n第三个人与前两位不同生日的概率是(1-2/365)n第k个人与前k-1个人不同生日的概率是(1-(k-1)/365)n所以k个人都不同生日的概率是n(1-1/365)(1-2/365)(1-(k-1)/365)=nk个人至少有两个人生日相同的概率是1-(1-1/365) (1-2/365)(1-(k-1)/365)=n利用1-xe-x(当x很小),概率约为约为 1-e-k(k-1)/(2365)nk1.183

14、651/222.54,n即随机选择选择 23人,至少有2人生日相同的概率至少为为1/2 。3233当k=23时,P(365,23)=0.5073, 即上述问题只需23人,人数如此之少。 当k=100时,P(365,100)=0.9999997, 即获得如此大的概率。“生日悖论”是因为当人数k给定时,得到的至少有 两个人的生日相同的概率比想象的要大得多。生日悖论3334n寻找特定生日的一个人类似于第一种攻击;n寻找两个随机的具有相同生日的两个人则是第二种攻击;n第二种方法通常被称为生日攻击(Birthday Attack);n生日攻击意味着HASH值的长度有一个下界,128位的消息摘要,在264

15、 个随机输入的HASH值中至少有一个碰撞。所以,通常建议用160位或更 长的消息摘要。nK = 2m/2m位的消息摘要 有效级仅为2m/2Hash函数的两种穷举攻击生日问题3435nK = 2m/2m位的消息摘要 有效级仅为2m/2Hash函数的两种穷举攻击生日问题3536n州立大学的计算机系有一个教员的位置和两个候选人TOM和 JACK,TOM比JACK早雇用两年,因此他优先被考察。如果他 被通过了, JACK就没有机会了。TOM知道系主任MARILYN对 自己工作评价很高,因此他请求她给院长写封推荐信,院长 将决定TOM能否获得此职位。一旦发出,所有的信件都变成 秘密的。 nMARILYN

16、让她的秘书ELLEN给院长写封信,并简要地叙述了信 的内容。当信完成后,MANRILYN检查一下,计算并签署64比 特的摘要,然后把它发给院长。ELLEN随后用电子邮件把信 发走。 3637ELLEN以具有32个括号选项的形式写这封信nThe letter| message is to give my honest|frank opinion of Prof. Tom Wilson,who is a candidate|up for tenure now|this year,I have known|worked with Tom for about|almost six years. He is outstanding |excellent researcher well known in his field| area. He is a highly | greatly respected| admired

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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