版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章消息认证与散列函数
1标题添加点击此处输入相关文本内容点击此处输入相关文本内容前言点击此处输入相关文本内容标题添加点击此处输入相关文本内容2消息认证第1章曾介绍过电子商务安全所面临的基本攻击类型,包括被动攻击(窃听、业务流分析)和主动攻击(假冒、重放、消息的篡改、业务拒绝)。抗击被动攻击的方法是前面已介绍过的加密,本章介绍的消息认证则是用来抗击主动攻击的。消息认证是一个过程,用以验证接收消息的真实性(的确是由它所声称的实体发来的)和完整性(未被篡改、插入、删除),同时还用于验证消息的顺序性和时间性(未重排、重放、延迟)。除此之外,在考虑信息安全时还需考虑业务的不可否认性,即防止通信双方中的某一方对所传输消息的否认。实现消息的不可否认性可通过数字签名,数字签名也是一种认证技术,它也可用于抗击主动攻击3认证的分类认证技术是解决电子商务活动中的安全问题的技术基础。认证采用对称密码、公钥加密、散列算法等技术为电子商务活动中的信息完整性和不可否认性以及电子商务实体的身份真实性提供技术保障。认证可分为消息认证(也称数据源认证)和身份认证.消息认证:这消息真的是他发出来的吗?是不是假冒的?有没有被篡改过?身份的认证:和我通话/信的这个人真的是他吗?是不是假冒的?是不是录音重放?4MessageAuthentication:消息认证(报文鉴别,消息鉴别)Message:消息、报文。Authentication:鉴别、认证。认证:消息的接收者对消息进行的验证真实性:消息确实来自于其真正的发送者,而非假冒;完整性:消息的内容没有被篡改。信息的序号和时间是一个证实收到的消息来自可信的源点且未被篡改的过程。它也可以验证消息的顺序和及时性52 认证函数可用来做消息认证的函数分为三类(1)信息加密函数(Messageencryption)用完整信息的密文作为对信息的认证(2)消息认证码MAC(MessageAuthenticationCode)是对信源消息的一个编码函数(3)散列函数(HashFunction)是一个公开的函数 它将任意长的信息映射成一个固定长度的信息6(1)信息加密函数作认证
信息加密函数分二种,一种是常规的对称密钥加密函数,另一种是公开密钥的双密钥加密函数。下图的通信双方是:用户A为发信方,用户B为接收方。用户B接收到信息后,通过解密来判决信息是否来自A,信息是否是完整的,有无窜扰。7公开密钥加密与认证的关系A->B:E(KUb,M)提供保密(仅B能解密)不提供认证A->B:E(KRa,M)提供认证和签名(仅有A可加密,需要某种结构和冗余,任何一方均能验证签名)A->B:E(KUb,E(KRa,M))可提供保密可提供认证和签名89MEEkRa(M)EEKUb(EkRa(M))A方KRaKUbDEkRa(M)DMB方KRbKUa(d)公钥加密:机密性,可认证和签名缺点:一次完整的通信需要执行公钥算法的加密、解密操作各两次10消息认证的方法消息认证机制和数字签名机制都需有产生认证符的基本功能,这一基本功能又作为认证协议的一个组成部分。认证符是用于认证消息的数值,它的产生方法又分为消息认证码MAC(messageauthenticationcode)和杂凑函数(hashfunction)两大类,11消息认证码的定义及使用方式消息认证码是指消息被一密钥控制的公开散列函数作用后产生的、用作认证符的、固定长度的数值,也称为密码校验和。此时需要通信双方A和B共享一密钥K。设A欲发送给B的消息是M,A首先计算MAC=CK(M),其中CK(·)是密钥控制的公开函数,然后向B发送M‖MAC,B收到后做与A相同的计算,求得一新MAC,并与收到的MAC做比较,如图6.1(a)所示12消息认证码的定义使用一个密钥生成一个固定大小的短数据块,并将该数据块加载到消息后面,称MAC(或密码校验和) MAC=Ck(M)MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少预映射鉴别密钥K单向散列函数散列值13基于消息认证码(MAC)的认证特点:MAC函数无需可逆收发双方使用相同的密钥,MAC不能提供数字签名只提供消息认证,不能提供机密性AliceM||CK(M)CCM比较Bob14
如果仅收发双方知道K,且B计算得到的MAC与接收到的MAC一致,则这一系统就实现了以下功能:①接收方相信发送方发来的消息未被篡改,这是因为攻击者不知道密钥,所以不能够在篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的MAC不同。②接收方相信发送方不是冒充的,这是因为除收发双方外再无其他人知道密钥,因此其他人不可能对自己发送的消息计算出正确的MAC。15改进方案:提供机密性M||K1CK(M)CK2CM比较EK2MDK1MAliceBob提供认证,提供保密与明文有关的认证16改进方案2:提供机密性M||K1CK1(Ek2(M))CCM比较EK2K1MMDK2BobAliceEk2(M)提供认证,提供保密与秘文有关的认证17两种改进方案的比较上述过程中,由于消息本身在发送过程中是明文形式,所以这一过程只提供认证性而未提供保密性。为提供保密性可在MAC函数以后(如图6.1(b))或以前(如图6.1(c))进行一次加密,而且加密密钥也需被收发双方共享。在图6.1(b)中,M与MAC链接后再被整体加密,在图6.1(c)中,M先被加密再与MAC链接后发送。通常希望直接对明文进行认证,因此图6.1(b)所示的使用方式更为常用。18认证函数:Hash函数HashFunction哈希函数、散列函数、摘要函数输入:任意长度的消息报文M输出:一个固定长度的散列码值H(M)是报文中所有比特的函数值单向函数(转换过程中信息是有损失的,因此无法恢复到明文)散列计算不可能对两条信息求出相同的摘要19(3)Hash函数(散列,哈希函数)Hash函数Hash函数是将任意长度的报文映射成一个较短的定长输出报文的函数.如下形式:h=H(M),M是变长的报文,h是定长的Hash值.Hash函数的目的是为文件、报文或其它的分组数据产生“数字指纹”.Hash函数是一种有损加密,信息有损失20Hash函数的分类根据是否使用密钥带秘密密钥的Hash函数:消息的散列值由只有通信双方知道的秘密密钥K来控制。此时,散列值称作MAC。不带秘密密钥的Hash函数:消息的散列值的产生无需使用密钥。此时,散列值称作MDC(Manipulationdetectioncode)篡改检验码
。21杂凑函数的目的是为需认证的数据产生一个“指纹”。为了能够实现对数据的认证,杂凑函数应满足以下条件:①函数的输入可以是任意长。②函数的输出是固定长。③已知x,求H(x)较为容易,可用硬件或软件实现。④已知h,求使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向杂凑函数。22⑤已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数。⑥找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为强单向杂凑函数。第⑤和第⑥个条件给出了杂凑函数无碰撞性的概念,如果杂凑函数对不同的输入可产生相同的输出,则称该函数具有碰撞性23哈希函数的基本用法(a)M||H(M)HKHM比较EKMDMBobAlice提供认证提供保密EK(M|H(M))24哈希函数的基本用法(b)M||KEK(H(M))HHM比较EDBobAlice提供认证优点:可减少处理负担,适用于不需加密的情况K25哈希函数的基本用法(c)M||K’bDK’b(H(M))HHM比较EDBobAlice提供认证就是普通的数字签名Kb26哈希函数的基本用法(d)M||KDK’b(H(M))HHM比较EDBobAlice提供认证提供保密KMMEK’bDKbEk(M|DK’b(H(M))2728哈希函数的基本用法(e)M||H(M||S)||HM比较BobAlice提供认证SS||H29哈希函数的基本用法(f)M||H(M||S)||KHM比较EKMDMBobAlice提供认证提供保密EK(M||H(M||S)SS||H30使用Hash码提供报文认证的方式(a)A->B:Ek(M||H(M))提供保密(仅A和B共享K)提供认证(加密保护H(M))(b)A->B:M||Ek(H(M))提供认证(加密保护H(M))(c)A->B:M||EKRa(H(M))提供认证和数字签名(加密保护H(M),且仅A能生成EKRa(H(M))31Hash函数使用Hash码提供报文认证的方式(续.)(d)A->B:Ek(M||EKRa(H(M)))提供认证和数字签名提供保密(仅A和B共享K)(e)A->B:M||H(M||S)提供认证(S是通信双方共享的一个秘密值,仅A和B共享S)(f)A->B:Ek(M||H(M||S))提供认证和数字签名(仅A和B共享S)提供保密(仅A和B共享K)32单向散列(Hash)函数
——功能把可变输入长度串(称预映射,pre_image)转换成固定长度的输出串(称散列值)。——特点难于产生两个预映射的值,使它们的散列值相同散列函数是公开的,对处理过程不保密。平均而言,预映射的单个位的改变,将引起散列值中一半以上位的改变(弥散性)。实验33设计一个hash函数散列表法通用迭代散列模式34Hash函数题目设有一个含有13个元素的Hash表,Hash函数是:H(key)=key%13,用线性探查法解决冲突,则对于序列(2、8、31、20、19、18、53、27),18应放在第几号格中()。A)5B)9C)4D)0
35已知一个散列值,要找到预映射,使它的散列值等于已知的散列值在计算上是不可行的。一般情况下,应使用不带密钥的单向散列函数,以便任何人都能验证散列值。说明:
消息认证码(MessageAuthenticationCode,MAC),它是带有秘密密钥的单向散列函数,散列值是预映射的值和密钥的函数。预映射鉴别密钥K单向散列函数散列值36生日悖论生日悖论是指,如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。对于60或者更多的人,这种概率要大于99%。从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,从这个数学事实与一般直觉相抵触的意义上,它才称得上是一个悖论。大多数人会认为,23人中有2人生日相同的概率应该远远小于50%。37生日悖论问题38生日悖论攻击的数学背景:到底k要多大,才能在k个人中,至少找到两个人有同一天生日的概率大于1/2?
k个人的生日总排列数是365k,k个人有不同生日的总排列数为:
N=Pk365=即第一个人可能有365种生日选择,第二个人必须不同于第一个人,所以有364种选择,依此类推。39生日攻击(基于生日悖论)
在k个人中,找一个与某人生日相同的人的概率超过0.5时,只需k>183;而在此人群中,至少有两个人生日相同的概率超过0.5,只需k>23.40哈希函数的特点原始信息只要改变一点点,哪怕是几比特,对应的消息摘要也会改变很大哈希函数把任意有限长的输入行映射到固定长的行哈希函数的值域与定义域相比规模要小得多,它是“多对一”的映射,因此可能会发生碰撞。所谓碰撞(Collision)是指定义域的两个不同元素x1、x2映射到同一个消息摘要,即h(x1)=h(x2),也就是存在不同的消息具有相同的消息摘要。从信息论的观点看,哈希函数存在碰撞是必然的,这一点在数学上可以严格的证明。41杂凑函数的设计要求安全的杂凑函数在设计时必须满足两个要求:其一是寻找两个输入得到相同的输出值在计算上是不可行的,这就是我们通常所说的抗碰撞的;其二是找一个输入,能得到给定的输出在计算上是不可行的,即不可从结果推导出它的初始状态42MD5算法被破解的含义2004年8月,山东大学王小云教授宣布MD5算法被破解。破解≠解密,并不能由散列码恢复到明文MD5算法被破解的含义:可以找到两个不同的明文,它们的MD5码相同,即能找到碰撞43报文时间性的认证报文的时间性即指报文的顺序性。简单的实现报文时间性的认证方法有:序列号、时间戳和随机数/响应。攻击者将所截获的报文在原密钥使用期内重新注入到通信线路中进行捣乱、欺骗接收方的行为称为重放攻击(replayattacks)。报文的时间性认证就是解决重放攻击的。下面给出几个抗重放攻击的协议。44数字签名-一种特殊的认证一般的消息认证只能保护信息交换双方不受第三方的攻击,但是它不能处理通信双方的相互抵赖接收方可以伪造消息并称消息来自发送方,接收方产生一条消息,并用和发送方共享的密钥产生认证码,并将认证码附于消息之后发送方可以否认曾发送过某消息,因为接收方可以伪造消息,所以发送方可以诬赖消息是接收方伪造的只有数字签名才可实现认证中的不可否认性45数字签名考虑一种相反的过程,发送者用自己的私钥“加密”消息得到“密文”,然后利用发送者的公钥“解密”密文得到消息。很显然,加密只有发送者能够完成,而解密任何人都可以完成。所以,任何人都可相信是特定的发送者产生了该消息,这就相当于“签名”,证明一个消息的所属46传统签名的基本特点与被签的文件在物理上不可分割签名者不能否认自己的签名签名不能被伪造容易被验证数字签名是传统签名的数字化能与所签文件“绑定”签名者不能否认自己的签名容易被自动验证签名不能被伪造472.7.1数字签名在书面文件上签名是确认文件的一种手段,其作用有两点:第一,因为自己的签名难以否认,从而确认了文件已签署这一事实;第二,因为签名不易仿冒,从而确定了文件是真的这一事实。数字签名也能确认以下两点:第一,信息是由签名者发送的;第二,信息自签发后到收到为止未曾作过任何修改48数字签名的作用(1)签名是可以被确认的,即收方可以确认或证实签名确实是由发方签名的;(2)签名是不可伪造的,即收方和第三方都不能伪造签名(unforgeable);(3)签名不可重用,即签名是消息(文件)的一部分,不能把签名移到其它消息(文件)上;(4)签名是不可抵赖的,即发方不能否认他所签发的消息;(5)第三方可以确认收发双方之间的消息传送但不能篡改消息。49数字签名应具有的性质(1)能够验证签名产生者的身份(独有信息,以防伪造和否认),以及产生签名的日期和时间;(2)能用于证实被签消息的内容;(3)数字签名可由第三方验证,从而能够解决通信双方的争议。(4)签名的产生应较为容易;(5)签名的识别和验证应较为容易;(6)对已知的数字签名构造一新的消息或对已知的消息构造一假冒的数字签名在计算上都是不可行的。50数字签名的实现最常用的方式公钥加密和散列函数相结合的数字签名方式51数字签名的实现用对称加密算法和仲裁者进行数字签名仲裁者是可信的第三方T,他能同时与发送方A和接收方B通信,而且他和发送方A共享一个密钥K1,和接收方B也共享一个密钥K21)A用K1加密他欲发送给B的消息,把它传送给T2)T对消息进行解密,和他收到A消息的声明,一起用K2加密,并把加密后的加密包传给B3)由于T是可信的,而密钥K2是B和T共享的,B可以解密此消息,而且B可以相信消息是从A那里来的52DSS数字签名标准美国国家标准与技术研究所NIST发布的联邦信息处理标准FIPS186,称为数字签名标准DSS(DigitalSignatureStandard)于1991年最初提出,DSS为EIGamal和Schnorr签名方案的改进,其使用的算法为DSA(DigitalSignatureAlgorithm)。DSS使用了SHA,只能用于数字签名,不能用于加密或密钥分配安全性基于离散对数难题DSS是一个产生签名比验证签名快得多的方案,验证签名太慢!53DSS的签名和验证过程DSS采用的是SHA散列函数计算消息摘要D。签名方在签名时,将消息摘要D和一个随机数k一起作为签名函数的输入。签名函数使用发送方的私钥Ks和一组公共参数P,产生两个输出(s,r)作为签名结果。验证方就是通过比较接收到的签名结果与自己计算出来的签名结果,根据它们是否相等来判断签名的有效性。
54数字签名算法DSA全局公钥(p,q,g)p为512~1024bit的大素数,q是(q-1)的素因子,为160比特的素数g=h(p-1)/qmodp,且1<h<(p-1),使得
h(p-1)/qmodp>1用户私钥x:x为0<x<q内的随机数用户公钥y:y=gxmodp55盲签名盲签名一般数字签名中,总是要先知道文件内容而后才签署,这正是通常所需要的。但有时需要某人对一个文件签名,但又不让他知道文件内容,称此为盲签名(BlindSignature)Chaum在1983年提出适应于电子选举、数字货币协议中56群签名群体密码学由Desmedt于1987年提出,群签名是群体密码学中的课题,1991由Chaum和vanHeyst提出,其特点有:只有群体成员才能代表群体签名;接收到签名的人可以用公钥验证群签名,但不可能知道由群体中那个成员所签;发生争议时可由群体中的成员或可信赖机构识别群签名的签名者57群签名的实现群签名需要用到秘密分割技术(中国剩余定理)答曰:二十三58群签名的应用例如在电子投标中,所有公司应邀参加投标,这些公司组成一个群体,且每个公司都匿名地采用群签名对自己的标书签名。事后当选中了一个满意的标书,就可识别出签名的公司,而其它标书仍保持匿名。中标者若想反悔已无济于事,因为在没有他参加下仍可以正确识别出他的签名。群签名也可以由可信赖中心协助执行,中心掌握各签名人与所签名之间的相关信息,并为签名人匿名签名保密;在有争执时,可以由签名识别出签名人59公钥加密技术(RSA,DSS,ECC)和散列算法
散列算法:输入:可以任意长度;输出:必须固定长度,一般64、128、160bits.60数字信封技术
61身份认证技术身份认证又叫身份识别,它是正确识别通信用户或终端身份的重要途径。从身份认证过程中与系统的通信次数分:一次认证、两次认证或多次认证。从身份认证所应用的系统来分:单机系统身份认证和网络系统身份认证。从身份认证的基本原理上来说:静态身份认证和动态身份认证。1.口令认证2.持证认证3.生物识别认证621.口令认证(1)口令加密技术:用单向散列函数对口令进行处理;再采用加密技术对该散列码进行加密。认证中心数据库中存储口令的的散列码
口令以散列码的密文传输到认证中心后解密生成散列码,以此来核对身份.困难在于加密密钥的交换,涉及密钥分发管理问题.攻击者仍可以采用离线方式对口令密文实施字典攻击。63(2)时间戳技术在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和窜改的关键性内容。电子交易文件中,时间是十分重要的信息,在经过数字签名的交易上打上一个可信赖的时间戳,从而解决一系列的实际和法律问题。
需要一个可信任的第三方-时间戳权威TSA(timestampauthority),来提供可信赖的且不可抵赖的时间戳服务。
64获得数字时间戳的过程
Hash算法
原文
摘要
1
加时间
数字
时间戳
Internet
用DTS机构的私钥加密
发送方
TSA机构
Hash算法
加了时间后的新摘要
摘要
1
摘要1
+时间
数字
时间戳
65(3)零知识证明技术1.示证者:Petor;验证者:Vetor; 被认证方P掌握某些秘密信息,P想设法让认证方V相信他确实掌握那些信息,但又不想让V也知道那些信息(如果连V都不知道那些秘密信息,第三者想盗取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职软件工程(软件编码框架工具)试题及答案
- 2025年高职第一学年(食品营养)三大营养素搭配阶段测试试题及答案
- 2025年大学公共关系学(公关理论)试题及答案
- 2025年高职会计(财务软件应用)试题及答案
- 2025年中职机电技术应用(机电应用)试题及答案
- 2025年中职第一学年(市场营销实训)产品推销实操阶段测试试题及答案
- 2025年高职种植业机械安装(种植业机械安装)试题及答案
- 2025年大学二年级(作物生产与品质改良)品质提升综合测试题及答案
- 2025年高职物联网工程(物联网设计)试题及答案
- 2025年大学大四(草业科学)草地生态修复毕业模拟测试卷
- 2025浙江绍兴越城黄酒小镇旅游开发有限公司编外人员第二次招聘总笔试历年典型考点题库附带答案详解2套试卷
- DB54∕T 0378-2024 牦牛短期育肥技术规范
- 2025 年中国装配式装修产业发展研究报告
- 户外拓展活动中中级攀岩指导员职责分工计划
- 数据中心配电知识培训课件
- 数据标注员专业技能考核试卷及答案
- 传染病信息报告管理规范2025版
- 海南自贸港课件
- 北京市东城区2026届数学九上期末考试试题含解析
- 叉车盲区安全培训记录课件
- 自然资源部所属单位2025年度公开招聘工作人员(第三批)笔试模拟试题含答案详解
评论
0/150
提交评论