2_对称密匙密码2
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C1 = E(C0 P1, K), C2 = E(C1 P2, K),… CN1 = E(CN2 PN1, K) = MAC MAC必须和明文一起发送 接收方使用同一算法计算然后将所得结
果与MAC比较看是否一致 接收方必须知道密匙K
对称密匙密码-2 27
MAC算法为何可行?
C0 = E(IV P0, K), C1 = E(C0 P1, K), C2 = E(C1 P2, K),…
P0 = IV D(C0, K), P1 = C0 D(C1, K), P2 = C1 D(C2, K),…
对称密匙密码-2
20
CBC 模式
相同的明文段会产生不同的密文段 剪切-粘贴依然可能,但更复杂(会产生模糊) 如果C1 变的模糊像G,那么 P1 C0 D(G, K), P2 G D(C2, K) 但 P3 = C2 D(C3, K), P4 = C3 D(C4, K),… 自动从错误中恢复过来了!
对称密匙密码-2
23
完整性(Integrity)
对称密匙密码-2
24
数据完整性
完整性
实例:
防止(至少探测到)未经授权修改数据
银行内部资金转账 (防止未经授权地修改信息)
保密性很好, 完整性是关键
加密提供保密性 单靠加密不能保证完整性(一次一密和电码本)
对称密匙密码-2
25
假设Alice有4块明文要加密 Alice计算
C0 = E(IVP0,K), C1 = E(C0P1,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC
Alice将 IV,P0,P1,P2,P3及MAC发给Bob 假设Trudy将P1 换为 X Bob的到错误的信息然后计算
2-2DES密码
20世纪70年代提出DES(Data Encryption Standard) 根据IBM公司提出Feistel密码之一的Lucifer密码设计 当时,密码技术除被政府和军方所研究及掌握,民间及 商业对此尚无研究 但计算机的发展,数据加密对商业至关重要 美国标准局(NBS)提出了对密码算法的征集 获胜者将成为美国政府及实际上的产业界标准 因参与者不多,最终由唯一IBM提出的Lucifer算法获得
消息认证码 MAC
Message
Authentication Code (MAC)
用来确保数据完整性 完整性不 同于保密性
MAC通过计算CBC的最后一个分组
计算CBC加密, 保留最后一个密文段
对称密匙密码-2
26
MAC 算法
MAC
算法(假设N个分段)
C0 = E(IV P0, K),
P置换并非出于安全性考虑,至今仍被认为是一个历史谜团, 一个可能的解释是使算法难以用软件实现(当初使用的是特 殊硬件)。
8
对称密匙密码-2
DES 的子密匙
56位的DES密匙, 序号0,1,2,…,55 左半部分密匙比特, LK(28bit)
49 42 35 28 21 0 50 43 36 29 8 1 51 44 37 16 9 2 52 45 14 7 22 15 30 23 38 31 20 13 26 19 32 25 10 3
0
6
DES的S盒
8个பைடு நூலகம்盒
每个S盒将6位输入映射到4位输出 下图为1号S盒
输入bits (0,5)确定列数 输入bits (1,2,3,4)确定行数
| 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 --------------------------------------------------------------------------------------------------------------------------00 | 1110 0100 1101 0001 0010 1111 1011 1000 0011 1010 0110 1100 0101 1001 0000 0111 01 | 0000 1111 0111 0100 1110 0010 1101 0001 1010 0110 1100 1011 1001 0101 0011 1000 10 | 0100 0001 1110 1000 1101 0110 0010 1011 1111 1100 1001 0111 0011 1010 0101 0000 11 | 1111 1100 1000 0010 0100 对称密匙密码-2 1001 0001 0111 0101 1011 0011 1110 1010 00007 0110 1101
分组密码工作模式
对称密匙密码-2
14
多块分组
如何加密多块分组呢? 是否对每个分组采用一个密匙?
和一次一密同样困难,甚至更难!
对每一组进行独立加密? 根据前一个组的信息加密,例如将信息组串联成‘串’? 怎样处理部分或是不完全的分组?
对称密匙密码-2
15
操作的模式
在众多模式中,本节讨论两种 电码本模式 (ECB)
右半部分密匙比特, RK(28bit)
55 48 41 34 27 6 54 47 40 33 12 5 53 46 39 18 11 4 24 17
对称密匙密码-2
9
DES 的子密匙
子密匙的产生式一个循环过程,该过程是安全性的关 键。最终结果是选择56位中的48位成为子密匙。 对于 i=1,2,...,16 轮
12 23 2 8 18 26 1 11 22 16 7 4 19 0 3 12 12
10
位
15 20 10 27 位 5 24 17 13 21
对称密匙密码-2
DES 的子密匙
对于1, 2, 9和16轮,ri = 1, 其他轮 ri = 2
LK的8,17,21,24位在每轮被忽略
解密 P0 = D(C0, K), P1 = D(C1, K), P2 = D(C2, K),…
对于一个固定的密匙K, 有一个版本的电码本 对于每个密匙,产生一个新电码本
对称密匙密码-2 17
ECB 的弱点
假设
Pi = Pj 那么 Ci = Cj 而且 Trudy 已知 Pi = Pj 在这种情况下即便Trudy不知道明文Pi 或 Pj,也将 给Trudy一些关于明文的信息 这是否是一个严重的问题呢?
对称密匙密码-2
1
DES密码
由于技术力量不足,NBS求助于政府密码机构NSA (National Security Agency) 由于NSA专门负责政府及军方高级敏感信息加密研究, 开始不愿参与民间密码开发 后被怀疑在DES中植入‘后门’,使NSA很容易破解 DES Lucifer算法经过修改成为DES 主要修改为将密匙长度由128位减为64位,并且64位中有 8位是用来校验奇偶性的,实际密匙长度由为56。破译难 度降低了272倍,难怪被指动过手脚
赋值 LK = (LK 循环左移位ri位) 赋值 RK = (RK 循环左移位ri位) 左半部分的子密匙Ki 是LK
13 16 10 23 0 4 2 27 14 5 20 9 1 12 12
位
22 18 11 位 3 25 7 15 6 26 19 12
右半部分的子密匙Ki 是RK
银行内部资金转账保密性很好完整性是关键单靠加密不能保证完整性一次一密和电码本对称密匙密码226macmessageauthenticationcodemac用来确保数据完整性完整性不同于保密性mac通过计算cbc的最后一个分组计算cbc加密保留最后一个密文段对称密匙密码227macmac算法假设n个分段macmac必须和明文一起发送接收方使用同一算法计算然后将所得结果与mac比较看是否一致接收方必须知道密匙k对称密匙密码228mac错误将传递propagates到mac和cbc解码不同trudy在没有密匙k的情况下无法将mac换成mac对称密匙密码229用一个密匙加密用另一个密匙计算mac为何不用同一密匙
对称密匙密码-2
12
DES的安全性
安全的主要依据是依赖于S盒
其他部件均为线性部件
三十年的使用并未发现有所谓的 “后门”
直到今天,攻击者仍然只能依靠穷举密匙搜索来解决 密匙问题 由此得到的唯一结论
DES的设计者当初知道他们在做什么 DES的设计者具有超前思维
对称密匙密码-2
13
对称密匙密码-2
21
Alice 喜欢CBC Mode
Alice未加密压缩图像,
Alice经过CBC加密后的图像
为何效果如此? 同样的明文生成不同的密文!
对称密匙密码-2 22
分组密码引发的剪切-粘贴攻击
假定明文是 Alice digs Bob. Trudy digs Tom. 假设用 64-bit 分组,8-bit ASCII字符: P0 = “Alice di”, P1 = “gs Bob. ”, P2 = “Trudy di”, P3 = “gs Tom. ” 加密后密文: C0,C1,C2,C3 Trudy 剪切并粘贴: C0,C3,C2,C1 解密后明文为 Alice digs Tom. Trudy digs Bob.(部分明文泄露)
3
对称密匙密码-2
DES的分析
DES是一种Feistel原理的密码系统(将明文分为两部分, 然后迭代)
64位为一个分段 56位长的密匙
经过16论迭代
每步迭代采用48位长的子密匙(?)
每步迭代很简单
安全性主要取决于“S盒”
每个S盒将6位映射为4位
对称密匙密码-2
4
L
R
32 扩展 28 移位
显而易见的方法 每个分组分别加密 有严重的安全隐患
密文链接模式(CBC)
将分组板块串在一起 比ECB安全, 基本上无附加工作
对称密匙密码-2
16
电码本模式 ECB Mode
符号含义: C=E(P,K) 给定明文 P0,P1,…,Pm,… 显然的使用分块加密方法是
加密 C0 = E(P0, K), C1 = E(P1, K), C2 = E(P2, K),…
C0 = E(IVP0,K), C1 = E(C0X,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC MAC
密匙
28 移位 28 28
32
48
Ki
48 28
48
压缩 28
DES的 一轮
S盒
32
32
P置换
32
32
L
R
密匙
对称密匙密码-2 5
DES的扩展组合
输入32位(图中L、R)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 16 0 1
对称密匙密码-2
18
Alice hate ECB Mode
Alice的未压缩加密图片,
Alice经ECB加密后的图片
什么原因导致模糊? 同样的明文段 同样的密文段!
对称密匙密码-2 19
密文链接模式 CBC Mode
字段被 “链接” 在一起 用一个随机初始化的向量IV来初始化 CBC mode IV是随机的并不一定是保密的 加密 解密
DES的P置换
输入32位
0 1 2 3 4 5 6 16 17 18 19 20 21 22 23 24 7 8 9 10 11 12 13 14 15 25 26 27 28 29 30 31
输出32位
15 1 6 19 20 28 11 27 16 0 14 22 25 4 17 30 9 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24
RK的6,9,14,25位在每轮被忽略 压缩过程后 从56位原始密匙产生48 位子密匙Ki
密匙生成机制 产生子密匙
对称密匙密码-2
11
DES 结束语(Almost)
对原文P在第一轮前进行初始置换
在最后一轮结束后再进行一次置换 在加密时,将左右两部分互换产生密文 (R16,L16)
以上的这些设计在设计时并不是以安全作为考 量的
2
对称密匙密码-2
DES密码归纳
DES是16轮的Feistel结构密码 DES的分组长度是64位 DES使用56位密匙 DES每一轮使用48位的子密匙,每个子密匙是由 56位的密匙的子集构成的 DES毕竟是禁得起时间的考验,其遭受攻击只是 因为密匙过短,而不是存在比穷举更为有效的攻 击方法
输出48位(经过扩展)
31 7 0 1 2 3 4 3 4 5 6 7 8 12 9 10 11 12 11 12 13 14 15 16 18 19 20 19 20 21 22 23 24
8 12 15 16 17 12 23 24 25 12
26 27 28 27 28 29 30 31
对称密匙密码-2
果与MAC比较看是否一致 接收方必须知道密匙K
对称密匙密码-2 27
MAC算法为何可行?
C0 = E(IV P0, K), C1 = E(C0 P1, K), C2 = E(C1 P2, K),…
P0 = IV D(C0, K), P1 = C0 D(C1, K), P2 = C1 D(C2, K),…
对称密匙密码-2
20
CBC 模式
相同的明文段会产生不同的密文段 剪切-粘贴依然可能,但更复杂(会产生模糊) 如果C1 变的模糊像G,那么 P1 C0 D(G, K), P2 G D(C2, K) 但 P3 = C2 D(C3, K), P4 = C3 D(C4, K),… 自动从错误中恢复过来了!
对称密匙密码-2
23
完整性(Integrity)
对称密匙密码-2
24
数据完整性
完整性
实例:
防止(至少探测到)未经授权修改数据
银行内部资金转账 (防止未经授权地修改信息)
保密性很好, 完整性是关键
加密提供保密性 单靠加密不能保证完整性(一次一密和电码本)
对称密匙密码-2
25
假设Alice有4块明文要加密 Alice计算
C0 = E(IVP0,K), C1 = E(C0P1,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC
Alice将 IV,P0,P1,P2,P3及MAC发给Bob 假设Trudy将P1 换为 X Bob的到错误的信息然后计算
2-2DES密码
20世纪70年代提出DES(Data Encryption Standard) 根据IBM公司提出Feistel密码之一的Lucifer密码设计 当时,密码技术除被政府和军方所研究及掌握,民间及 商业对此尚无研究 但计算机的发展,数据加密对商业至关重要 美国标准局(NBS)提出了对密码算法的征集 获胜者将成为美国政府及实际上的产业界标准 因参与者不多,最终由唯一IBM提出的Lucifer算法获得
消息认证码 MAC
Message
Authentication Code (MAC)
用来确保数据完整性 完整性不 同于保密性
MAC通过计算CBC的最后一个分组
计算CBC加密, 保留最后一个密文段
对称密匙密码-2
26
MAC 算法
MAC
算法(假设N个分段)
C0 = E(IV P0, K),
P置换并非出于安全性考虑,至今仍被认为是一个历史谜团, 一个可能的解释是使算法难以用软件实现(当初使用的是特 殊硬件)。
8
对称密匙密码-2
DES 的子密匙
56位的DES密匙, 序号0,1,2,…,55 左半部分密匙比特, LK(28bit)
49 42 35 28 21 0 50 43 36 29 8 1 51 44 37 16 9 2 52 45 14 7 22 15 30 23 38 31 20 13 26 19 32 25 10 3
0
6
DES的S盒
8个பைடு நூலகம்盒
每个S盒将6位输入映射到4位输出 下图为1号S盒
输入bits (0,5)确定列数 输入bits (1,2,3,4)确定行数
| 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 --------------------------------------------------------------------------------------------------------------------------00 | 1110 0100 1101 0001 0010 1111 1011 1000 0011 1010 0110 1100 0101 1001 0000 0111 01 | 0000 1111 0111 0100 1110 0010 1101 0001 1010 0110 1100 1011 1001 0101 0011 1000 10 | 0100 0001 1110 1000 1101 0110 0010 1011 1111 1100 1001 0111 0011 1010 0101 0000 11 | 1111 1100 1000 0010 0100 对称密匙密码-2 1001 0001 0111 0101 1011 0011 1110 1010 00007 0110 1101
分组密码工作模式
对称密匙密码-2
14
多块分组
如何加密多块分组呢? 是否对每个分组采用一个密匙?
和一次一密同样困难,甚至更难!
对每一组进行独立加密? 根据前一个组的信息加密,例如将信息组串联成‘串’? 怎样处理部分或是不完全的分组?
对称密匙密码-2
15
操作的模式
在众多模式中,本节讨论两种 电码本模式 (ECB)
右半部分密匙比特, RK(28bit)
55 48 41 34 27 6 54 47 40 33 12 5 53 46 39 18 11 4 24 17
对称密匙密码-2
9
DES 的子密匙
子密匙的产生式一个循环过程,该过程是安全性的关 键。最终结果是选择56位中的48位成为子密匙。 对于 i=1,2,...,16 轮
12 23 2 8 18 26 1 11 22 16 7 4 19 0 3 12 12
10
位
15 20 10 27 位 5 24 17 13 21
对称密匙密码-2
DES 的子密匙
对于1, 2, 9和16轮,ri = 1, 其他轮 ri = 2
LK的8,17,21,24位在每轮被忽略
解密 P0 = D(C0, K), P1 = D(C1, K), P2 = D(C2, K),…
对于一个固定的密匙K, 有一个版本的电码本 对于每个密匙,产生一个新电码本
对称密匙密码-2 17
ECB 的弱点
假设
Pi = Pj 那么 Ci = Cj 而且 Trudy 已知 Pi = Pj 在这种情况下即便Trudy不知道明文Pi 或 Pj,也将 给Trudy一些关于明文的信息 这是否是一个严重的问题呢?
对称密匙密码-2
1
DES密码
由于技术力量不足,NBS求助于政府密码机构NSA (National Security Agency) 由于NSA专门负责政府及军方高级敏感信息加密研究, 开始不愿参与民间密码开发 后被怀疑在DES中植入‘后门’,使NSA很容易破解 DES Lucifer算法经过修改成为DES 主要修改为将密匙长度由128位减为64位,并且64位中有 8位是用来校验奇偶性的,实际密匙长度由为56。破译难 度降低了272倍,难怪被指动过手脚
赋值 LK = (LK 循环左移位ri位) 赋值 RK = (RK 循环左移位ri位) 左半部分的子密匙Ki 是LK
13 16 10 23 0 4 2 27 14 5 20 9 1 12 12
位
22 18 11 位 3 25 7 15 6 26 19 12
右半部分的子密匙Ki 是RK
银行内部资金转账保密性很好完整性是关键单靠加密不能保证完整性一次一密和电码本对称密匙密码226macmessageauthenticationcodemac用来确保数据完整性完整性不同于保密性mac通过计算cbc的最后一个分组计算cbc加密保留最后一个密文段对称密匙密码227macmac算法假设n个分段macmac必须和明文一起发送接收方使用同一算法计算然后将所得结果与mac比较看是否一致接收方必须知道密匙k对称密匙密码228mac错误将传递propagates到mac和cbc解码不同trudy在没有密匙k的情况下无法将mac换成mac对称密匙密码229用一个密匙加密用另一个密匙计算mac为何不用同一密匙
对称密匙密码-2
12
DES的安全性
安全的主要依据是依赖于S盒
其他部件均为线性部件
三十年的使用并未发现有所谓的 “后门”
直到今天,攻击者仍然只能依靠穷举密匙搜索来解决 密匙问题 由此得到的唯一结论
DES的设计者当初知道他们在做什么 DES的设计者具有超前思维
对称密匙密码-2
13
对称密匙密码-2
21
Alice 喜欢CBC Mode
Alice未加密压缩图像,
Alice经过CBC加密后的图像
为何效果如此? 同样的明文生成不同的密文!
对称密匙密码-2 22
分组密码引发的剪切-粘贴攻击
假定明文是 Alice digs Bob. Trudy digs Tom. 假设用 64-bit 分组,8-bit ASCII字符: P0 = “Alice di”, P1 = “gs Bob. ”, P2 = “Trudy di”, P3 = “gs Tom. ” 加密后密文: C0,C1,C2,C3 Trudy 剪切并粘贴: C0,C3,C2,C1 解密后明文为 Alice digs Tom. Trudy digs Bob.(部分明文泄露)
3
对称密匙密码-2
DES的分析
DES是一种Feistel原理的密码系统(将明文分为两部分, 然后迭代)
64位为一个分段 56位长的密匙
经过16论迭代
每步迭代采用48位长的子密匙(?)
每步迭代很简单
安全性主要取决于“S盒”
每个S盒将6位映射为4位
对称密匙密码-2
4
L
R
32 扩展 28 移位
显而易见的方法 每个分组分别加密 有严重的安全隐患
密文链接模式(CBC)
将分组板块串在一起 比ECB安全, 基本上无附加工作
对称密匙密码-2
16
电码本模式 ECB Mode
符号含义: C=E(P,K) 给定明文 P0,P1,…,Pm,… 显然的使用分块加密方法是
加密 C0 = E(P0, K), C1 = E(P1, K), C2 = E(P2, K),…
C0 = E(IVP0,K), C1 = E(C0X,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC MAC
密匙
28 移位 28 28
32
48
Ki
48 28
48
压缩 28
DES的 一轮
S盒
32
32
P置换
32
32
L
R
密匙
对称密匙密码-2 5
DES的扩展组合
输入32位(图中L、R)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 16 0 1
对称密匙密码-2
18
Alice hate ECB Mode
Alice的未压缩加密图片,
Alice经ECB加密后的图片
什么原因导致模糊? 同样的明文段 同样的密文段!
对称密匙密码-2 19
密文链接模式 CBC Mode
字段被 “链接” 在一起 用一个随机初始化的向量IV来初始化 CBC mode IV是随机的并不一定是保密的 加密 解密
DES的P置换
输入32位
0 1 2 3 4 5 6 16 17 18 19 20 21 22 23 24 7 8 9 10 11 12 13 14 15 25 26 27 28 29 30 31
输出32位
15 1 6 19 20 28 11 27 16 0 14 22 25 4 17 30 9 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24
RK的6,9,14,25位在每轮被忽略 压缩过程后 从56位原始密匙产生48 位子密匙Ki
密匙生成机制 产生子密匙
对称密匙密码-2
11
DES 结束语(Almost)
对原文P在第一轮前进行初始置换
在最后一轮结束后再进行一次置换 在加密时,将左右两部分互换产生密文 (R16,L16)
以上的这些设计在设计时并不是以安全作为考 量的
2
对称密匙密码-2
DES密码归纳
DES是16轮的Feistel结构密码 DES的分组长度是64位 DES使用56位密匙 DES每一轮使用48位的子密匙,每个子密匙是由 56位的密匙的子集构成的 DES毕竟是禁得起时间的考验,其遭受攻击只是 因为密匙过短,而不是存在比穷举更为有效的攻 击方法
输出48位(经过扩展)
31 7 0 1 2 3 4 3 4 5 6 7 8 12 9 10 11 12 11 12 13 14 15 16 18 19 20 19 20 21 22 23 24
8 12 15 16 17 12 23 24 25 12
26 27 28 27 28 29 30 31
对称密匙密码-2