(中文版)第三章_公钥加密和消息认证
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
SHA-1 的全部处理过程
填充位
第一步:
添加填充比特
填充消息使其长度模512同余448。填充后的消 息长度比512的整数倍少64比特。
添加填充位后的信息 填充部分是由单个比特1后接所需个数的比特0 总长度 + 64后,刚 构成。 好是512的整数倍
11
1 0 0
…
0 0
第一步::
添加填充比特。
8
SHA-1 的全部处理过程
该算法以最大长度不超过264比特的消息作为
输入,生成160比特的消息摘要作为输出。输 入以512比特的数据块进行处理。
英译:Two to the power sixtyfour
图3.4 (教材62页) 描述了一个消息产生消息摘要的全
过程。
9
全部的处理过程包含五个步骤,我 们将依次学习它们。
大家简单地进行介绍。
2004年8月,在美国加州召开的国际密码大会上, 山东大
学密码学专家王小云教授宣布了她及她的研究小组近年来的研究 成果——对MD5、HAVAL-128、MD4和RIPEM D等四个著名密码算法的破译结果。
27
安全Hash函数
安全Hash函数SHA-1的全部处理过程
SHA-1 的压缩函数 安全Hash函数的两个问题
基本步骤如下:
60
公钥加密算法
1, 每个用户都生成一对密钥用来对消息进行加密和解
密。
2, 每个用户把两个密钥中的一个放在公共寄存器或
其他可访问的文件里,这个密钥便是公钥,另一个密 钥自己保存。如下图(教材70页,图3.7)所示,每个用 户都收藏别人的公钥
抗分析能力很弱。
30
RIPEMD-160
RIPEMD-160消息摘要算法由欧洲RACE正和
基础评估(RIPE)工程发展而来。
http://homes.esat.kuleuven.be/~bosselae/ripemd1 60.html
31
RIPEMD-160
RIPEMD-160在结构上与SHA-1十分相似。 该
1, H 可适用于任意长度的数据块。
3
Hash函数的要求
2, H 能生成固定长度的输出。 3,对于任意给定的x, H (x)要容易计算,并且可 以用软/硬件方式实现。
4, 4, 对于任意给定值h, 找到满足H (x) = h的x 在计算上不可行。这一特性在文献中有时被称做 单向(one-way)性。
其他安全Hash函数
28
MD5
MD5消息摘要算法(RFC 1321)是Ron Rivest开
发的。
http://rfc.net/rfc1321.html
该算法输入为任意长度的消息,输出128比特
的消息摘要。输入以512比特分组进行处理。
29
MD5
此外,已发表的许多密码分析方法显示了MD5
56
3
4
公钥和私钥: 它们是被选择的一对密钥,如果一个密钥用于加密,则另 一个密钥就用于解密。
57
5
密文: 它是输出的混乱的消息,取决于明文和密钥。
58
6
解密算法: 该算法接收密文和匹配的密钥,生成原始的明文。
59
公钥加密算法
通常的公钥加密算法根据一个密钥进行加密,
根据另一个不同但相关的密钥进行解密。
4
Hash函数的要求
5,对任意给定的数据块x,找到满足H (y) = H (x) 的y ≠ x在计算上是不可行的。这一特性有时被称 为抗弱碰撞性(weak collision resistance)。
6,找到满足H (x) = H (y)的任意一对(x, y)在计算 上不可行的.。这一特性有时被称为抗弱碰撞性 (strong collision resistance)(能够抵御生日 攻击)。
全部处理过程包括80步。我们 将会在本课的第二部分学习其 中的操作 :SHA-1的压缩函数
20
SHA-1 的全部处理过程
第五步: 输出
当所有L个 512比特的数据块都处理完毕后,从 第L阶段输出的便是160比特的消息摘要。
21
22
安全Hash函数
安全Hash函数SHA-1的全部处理过程
a = A, b = B, c = C, d = D, e = E; 当t从0到79, TEMP = (a <<< 5) + ft ( b, c, d ) + e +Wt + Kt
e=d Kt 是常量 (十六进制): d=c K c = b <<< 30 t = 5a827999,当t 从 0到19 Kt b=a 一个中间变量= 6ed9eba1,当t从20到39 A循环左移5位 a = TEMP Kt = 8f1bbcdc,当t从40到59 A = a, B = Kt = ca62c1d6,,当=从60到79 b, C = c, D = d, E t e
50
概要
安全Hash函数 加密的Hash消息认证码 HMAC (Keyed-Hash
Message Authentication Code ) 公钥加密算法
51
公钥加密算法
公钥加密与传统加密同等重要, 它还可以用来进行消
息认证和密钥分发。
Diffie和Hellman在1976年首次公开提出了公钥加密
5
概要
安全Hash函数 加密的Hash消息认证码 (HMAC,Keyed-Hash
Message Authentication Code) 公钥加密算法
6
安全Hash函数
安全Hash函数SHA-1 的全部处理过程
SHA-1 的压缩功能
安全Hash函数的两个问题 其他安全Hash函数
SHA-1 的压缩函数 安全Hash函数的两个问题
其他安全Hash函数
23
copy
共四轮 (rounds)
每一轮: 20 步
a, b, c, d, e 然后,下一步操作如下
全部处理过程包括80步。 由于 每一步都是相似的,我们只是 学习其中的一步。
24
SHA-1中的主要操作
设t (从0到79)是操作的序号 主要的操作如下所示:
第三章
公钥加密和消息认证 (Ⅱ)
主讲:綦朝晖 石家庄铁道学院计算机与信息工程分院
1
内容回顾
请回忆上节课所学内容
消息认证码(MAC) 单向Hash函数 Hash函数的要求 怎样构建一个简单Hash函数
2
Hash函数的要求
为满足在消息认证中的应用, Hash函数H必须具有下
列性质:
12
SHA-1 的全部处理过程
第二步: 添加长度
将64比特的数据块添加在消息上。该数据块被看作 64比特的无符号整数,它还含有原始消息(未填充 前)的长度。
13
消息的总长度是512比特的整数倍
消息的长度等于原始数据长度 +填充比特数+ 64比特。 然后它将 被分成 L个分组,每个分组的长度为 512比特。
思想, 这是有文字记载的几千年来密码领域第一次真 正革命性的进步。
52
公钥加密算法
公钥加密方案由6个部分组成,如下图所示(教材70页,
图3.7 a)
53
3
4
1
2
5
6
公钥加密的六个部分
54
明文:
1
这是可读的消息或者数 据,作为算法的输入。
55
2
加密算法:
加密算法对明文进行各种 形式的变换。
35
HMAC
开发HMAC的动机 HMAC算法 HMAC算法的安全性分析
36
开发的动机
近年来, 人们对从加密Hash码(如SHA-1 )中开发
MAC越来越感兴趣。
采用软件实现时,加密Hash函数执行速度比传统加 密算法(如DES)快。 (1) 软件实现时执 行缓慢; (2) 采用64比特 不足之处 ? 的分组长度。
如同SHA-1,设计Hash函数并不是为了用作MAC。因
为Hash函数不依赖于私钥,所以它不能直接用于此目 的。
带私钥的HMAC已经发布为RFC 2104标准,并被选作
保护IP 安全的从命令到实现(mandatory-toimplement)的MAC。它也被用于其他互联网协议, 如传输层安全( TLS ,即Transport Layer Security)。
响方面的论文,希望同学们参考;
1,李丹,龙毅宏,“MD5被破解对实际应用的影 响”,《信息安全与通信保密》总136期; 2,上海交通大学教授密码学家来学嘉教授 (1992,来 学嘉教授与J.L.Massey 教授合作发明了IDEA 算法) 的分析与评价:
http://www.itsec.gov.cn/webportal/portal.po?UID=DWV1_W OUID_URL_162921&TOC=COLUMN_162921&OBJ=188594
算法 的输入为任意长度的消息,输出160比特 的消息摘要。输入以512比特的分组进行处理。
32
安全Hash函数的比较
接下来讨论安全Hash函数的比较,如下表所示
(教材65页,表3.1)
33
34
概要
安全Hash函数 加密的Hash消息认证码 (HMAC,Keyed-Hash
Message Authentication Code) 公钥加密算法
本课重点
7
SHA-1 的全部处理过程
安全Hash算法(SHA)由美国国家标准与技术研
究所(NIST)开发,并在1993年公布成为美国 联邦信息处理标准 (FIPS PUB 180);
1995 年公布修订版本FIPS PUB 180-1 ,通常称为
SHA-1.
我们可以从下面的网页上找到详细的介绍, http://www.itl.nist.gov/fipspubs/fip180-1.htm
15
IV = ABCDE
16
SHA-1 的全部处理过程
第四步: 处理512比特数据块消息
算法的核心是压缩函数模块,它包括4轮操作,每 轮20步。下面的插图说明了它的逻辑关系(教材63 页,图3.5)
17
18
对单个 512比特数据块的处理
160 CYq+1
19
每一轮: 20 步 共四轮 (rounds)
http://www.faqs.org/rfcs/rfc2104.html
我们可以从下面的网页上找到它的详细文档,
40
HMAC 算法
HMAC的结构如下图所示(教材67页,图3.6)
41
一共有很多步,我们将依次学习
图3.6
HMAC 结构
42
ห้องสมุดไป่ตู้3
K+
ipad
M: 输入到HMAC的消息
Si = K+⊕ ipad
( K+ ⊕ ipad ) || M
K 以及其左边填充的使长度为b比特的0;k为密钥 = 00110110 (十六进制数为36) 重复b/8 次
44
45
( K+ ⊕ ipad ) || M
Hash函数: 如 SHA-1、MD4、MD5等.
opad
n = 产生的Hash码长度
So = K+⊕ opad (K+⊕ opad ) || H(( K+ ⊕ ipad ) || M) = 01011100 (十六进制数为5C) 重复b/8次
一个64比特的无符 号整数;其值为K
14
SHA-1 的全部处理过程
第三步: 初始化MD缓冲区
用160比特的缓冲区保存Hash函数的中间和最终结 果。缓冲区可以是5个32比特的寄存器(A,B,C,D,E). 这些寄存器初始化为如下的5个32比特的整数(十六 进制值)。
A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0
46
47
(K+⊕ opad ) || H(( K+ ⊕ ipad ) || M)
HMACK(M) = H ( (K+⊕ opad ) || H(( K+ ⊕ ipad ) || M))
48
HMAC
开发HMAC的动机 HMAC算法 HMAC算法的安全性分析
49
HMAC的安全性分析
在这里推荐给大家2篇关于hash函数被破解所带来的影
25
安全Hash函数
安全Hash函数SHA-1的全部处理过程
SHA-1 的压缩函数 安全Hash函数的两个问题
其他安全Hash函数
26
两个问题
1,安全Hash函数SHA-1是否安全?为什么? 2,你还知道其他安全Hash函数吗?有那些?
其他的hash算法还有很多:如MD5、RIPEMD等,在课堂上我向
37
开发的动机
对于加密的Hash函数,每国或者其他国家都没有出 口限制。但是,对于传统加密算法, 甚至在使用 MAC时,都是受限的。
例如,DES、Triple DES、AES等等都是收 到限制的
38
HMAC
开发HMAC的动机 HMAC算法 HMAC算法的安全性分析
39
HMAC 算法
SHA-1 的全部处理过程
填充位
第一步:
添加填充比特
填充消息使其长度模512同余448。填充后的消 息长度比512的整数倍少64比特。
添加填充位后的信息 填充部分是由单个比特1后接所需个数的比特0 总长度 + 64后,刚 构成。 好是512的整数倍
11
1 0 0
…
0 0
第一步::
添加填充比特。
8
SHA-1 的全部处理过程
该算法以最大长度不超过264比特的消息作为
输入,生成160比特的消息摘要作为输出。输 入以512比特的数据块进行处理。
英译:Two to the power sixtyfour
图3.4 (教材62页) 描述了一个消息产生消息摘要的全
过程。
9
全部的处理过程包含五个步骤,我 们将依次学习它们。
大家简单地进行介绍。
2004年8月,在美国加州召开的国际密码大会上, 山东大
学密码学专家王小云教授宣布了她及她的研究小组近年来的研究 成果——对MD5、HAVAL-128、MD4和RIPEM D等四个著名密码算法的破译结果。
27
安全Hash函数
安全Hash函数SHA-1的全部处理过程
SHA-1 的压缩函数 安全Hash函数的两个问题
基本步骤如下:
60
公钥加密算法
1, 每个用户都生成一对密钥用来对消息进行加密和解
密。
2, 每个用户把两个密钥中的一个放在公共寄存器或
其他可访问的文件里,这个密钥便是公钥,另一个密 钥自己保存。如下图(教材70页,图3.7)所示,每个用 户都收藏别人的公钥
抗分析能力很弱。
30
RIPEMD-160
RIPEMD-160消息摘要算法由欧洲RACE正和
基础评估(RIPE)工程发展而来。
http://homes.esat.kuleuven.be/~bosselae/ripemd1 60.html
31
RIPEMD-160
RIPEMD-160在结构上与SHA-1十分相似。 该
1, H 可适用于任意长度的数据块。
3
Hash函数的要求
2, H 能生成固定长度的输出。 3,对于任意给定的x, H (x)要容易计算,并且可 以用软/硬件方式实现。
4, 4, 对于任意给定值h, 找到满足H (x) = h的x 在计算上不可行。这一特性在文献中有时被称做 单向(one-way)性。
其他安全Hash函数
28
MD5
MD5消息摘要算法(RFC 1321)是Ron Rivest开
发的。
http://rfc.net/rfc1321.html
该算法输入为任意长度的消息,输出128比特
的消息摘要。输入以512比特分组进行处理。
29
MD5
此外,已发表的许多密码分析方法显示了MD5
56
3
4
公钥和私钥: 它们是被选择的一对密钥,如果一个密钥用于加密,则另 一个密钥就用于解密。
57
5
密文: 它是输出的混乱的消息,取决于明文和密钥。
58
6
解密算法: 该算法接收密文和匹配的密钥,生成原始的明文。
59
公钥加密算法
通常的公钥加密算法根据一个密钥进行加密,
根据另一个不同但相关的密钥进行解密。
4
Hash函数的要求
5,对任意给定的数据块x,找到满足H (y) = H (x) 的y ≠ x在计算上是不可行的。这一特性有时被称 为抗弱碰撞性(weak collision resistance)。
6,找到满足H (x) = H (y)的任意一对(x, y)在计算 上不可行的.。这一特性有时被称为抗弱碰撞性 (strong collision resistance)(能够抵御生日 攻击)。
全部处理过程包括80步。我们 将会在本课的第二部分学习其 中的操作 :SHA-1的压缩函数
20
SHA-1 的全部处理过程
第五步: 输出
当所有L个 512比特的数据块都处理完毕后,从 第L阶段输出的便是160比特的消息摘要。
21
22
安全Hash函数
安全Hash函数SHA-1的全部处理过程
a = A, b = B, c = C, d = D, e = E; 当t从0到79, TEMP = (a <<< 5) + ft ( b, c, d ) + e +Wt + Kt
e=d Kt 是常量 (十六进制): d=c K c = b <<< 30 t = 5a827999,当t 从 0到19 Kt b=a 一个中间变量= 6ed9eba1,当t从20到39 A循环左移5位 a = TEMP Kt = 8f1bbcdc,当t从40到59 A = a, B = Kt = ca62c1d6,,当=从60到79 b, C = c, D = d, E t e
50
概要
安全Hash函数 加密的Hash消息认证码 HMAC (Keyed-Hash
Message Authentication Code ) 公钥加密算法
51
公钥加密算法
公钥加密与传统加密同等重要, 它还可以用来进行消
息认证和密钥分发。
Diffie和Hellman在1976年首次公开提出了公钥加密
5
概要
安全Hash函数 加密的Hash消息认证码 (HMAC,Keyed-Hash
Message Authentication Code) 公钥加密算法
6
安全Hash函数
安全Hash函数SHA-1 的全部处理过程
SHA-1 的压缩功能
安全Hash函数的两个问题 其他安全Hash函数
SHA-1 的压缩函数 安全Hash函数的两个问题
其他安全Hash函数
23
copy
共四轮 (rounds)
每一轮: 20 步
a, b, c, d, e 然后,下一步操作如下
全部处理过程包括80步。 由于 每一步都是相似的,我们只是 学习其中的一步。
24
SHA-1中的主要操作
设t (从0到79)是操作的序号 主要的操作如下所示:
第三章
公钥加密和消息认证 (Ⅱ)
主讲:綦朝晖 石家庄铁道学院计算机与信息工程分院
1
内容回顾
请回忆上节课所学内容
消息认证码(MAC) 单向Hash函数 Hash函数的要求 怎样构建一个简单Hash函数
2
Hash函数的要求
为满足在消息认证中的应用, Hash函数H必须具有下
列性质:
12
SHA-1 的全部处理过程
第二步: 添加长度
将64比特的数据块添加在消息上。该数据块被看作 64比特的无符号整数,它还含有原始消息(未填充 前)的长度。
13
消息的总长度是512比特的整数倍
消息的长度等于原始数据长度 +填充比特数+ 64比特。 然后它将 被分成 L个分组,每个分组的长度为 512比特。
思想, 这是有文字记载的几千年来密码领域第一次真 正革命性的进步。
52
公钥加密算法
公钥加密方案由6个部分组成,如下图所示(教材70页,
图3.7 a)
53
3
4
1
2
5
6
公钥加密的六个部分
54
明文:
1
这是可读的消息或者数 据,作为算法的输入。
55
2
加密算法:
加密算法对明文进行各种 形式的变换。
35
HMAC
开发HMAC的动机 HMAC算法 HMAC算法的安全性分析
36
开发的动机
近年来, 人们对从加密Hash码(如SHA-1 )中开发
MAC越来越感兴趣。
采用软件实现时,加密Hash函数执行速度比传统加 密算法(如DES)快。 (1) 软件实现时执 行缓慢; (2) 采用64比特 不足之处 ? 的分组长度。
如同SHA-1,设计Hash函数并不是为了用作MAC。因
为Hash函数不依赖于私钥,所以它不能直接用于此目 的。
带私钥的HMAC已经发布为RFC 2104标准,并被选作
保护IP 安全的从命令到实现(mandatory-toimplement)的MAC。它也被用于其他互联网协议, 如传输层安全( TLS ,即Transport Layer Security)。
响方面的论文,希望同学们参考;
1,李丹,龙毅宏,“MD5被破解对实际应用的影 响”,《信息安全与通信保密》总136期; 2,上海交通大学教授密码学家来学嘉教授 (1992,来 学嘉教授与J.L.Massey 教授合作发明了IDEA 算法) 的分析与评价:
http://www.itsec.gov.cn/webportal/portal.po?UID=DWV1_W OUID_URL_162921&TOC=COLUMN_162921&OBJ=188594
算法 的输入为任意长度的消息,输出160比特 的消息摘要。输入以512比特的分组进行处理。
32
安全Hash函数的比较
接下来讨论安全Hash函数的比较,如下表所示
(教材65页,表3.1)
33
34
概要
安全Hash函数 加密的Hash消息认证码 (HMAC,Keyed-Hash
Message Authentication Code) 公钥加密算法
本课重点
7
SHA-1 的全部处理过程
安全Hash算法(SHA)由美国国家标准与技术研
究所(NIST)开发,并在1993年公布成为美国 联邦信息处理标准 (FIPS PUB 180);
1995 年公布修订版本FIPS PUB 180-1 ,通常称为
SHA-1.
我们可以从下面的网页上找到详细的介绍, http://www.itl.nist.gov/fipspubs/fip180-1.htm
15
IV = ABCDE
16
SHA-1 的全部处理过程
第四步: 处理512比特数据块消息
算法的核心是压缩函数模块,它包括4轮操作,每 轮20步。下面的插图说明了它的逻辑关系(教材63 页,图3.5)
17
18
对单个 512比特数据块的处理
160 CYq+1
19
每一轮: 20 步 共四轮 (rounds)
http://www.faqs.org/rfcs/rfc2104.html
我们可以从下面的网页上找到它的详细文档,
40
HMAC 算法
HMAC的结构如下图所示(教材67页,图3.6)
41
一共有很多步,我们将依次学习
图3.6
HMAC 结构
42
ห้องสมุดไป่ตู้3
K+
ipad
M: 输入到HMAC的消息
Si = K+⊕ ipad
( K+ ⊕ ipad ) || M
K 以及其左边填充的使长度为b比特的0;k为密钥 = 00110110 (十六进制数为36) 重复b/8 次
44
45
( K+ ⊕ ipad ) || M
Hash函数: 如 SHA-1、MD4、MD5等.
opad
n = 产生的Hash码长度
So = K+⊕ opad (K+⊕ opad ) || H(( K+ ⊕ ipad ) || M) = 01011100 (十六进制数为5C) 重复b/8次
一个64比特的无符 号整数;其值为K
14
SHA-1 的全部处理过程
第三步: 初始化MD缓冲区
用160比特的缓冲区保存Hash函数的中间和最终结 果。缓冲区可以是5个32比特的寄存器(A,B,C,D,E). 这些寄存器初始化为如下的5个32比特的整数(十六 进制值)。
A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0
46
47
(K+⊕ opad ) || H(( K+ ⊕ ipad ) || M)
HMACK(M) = H ( (K+⊕ opad ) || H(( K+ ⊕ ipad ) || M))
48
HMAC
开发HMAC的动机 HMAC算法 HMAC算法的安全性分析
49
HMAC的安全性分析
在这里推荐给大家2篇关于hash函数被破解所带来的影
25
安全Hash函数
安全Hash函数SHA-1的全部处理过程
SHA-1 的压缩函数 安全Hash函数的两个问题
其他安全Hash函数
26
两个问题
1,安全Hash函数SHA-1是否安全?为什么? 2,你还知道其他安全Hash函数吗?有那些?
其他的hash算法还有很多:如MD5、RIPEMD等,在课堂上我向
37
开发的动机
对于加密的Hash函数,每国或者其他国家都没有出 口限制。但是,对于传统加密算法, 甚至在使用 MAC时,都是受限的。
例如,DES、Triple DES、AES等等都是收 到限制的
38
HMAC
开发HMAC的动机 HMAC算法 HMAC算法的安全性分析
39
HMAC 算法