第三章对称密码体制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
17
(1) 选择扩展运算
将输入的32bit数据扩展为48bit的输出数据,变换表如 下:
可以看出1、4、5、8、9、12、13、16、17、20、21、 18 24、25、28、29、32这16个位置上的数据被读了两次。
(2)与子密钥的异或运算
与子密钥的异或运算:将选择扩展运算的48 bit数据与子密钥Ki(48 bit)进行异或运算。 (后面详述)
• 1998年7月电子前沿基金会(EFF)使用一 台25万美元的电脑在56小时内破译了56比特密 钥的DES。 • 1999年1月RSA数据安全会议期间,电子前 沿基金会用22小时15分钟就宣告破解了一个 DES的密钥。
29
3.2.3 DES的变形 1.两重DES
双重DES 密钥长度 为112bit, 密码强度 似乎增强 了一倍, 但问题并 非如此。 C=EK2(EK1(P))
40
3.4.1 电码本模式(ECB)
电子密码本ECB
Ci = EK (Pi ) Pi = DK (Ci )
41
ECB的特点
ECB用于短数据(如加密密钥)是非常理想,长消息不够安全
简单、有效 可以并行实现 不能隐藏明文的模式信息
• 1976年,NBS指派了两个小组进行评价
• 1976年11月23日,采纳为联邦标准,批准用于非军 事场合的各种政府机构 • 1977年1月15日,被正式批准为美国联邦信息处理标 准,即FIPS PUB 46,同年7月15日开始生效。
10
DES的应用
• 1979年,美国银行协会批准使用 • 1980年,美国国家标准局赞同DES作为私人使用的标 准,称之为DEA(ANSI X.392) • 1983年,国际化标准组织ISO赞同DES作为国际标准, 称之为DEA-1 • 该标准规定每五年审查一次,计划十年后采用新标准
Rijndael简介 • 不属于Feistel结构
• 加密、解密相似但不对称
• 支持128/32=Nb数据块大小 • 支持128/192/256(/32=Nk)密钥长度 • 有较好的数学理论作为基础 • 结构简单、速度快
34
AES参数
轮数r与Nb和Nk r Nk=4 Nb=4 10 Nb=6 12 Nb=8 14
= Ri⊕F(Li,Ki)
7
2. SP网络结构是分组密码的另一种重要结构, AES等重要算法采用的是此结构。
8
DES(Data Encryption Standard )是迄今为止使用最为广泛的加 密算法。 DES的产生-i • 1973年5月13日, NBS(美国国家标准局)开始公开征集标准加密算 法,并公布了它的设计要求: (1)算法必须提供高度的安全性; (2)算法必须有详细的说明,并易于理解; (3)算法的安全性取决于密钥,不依赖于算法;
x1 xm
分组密码
k
无记忆元件
y1
x1
k
…
内部记忆元件
y1
ym
流密码
2
分组密码对不同的组采用同样的密钥k进 行加/解密。设密文组为y=y1y2•••ym,则对明 文组x=x1x2 ••• xm用密钥k加密可得到 y=ek(x1)ek(x2) ••• ek(xm)。
流密码的基本思想是利用密钥k产生一个 密钥流z=z0z1 •••,并使用如下规则加密明文 串x=x0 x1 x2 ••• ,y=y0y1y2•••= ez0(x0)ez1(x1) ez2(x2)••• 。密钥流由密钥流发生器f产生。 分组密码与流密码的区别就在于记忆性。
12
13
1.初始置换IP和初始逆置换IP—1
14
2. 迭代变换
15
迭代变换是DES算法的核心部分,每 轮开始时将输入的64bit数据分成左、右 长度相等的两部分,右半部分原封不动地 作为本轮输出的64bit数据的左半部分, 同时对右半部分进行一系列的变换,即用 轮函数F作用右半部分,然后将所得结果 与输入数据的左半部分进行逐位异或,最 后将所得数据作为本轮输出的64bit数据 的右半部分。 轮函数F由选择扩展运算E、与子密钥 的异或运算、选择压缩运算S和置换P组成。
19
(3)选择压缩运算
将输入的48bit数据从左至右分成8组,每组6bit。然后输入8个S 盒,每个S盒为一非线性代换,有4bit输出,如图所示:
20
21
22
S-Box
• 对每个盒,6比特输入中的第1和第6比特组成
的二进制数确定的行,中间4位二进制数用来 确定的列。相应行、列位置的十进制数的4位 二进制数表示作为输出。例如的输入为101001, 则行数和列数的二进制表示分别是11和0100, 即表中3行和表中4列,表中3行和表中4列的十 进制数为3,用4位二进制数表示为0011,所以 的输出为0011。
Nk=6 Nk=8
12 14
Βιβλιοθήκη Baidu
12 14
14 14
35
SP网络结构
在这种密码的每一轮中,轮输入首先被一个由子密钥控 制的可逆函数S作用,然后再对所得结果用置换(或可逆 线性变换)P作用。S和P分别被称为混乱层和扩散层,主 要起混乱和扩散作用。
36
AES算法结构-i
• AES算法的轮变换中没有Feistel结构,轮变换是由三
• 在CRYPTO’93上,Session和Wiener给出了一个非常
详细的密钥搜索机器的设计方案,这个机器基于并行 运算的密钥搜索芯片,16次加密能同时完成。此芯片 每秒能测试5000万个密钥,用5760个芯片组成的系统 需要花费10万美元,它平均用1.5天左右就可找到DES 密钥。 • 1997年1月28日,美国的RSA数据安全公司在RSA安 全年会上公布了一项“秘密密钥挑战”竞赛,其中包 括悬赏1万美元破译密钥长度为56比特的DES。美国克 罗拉多洲的程序员Verser从1997年2月18日起,用了96 天时间,在Internet上数万名志愿者的协同工作下, 28 成功地找到了DES的密钥,赢得了悬赏的1万美元。
3
3.1.1
分组密码设计原理
分组密码是将明文消息编码表示后的数字(简 称明文数字)序列x0,x1,… ,划分成长度为n的组 x=(x0,x1,…,xn-1),每组分别在密钥 k=(k0,k1,…,km-1) 的控制下变换成等长的输出数字(简称密文数字) 序列y=(y0,y1,…,yn-1) 。
4
分组密码的算法应满足如下安全性和软/硬件实现的 要求: (1)分组长度足够大,防止明文被穷举攻击。如 n=64bit (DES) ,新的标准n=128bit (AES) (2)密钥空间足够大,从而防止穷举密钥攻击。同时, 密钥又不能太长,以利于密钥管理,DES采用56bit 有效密钥,现在不够长,今后采用128bit是足够安 全的。 (3)由密钥确定的算法要足够复杂,充分实现明文与 密文的扩散和混淆,没有简单的关系可循。 (4)软件实现的要求:尽量使用适合编程的子块和简 单的运算 (5)硬件实现的要求:加密和解密应具有相似性。
5
两个基本设计方法
Shannon称之为理想密码系统,密文的所有统计特性 都与所使用的密钥独立。 • 扩散(Diffusion):明文的统计结构被扩散消失到 密文的统计特性中,使得明文和密文之间的统计关系 尽量复杂。使得明文的每个比特影响到密文许多比特 的取值,即每个密文比特被许多明文比特影响。 • 混乱(confusion):使得密文的统计特性与密钥的 取值之间的关系尽量复杂。 •扩散和混淆的目的都是为了挫败推出密钥的尝试, 从而抗统计分析。
双重DES易 受中途攻击
P=DK1(DK2(C))
30
2.三重DES(以被广泛采用)
优点:能对付中途攻击。密钥长度为168bit
31
3.3 高级加密标准AES
AES背景-i
• 1997年4月15日,(美国)国家标准技术研究所 ( NIST ) 发起征集高级加密标准( Advanced Encryption Standard)AES的活动,活动目的是确定一 个非保密的、可以公开技术细节的、全球免费使用的分 组密码算法,作为新的数据加密标准。 • 1997年9月12日,美国联邦登记处公布了正式征集AES 候选算法的通告。作为进入AES候选过程的一个条件,开 发者承诺放弃被选中算法的知识产权。 对AES的基本要求是:比三重DES快、至少与三重DES一样 安全、数据分组长度为128比特、密钥长度为 32 128/192/256比特。
AES背景-ii
• 1998年8月12日,在首届AES会议上指定了15 个候选算法。
• 1999年3月22日第二次AES会议上,将候选名 单减少为5 个, 这5 个算法是RC6 , Rijndael , SERPENT,Twofish和MARS。 • 2000年4月13日,第三次AES会议上,对这5 个候选算法的各种分析结果进行了讨论。 • 2000年10月2日,NIST宣布了获胜者— Rijndael算法, 2001 年11 月出版了最终标准 33 FIPSPUB197。
个不同的可逆一致变换组成,称之为层, – 线性混合层:确保多轮之上的高度扩散。 – 非线性层:具有最优最差-情形非线性性的S-盒的并 行应用。 – 密钥加层:轮密钥简单地异或到中间状态上。
37
AES算法结构-ii
38
39
3.4
分组密码的工作模式
分组密码在加密时明文的长度是固定的。而实用中待加密消息 的数据量是不定的,数据格式也可能是多种多样的,为了能在 各种应用场合安全地使用分组密码,通常对不同的使用目的运 用不同的工作模式。
第三章
3.1 3.2 3.3
对称密码体制
分组密码原理 数据加密标准(DES) 高级加密标准(AES)
3.4
分组密码的工作模式
1
3.1
分组密码原理
对称密码体制根据对明文加密方式的不同分为 分组密码和流密码。 分组密码:按一定长度(如64bit,128bit)对 明文进行分组,然后以组为单位采用同样的密 钥进行加/解密; 流密码:不进行分组,而是按位进行加/解密
6
3.1.2
分组密码的一般结构
分组密码的一般结构可以分为两种:Feistel网络 结构和SP网络结构。 1. Feistel网络结构 Feistel网络结构如图所示:DES采用的是Feistel网络 结构
加密: Li = Ri-1; Ri = Li-1⊕F(Ri-1,Ki) •解密: Ri-1 = Li,Li-1 = Ri⊕F(Ri-1,Ki)
分组密码的工作模式:就是以该分组密码为基础构造 的一个密码系统。
电子密码本 密码分组链接 密码反馈 输出反馈
ECB (electronic codebook mode) CBC (cipher block chaining) CFB (cipher feedback) OFB (output feedback)
23
(4)置换P
24
25
26
3.2.2 DES问题讨论
1.S盒的安全问题
有人认为s盒可能存在陷门,但至今没有迹象表明s盒中 存在陷门。
2.密钥长度
• 关于DES算法的另一个最有争议的问题就是担心实际 56比特的密钥长度不足以抵御穷举式攻击,因为密钥量 只有256≈1017个。 • 早在1977年,Diffie和Hellman已建议制造一个每秒能 测试100万个密钥的VLSI芯片。每秒测试100万个密钥 的机器大约需要一天就可以搜索整个密钥空间。他们估 计制造这样的机器大约需要2000万美元。 27
3.2
数据加密标准(DES)
(4)算法适用于所有用户;
(5)算法适用于不同应用场合; (6)算法必须高效、经济;
(7)算法必须能被证实有效;
(8)算法必须是可出口的;
9
DES的产生-ii
• 1974年8月27日, NBS开始第二次征集,IBM提交了算 法LUCIFER,该算法由IBM的工程师在1971-1972年研 制 • 1975年3月17日, NBS公开了全部细节
• 最近的一次评估是在1994年1月,已决定1998年12月 以后,DES将不再作为联邦加密标准。 •新的美国联邦加密标准称为高级加密标准 AES(Advanced Encryption Standard)
11
3.2.1
DES描述
DES是采用将明文按64bit分组,密钥长度为64bit, 其中每8位有一位奇偶校验位,实际密钥的有效长 度为56bit,DES算法是公开的,其安全性依赖于密 钥的保密程度。DES结构框图如图:
17
(1) 选择扩展运算
将输入的32bit数据扩展为48bit的输出数据,变换表如 下:
可以看出1、4、5、8、9、12、13、16、17、20、21、 18 24、25、28、29、32这16个位置上的数据被读了两次。
(2)与子密钥的异或运算
与子密钥的异或运算:将选择扩展运算的48 bit数据与子密钥Ki(48 bit)进行异或运算。 (后面详述)
• 1998年7月电子前沿基金会(EFF)使用一 台25万美元的电脑在56小时内破译了56比特密 钥的DES。 • 1999年1月RSA数据安全会议期间,电子前 沿基金会用22小时15分钟就宣告破解了一个 DES的密钥。
29
3.2.3 DES的变形 1.两重DES
双重DES 密钥长度 为112bit, 密码强度 似乎增强 了一倍, 但问题并 非如此。 C=EK2(EK1(P))
40
3.4.1 电码本模式(ECB)
电子密码本ECB
Ci = EK (Pi ) Pi = DK (Ci )
41
ECB的特点
ECB用于短数据(如加密密钥)是非常理想,长消息不够安全
简单、有效 可以并行实现 不能隐藏明文的模式信息
• 1976年,NBS指派了两个小组进行评价
• 1976年11月23日,采纳为联邦标准,批准用于非军 事场合的各种政府机构 • 1977年1月15日,被正式批准为美国联邦信息处理标 准,即FIPS PUB 46,同年7月15日开始生效。
10
DES的应用
• 1979年,美国银行协会批准使用 • 1980年,美国国家标准局赞同DES作为私人使用的标 准,称之为DEA(ANSI X.392) • 1983年,国际化标准组织ISO赞同DES作为国际标准, 称之为DEA-1 • 该标准规定每五年审查一次,计划十年后采用新标准
Rijndael简介 • 不属于Feistel结构
• 加密、解密相似但不对称
• 支持128/32=Nb数据块大小 • 支持128/192/256(/32=Nk)密钥长度 • 有较好的数学理论作为基础 • 结构简单、速度快
34
AES参数
轮数r与Nb和Nk r Nk=4 Nb=4 10 Nb=6 12 Nb=8 14
= Ri⊕F(Li,Ki)
7
2. SP网络结构是分组密码的另一种重要结构, AES等重要算法采用的是此结构。
8
DES(Data Encryption Standard )是迄今为止使用最为广泛的加 密算法。 DES的产生-i • 1973年5月13日, NBS(美国国家标准局)开始公开征集标准加密算 法,并公布了它的设计要求: (1)算法必须提供高度的安全性; (2)算法必须有详细的说明,并易于理解; (3)算法的安全性取决于密钥,不依赖于算法;
x1 xm
分组密码
k
无记忆元件
y1
x1
k
…
内部记忆元件
y1
ym
流密码
2
分组密码对不同的组采用同样的密钥k进 行加/解密。设密文组为y=y1y2•••ym,则对明 文组x=x1x2 ••• xm用密钥k加密可得到 y=ek(x1)ek(x2) ••• ek(xm)。
流密码的基本思想是利用密钥k产生一个 密钥流z=z0z1 •••,并使用如下规则加密明文 串x=x0 x1 x2 ••• ,y=y0y1y2•••= ez0(x0)ez1(x1) ez2(x2)••• 。密钥流由密钥流发生器f产生。 分组密码与流密码的区别就在于记忆性。
12
13
1.初始置换IP和初始逆置换IP—1
14
2. 迭代变换
15
迭代变换是DES算法的核心部分,每 轮开始时将输入的64bit数据分成左、右 长度相等的两部分,右半部分原封不动地 作为本轮输出的64bit数据的左半部分, 同时对右半部分进行一系列的变换,即用 轮函数F作用右半部分,然后将所得结果 与输入数据的左半部分进行逐位异或,最 后将所得数据作为本轮输出的64bit数据 的右半部分。 轮函数F由选择扩展运算E、与子密钥 的异或运算、选择压缩运算S和置换P组成。
19
(3)选择压缩运算
将输入的48bit数据从左至右分成8组,每组6bit。然后输入8个S 盒,每个S盒为一非线性代换,有4bit输出,如图所示:
20
21
22
S-Box
• 对每个盒,6比特输入中的第1和第6比特组成
的二进制数确定的行,中间4位二进制数用来 确定的列。相应行、列位置的十进制数的4位 二进制数表示作为输出。例如的输入为101001, 则行数和列数的二进制表示分别是11和0100, 即表中3行和表中4列,表中3行和表中4列的十 进制数为3,用4位二进制数表示为0011,所以 的输出为0011。
Nk=6 Nk=8
12 14
Βιβλιοθήκη Baidu
12 14
14 14
35
SP网络结构
在这种密码的每一轮中,轮输入首先被一个由子密钥控 制的可逆函数S作用,然后再对所得结果用置换(或可逆 线性变换)P作用。S和P分别被称为混乱层和扩散层,主 要起混乱和扩散作用。
36
AES算法结构-i
• AES算法的轮变换中没有Feistel结构,轮变换是由三
• 在CRYPTO’93上,Session和Wiener给出了一个非常
详细的密钥搜索机器的设计方案,这个机器基于并行 运算的密钥搜索芯片,16次加密能同时完成。此芯片 每秒能测试5000万个密钥,用5760个芯片组成的系统 需要花费10万美元,它平均用1.5天左右就可找到DES 密钥。 • 1997年1月28日,美国的RSA数据安全公司在RSA安 全年会上公布了一项“秘密密钥挑战”竞赛,其中包 括悬赏1万美元破译密钥长度为56比特的DES。美国克 罗拉多洲的程序员Verser从1997年2月18日起,用了96 天时间,在Internet上数万名志愿者的协同工作下, 28 成功地找到了DES的密钥,赢得了悬赏的1万美元。
3
3.1.1
分组密码设计原理
分组密码是将明文消息编码表示后的数字(简 称明文数字)序列x0,x1,… ,划分成长度为n的组 x=(x0,x1,…,xn-1),每组分别在密钥 k=(k0,k1,…,km-1) 的控制下变换成等长的输出数字(简称密文数字) 序列y=(y0,y1,…,yn-1) 。
4
分组密码的算法应满足如下安全性和软/硬件实现的 要求: (1)分组长度足够大,防止明文被穷举攻击。如 n=64bit (DES) ,新的标准n=128bit (AES) (2)密钥空间足够大,从而防止穷举密钥攻击。同时, 密钥又不能太长,以利于密钥管理,DES采用56bit 有效密钥,现在不够长,今后采用128bit是足够安 全的。 (3)由密钥确定的算法要足够复杂,充分实现明文与 密文的扩散和混淆,没有简单的关系可循。 (4)软件实现的要求:尽量使用适合编程的子块和简 单的运算 (5)硬件实现的要求:加密和解密应具有相似性。
5
两个基本设计方法
Shannon称之为理想密码系统,密文的所有统计特性 都与所使用的密钥独立。 • 扩散(Diffusion):明文的统计结构被扩散消失到 密文的统计特性中,使得明文和密文之间的统计关系 尽量复杂。使得明文的每个比特影响到密文许多比特 的取值,即每个密文比特被许多明文比特影响。 • 混乱(confusion):使得密文的统计特性与密钥的 取值之间的关系尽量复杂。 •扩散和混淆的目的都是为了挫败推出密钥的尝试, 从而抗统计分析。
双重DES易 受中途攻击
P=DK1(DK2(C))
30
2.三重DES(以被广泛采用)
优点:能对付中途攻击。密钥长度为168bit
31
3.3 高级加密标准AES
AES背景-i
• 1997年4月15日,(美国)国家标准技术研究所 ( NIST ) 发起征集高级加密标准( Advanced Encryption Standard)AES的活动,活动目的是确定一 个非保密的、可以公开技术细节的、全球免费使用的分 组密码算法,作为新的数据加密标准。 • 1997年9月12日,美国联邦登记处公布了正式征集AES 候选算法的通告。作为进入AES候选过程的一个条件,开 发者承诺放弃被选中算法的知识产权。 对AES的基本要求是:比三重DES快、至少与三重DES一样 安全、数据分组长度为128比特、密钥长度为 32 128/192/256比特。
AES背景-ii
• 1998年8月12日,在首届AES会议上指定了15 个候选算法。
• 1999年3月22日第二次AES会议上,将候选名 单减少为5 个, 这5 个算法是RC6 , Rijndael , SERPENT,Twofish和MARS。 • 2000年4月13日,第三次AES会议上,对这5 个候选算法的各种分析结果进行了讨论。 • 2000年10月2日,NIST宣布了获胜者— Rijndael算法, 2001 年11 月出版了最终标准 33 FIPSPUB197。
个不同的可逆一致变换组成,称之为层, – 线性混合层:确保多轮之上的高度扩散。 – 非线性层:具有最优最差-情形非线性性的S-盒的并 行应用。 – 密钥加层:轮密钥简单地异或到中间状态上。
37
AES算法结构-ii
38
39
3.4
分组密码的工作模式
分组密码在加密时明文的长度是固定的。而实用中待加密消息 的数据量是不定的,数据格式也可能是多种多样的,为了能在 各种应用场合安全地使用分组密码,通常对不同的使用目的运 用不同的工作模式。
第三章
3.1 3.2 3.3
对称密码体制
分组密码原理 数据加密标准(DES) 高级加密标准(AES)
3.4
分组密码的工作模式
1
3.1
分组密码原理
对称密码体制根据对明文加密方式的不同分为 分组密码和流密码。 分组密码:按一定长度(如64bit,128bit)对 明文进行分组,然后以组为单位采用同样的密 钥进行加/解密; 流密码:不进行分组,而是按位进行加/解密
6
3.1.2
分组密码的一般结构
分组密码的一般结构可以分为两种:Feistel网络 结构和SP网络结构。 1. Feistel网络结构 Feistel网络结构如图所示:DES采用的是Feistel网络 结构
加密: Li = Ri-1; Ri = Li-1⊕F(Ri-1,Ki) •解密: Ri-1 = Li,Li-1 = Ri⊕F(Ri-1,Ki)
分组密码的工作模式:就是以该分组密码为基础构造 的一个密码系统。
电子密码本 密码分组链接 密码反馈 输出反馈
ECB (electronic codebook mode) CBC (cipher block chaining) CFB (cipher feedback) OFB (output feedback)
23
(4)置换P
24
25
26
3.2.2 DES问题讨论
1.S盒的安全问题
有人认为s盒可能存在陷门,但至今没有迹象表明s盒中 存在陷门。
2.密钥长度
• 关于DES算法的另一个最有争议的问题就是担心实际 56比特的密钥长度不足以抵御穷举式攻击,因为密钥量 只有256≈1017个。 • 早在1977年,Diffie和Hellman已建议制造一个每秒能 测试100万个密钥的VLSI芯片。每秒测试100万个密钥 的机器大约需要一天就可以搜索整个密钥空间。他们估 计制造这样的机器大约需要2000万美元。 27
3.2
数据加密标准(DES)
(4)算法适用于所有用户;
(5)算法适用于不同应用场合; (6)算法必须高效、经济;
(7)算法必须能被证实有效;
(8)算法必须是可出口的;
9
DES的产生-ii
• 1974年8月27日, NBS开始第二次征集,IBM提交了算 法LUCIFER,该算法由IBM的工程师在1971-1972年研 制 • 1975年3月17日, NBS公开了全部细节
• 最近的一次评估是在1994年1月,已决定1998年12月 以后,DES将不再作为联邦加密标准。 •新的美国联邦加密标准称为高级加密标准 AES(Advanced Encryption Standard)
11
3.2.1
DES描述
DES是采用将明文按64bit分组,密钥长度为64bit, 其中每8位有一位奇偶校验位,实际密钥的有效长 度为56bit,DES算法是公开的,其安全性依赖于密 钥的保密程度。DES结构框图如图: