消息认证和数字签名讲义
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
M-,使得CK(M-)= CK(M) 应在计算上不可行
✓CK(M) 应均匀分布,即随机选择消息M和M- ,CK(M)
=CK(M-) 的概率是2-n,其中n是MAC的位数
✓MAC值应平等地依赖于消息中的所有位,令M- 为M的某
些变换,即M- =f(M),例如f 可以涉及M中一个或多个给 定位的反转),在这种情况下,Pr[CK(M-)= CK(M) ] = 2-n
Sun Yat-sen University
消息认证和数字签名
中山大学信息科学与技术学院 王常吉 副教授 2006年11月
免费课件下载
Sun Yat-sen University
消息认证和数字签名
消息认证(Message Authentication)
✓验证所收到的消息确实是来自真正的发送方,并且未被
报文解密后,保护就失效了)
✓某些信息只需要真实性,不需要保密性 广播的信息难以使用加密(信息量大) 网络管理信息等只需要真实性 政府/权威部门的公告
免费课件下载
| 9/24/2020
15
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
对MAC的安全要求
✓如果一个攻击者得到M和CK(M),则攻击者构造一个消息
一种基于生日悖论的攻击可能做到这一点,生日 问题
✓一个教室中,最少应有多少个学生,才使至少有两人具
有相同生日的概率不小于1/2?
✓概率结果与人的直觉是相违背的 ✓实际上只需23人,即任找23人,从中总能选出两人具有
相同生日的概率至少为1/2
免费课件下载ห้องสมุดไป่ตู้
| 9/24/2020
22
© 广东省信息安全技术重点实验室
免费课件下载
| 9/24/2020
16
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
Data Authentication Algorithm
✓FIPS publication (FIPS PUB 113)
✓ANSI standard (X9.17)
✓有两种使用广泛的基于DES的MAC,一种按CFB模式,
免费课件下载
| 9/24/2020
7
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(对称)
消息加密本身提供了一种认证手段(消息的自身加密可以 作为一个认证的度量)
对称加密方式 ✓A与B共享密钥K ✓A→B:EK[M]=C ✓B:M=DK[C],查看M是否为有意义的明文(如何区分真实的明文
公钥加密:认证和签名
| 9/24/2020
10
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(非对称)
M
E
EkRa(M) E
KRa
KUb
D EkRa(M)
D
M
KRb
KUa
EKUb(EkRa(M))
公钥加密:机密性,可认证和签名
免费课件下载
| 9/24/2020
免费课件下载
| 9/24/2020
18
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数
H可应用于任意大小的数据块 H 产生定长的输出 对于任意给定的x,容易计算出H(x) H是单向(one-way)函数
✓给定h,找到满足 h = H(x)的x在计算上是不可行的 ✓complexity of finding x out of h is 2n, where n is the number of
窜扰者
信源
认证编码器
认证译码器 信道
安全信道
密钥源
信宿
免费课件下载
| 9/24/2020
4
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
✓在这个系统中的发送者通过一个公开的无扰信道将消息
发送给接收者,接收者不仅想收到消息本身,而且还要 验证消息是否来自合法的发送者及消息是否经过篡改。 系统中的密码分析者不仅要截收和破译信道中传送的密 报,而且可伪造密文送给接收者进行欺诈,将其称为系 统的窜扰者(tamper)更加合适。实际认证系统可能还 要防止收方、发方之间的相互欺诈
消息认证码
免费课件下载
| 9/24/2020
14
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
为什么使用消息认证码 ✓保密性与真实性是两个不同的概念,从根本上讲,信息加密提供的
是保密性而非真实性
✓加密代价大(公钥算法代价更大) ✓认证函数与保密函数的分离能提供功能上的灵活性 ✓认证码可延长报文的保护期限,同时能处理报文内容(使用加密,当
✓又称为哈希函数、散列函数、数字指纹(Digital finger
print)、压缩(Compression)函数、紧缩 (Contraction )函数、数据认证码DAC(Data authentication code)、篡改检验码MDC (Manipulation detection code)
Sun Yat-sen University
哈希函数
强抗碰撞性(Strong collision resistance) ✓找到任何满足H(x)=H(y) 的偶对(x,y)在计算上是不可行的 ✓complexity is 2n/2
前三条是Hash函数实际应用于消息认证中所必须满足的, 第四条单向性是指,由消息很容易计算出Hash码,但由 Hash码却不能计算出相应的消息,第五条性质是保证不能 找到与给定消息具有相同Hash值的另一消息,可以在使用 时对Hash值加密的方法中防止伪造,第六条性质涉及Hash 函数抗生日攻击的能力强弱
✓验证信息的发送者是真正的,而不是冒充的,此为信源
识别;
✓验证信息的完整性,在传送或存储过程中未被篡改,重
放或延迟等
免费课件下载
| 9/24/2020
3
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
保密和认证是信息系统安全的两个方面,认证不 能自动提供保密性,而保密性也不能自然提供认证 功能。一个纯认证系统的模型如下图所示:
| 9/24/2020
17
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数
H(M): 输入为任意长度的消息M,输出为一个 固定长度的散列值,称为消息摘要(Message Digest),该散列值是消息M的所有位的函数并提 供错误检测能力(消息中的任何一位或多位的变化 都将导致该散列值的变化)
✓不带秘密密钥的Hash函数:消息的散列值的产生无需使
用密钥,此时散列值称作MDC
免费课件下载
| 9/24/2020
21
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数-生日攻击
如果采用传输加密的散列值和不加密的报文M, 攻击者需要找到M-,使得H(M-)=H(M),以便使用 替代报文来欺骗接收者
的结构
不提供签名
✓接收人可以伪造报文 ✓发送人可以伪造报文
免费课件下载
| 9/24/2020
9
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(非对称)
免费课件下载
M
E
EKUb(M) D
M
KUb(B方的公钥)
KRb
公钥加密:机密性
M
E
EKRa(M) D
M
KRa
KUa
免费课件下载
| 9/24/2020
12
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
MAC函数类似于加密函数,但不需要可逆性,因 此在数学上比加密算法被攻击的弱点要少
MAC的基本用途
免费课件下载
| 9/24/2020
13
© 广东省信息安全技术重点实验室
Sun Yat-sen University
篡改的消息的过程
Hash函数(Hash Function)
✓散列函数是以变长的报文作为输入,产生一个定长的散
列值(也称消息摘要)作为输出
免费课件下载
| 9/24/2020
2
© 广东省信息安全技术重点实验室
Sun Yat-sen University
认证
信息与网络安全系统一方面需要防范攻击者对系 统进行被动攻击(采用加密机制来保护消息的机密 性,使其不被破译),另一方面需要防范攻击者对 系统进行主动攻击(如伪造,篡改信息等)。认证 (authentication)是防止主动攻击的重要技术, 它对于开放网络中的各种信息系统的安全性有重要 作用,认证的目的:
消息认证和数字签名方法在功能上分为两层:
✓下层中有产生认证符(一个用来认证消息的值)的函数,
上层协议中将该函数作原语使接收方可以验证消息的真 实性
可用来产生认证符的函数可分为三类:
✓消息加密:整个消息的密文作为认证符 ✓消息认证码MAC:它是消息和密钥的公开函数,产生一
个固定长度的值作为认证符,MAC = F(K, M)
和随机的位串,解决的办法是强制明文具有某种结构)
信源
M
E
Ek(M)
信宿
D
M
K
K
免费课件下载
| 9/24/2020
8
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(对称)
提供保密:仅A与B共享密钥K 提供一定程度的认证
✓仅来自A ✓传输中没有被更改 ✓要求明文具有某种易于识别,但不能复制且无需加密的
bits in the hash output
抗弱碰撞性(Weak collision resistance) ✓对于任意给定的 x,找到满足x≠y且H(x)=H(y)的y在计算上是
不可行的
✓complexity of attack is 2n
免费课件下载
| 9/24/2020
19
© 广东省信息安全技术重点实验室
✓Hash函数:将任意长的消息映射为定长的Hash值的公
开函数,以Hash值作为认证符
免费课件下载
| 9/24/2020
6
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
一个安全的消息认证系统,需满足
✓意定的接收者能够检验和证实消息的合法性、真实性和
完整性
✓消息的发送者和接收者不能抵赖 ✓除了合法的消息发送者,其它人不能伪造合法的消息
免费课件下载
| 9/24/2020
20
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数分类
根据安全水平
✓弱无碰撞 ✓强无碰撞 ✓注:强无碰撞自然含弱无碰撞!
根据是否使用密钥
✓带秘密密钥的Hash函数:消息的散列值由只有通信双方
知道的秘密密钥K来控制,此时散列值称作MAC
Sun Yat-sen University
生日攻击实例
A准备两份合同M和M-,一份B会同意,一份会取走他的财 产而被拒绝
A对M和M- 各做32处微小变化(保持原意),分别产生232 个64位hash值
根据前面的结论,超过0.5的概率能找到一个M和一个M- , 它们的hash值相同
A提交M,经B审阅后产生64位hash值并对该值签名,返 回给A
A用M- 替换M Hash必须足够长( 128, 160,224,256,…)
免费课件下载
| 9/24/2020
23
© 广东省信息安全技术重点实验室
11
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
MAC,也称密码校验和,是利用密钥来生成一个固定长度 的短数据块,并将该数据块附加在消息之后
假定通信双方A与B共享密钥K,A向B发送消息时,计算 MAC=CK(M),然后消息和MAC一起被发送给B,B对收到 的消息用相同的密钥K进行相同的计算,得出新的MAC, 并将接收到的MAC与B计算出的MAC进行对比,如果相等, 则 ✓B可以相信消息未被篡改 ✓B可以相信消息来自真正的发送方A ✓如果消息中含序列号,B可以相信消息的顺序正确
✓上述标出的认证编码器和认证译码器可抽象为认证函数 ✓一个安全的认证系统,首先要选好恰当的认证函数,然
后在此基础上,给出合理的认证协议(Authentication Protocol)
免费课件下载
| 9/24/2020
5
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
一种按CBC模式运行。在CBC模式下,消息按64bit分组, 不足时以0补齐,初始向量为0,送入DES系统加密,但
不输出密文,只取加密结果最左边的r位作为认证符,r 取大小可由通信双方约定。美国联邦电信建议采 用24bit[FTSC-1026],而美国金融系统采用32bit [ABA,1986]
免费课件下载
✓CK(M) 应均匀分布,即随机选择消息M和M- ,CK(M)
=CK(M-) 的概率是2-n,其中n是MAC的位数
✓MAC值应平等地依赖于消息中的所有位,令M- 为M的某
些变换,即M- =f(M),例如f 可以涉及M中一个或多个给 定位的反转),在这种情况下,Pr[CK(M-)= CK(M) ] = 2-n
Sun Yat-sen University
消息认证和数字签名
中山大学信息科学与技术学院 王常吉 副教授 2006年11月
免费课件下载
Sun Yat-sen University
消息认证和数字签名
消息认证(Message Authentication)
✓验证所收到的消息确实是来自真正的发送方,并且未被
报文解密后,保护就失效了)
✓某些信息只需要真实性,不需要保密性 广播的信息难以使用加密(信息量大) 网络管理信息等只需要真实性 政府/权威部门的公告
免费课件下载
| 9/24/2020
15
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
对MAC的安全要求
✓如果一个攻击者得到M和CK(M),则攻击者构造一个消息
一种基于生日悖论的攻击可能做到这一点,生日 问题
✓一个教室中,最少应有多少个学生,才使至少有两人具
有相同生日的概率不小于1/2?
✓概率结果与人的直觉是相违背的 ✓实际上只需23人,即任找23人,从中总能选出两人具有
相同生日的概率至少为1/2
免费课件下载ห้องสมุดไป่ตู้
| 9/24/2020
22
© 广东省信息安全技术重点实验室
免费课件下载
| 9/24/2020
16
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
Data Authentication Algorithm
✓FIPS publication (FIPS PUB 113)
✓ANSI standard (X9.17)
✓有两种使用广泛的基于DES的MAC,一种按CFB模式,
免费课件下载
| 9/24/2020
7
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(对称)
消息加密本身提供了一种认证手段(消息的自身加密可以 作为一个认证的度量)
对称加密方式 ✓A与B共享密钥K ✓A→B:EK[M]=C ✓B:M=DK[C],查看M是否为有意义的明文(如何区分真实的明文
公钥加密:认证和签名
| 9/24/2020
10
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(非对称)
M
E
EkRa(M) E
KRa
KUb
D EkRa(M)
D
M
KRb
KUa
EKUb(EkRa(M))
公钥加密:机密性,可认证和签名
免费课件下载
| 9/24/2020
免费课件下载
| 9/24/2020
18
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数
H可应用于任意大小的数据块 H 产生定长的输出 对于任意给定的x,容易计算出H(x) H是单向(one-way)函数
✓给定h,找到满足 h = H(x)的x在计算上是不可行的 ✓complexity of finding x out of h is 2n, where n is the number of
窜扰者
信源
认证编码器
认证译码器 信道
安全信道
密钥源
信宿
免费课件下载
| 9/24/2020
4
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
✓在这个系统中的发送者通过一个公开的无扰信道将消息
发送给接收者,接收者不仅想收到消息本身,而且还要 验证消息是否来自合法的发送者及消息是否经过篡改。 系统中的密码分析者不仅要截收和破译信道中传送的密 报,而且可伪造密文送给接收者进行欺诈,将其称为系 统的窜扰者(tamper)更加合适。实际认证系统可能还 要防止收方、发方之间的相互欺诈
消息认证码
免费课件下载
| 9/24/2020
14
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
为什么使用消息认证码 ✓保密性与真实性是两个不同的概念,从根本上讲,信息加密提供的
是保密性而非真实性
✓加密代价大(公钥算法代价更大) ✓认证函数与保密函数的分离能提供功能上的灵活性 ✓认证码可延长报文的保护期限,同时能处理报文内容(使用加密,当
✓又称为哈希函数、散列函数、数字指纹(Digital finger
print)、压缩(Compression)函数、紧缩 (Contraction )函数、数据认证码DAC(Data authentication code)、篡改检验码MDC (Manipulation detection code)
Sun Yat-sen University
哈希函数
强抗碰撞性(Strong collision resistance) ✓找到任何满足H(x)=H(y) 的偶对(x,y)在计算上是不可行的 ✓complexity is 2n/2
前三条是Hash函数实际应用于消息认证中所必须满足的, 第四条单向性是指,由消息很容易计算出Hash码,但由 Hash码却不能计算出相应的消息,第五条性质是保证不能 找到与给定消息具有相同Hash值的另一消息,可以在使用 时对Hash值加密的方法中防止伪造,第六条性质涉及Hash 函数抗生日攻击的能力强弱
✓验证信息的发送者是真正的,而不是冒充的,此为信源
识别;
✓验证信息的完整性,在传送或存储过程中未被篡改,重
放或延迟等
免费课件下载
| 9/24/2020
3
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
保密和认证是信息系统安全的两个方面,认证不 能自动提供保密性,而保密性也不能自然提供认证 功能。一个纯认证系统的模型如下图所示:
| 9/24/2020
17
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数
H(M): 输入为任意长度的消息M,输出为一个 固定长度的散列值,称为消息摘要(Message Digest),该散列值是消息M的所有位的函数并提 供错误检测能力(消息中的任何一位或多位的变化 都将导致该散列值的变化)
✓不带秘密密钥的Hash函数:消息的散列值的产生无需使
用密钥,此时散列值称作MDC
免费课件下载
| 9/24/2020
21
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数-生日攻击
如果采用传输加密的散列值和不加密的报文M, 攻击者需要找到M-,使得H(M-)=H(M),以便使用 替代报文来欺骗接收者
的结构
不提供签名
✓接收人可以伪造报文 ✓发送人可以伪造报文
免费课件下载
| 9/24/2020
9
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(非对称)
免费课件下载
M
E
EKUb(M) D
M
KUb(B方的公钥)
KRb
公钥加密:机密性
M
E
EKRa(M) D
M
KRa
KUa
免费课件下载
| 9/24/2020
12
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
MAC函数类似于加密函数,但不需要可逆性,因 此在数学上比加密算法被攻击的弱点要少
MAC的基本用途
免费课件下载
| 9/24/2020
13
© 广东省信息安全技术重点实验室
Sun Yat-sen University
篡改的消息的过程
Hash函数(Hash Function)
✓散列函数是以变长的报文作为输入,产生一个定长的散
列值(也称消息摘要)作为输出
免费课件下载
| 9/24/2020
2
© 广东省信息安全技术重点实验室
Sun Yat-sen University
认证
信息与网络安全系统一方面需要防范攻击者对系 统进行被动攻击(采用加密机制来保护消息的机密 性,使其不被破译),另一方面需要防范攻击者对 系统进行主动攻击(如伪造,篡改信息等)。认证 (authentication)是防止主动攻击的重要技术, 它对于开放网络中的各种信息系统的安全性有重要 作用,认证的目的:
消息认证和数字签名方法在功能上分为两层:
✓下层中有产生认证符(一个用来认证消息的值)的函数,
上层协议中将该函数作原语使接收方可以验证消息的真 实性
可用来产生认证符的函数可分为三类:
✓消息加密:整个消息的密文作为认证符 ✓消息认证码MAC:它是消息和密钥的公开函数,产生一
个固定长度的值作为认证符,MAC = F(K, M)
和随机的位串,解决的办法是强制明文具有某种结构)
信源
M
E
Ek(M)
信宿
D
M
K
K
免费课件下载
| 9/24/2020
8
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息加密(对称)
提供保密:仅A与B共享密钥K 提供一定程度的认证
✓仅来自A ✓传输中没有被更改 ✓要求明文具有某种易于识别,但不能复制且无需加密的
bits in the hash output
抗弱碰撞性(Weak collision resistance) ✓对于任意给定的 x,找到满足x≠y且H(x)=H(y)的y在计算上是
不可行的
✓complexity of attack is 2n
免费课件下载
| 9/24/2020
19
© 广东省信息安全技术重点实验室
✓Hash函数:将任意长的消息映射为定长的Hash值的公
开函数,以Hash值作为认证符
免费课件下载
| 9/24/2020
6
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
一个安全的消息认证系统,需满足
✓意定的接收者能够检验和证实消息的合法性、真实性和
完整性
✓消息的发送者和接收者不能抵赖 ✓除了合法的消息发送者,其它人不能伪造合法的消息
免费课件下载
| 9/24/2020
20
© 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数分类
根据安全水平
✓弱无碰撞 ✓强无碰撞 ✓注:强无碰撞自然含弱无碰撞!
根据是否使用密钥
✓带秘密密钥的Hash函数:消息的散列值由只有通信双方
知道的秘密密钥K来控制,此时散列值称作MAC
Sun Yat-sen University
生日攻击实例
A准备两份合同M和M-,一份B会同意,一份会取走他的财 产而被拒绝
A对M和M- 各做32处微小变化(保持原意),分别产生232 个64位hash值
根据前面的结论,超过0.5的概率能找到一个M和一个M- , 它们的hash值相同
A提交M,经B审阅后产生64位hash值并对该值签名,返 回给A
A用M- 替换M Hash必须足够长( 128, 160,224,256,…)
免费课件下载
| 9/24/2020
23
© 广东省信息安全技术重点实验室
11
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
MAC,也称密码校验和,是利用密钥来生成一个固定长度 的短数据块,并将该数据块附加在消息之后
假定通信双方A与B共享密钥K,A向B发送消息时,计算 MAC=CK(M),然后消息和MAC一起被发送给B,B对收到 的消息用相同的密钥K进行相同的计算,得出新的MAC, 并将接收到的MAC与B计算出的MAC进行对比,如果相等, 则 ✓B可以相信消息未被篡改 ✓B可以相信消息来自真正的发送方A ✓如果消息中含序列号,B可以相信消息的顺序正确
✓上述标出的认证编码器和认证译码器可抽象为认证函数 ✓一个安全的认证系统,首先要选好恰当的认证函数,然
后在此基础上,给出合理的认证协议(Authentication Protocol)
免费课件下载
| 9/24/2020
5
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
一种按CBC模式运行。在CBC模式下,消息按64bit分组, 不足时以0补齐,初始向量为0,送入DES系统加密,但
不输出密文,只取加密结果最左边的r位作为认证符,r 取大小可由通信双方约定。美国联邦电信建议采 用24bit[FTSC-1026],而美国金融系统采用32bit [ABA,1986]
免费课件下载