第三章分组密码:3.1分组密码概述 3.1.5 Feistel密码结构 Feistel网络的实现与以下参数和特性有关: ①分组大小 分组越大则安全性越高,但加密速度就越慢。分组密码设计中最为 普遍使用的分组大小是64比特。当前多使用128比特以上 ②密钥大小 密钥越长则安全性越高,但加密速度就越慢。现在普遍认为64比特 或更短的密钥长度是不安全的,通常使用128比特的密钥长度。 ③轮数 单轮结构远不足以保证安全性,但多轮结构可提供足够的安全性。 典型地,轮数取为16。 9 ④子密钥产生算法: 该算法的复杂性越大,则密码分析的困难性就越大。 ⑤轮函数:轮函数的复杂性越大,密码分析的因难性也越大。 历粤毛子神枝大学 271
3.1.5 Feistel 密码结构 Feistel网络的实现与以下参数和特性有关: ① 分组大小 ⚫ 分组越大则安全性越高,但加密速度就越慢。分组密码设计中最为 普遍使用的分组大小是64比特。当前多使用128比特以上 ② 密钥大小 ⚫ 密钥越长则安全性越高,但加密速度就越慢。现在普遍认为64比特 或更短的密钥长度是不安全的,通常使用128比特的密钥长度。 ③ 轮数 ⚫ 单轮结构远不足以保证安全性,但多轮结构可提供足够的安全性。 典型地,轮数取为16。 ④ 子密钥产生算法: ⚫ 该算法的复杂性越大,则密码分析的困难性就越大。 ⑤ 轮函数 :轮函数的复杂性越大,密码分析的困难性也越大。 27/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.5 Feistel密码结构 在设计Feistel网络时,还有以下两个方面需要考虑 ①快速的软件实现 在很多情况中,算法是被镶嵌在应用程序中,因而无法用硬件实现。 此时算法的执行速度是考虑的关键 ②算法容易分析 如果算法能被无疑义地解释清楚,就可容易地分析算法抵抗攻击的 能力,有助于设计高强度的算法 o2.Feistel解密结构 Feistelf解密过程本质上和加密过程是一样的,使加解密可用同一算法 算法使用密文作为输入,但使用子密钥K的次序与加密过程相反, 即第1轮使用Km,第2轮使用Km-1,…,最后一轮使用K1。 历安毛子代枝大 28/
3.1.5 Feistel 密码结构 在设计Feistel网络时,还有以下两个方面需要考虑 ① 快速的软件实现 ⚫ 在很多情况中,算法是被镶嵌在应用程序中,因而无法用硬件实现。 此时算法的执行速度是考虑的关键 ② 算法容易分析 ⚫ 如果算法能被无疑义地解释清楚,就可容易地分析算法抵抗攻击的 能力,有助于设计高强度的算法 2. Feistel 解密结构 ⚫ Feistel解密过程本质上和加密过程是一样的,使加解密可用同一算法 ⚫ 算法使用密文作为输入,但使用子密钥Ki的次序与加密过程相反, 即第1轮使用Kn,第2轮使用Kn-1,……,最后一轮使用K1。 28/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.5 Feistel密码结构 加密过程由上而下 输入(明文) 输出(明文) 解密过程由下而上 LEo REo RD16=LEO LD16=REO ⊕ 图中右边标出了解密 LD16=REO RD16=LE RE 过程中每一轮的中间 LE L 值与左边加密过程中 RDs=LE LE2 LDIs=RET RE2 间值的对应关系 RE14 TLD14=RE2 K RD14=LE2 即加密过程第轮 的输出是LERE LD2=RE14 RD2=LE14 REs K16 (表示链接) L F RD1=LES KI5LD=RE1S ·。解密过程第17-i轮 LE16 RE16 相应的输入是 RD:LD RE16 LE16 LDo=RE16 RDo=LE16 最后一轮输出密文是 输出(密文) 输入(密文) RE16ILE16 Feistel加密和解密过程 历些毛子代枝大学 29/
3.1.5 Feistel 密码结构 加密过程由上而下 解密过程由下而上 图中右边标出了解密 过程中每一轮的中间 值与左边加密过程中 间值的对应关系 ⚫ 即加密过程第 i 轮 的输出是LEi ‖RE i ( ‖表示链接) ⚫ 解密过程第17 - i 轮 相应的输入是 RD i ‖LD i 最后一轮输出密文是 RE16 ‖LE16 29 / 第三章 分组密码:3.1 分组密码概述 输 入 ( 明 文 ) F L 1 L E K 1 0 R E 0 FK2 R E 1 L E 1 . L E2 R E2 .. ... F L 1 K 1 5 L E 1 4 R E 1 4 FK 1 6 R E 1 5 L E 1 5 L E 1 6 R E 1 6 R E 1 6 L E 1 6 输 出 ( 密 文 ) 输 出 ( 明 文 ) R D 1 6 = L E 0 L D 1 6 = R E 0 FK 1 L D 1 6 = R E 0 R D 1 6 = L E 0 F R D 1 5 = L E 1 L D 1 5 = R E 1 . L D 1 4 = R E2 K2 R D 1 4 = L E2 .. ... L D 2 = R E 1 4 R D 2 = L E 1 4 FK 1 5 FK 1 6 R D 1 = L E 1 5 L D 1 = R E 1 5 L D 0 = R E 1 6 R D 0 = L E 1 6 输 入 ( 密 文 ) F e i s t e l 加 密 和 解 密 过 程
第三章分组密码:3.1分组密码概述 3.1.5 Feistel密码结构 9下面证明解密过程第1轮的输出等于加密过程第16轮输入左右两半交换值 解密过程取密文作为同一算法的输入,即第1轮输入是RE16LE16 在加密过程中: ● LE16=RE15; RE16=LE15F(RE15 K16) 在解密过程中 0】 D1=RDO-LE16=RE15 0RD1=LD⊕FRDo,K16)=RE16⊕FRE15,K16) =[LE1s⊕FRE15,K16】⊕FRE1s,K16)=LE1s 容易证明这种对应关系在16轮中每轮都成立 一般地,加密过程的第轮有 LE=RE1 RE=LELF(REi,K 因此RE1=LE;LE1=RE,⊕F(REK)=RE,⊕FLEK) 解密过程第16轮的输出是RELE0,左右交换后即得最初的明文 历粤毛子代枝大学 301
3.1.5 Feistel 密码结构 下面证明解密过程第1轮的输出等于加密过程第16轮输入左右两半交换值 ⚫ 解密过程取密文作为同一算法的输入,即第1轮输入是RE16‖LE16 在加密过程中: ⚫ LE16=RE15 ; RE16=LE15F(RE15,K16) 在解密过程中 ⚫ LD1=RD0=LE16=RE15 ⚫ RD1=LD0F(RD0 ,K16)=RE16F(RE15,K16) ⚫ =[LE15F(RE15,K16)] F(RE15,K16)=LE15 容易证明这种对应关系在16轮中每轮都成立 ⚫ 一般地,加密过程的第i轮有 ⚫ LEi=REi-1;REi=LEi-1F(REi-1 ,Ki ) ⚫ 因此 REi-1=LEi;LEi-1=REiF(REi-1 ,Ki )=REi F(LEi ,Ki ) 解密过程第16轮的输出是RE0 ‖LE0,左右交换后即得最初的明文 30/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.2数据加密标准DES 3.2数据加密标准DES DES的产生 美国国家标准局1973年开始研究除国防部外的其它部门的计算机系 统的数据加密标准 ●于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密 算法的公告。加密算法要达到的目的(通常称为DES密码算法要求) 主要为以下四点: (1)提供高质量的数据保护,防止数据未经授权的泄露和未被察觉 的修改; (2)计算安全性:具有相当高的复杂性,使得破译的开销超过可能 获得的利益,同时又要便于理解和掌握; (3)基尔霍夫准则:DES密码体制的安全性应该不依赖于算法的保 密,其安全性仅以加密密钥的保密为基础; (4)可行性:实现经济,运行有效,并且适用于多种完全不同的应 用。 历粤毛子代牧大学 311
3.2 数据加密标准DES DES的产生 ⚫ 美国国家标准局1973年开始研究除国防部外的其它部门的计算机系 统的数据加密标准 ⚫ 于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密 算法的公告。加密算法要达到的目的(通常称为DES 密码算法要求) 主要为以下四点: ⚫ (1)提供高质量的数据保护,防止数据未经授权的泄露和未被察觉 的修改; ⚫ (2)计算安全性:具有相当高的复杂性,使得破译的开销超过可能 获得的利益,同时又要便于理解和掌握; ⚫ (3)基尔霍夫准则:DES密码体制的安全性应该不依赖于算法的保 密,其安全性仅以加密密钥的保密为基础; ⚫ (4)可行性:实现经济,运行有效,并且适用于多种完全不同的应 用。 31/ 第三章 分组密码:3.2 数据加密标准DES