- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 密码学Hash函数
第11章 密码学Hash函数 在数字签名方案中也要用到散列函数。对需要签名的消息用一个函数,产生一个固定长度的消息摘要(Message Digest),最后对消息摘要进行签名,得到确定长度的签名消息。 散列(hash)函数也称为杂凑值或消息摘要。 11.1密码学Hash函数的应用 11.1.1消息认证 消息认证是用来验证消息完整性的一种机制或服务。消息认证确保收到的数据确实和发送时的一样(即没有修改、插入、删除或重放),且发送方声称的身份是真实有效的。 11.1.2 数字签名 11.1.3其他应用 产生单向口令文件: 如操作系统存储口令的Hash值而不是口令本身。 入侵检测和病毒检测: 将每个文件的Hash值H(F)存储在安全系统中,随后就能够通过重新计算H(F)来判断文件是否被修改过。 构建随机函数(PRF)或用做伪随机发生器。 11.3 需求与安全性 原像:对于Hash函数h=H(x),称x为H原像。 碰撞:因为H是多对一映射,所以对于任意给定的Hash值h,对应有多个原像。如果满足x≠y且H(x)=H(y),则称出现碰撞。 假设函数H的输入消息或数据块长度是b位,输出的长度为n位,且bn,则平均每个Hash值对应2b/n个原像。 散列函数应满足的条件: 散列函数的目的是为需认证的数据产生一个“指纹”。为了能够实现对数据的认证,散列函数应满足以下条件: 5)抗弱碰撞性:已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的。 如果单向散列函数满足这一性质,则称其是抗弱碰撞的。 6)抗强碰撞性:找出任意两个不同的输入x、y,使得H(x)=H(y)在计算上是不可行的。如果单向散列函数满足这一性质,则称其是抗强碰撞的。 7)伪随机性:H的输出满足伪随机性测试标准 11.5安全Hash算法(SHA) 安全散列算法(SHA)是由美国标准与技术协会(NIST)设计,并于1993年作为联邦信息处理标准(FIPS 180)发布,修订版于1995年发布(FIPS 180-1),通常称之为SHA-1。 SHA-1产生160比特的散列值。 2002年,NIST发布了修订版2,FIPS180-2,其中给出了三种新的SHA版本,散列值长度依次为256,384和512比特。分别称为SHA-256,SHA-384, SHA-512,这些算法被统称为SHA-2。这些新的版本和SHA-1具有相同的基础结构,使用了相同的模算术和二元逻辑运算。2005年,NIST宣布了逐步废除SHA-1的意图,到2010年,逐步转而依赖SHA的其他版本。 2008年发布了修订版FIPS 180-3,增加了224位版本。 11.5.1 SHA-512逻辑 这个过程包含下列步骤: 步骤1:附加填充位。填充消息使其长度模1024与896同余,即使消息已经满足上述长度要求,仍然需要进行填充,因此填充位数在1到1024之间。填充由一个1和后续的0组成。 步骤2:附加长度。在消息后附加一个128比特的块,将其看做是128比特的无符号整数,它包含填充前消息的长度。 步骤3:初始化散列缓冲区。散列函数的中间结果和最终结果保存于512比特的缓冲区中,缓冲区用8个64比特的寄存器(a,b,c,d,e,f,g,h)表示,并将这些寄存器初始化为下列64比特的整数: a=6A09E667F3BCC908 e=510E527FADE682D1 b=BB67AE8584CAA73B f=9B05688C2B3E6C1F c=3C6EF372FE94F82B g=1F83D9ABFB41BD6B d=A54FF53A5F1D36F1 h=5BE0CD19137E2179 步骤4:以1024比特的分组(16个字)为单位处理消息。算法的核心是具有80轮运算的模块。每一轮,如t,使用一个64比特的值Wt,该值由当前被处理的1024比特消息分组Mi导出。每一轮还使用附加的常数Kt,其中0≤t≤79,用来表示轮数。这些常数如下获得:前80个素数取三次根,取小数部分的前64比特。 步骤5:输出。所有的N个1024比特分组都处理完以后,从第N阶段输出的是512比特的消息摘要。 Ho=IV Hi=SUM 64(Hi-1,abcdefghi) MD=HN 11.5.2 SHA-512轮函数 T1=h+Ch(e,f,g)+( )+Wt+Kt T2=( )+M
您可能关注的文档
最近下载
- 乙型肝炎病毒(HBV)核酸(DNA)扩增检测试剂盒(荧光探针法)说明书.doc
- 马铃薯遗传育种技术全套教学课件.pptx
- 可立克3.6KW-44KW车载充电机新能源汽车配套磁性元件介绍.pdf
- 2024年首届全国“红旗杯”班组长大赛考试题库-下(判断题汇总).docx VIP
- 2022-2023学年浙江省宁波市镇海区蛟川书院等四校八年级(下)期末数学试卷(含解析).docx VIP
- 2024年卫生系统招聘考试-卫生系统招聘考试(公共卫生管理)笔试参考题库含答案.docx
- 2023年临床执业医师考试真题及答案解析 .pdf
- 五子棋小组活动记录录.doc
- 汽车检测与维修毕业设计论文-浅谈汽车面漆桔皮缺陷.doc
- (整理)康复治疗学实习大纲.pdf
文档评论(0)