消息认证与数字签名幻灯片.ppt
《消息认证与数字签名幻灯片.ppt》由会员分享,可在线阅读,更多相关《消息认证与数字签名幻灯片.ppt(55页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、消息认证与数字签名消息认证与数字签名第1页,共55页,编辑于2022年,星期日1问题的提出问题的提出通信威胁通信威胁1.1.泄露:把消息内容发布给任何人或没有合法密泄露:把消息内容发布给任何人或没有合法密钥的进程。钥的进程。2.2.伪造:从一个假冒信息源向网络中插入消息。伪造:从一个假冒信息源向网络中插入消息。3.3.内容修改:消息内容被插入删除变换修改。内容修改:消息内容被插入删除变换修改。4.4.顺序修改:插入删除或重组消息序列。顺序修改:插入删除或重组消息序列。5.5.时间修改:消息延迟或重放。时间修改:消息延迟或重放。6.6.否认:接受者否认收到消息否认:接受者否认收到消息,发送者否认
2、发送过发送者否认发送过消息。消息。第2页,共55页,编辑于2022年,星期日25.1 信息认证信息认证回顾:前面讲述的对称密码(如回顾:前面讲述的对称密码(如DES和和AES)和公钥密码)和公钥密码体制(体制(RSA)都是围绕信息的保密性,即防止第三方获取)都是围绕信息的保密性,即防止第三方获取明文消息而展开的,但信息的完整性和抗否认性也是信息明文消息而展开的,但信息的完整性和抗否认性也是信息安全内容的重要特征。保证信息的完整性和抗否认性是通安全内容的重要特征。保证信息的完整性和抗否认性是通过信息认证和数字签名来实现的。过信息认证和数字签名来实现的。信息认证(消息认证)验证信息的完整性,当接收
3、方收信息认证(消息认证)验证信息的完整性,当接收方收到发送方的报文时,接收方能够验证收到的报文时真实到发送方的报文时,接收方能够验证收到的报文时真实的未被篡改的。的未被篡改的。(包括顺序和及时性)(包括顺序和及时性)它包含两方面的含义:它包含两方面的含义:(1)验证信息的发送者是真正的而不是冒充的,即数据起源)验证信息的发送者是真正的而不是冒充的,即数据起源验证;验证;(2)验证信息在传递过程中未被篡改、重放或延迟等。)验证信息在传递过程中未被篡改、重放或延迟等。第3页,共55页,编辑于2022年,星期日3信息认证检验的内容:证实报文的信源和信宿、信息认证检验的内容:证实报文的信源和信宿、报文
4、内容是否遭到偶然或有意地篡改、报文的报文内容是否遭到偶然或有意地篡改、报文的序号是否正确,报文到达的时间是否在指定的序号是否正确,报文到达的时间是否在指定的期限内。这种认证只在通信的双方之间进行,期限内。这种认证只在通信的双方之间进行,而不允许第三者进行上述认证。认证不一定实而不允许第三者进行上述认证。认证不一定实时的。时的。保密和认证同时是信息系统安全的两个方面,保密和认证同时是信息系统安全的两个方面,但它们是两个不同属性的问题,认证不能自动但它们是两个不同属性的问题,认证不能自动提供保密性,而保密性也不能自然提供认证功提供保密性,而保密性也不能自然提供认证功能。一个纯认证系统的模型如下图所
5、示:能。一个纯认证系统的模型如下图所示:第4页,共55页,编辑于2022年,星期日4认证系统的模型认证系统的模型第5页,共55页,编辑于2022年,星期日5认证函数认证函数可用来做认证的函数分为三类可用来做认证的函数分为三类(1)(1)信息加密函数信息加密函数(Message encryption)(Message encryption):将明文加密后以将明文加密后以密文密文作为认证作为认证(2)(2)信息认证码信息认证码MAC(Message Authentication MAC(Message Authentication Code)Code):用一个密钥控制的公开函数作用后,:用一个密钥
6、控制的公开函数作用后,产生固定长度的数值作为认证符,也称密码校产生固定长度的数值作为认证符,也称密码校验和。验和。(3)(3)散列函数散列函数(Hash Function)(Hash Function):是一个公开的函数它将任意长的信息映射成一是一个公开的函数它将任意长的信息映射成一个固定长度的散列值,以散列值作为认证符。个固定长度的散列值,以散列值作为认证符。常见的散列函数有:常见的散列函数有:MD4MD4、MD5MD5、SHASHA和和 SHA-1SHA-1第6页,共55页,编辑于2022年,星期日65.1.1 信息加密认证信息加密认证信息加密函数分两种,一种是常规的对称密钥加密函数,信息
7、加密函数分两种,一种是常规的对称密钥加密函数,另一种是公开密钥的双密钥加密函数。下图的通信双方是,另一种是公开密钥的双密钥加密函数。下图的通信双方是,用户用户A A为发信方,用户为发信方,用户B B为接收方。用户为接收方。用户B B接收到信息后,通过接收到信息后,通过解密来判决信息是否来自解密来判决信息是否来自A,信息是否是完整的,有无窜扰。信息是否是完整的,有无窜扰。1.1.对称密码体制加密:对称密码体制加密:对称加密:具有机密性,可认证对称加密:具有机密性,可认证,不提供签名不提供签名第7页,共55页,编辑于2022年,星期日7 如何自动确定是否收到的明文可解密为可懂的明文如何自动确定是否
8、收到的明文可解密为可懂的明文?一种解决办法是强制明文有某种结构一种解决办法是强制明文有某种结构.差错控制:差错控制:Error ControlError Control第8页,共55页,编辑于2022年,星期日82.公钥密码体制加密认证:公钥密码体制加密认证:(1)公钥加密:具有机密性,不能提供认证(任何人都可)公钥加密:具有机密性,不能提供认证(任何人都可以得到公钥)以得到公钥)(2)私钥加密:认证和签名,没有保密性私钥加密:认证和签名,没有保密性第9页,共55页,编辑于2022年,星期日9(3 3)公钥加密体制:机密性,可认证和签名)公钥加密体制:机密性,可认证和签名第10页,共55页,编
9、辑于2022年,星期日105.1.2 消息认证码(消息认证码(MAC)消息认证码(消息认证码(MAC)是在密钥的控制下将任)是在密钥的控制下将任意长的消息映射到一个简短的定长数据分组,意长的消息映射到一个简短的定长数据分组,并将它附加在消息后。并将它附加在消息后。MAC进行消息的认证进行消息的认证过程如图:过程如图:消息认证算法K消息MAC消息MAC认证算法KMAC比较认证码的使用认证码的使用MACMAC的基本用法的基本用法(a)a)第11页,共55页,编辑于2022年,星期日11A B:M|CK(M)即即A使用双方共享的密钥使用双方共享的密钥K对明文进行计算,产生一个对明文进行计算,产生一个
10、短小的数据块,即消息验证码短小的数据块,即消息验证码 MAC=CK(M)。发送给。发送给接收方接收方B时,将它附加在报文中。时,将它附加在报文中。接收方收到报文使用相同的密钥接收方收到报文使用相同的密钥K执行相同的计算,得执行相同的计算,得到新的到新的MAC。接收方将收到的。接收方将收到的MAC与计算得到与计算得到MAC进行进行比较,如果相匹配,那么可以保证报文在传输过程中维持了比较,如果相匹配,那么可以保证报文在传输过程中维持了完整性:完整性:(1)报文未被更改过)报文未被更改过 (2)接收者确信报文来自真实的发送者。(无人知晓密)接收者确信报文来自真实的发送者。(无人知晓密钥)钥)注意:上
11、述认证过程只提供认证、不提供保密性。注意:上述认证过程只提供认证、不提供保密性。第12页,共55页,编辑于2022年,星期日12MACMAC的基本用法的基本用法(b)b)提供消息认证与保密,认证码与明文连接提供消息认证与保密,认证码与明文连接Provides authentication-only A and B share K1Provides authentication-only A and B share K1Provides confidentiality-only A and B shareProvides confidentiality-only A and B share K
12、KK2K2 2 2A B:EK2(M|CK1(M)第13页,共55页,编辑于2022年,星期日13MACMAC的基本用法的基本用法(c)c)提供消息认证与保密,认证码与密文连接提供消息认证与保密,认证码与密文连接Provides authentication-Using K1Provides authentication-Using K1Provides confidentiality-Using K2Provides confidentiality-Using K2A B:EK2(EK2(M)|CK1(EK2(M)第14页,共55页,编辑于2022年,星期日14消息认证消息认证 VS 常规加
13、密常规加密MAC函数类似于加密函数,主要区别在于函数类似于加密函数,主要区别在于MAC函数不需函数不需要可逆而加密函数必须是可逆的,因此,认证函数比加要可逆而加密函数必须是可逆的,因此,认证函数比加密函数更不易破解。密函数更不易破解。保密性与真实性是两个不同的概念保密性与真实性是两个不同的概念根本上根本上,信息加密提供的是保密性而非真实性信息加密提供的是保密性而非真实性加密代价大加密代价大(公钥算法代价更大公钥算法代价更大)认证函数与保密函数的分离能提供功能上的灵活性认证函数与保密函数的分离能提供功能上的灵活性某些信息只需要真实性某些信息只需要真实性,不需要保密性不需要保密性 广播的信息难以使
14、用加密广播的信息难以使用加密(信息量大信息量大)网络管理信息等只需要真实性网络管理信息等只需要真实性 政府政府/权威部门的公告权威部门的公告第15页,共55页,编辑于2022年,星期日155.2 散列(散列(Hash)函数)函数散列函数(又称杂凑函数)是对不定长的输入产生定长散列函数(又称杂凑函数)是对不定长的输入产生定长输出的一种特殊函数:输出的一种特殊函数:h=H(M)M:变长消息变长消息 h=H(M)是定长的散列值(或称消息摘要)是定长的散列值(或称消息摘要)H:散列函数,是公开的;:散列函数,是公开的;H(M)又称为:哈希函数、数字指纹(又称为:哈希函数、数字指纹(Digital fi
15、nger print)、压缩(压缩(Compression)函数、数据鉴别码函数、数据鉴别码(Dataauthentication code)等)等散列值在信源处被附加在消息上,接收方重新计算散列值散列值在信源处被附加在消息上,接收方重新计算散列值来确认消息未被篡改。由于函数本身公开,传送过程中需来确认消息未被篡改。由于函数本身公开,传送过程中需要对散列值加密保护(如果没有对散列值的保护,篡改者要对散列值加密保护(如果没有对散列值的保护,篡改者可以在修改消息的同时修改散列值,从而使散列值的认证可以在修改消息的同时修改散列值,从而使散列值的认证功能失效)。功能失效)。第16页,共55页,编辑于2
16、022年,星期日165.2.1 散列函数的性质散列函数的性质 散列函数的目的是为文件、消息或其他的分组数据产生散列函数的目的是为文件、消息或其他的分组数据产生“指指纹纹”。用于消息认证的散列函数。用于消息认证的散列函数H具有如下性质具有如下性质:(1)H能用于任何大小的数据分组,都能产生定长的输出。能用于任何大小的数据分组,都能产生定长的输出。(2)对于任何给定的)对于任何给定的x,H(x)要相对易于计算。要相对易于计算。(3)对任何给定的散列码)对任何给定的散列码h,寻找寻找x使得使得H(x)=h在计算上不在计算上不可行(单向性)。可行(单向性)。(4)对任何给定分组)对任何给定分组x,寻找
17、不等于,寻找不等于x的的y,使得,使得H(x)=H(y)在计算上不可行(弱抗冲突)。在计算上不可行(弱抗冲突)。(5)寻找任何的()寻找任何的(x,y),使得),使得H(x)=H(y)在计算上不可行在计算上不可行(强抗冲突)。(强抗冲突)。第17页,共55页,编辑于2022年,星期日17注意:前两个性质使得散列函数用于消息认证成为可能。注意:前两个性质使得散列函数用于消息认证成为可能。第二和第三个性质保证第二和第三个性质保证H的单向性,保证攻击者无法通过散的单向性,保证攻击者无法通过散列值恢复消息。列值恢复消息。第四个性质保证了攻击者无法在不修改散列值的情况下替换第四个性质保证了攻击者无法在不
18、修改散列值的情况下替换消息而不被察觉。消息而不被察觉。第五个性质比第四个更强。保证了一种被称为生日攻击的第五个性质比第四个更强。保证了一种被称为生日攻击的方法无法凑效。方法无法凑效。生日问题:一个教室中,最少应有多少学生,才使至少生日问题:一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于有两人具有相同生日的概率不小于1/2?实际上只需实际上只需23人人,即任找即任找23人,从中总能选出两人具有相同人,从中总能选出两人具有相同生日的概率至少为生日的概率至少为1/2。第18页,共55页,编辑于2022年,星期日18通过以下方式使用散列函数常提供消息认证通过以下方式使用散列函数常
19、提供消息认证(1)使用对称加密算法对附加消息摘要的报文进行加密)使用对称加密算法对附加消息摘要的报文进行加密A B:EK(M|H(M)提供保密、认证提供保密、认证(2)使用对称加密方法对消息摘要加密)使用对称加密方法对消息摘要加密A B:M|EK(H(M)提供认证提供认证(3)使用发方的私钥对消息摘要进行加密)使用发方的私钥对消息摘要进行加密A B:M|EKRa(H(M)提供数字签名、认证提供数字签名、认证(4)在()在(3)的基础上,使用对称加密方法进行加密)的基础上,使用对称加密方法进行加密A B:EK(M|EKa(H(M)提供数字签名、认证和保密提供数字签名、认证和保密(5)假定双方共享
20、一个秘密值)假定双方共享一个秘密值S,与消息,与消息M串接,计算散列值串接,计算散列值A B:M|(H(M|S)提供认证提供认证(6)假定双方共享一个秘密值)假定双方共享一个秘密值S,使用散列函数,对称加密方法,使用散列函数,对称加密方法A B:EK(M|H(M|S)提供数字签名、认证和保密提供数字签名、认证和保密第19页,共55页,编辑于2022年,星期日19认证和保密认证认证和数字签名第20页,共55页,编辑于2022年,星期日20认证保密和数字签名认证S:双方共享的秘密值双方共享的秘密值认证保密和第21页,共55页,编辑于2022年,星期日21Hash vs MACMAC需要对全部数据进
21、行加密MAC速度慢Hash是一种直接产生认证码的方法第22页,共55页,编辑于2022年,星期日225.2.2 散列函数的结构散列函数的结构 为了对不定长的输入产生定长的输出,并且最后的结果要与为了对不定长的输入产生定长的输出,并且最后的结果要与所有的字节有关,大多数的散列函数的结构都采用了分块填所有的字节有关,大多数的散列函数的结构都采用了分块填充链接的模式,其结构是迭代型的。充链接的模式,其结构是迭代型的。以以MD4为例讲解散列函数的结构为例讲解散列函数的结构 MD4散列函数将输入数据分为散列函数将输入数据分为L个固定长度为个固定长度为b比特的分比特的分组。组。输入数据包括:消息、填充数据
22、和消息的长度值(消输入数据包括:消息、填充数据和消息的长度值(消息长度值用息长度值用64比特表示)。比特表示)。说明:说明:填充数据的目的是使输入数据为填充数据的目的是使输入数据为b比特的倍数;增加比特的倍数;增加消息长度值将增加攻击者攻击的难度。消息长度值将增加攻击者攻击的难度。散列函数的结构如图所示:散列函数的结构如图所示:第23页,共55页,编辑于2022年,星期日23fbnVi=CV0CV1fbnCV2fbn CVL-1CVLnnY0Y1YL-1迭代型散列函数的结构迭代型散列函数的结构MD4MD4算法如下:算法如下:CVCV0 0=V=Vi iCVCVi i=f(CV=f(CVi-1i
23、-1,Y,Yi-1i-1)h=H(M)=CVh=H(M)=CVL L=f(CV=f(CVL-1L-1,Y,YL-1L-1)V Vi i:初始链接变量初始链接变量CVCVi-1i-1:连接变量;连接变量;f f:压缩函数压缩函数(由若干轮处理组成由若干轮处理组成);通常通常bnbn第24页,共55页,编辑于2022年,星期日245.2.3 MD5算法算法Ron Rivest于于1990年提出了一个称为年提出了一个称为MD4的散列函数。他的的散列函数。他的设计没有基于任何假设和密码体制,不久,他的一些缺点也被设计没有基于任何假设和密码体制,不久,他的一些缺点也被提出。为了增强安全性和克服提出。为了
24、增强安全性和克服MD4的缺陷,的缺陷,Rivest于于1991年年对对MD4作了六点改进,并将改进后的算法称为作了六点改进,并将改进后的算法称为MD5.MD5算法:将明文按算法:将明文按512比特进行分组,即比特进行分组,即MD5中的中的b=512bit,经填充后信息长度为,经填充后信息长度为512的倍数(包括的倍数(包括64比特比特的消息长度)。的消息长度)。填充:首位为填充:首位为1,其余补,其余补0至满足要求,即填充后的比特数至满足要求,即填充后的比特数为为512的整数倍减去的整数倍减去64,或使得填充后的数据长度与,或使得填充后的数据长度与448模模512同余。同余。第25页,共55页
25、,编辑于2022年,星期日251000消息K比特比特Lx512比特1到512 比特的填充消息长度Y0512bitHMD5512128CVCV0 0=V=VI IY1512bitHMD5512128CVCV1 1Yq512bitHMD5512128CVCVq qYL-1512bitHMD5512128CVCVlL-1lL-1消息摘要128bitMD5的框图的框图第26页,共55页,编辑于2022年,星期日265.2.4 安全散列算法安全散列算法(SHA)举例:举例:MD5算法:已知消息为算法:已知消息为“河北工业大学河北工业大学分校电子分校电子Z08级的信息安全技术是一门专业基级的信息安全技术是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 消息 认证 数字签名 幻灯片
限制150内