信息安全认证课件 第五章消息认证_第1页
信息安全认证课件 第五章消息认证_第2页
信息安全认证课件 第五章消息认证_第3页
信息安全认证课件 第五章消息认证_第4页
信息安全认证课件 第五章消息认证_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章消息认证与签名2消息认证的概念消息认证(MessageAuthentication)Message:消息、报文。Authentication:鉴别、认证。鉴别:消息的接收者对消息进行的验证。真实性:消息确实来自于其真正的发送者,而非假冒;完整性:消息的内容没有被篡改。2023/6/83消息认证的必要性消息认证用于抗击主动攻击验证接收消息的真实性和完整性真实性的确是由所声称的实体发过来的完整性未被篡改、插入和删除验证消息的顺序性和时间性(未重排、重放和延迟)4消息认证与保密的关系是构成信息系统安全的两个方面,但属于两个不同属性上的问题:消息认证不能自动提供保密性;保密性也不能自然提供消息认证功能。5消息认证系统模型6消息认证函数的分类基于报文加密方式的鉴别:以整个报文的密文作为鉴别符。消息认证码(MAC)方式。散列函数方式:采用一个公共散列函数,将任意长度的报文映射为一个定长的散列值,并以散列值作为鉴别符。7基于报文加密方式的鉴别(1)对称密钥加密方式:加密的同时提供保密和鉴别。2023/6/88CBC-MAC基于CBC模式的DES算法,初始向量取为零。D1DES加密O1K第1次D2DES加密O2K第2次+D2DES加密ONK第N次+ON-19对称密钥加密方式问题:B如何判断收到的密文X的合法性?如果消息M是具有某种语法特征的文本,或者M本身具有一定的结构:B可通过分析Y的语法或结构特征。如果消息M是完全随机的二进制比特序列:B无法判断是否正确恢复密文。解决办法:强制明文使其具有某种结构。这种结构易于识别、不能被复制,同明文相关,并且不依赖于加密。10基于报文加密方式的鉴别(2)附加消息认证结构

11附加消息认证结构源点A对消息明文M首先利用校验函数F计算出消息的校验码C=F(M);校验码C=F(M)被附加到原始消息明文上,生成新的明文[M‖C];利用密钥K对明文[M‖C]进行加密,得到密文X=EK[M‖C];将密文X发送给接收端B

12附加消息认证结构

终点B接收密文X;用密钥K解密得到明文Y=DK(X),其中Y被视为附加校验码的消息,即Y=[M′‖C′];利用校验函数F计算明文Y中消息部分的校验码F(M′)。若校验码相匹配,即F(M′)=C′,则可确认报文是可信的,M′就是原始消息M,并且可以确认该报文就是来自A的,因为任何随机的比特序列是不可能具有这种期望的数学关系的。13消息认证码MAC消息认证码或消息鉴别码(messageauthenticationcode,MAC):核心是一个类似于加密的算法CK()。

CK()在密钥的作用下,以报文内容作为输入,其输出值是一个较短的定长数据分组,也就是MAC,即:MAC=CK(M)MAC被附加在报文中传输,用于消息的合法性鉴别。14采用消息认证码的鉴别方式15消息认证码的功能如果B端通过比较发现MAC匹配,则可确信报文M没有被篡改过(完整性)若攻击者更改报文内容而末更改MAC,则接收者计算出的MAC将不同于接收到的MAC;由于攻击者不知道密钥K,故他不可能计算出一个与更改后报文相对应MAC值。接收者B也能够确信报文M是来自发送者A的(真实性)只有A了解密钥K,也只有A能够计算出报文M所对应的正确的MAC值。16MAC函数与

加密函数比较两者类似,都需要密钥。MAC函数可以是一个单向函数,而加密函数必须是可逆的。MAC算法不能提供信息的保密性;基于MAC的消息鉴别方式其鉴别的过程是独立于加密和解密过程。

与基于加密的鉴别方式是不同的;鉴别函数与保密函数的分离能提供结构上的灵活性。MAC方式更适合不需要加密保护的数据的鉴别。在某些应用中,鉴别报文的真实性比报文的保密性更重要。17散列函数hashfunction:哈希函数、摘要函数。输入:任意长度的消息报文M。输出:一个固定长度的散列码值H(M)。是报文中所有比特的函数值。单向函数。18基于散列函数的消息认证19仅对散列码进行加密的鉴别方案散列函数的特点适用范围Hash能用于任何大小的数据分组;Hash产生定长输出.散列函数性质单向性:对任意给定的码h,寻求x使得H(x)=h在计算上是不可行的;

弱抗碰撞性:任意给定分组x,寻求不等于x的y,使得H(y)=H(x)在计算上不可行;

强抗碰撞性:寻求对任何的(x,y)对,使得H(x)=H(y)在计算上不可行.2023/6/8212023/6/822迭代型散列函数的一般结构fffY0Y1YL-1bbbnnnnnIV=CV0CV1CVL-1CVL明文M被分为L个分组Y0,Y1,…,YL-1b:明文分组长度n:输出hash长度CV:各级输出,最后一个输出值是hash值无碰撞压缩函数f是设计的关键2023/6/823SHA算法SecureHashAlgorithm2023/6/824算法简介美国NIST设计1993年成为联邦信息处理标准(FIPSPUB180)基于MD4算法,与之非常类似。输入为小于264比特长的任意消息分组512bit长输出160bit2023/6/825算法描述消息填充:与MD5完全相同附加消息长度:64bit长度缓冲区初始化A=67452301B=EFCDAB89C=98BADCFBD=10325476E=C3D2E1F0SHA-1算法描述步骤1:添加填充位(一个1和若干个0)。在消息的最后添加适当的填充位使得数据位的长度满足length≡448mod512。步骤2:添加长度。一个64位块,表示原始消息长度,64位无符号整数。步骤3:初始化MD缓冲区。一个160位MD缓冲区用以保存中间和最终散列函数的结果。它可以表示为5个32位的寄存器(A,B,C,D,E)。A=67452301B=EFCDAB89C=98BADCFBD=10325476E=C3D2E1F0步骤4:以512位数据块为单位处理消息。四轮,每轮20步。四个基本逻辑函数:f1,f2,f3,f4步骤5:输出。全部L个512位数据块处理完毕后,输出160位消息摘要。CV0=IVCVq+1=SUM32(CVq,ABCDEq)MD=CVL压缩函数输入:最大长度为264位的消息;输出:160位消息摘要;处理:输入以512位数据块为单位处理;A,B,C,D,E(E+ft(B,C,D)+CLS5(A)+Wt+Kt),A,CLS30(B),C,D)HMAC(带密钥的HASH函数)

Hash函数不使用密钥,不能直接用于MACHMAC要求可不经修改使用现有hash函数其中镶嵌的hash函数可易于替换为更快和更安全的hash函数保持镶嵌的hash函数的最初性能,不因适用于HAMC而使其性能降低以简单方式使用和处理密钥在对镶嵌的hash函数合理假设的基础上,易于分析HMAC用于认证时的密码强度K+:是K右边填充若干0成为指定b比特长

opad:特殊填充常数00110110(十六进制数36)重复b/8次ipad:特殊填充常数01011100(十六进制数5C)重复b/8次例如:K是160位,b是512位,则K前面填加44个0字节(0x00)HMACK=Hash[(K+XORopad)||Hash[(K+XORipad)||M)]]HMAC的安全性取决于hash函数的安全性证明了算法强度和嵌入的hash函数强度的确切关系,即证明了对HMAC攻击等价于对内嵌hash函数的下述两种攻击攻击者能够计算压缩函数的一个输出,即使IV是秘密的和随机的攻击者能够找出hash函数的碰撞,即使IV是随机的和秘密的。2023/6/838Ch5-消息认证与数字签名数字签名数字签名也是一种认证机制,它是公钥密码学发展过程中的一个重要组成部分,是公钥密码算法的典型应用。2023/6/839Ch5-消息认证与数字签名数字签名数字签名需要满足以下条件:签名的结果必须是与被签名的消息相关的二进制位串;签名必须使用发送方某些独有的信息(发送者的私钥),以防伪造和否认;产生数字签名比较容易;识别和验证签名比较容易;给定数字签名和被签名的消息,伪造数字签名在计算上是不可行的。保存数字签名的拷贝,并由第三方进行仲裁是可行的。2023/6/840Ch5-消息认证与数字签名数字签名的典型使用(1)消息发送方式与散列函数对消息进行计算,得到消息的散列值。(2)发送方使用自己的私钥对消息散列值进行计算,得到一个较短的数字签名串。(3)这个数字签名将和消息一起发送给接收方。(4)接收方首先从接收到的消息中用同样的散列函数计算出一个消息摘要,然后使用这个消息摘要、发送者的公钥以及收到的数字签名,进行数字签名合法性的验证。公钥签名方案

利用私钥生成签名

利用公钥验证签名

只有私钥的拥有者才能生成签名

所以能够用于证明谁生成的消息

任何知道公钥的人可以验证消息

(他们要确认公钥拥有者的身份,这是公钥的密钥分配问题)使用消息的hash值RSA签名算法

RSA加密解密是可交换的•可以用于数字签名方案•给定RSA方案{(e,N),(d,p,q)}•要签名消息M:计算:h=H(M)•签名S=hd(modN)

将(M,S)信息发给接收方。RSA签名的验证要验证签名,计算:h=H(M)•Se(modN)=h’e.d(modN)=h’(modN)

h’=h?如果完全一样,则签名验证成功否则签名验证不成功。数字签名标准(DSS)

DSS是数字签名标准,NIST1994年发布DSA是数字签名算法DSA安全性是基于离散对数•生成320bit签名•被广泛接收2023/6/845Ch5-消息认证与数字签名DSA密钥生成DSA的系统参数选择如下:p:512位的大素数q:160位的素数且q|p-1;g:满足g=h(p-1)/qmodpH:为散列函数选取x:用户的私钥,0<x<qy:用户的公钥,y=gxmodpp、q、g为系统发布的公共参数,公钥y公开;私钥x保密。2023/6/846Ch5-消息认证与数字签名DSA签名过程设要签名的消息为M,0<M<p。签名者随机选择一整数k,0<k<q,并计算:r=(gkmodp)modqs=[k-1(H(M)+xr)]modq(r,s)即为M的签名。签名者将M连同(r,s)一起存放,或发送给验证者。2023/6/847Ch5-消息认证与数字签名DSA验证过程验证者获得M和(r,s),需要验证(r,s)是否是M的签名。首先检查r和s是否属于[0,q],若不是,则(r,s)不是签名值。否则,计算:w=s-1modqu1=(H(M)w)modqu2=r.wmodqv=((gu1yu2)modp)modq如果v=r,则所获得的(r,s)是M的合法签名。DSA实例在数字签名标准DSS中,假设p=83,q=41,h=2。求:(1)参数g;(2)取私钥x=57,求公钥y;(3)设消息m=56,取随机数k=25,求M的签名;(4)对m=56的上述签名进行验证。(注:为了简化,用m代替SHA(m))。(1)g=h(p-1)/qmodp=22mod83=4(2)

私钥x=57

公钥y=gxmodp=457mod83

=77(3)DSA签名过程

选随机数

K=23,K-1=25MOD41(K.K-1=1*modq)r=(gkmodp)modq=(423mod83)mod41

=51mod41=10S=k-1(m+xr)modq=25(56+57*10)mod41=29DSA验证过程w=s-1modq=29-1mod41=21u1=(H(M)w)modq=(56*21)mod41=28u2=rwmodq=10*21mod41=5v=((gu1yu2)modp)modq

=(428*775mod83)mod41=10=r所以签名验证成功。2023/6/851Ch5-消息认证与数字签名仲裁数字签名

仲裁签名中除了通信双方外,还有一个仲裁方发送方A发送给B的每条签名的消息都先发送给仲裁者T,T对消息及其签名进行检查以验证消息源及其内容,检查无误后给消息加上日期再发送给B,同时指明该消息已通过仲裁者的检验。仲裁数字签名实际上涉及到多余一步的处理,仲裁者的加入使得对于消息的验证具有了实时性。2023/6/8仲裁数字签名Alice(A)Bob(B)Trent(T)M,Eat(IDa,H(M))Ebt(IDa,M,Eat(Ida,H(M)),T))Alice(A)Bob(B)Trent(T)Eab(M),Eat(IDa,Eab(H(M)))Ebt(IDa,Eab(M),Eat(Ida,Eab(H(M),T)Alice(A)Bob(B)Trent(T)Ida,Sa(Ida,Eb(Sa(M)))St(IDa,Eb(Sa(M)),T)对称密码+明文传送对称密码+密文传送公钥密码+密文传送2023/6/853Ch5-消息认证与数字签名仲裁数字签名基于对称密码的方案(1)AT:M||EKAT[IDA||H(M)](2)TB:EKTB[IDA||M||EKAT[IDA||H(M)]||T]仲裁数字签名基于公钥密码的方案(1)AT:IDA||EPRA[IDA||

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论