4、单向函数 数字签名
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
单向散列函数
消息摘要算法采用单向散列(hash)函数从明文产生摘要密文 。摘要密文又称为哈希函数、数字指纹(Digital Fingerprint)、压缩(Compression)函数、紧缩( Contraction )函数、数据认证码DAC(Data authentication code)、篡改检验码MDC(Manipulation detection code)。
17
用数字签名(Digital Signature)可以有效地 解决这些问题。数字签名就是主要用于对数字信 息进行的签名,以防止信息被伪造或篡改等。 数字签名离不开公钥密码学,在公钥密码学 中,密钥由公开密钥和私有密钥组成。 数字签名包含两个过程:使用私有密钥进行 加密(称为签名过程),接受方或验证方用公开 密钥进行解密(称为验证过程)。
明文
甲方公钥 解密
乙方私钥 解密
22
乙方
涉及的几个概念
对称加密算法 DES, AES, IDEA 非对称(公钥)加密算法 RSA, ECC 哈希(单向散列)函数 SHA, MD 认证(消息认证):使用单向散列函数 数字签名:使用公钥加密算法
23
假定收、发双方共享密钥k,如果收到的MAC与计算得出的MAC一致 ,那么可以得出如下结论: ① 接收方确信消息M未被篡改。此为完整性验证。 ② 接收方确信消息来自所声称的发送者,因为没有其他人知道这个 共享密钥,其他人也就不可能为消息M附加合适的MAC。此为消息 源验证。 11
单向散列函数的抗碰撞性
12
哈希函数分类
根据是否使用密钥
带秘密密钥的Hash函数:消息的散列值由只有通信 双方知道的秘密密钥K来控制,此时散列值称作 MAC(Message Authentication Code) 不带秘密密钥的Hash函数:消息的散列值的产生无 需使用密钥,此时散列值称作MDC(Message Detection Code)
3
安全的hash函数的特点是: 1 . hash 函数能从任意长度的 M 中产生固定长 度的散列值h。 2.已知M时,利用h(M)很容易计算出h。 3.已知M时,要想通过控制同一个h(M), 计算出不同的h是很困难的。 4 .已知 h 时,要想从 h ( M )中计算出 M 是很 困难的。 5.已知M时,要找出另一信息M',使h(M) =h(M')是很困难的。
4
最常用的hash算法有MD5、SHA算法等。
MD5算法
在对输入的明文初始化之后,MD5是按每组 512位为一组来处理输入的信息,每一分组又被划 分为16个32位子分组,经过了一系列的处理后, 算法的输出由四个32位分组组成,把这四个32位 分组串联(级联)后将生成一个128位散列值。
5
SHA算法
在收发双方不能完全信任的情况下,引入数字签名来 解决上述问题
数字签名的作用相当于手写签名
16
数字签名概述
在网络通信和电子商务中很容易发生如下问题。 1.否认,发送信息的一方不承认自己发送过某一信息
。
2.伪造,接收方伪造一份文件,并声称它来自某发送 方的。 3.冒充,网络上的某个用户冒充另一个用户接收或发 送信息。 4.篡改,信息在网络传输过程中已被篡改,或接收方 对收到的信息进行篡改。
14
生日攻击实例
A准备两份合同M和N,一份B会同意,一份会取走他的财 产而被拒绝
A对M和N 各做32处微小变化(保持原意),分别产生232 个64位hash值 根据前面的结论,超过0.5的概率能找到一个M和一个N ,它们的hash值相同 A提交M,经B审阅后产生64位hash值并对该值签名,返 回给A
抗碰撞性的能力体现出单向散列函数对抗生日攻击和 伪造的能力。 弱抗碰撞性(Weak collision resistance):
对于任意给定的M,找到满足M≠N且H(M)=H(N)的N,在计算上 是不可行的;
强抗碰撞性(Strong collision resistance):
找到任何满足H(x)=H(y) 的偶对(x,y)在计算上是不 可行的。
13
哈希函数-生日攻击
如果采用传输加密的散列值和不加密的报文M,攻击 者需要找到N,使得H(N)=H(M),以便使用替代报文来 欺骗接收者。
一种基于生日悖论的攻击可能做到这一点,生日问题 :一个教室中,最少应有多少个学生,才使至少有两 人具有相同生日的概率不小于1/2?
概率结果与人的直觉是相违背的。实际上只需23人,即任找 23人,从中总能选出两人具有相同生日的概率至少为1/2
8
消息摘要的作用
在网络安全目标中,要求信息在生成、存储或传输过 程中保证不被偶然或蓄意地删除、修改、伪造、乱序 、重放、插入等破坏和丢失,因此需要一个较为安全 的标准和算法,以保证数据的完整性。
常见的消息摘要算法有:
Ron Rivest设计的MD(Standard For Message Digest,消息 摘要标准)算法 NIST设计的SHA(Secure Hash Algorithm,安全散列算法)
A用N 替换M
结论:Hash必须足够长( 128, 160,224,256,… 15)
消息认证的局限性
消息认证可以保护信息交换双方不受第三方的攻击, 但是它不能处理通信双方的相互攻击
信宿方可以伪造消息并称消息发自信源方,信源方产生一条消 息,并用和信源方共享的密钥产生认证码,并将认证码附于消 息之后 信源方可以否认曾发送过某消息,因为信宿方可以伪造消息, 所以无法证明信源方确实发送过该消息
散列函数的输出值有固定的长度,该散列值是消息M的所有位 的函数并提供错误检测能力,消息中的任何一位或多位的变化 都将导致该散列值的变化。从散列值不可能推导出消息M ,也 很难通过伪造消息M’来生成相同的散列值。
10
消息认证
认证码被附加到消息后以M||MAC方式一并发送,收方通过重新计算 MAC以实现对M的认证。如图所示。
认证 信息认证
- 消息源认证 - 消息的完整性认证
安全系统的攻击
- 被动攻击 - 主动攻击
保密和认证同属密码技术应用
2
单向散列函数
单向散列函数,也称hash函数,它可以提供判断信息 完整性的依据,是防止信息被篡改的一种有效方法。单向 散列函数在数据加密、数据签名和软件保护等领域中有着 广泛的应用。 单向散列函数特点 hash函数的作用是当向hash函数输入一任意长度的的信 息M时,hash函数将输出一固定长度为m的散列值h。即: h = h(M)
和MD5算法一样,SHA-1一次处理512位信息
生成一个160位散列值
用于创建数字签名的单向算法
6
散列算法的典型应用 用MD5校验和实现文件完整性保护 文件系统完整性保护 身份认证 网页自动恢复系统
7Байду номын сангаас
消息摘要 消息摘要的作用 单向散列函数 MD5算法 SHA安全散列算法
20
数字签名是传统签名的数字化,基本要求:
能与所签文件“绑定”
签名者不能否认自己的签名
签名不能被伪造
容易被自动验证
21
RSA 一般应用过程
加密 明文
解密 密文
甲方
甲方私钥 解密 乙方公钥 解密 明文
签名加解密 发送加解密
甲方私钥 加密
乙方公钥 加密
密文
密文
甲方公钥 加密
乙方私钥 加密
18
RSA算法的签名和验证过程 RSA算法的签名和验证过程
M 连接 M 签名 比较 Hash 加密 解密 Hash
发送方私钥Ks 发送签名方
发送方公钥Kg 接收验证方
19
数字签名机制
传统签名的基本特点:
能与被签的文件在物理上不可分割
签名者不能否认自己的签名
签名不能被伪造
容易被验证
单向散列函数
消息摘要算法采用单向散列(hash)函数从明文产生摘要密文 。摘要密文又称为哈希函数、数字指纹(Digital Fingerprint)、压缩(Compression)函数、紧缩( Contraction )函数、数据认证码DAC(Data authentication code)、篡改检验码MDC(Manipulation detection code)。
17
用数字签名(Digital Signature)可以有效地 解决这些问题。数字签名就是主要用于对数字信 息进行的签名,以防止信息被伪造或篡改等。 数字签名离不开公钥密码学,在公钥密码学 中,密钥由公开密钥和私有密钥组成。 数字签名包含两个过程:使用私有密钥进行 加密(称为签名过程),接受方或验证方用公开 密钥进行解密(称为验证过程)。
明文
甲方公钥 解密
乙方私钥 解密
22
乙方
涉及的几个概念
对称加密算法 DES, AES, IDEA 非对称(公钥)加密算法 RSA, ECC 哈希(单向散列)函数 SHA, MD 认证(消息认证):使用单向散列函数 数字签名:使用公钥加密算法
23
假定收、发双方共享密钥k,如果收到的MAC与计算得出的MAC一致 ,那么可以得出如下结论: ① 接收方确信消息M未被篡改。此为完整性验证。 ② 接收方确信消息来自所声称的发送者,因为没有其他人知道这个 共享密钥,其他人也就不可能为消息M附加合适的MAC。此为消息 源验证。 11
单向散列函数的抗碰撞性
12
哈希函数分类
根据是否使用密钥
带秘密密钥的Hash函数:消息的散列值由只有通信 双方知道的秘密密钥K来控制,此时散列值称作 MAC(Message Authentication Code) 不带秘密密钥的Hash函数:消息的散列值的产生无 需使用密钥,此时散列值称作MDC(Message Detection Code)
3
安全的hash函数的特点是: 1 . hash 函数能从任意长度的 M 中产生固定长 度的散列值h。 2.已知M时,利用h(M)很容易计算出h。 3.已知M时,要想通过控制同一个h(M), 计算出不同的h是很困难的。 4 .已知 h 时,要想从 h ( M )中计算出 M 是很 困难的。 5.已知M时,要找出另一信息M',使h(M) =h(M')是很困难的。
4
最常用的hash算法有MD5、SHA算法等。
MD5算法
在对输入的明文初始化之后,MD5是按每组 512位为一组来处理输入的信息,每一分组又被划 分为16个32位子分组,经过了一系列的处理后, 算法的输出由四个32位分组组成,把这四个32位 分组串联(级联)后将生成一个128位散列值。
5
SHA算法
在收发双方不能完全信任的情况下,引入数字签名来 解决上述问题
数字签名的作用相当于手写签名
16
数字签名概述
在网络通信和电子商务中很容易发生如下问题。 1.否认,发送信息的一方不承认自己发送过某一信息
。
2.伪造,接收方伪造一份文件,并声称它来自某发送 方的。 3.冒充,网络上的某个用户冒充另一个用户接收或发 送信息。 4.篡改,信息在网络传输过程中已被篡改,或接收方 对收到的信息进行篡改。
14
生日攻击实例
A准备两份合同M和N,一份B会同意,一份会取走他的财 产而被拒绝
A对M和N 各做32处微小变化(保持原意),分别产生232 个64位hash值 根据前面的结论,超过0.5的概率能找到一个M和一个N ,它们的hash值相同 A提交M,经B审阅后产生64位hash值并对该值签名,返 回给A
抗碰撞性的能力体现出单向散列函数对抗生日攻击和 伪造的能力。 弱抗碰撞性(Weak collision resistance):
对于任意给定的M,找到满足M≠N且H(M)=H(N)的N,在计算上 是不可行的;
强抗碰撞性(Strong collision resistance):
找到任何满足H(x)=H(y) 的偶对(x,y)在计算上是不 可行的。
13
哈希函数-生日攻击
如果采用传输加密的散列值和不加密的报文M,攻击 者需要找到N,使得H(N)=H(M),以便使用替代报文来 欺骗接收者。
一种基于生日悖论的攻击可能做到这一点,生日问题 :一个教室中,最少应有多少个学生,才使至少有两 人具有相同生日的概率不小于1/2?
概率结果与人的直觉是相违背的。实际上只需23人,即任找 23人,从中总能选出两人具有相同生日的概率至少为1/2
8
消息摘要的作用
在网络安全目标中,要求信息在生成、存储或传输过 程中保证不被偶然或蓄意地删除、修改、伪造、乱序 、重放、插入等破坏和丢失,因此需要一个较为安全 的标准和算法,以保证数据的完整性。
常见的消息摘要算法有:
Ron Rivest设计的MD(Standard For Message Digest,消息 摘要标准)算法 NIST设计的SHA(Secure Hash Algorithm,安全散列算法)
A用N 替换M
结论:Hash必须足够长( 128, 160,224,256,… 15)
消息认证的局限性
消息认证可以保护信息交换双方不受第三方的攻击, 但是它不能处理通信双方的相互攻击
信宿方可以伪造消息并称消息发自信源方,信源方产生一条消 息,并用和信源方共享的密钥产生认证码,并将认证码附于消 息之后 信源方可以否认曾发送过某消息,因为信宿方可以伪造消息, 所以无法证明信源方确实发送过该消息
散列函数的输出值有固定的长度,该散列值是消息M的所有位 的函数并提供错误检测能力,消息中的任何一位或多位的变化 都将导致该散列值的变化。从散列值不可能推导出消息M ,也 很难通过伪造消息M’来生成相同的散列值。
10
消息认证
认证码被附加到消息后以M||MAC方式一并发送,收方通过重新计算 MAC以实现对M的认证。如图所示。
认证 信息认证
- 消息源认证 - 消息的完整性认证
安全系统的攻击
- 被动攻击 - 主动攻击
保密和认证同属密码技术应用
2
单向散列函数
单向散列函数,也称hash函数,它可以提供判断信息 完整性的依据,是防止信息被篡改的一种有效方法。单向 散列函数在数据加密、数据签名和软件保护等领域中有着 广泛的应用。 单向散列函数特点 hash函数的作用是当向hash函数输入一任意长度的的信 息M时,hash函数将输出一固定长度为m的散列值h。即: h = h(M)
和MD5算法一样,SHA-1一次处理512位信息
生成一个160位散列值
用于创建数字签名的单向算法
6
散列算法的典型应用 用MD5校验和实现文件完整性保护 文件系统完整性保护 身份认证 网页自动恢复系统
7Байду номын сангаас
消息摘要 消息摘要的作用 单向散列函数 MD5算法 SHA安全散列算法
20
数字签名是传统签名的数字化,基本要求:
能与所签文件“绑定”
签名者不能否认自己的签名
签名不能被伪造
容易被自动验证
21
RSA 一般应用过程
加密 明文
解密 密文
甲方
甲方私钥 解密 乙方公钥 解密 明文
签名加解密 发送加解密
甲方私钥 加密
乙方公钥 加密
密文
密文
甲方公钥 加密
乙方私钥 加密
18
RSA算法的签名和验证过程 RSA算法的签名和验证过程
M 连接 M 签名 比较 Hash 加密 解密 Hash
发送方私钥Ks 发送签名方
发送方公钥Kg 接收验证方
19
数字签名机制
传统签名的基本特点:
能与被签的文件在物理上不可分割
签名者不能否认自己的签名
签名不能被伪造
容易被验证