信息安全原理与技术ch05Hash函数和数字签名
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 设M’是M 的某个已知的变换,即M’=f(M),则 Ck(M)= Ck(M’)的概率为2-n。
2021/3/16
.
13
基于DES的消息认证码
K(56位)
D1(64位)
D2(64位)
D1(64位)
D2(64位)
+
+
+
DES加密 K DES加密 … K DES加密 K DES加密
O1(64位)
O2(64位)
息M和密钥K,计算MAC=C(K,M)
2021/3/16
.
7
消息认证码的使用
发送者A M
C
K
M MAC
传输
M MAC
接收者B C
K
比较
2021/3/16
.
8
消息认证码的使用(续)
发送者A M
C
K1
||
E
K2
接收者B
D
C
M
K2
MAC
K1 比较
2021/3/16
.
9
MAC的安全要求
• MAC中使用了密钥,这点和对称密钥加密 一样,如果密钥泄漏了或者被攻击了,则 MAC的安全性则无法保证。
– 伪装:攻击者生成一个消息并声称这条消息是来自某 合法实体,或者攻击者冒充消息接收方向消息发送方 发送的关于收到或未收到消息的欺诈应答。
– 内容修改:对消息内容的修改,包括插入、删除、转 换和修改。
– 顺序修改:对通信双方消息顺序的修改,包括插入、 删除和重新排序。
– 计时修改:对消息的延迟和重放。在面向连接的应用 中,攻击者可能延迟或重放以前某合法会话中的消息 序列,也可能会延迟或重放是消息序列中的某一条消 息。
ON-1
ON
2021/3/16
.
14
Hash函数
• Hash函数(也称散列函数或杂凑函数)是将 任意长的输入消息作为输入生成一个固定 长的输出串的函数,即h=H(M)。这个输 出串h称为该消息的散列值(或消息摘要, 或杂凑值)。
2021/3/16
.
15
安全的Hash函数的要求
• H可以应用于任意长度的数据块,产生固பைடு நூலகம்长度的散列 值;
2021/3/16
.
3
认证的目的
• 第一,验证消息的发送者是合法的,不是 冒充的,这称为实体认证,包括对信源、 信宿等的认证和识别;
• 第二,验证信息本身的完整性,这称为消 息认证,验证数据在传送或存储过程中没 有被篡改、重放或延迟等。
2021/3/16
.
4
认证的目的
• 可提供认证功能的认证码的函数可分为三 类:
– 加密函数:使用消息发送方和消息接收方共 享的密钥对整个消息进行加密,则整个消息 的密文作为认证符。
– 消息认证码:它是消息和密钥的函数,产生 定长度值,该值作为消息的认证符。
– 散列函数:它是将任意长的消息映射为定长 的hash值的函数,以该hash值作为认证符。
2021/3/16
.
5
基本的认证系统模型
信源
认证符生成
攻击者
验证认证符
安全信道
密钥
信宿
2021/3/16
.
6
消息认证码
• 消息认证码,简称MAC (Message Authentication Code),是一种使用密钥 的认证技术,它利用密钥来生成一个固定 长度的短数据块,并将该数据块附加在消 息之后。
• 在这种方法中假定通信双方A和B共享密 钥K。若A向B发送消息M时,则A使用消
信息安全原理与技术
郭亚军 宋建华 李莉 清华大学出版社
2021/3/16
.
1
第5章 消息认证与数字签名
• 主要知识点:
-- 认证 -- 认证码 -- 散列函数 -- MD5 -- SHA-512 -- 数字签名
2021/3/16
.
2
认证
• 认证则是防止主动攻击的重要技术,可以 防止如下一些攻击 :
在计算上是不可行的。
2021/3/16
.
16
安全的Hash函数的要求
• H可以应用于任意长度的数据块,产生固定长度的散列 值;
• 对每一个给定的输入m,计算H(m)是很容易的; • 给定Hash函数的描述,对于给定的散列值h,找到满足
H(m) = h的m在计算上是不可行的; • 给定Hash函数的描述,对于给定的消息m1,找到满足
Δ(M)=X1X2… Xm
Ck(M)=EK[Δ(M)]
攻击者可以用任何期望的Y1至Ym-1替代X1至Xm-1,用Ym替代 Xm来进行攻击,其中Ym如下计算的:
Ym=Y1Y2…Ym-1Δ(M)
攻击者可以将Y1至Ym-1与原来的MAC连结成一个新的消息M’, 接收方收到(M’, Ck(M))时,由于Δ(M’)= Y1 Y2… Ym =Δ(M),因此Ck(M)=EK[Δ(M’)],接受者会认为该消息是真实。 用这种办法,攻击者可以随意插入任意的长为64(m-1)位的 消息。
·匹配数2(k-2n) 。
• 攻击者可以按此方法不断对密钥进行测试,直到 将匹配数缩写到足够小的范围。平均来讲,若
k=an,则需a次循环
2021/3/16
.
11
针对MAC算法的攻击
• 攻击者针对下面的MAC算法,则不需要使用穷举攻击即可获 得密钥信息。
• 设消息M=(X1||X2||…||Xm),即由64位分组Xi联结而成。定义
• 对每一个给定的输入m,计算H(m)是很容易的; • 给定Hash函数的描述,对于给定的散列值h,找到满足
H(m) = h的m在计算上是不可行的; • 给定Hash函数的描述,对于给定的消息m1,找到满足
m2m1且H(m2)=H(m1)的m2在计算上是不可行的; • 找到任何满足H(m1)=H(m2)且m1 m2的消息对(m1, m2)
• 在基于算法的加密函数中,攻击者可以尝 试所有可能的密钥以进行穷举攻击,一般 对k位的密钥,穷举攻击需要2(k-1)步。
2021/3/16
.
10
对MAC的攻击
•第一轮
·给定M1, MAC1=CK(M1) ·对所有2k个密钥判断MACi=CKi(M1)
·匹配数2(k-n) 。
•第二轮
·给定M2, MAC2=CK(M2) ·对循环1中找到的2(k-n)个密钥判断MACi=CKi (M2)
2021/3/16
.
12
MAC的性质
• 一个安全的MAC函数应具有下列性质:
– 若攻击者知道M和Ck(M),则他构造满足 Ck(M’)= Ck(M)的消息M’在计算上是不可行的。
– Ck(M)应是均匀分布的,即对任何随机选择的 消息M和M’, Ck(M)=Ck(M’)的概率是2-n,其中n 是MAC的位数。
m2m1且H(m2)=H(m1)的m2在计算上是不可行的; • 找到任何满足H(m1)=H(m2)且m1 m2的消息对(m1, m2)
2021/3/16
.
13
基于DES的消息认证码
K(56位)
D1(64位)
D2(64位)
D1(64位)
D2(64位)
+
+
+
DES加密 K DES加密 … K DES加密 K DES加密
O1(64位)
O2(64位)
息M和密钥K,计算MAC=C(K,M)
2021/3/16
.
7
消息认证码的使用
发送者A M
C
K
M MAC
传输
M MAC
接收者B C
K
比较
2021/3/16
.
8
消息认证码的使用(续)
发送者A M
C
K1
||
E
K2
接收者B
D
C
M
K2
MAC
K1 比较
2021/3/16
.
9
MAC的安全要求
• MAC中使用了密钥,这点和对称密钥加密 一样,如果密钥泄漏了或者被攻击了,则 MAC的安全性则无法保证。
– 伪装:攻击者生成一个消息并声称这条消息是来自某 合法实体,或者攻击者冒充消息接收方向消息发送方 发送的关于收到或未收到消息的欺诈应答。
– 内容修改:对消息内容的修改,包括插入、删除、转 换和修改。
– 顺序修改:对通信双方消息顺序的修改,包括插入、 删除和重新排序。
– 计时修改:对消息的延迟和重放。在面向连接的应用 中,攻击者可能延迟或重放以前某合法会话中的消息 序列,也可能会延迟或重放是消息序列中的某一条消 息。
ON-1
ON
2021/3/16
.
14
Hash函数
• Hash函数(也称散列函数或杂凑函数)是将 任意长的输入消息作为输入生成一个固定 长的输出串的函数,即h=H(M)。这个输 出串h称为该消息的散列值(或消息摘要, 或杂凑值)。
2021/3/16
.
15
安全的Hash函数的要求
• H可以应用于任意长度的数据块,产生固பைடு நூலகம்长度的散列 值;
2021/3/16
.
3
认证的目的
• 第一,验证消息的发送者是合法的,不是 冒充的,这称为实体认证,包括对信源、 信宿等的认证和识别;
• 第二,验证信息本身的完整性,这称为消 息认证,验证数据在传送或存储过程中没 有被篡改、重放或延迟等。
2021/3/16
.
4
认证的目的
• 可提供认证功能的认证码的函数可分为三 类:
– 加密函数:使用消息发送方和消息接收方共 享的密钥对整个消息进行加密,则整个消息 的密文作为认证符。
– 消息认证码:它是消息和密钥的函数,产生 定长度值,该值作为消息的认证符。
– 散列函数:它是将任意长的消息映射为定长 的hash值的函数,以该hash值作为认证符。
2021/3/16
.
5
基本的认证系统模型
信源
认证符生成
攻击者
验证认证符
安全信道
密钥
信宿
2021/3/16
.
6
消息认证码
• 消息认证码,简称MAC (Message Authentication Code),是一种使用密钥 的认证技术,它利用密钥来生成一个固定 长度的短数据块,并将该数据块附加在消 息之后。
• 在这种方法中假定通信双方A和B共享密 钥K。若A向B发送消息M时,则A使用消
信息安全原理与技术
郭亚军 宋建华 李莉 清华大学出版社
2021/3/16
.
1
第5章 消息认证与数字签名
• 主要知识点:
-- 认证 -- 认证码 -- 散列函数 -- MD5 -- SHA-512 -- 数字签名
2021/3/16
.
2
认证
• 认证则是防止主动攻击的重要技术,可以 防止如下一些攻击 :
在计算上是不可行的。
2021/3/16
.
16
安全的Hash函数的要求
• H可以应用于任意长度的数据块,产生固定长度的散列 值;
• 对每一个给定的输入m,计算H(m)是很容易的; • 给定Hash函数的描述,对于给定的散列值h,找到满足
H(m) = h的m在计算上是不可行的; • 给定Hash函数的描述,对于给定的消息m1,找到满足
Δ(M)=X1X2… Xm
Ck(M)=EK[Δ(M)]
攻击者可以用任何期望的Y1至Ym-1替代X1至Xm-1,用Ym替代 Xm来进行攻击,其中Ym如下计算的:
Ym=Y1Y2…Ym-1Δ(M)
攻击者可以将Y1至Ym-1与原来的MAC连结成一个新的消息M’, 接收方收到(M’, Ck(M))时,由于Δ(M’)= Y1 Y2… Ym =Δ(M),因此Ck(M)=EK[Δ(M’)],接受者会认为该消息是真实。 用这种办法,攻击者可以随意插入任意的长为64(m-1)位的 消息。
·匹配数2(k-2n) 。
• 攻击者可以按此方法不断对密钥进行测试,直到 将匹配数缩写到足够小的范围。平均来讲,若
k=an,则需a次循环
2021/3/16
.
11
针对MAC算法的攻击
• 攻击者针对下面的MAC算法,则不需要使用穷举攻击即可获 得密钥信息。
• 设消息M=(X1||X2||…||Xm),即由64位分组Xi联结而成。定义
• 对每一个给定的输入m,计算H(m)是很容易的; • 给定Hash函数的描述,对于给定的散列值h,找到满足
H(m) = h的m在计算上是不可行的; • 给定Hash函数的描述,对于给定的消息m1,找到满足
m2m1且H(m2)=H(m1)的m2在计算上是不可行的; • 找到任何满足H(m1)=H(m2)且m1 m2的消息对(m1, m2)
• 在基于算法的加密函数中,攻击者可以尝 试所有可能的密钥以进行穷举攻击,一般 对k位的密钥,穷举攻击需要2(k-1)步。
2021/3/16
.
10
对MAC的攻击
•第一轮
·给定M1, MAC1=CK(M1) ·对所有2k个密钥判断MACi=CKi(M1)
·匹配数2(k-n) 。
•第二轮
·给定M2, MAC2=CK(M2) ·对循环1中找到的2(k-n)个密钥判断MACi=CKi (M2)
2021/3/16
.
12
MAC的性质
• 一个安全的MAC函数应具有下列性质:
– 若攻击者知道M和Ck(M),则他构造满足 Ck(M’)= Ck(M)的消息M’在计算上是不可行的。
– Ck(M)应是均匀分布的,即对任何随机选择的 消息M和M’, Ck(M)=Ck(M’)的概率是2-n,其中n 是MAC的位数。
m2m1且H(m2)=H(m1)的m2在计算上是不可行的; • 找到任何满足H(m1)=H(m2)且m1 m2的消息对(m1, m2)