第2章 数据加密算法 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 1
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 1 第2章 数据加密算法
第2章内容概要 。2.1数据加密算法设计标准 。2.2数据加密标准DES ●2.3多重DES ●2.4高级加密标准AES ●2.5标准分租密码运算 ●2.6流密码 。2.7密钥生成 《计算机网络安全的理论与实践(第2版)》.【美】王杰,高等教育出版社,2011年. 2
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 2 第2章 内容概要 2.1 数据加密算法设计标准 2.2 数据加密标准DES 2.3 多重DES 2.4 高级加密标准AES 2.5 标准分租密码运算 2.6 流密码 2.7 密钥生成
预备知识: 。任何由一个固定符号集合构成的消息都可以用一个二进制串来表示(0和1 构成的序列) ●二进制0和1称为比特 ·为了减少计算开销,加密算法应该只用那些便于实现的运算 。对于一个二进制串X: 表示X的长度,数值上为X包含的bit个数 若X=1,X是个-比特的二进制串 令a为一个二进制比特,k为一个非负整数. 口用ak表示一个由a的k个拷贝组成的二进制串 ak=aa…a kals ▣XY或XY表X和Y连接 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 3
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 3 预备知识: 任何由一个固定符号集合构成的消息都可以用一个二进制串来表示 (0和1 构成的序列) 二进制0和1称为比特 为了减少计算开销,加密算法应该只用那些便于实现的运算 对于一个二进制串X: |X|表示X的长度, 数值上为X包含的bit个数 若|X| = l, X 是个l-比特的二进制串 令a 为一个二进制比特,k 为一个非负整数. 用a k 表示一个由a的k个拷贝组成的二进制串 用XY 或X||Y表示X 和 Y 连接
密码是什么? 。两种常见的网络安全方法 口基于密码的:基于密码学算法和安全协议 口基于系统的:非加密的方法 口两者结合形成一个标准的安全结构 加密 ● ▣使明文变换为不可理解的文本 口不可理解的文本可被复原成原始的明文 。通常的加密方法使用密钥和密码算法 口传统加密(也称为:对称加密):加密和解密使用相同的密钥 口公钥加密(也称为:非对称加密):加密和解密使用不同的密钥 《计算机网络安全的理论与实践(第2版)》:【美】王杰,高等教育出版社,2011年. 4
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 4 密码是什么? 两种常见的网络安全方法 基于密码的: 基于密码学算法和安全协议 基于系统的: 非加密的方法 两者结合形成一个标准的安全结构 加密 使明文变换为不可理解的文本 不可理解的文本可被复原成原始的明文 通常的加密方法使用密钥和密码算法 传统加密 (也称为:对称加密): 加密和解密使用相同的密钥 公钥加密 (也称为:非对称加密):加密和解密使用不同的密钥
例:替换 。基于字符的一一映射;例如: 用d替换a,z替换b,t替换c,等 。对于未经训练的人不可读,但这种方法具有基于语言的统 计规律(例如,字符频率) ●在英语里,字母“e”出现的频率最高 ● 在不可理解的文本中出现频率最高的字母很有可能代表“ε” ·可以用这个方法找出其它字母之间的替换关系 《计算机网络安全的理论与实践(第2版)》.【美】王杰,高等教育出版社,2011年. 5
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 5 例: 替换 基于字符的一一映射; 例如: 用d替换a, z替换b, t替换c, 等 对于未经训练的人不可读,但这种方法具有基于语言的统 计规律 (例如,字符频率) 在英语里,字母 “ e” 出现的频率最高 在不可理解的文本中出现频率最高的字母很有可能代表“ e” 可以用这个方法找出其它字母之间的替换关系
ASCI码 。7-位二进制串 口从第一个到第32个是控制编码 口32到126包含了大小写英文字母,数字,标点符号和算术运算 符 ·我们通常在前面添加一位,使得每个字符构成一个字节 口增加的这一位可以用来整体代表额外的128个字符,或者作为 奇偶校验用于差错检测 ·因此任意ASC川码的二进制串都是可以被8整除的 ● 对于其它编码集的长度,例如Unicode,可被16整除 ●不失一般性,假定任意明文的长度其二进制串都可被8整除 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 6
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 6 ASCII 码 7-位 二进制串 从第一个到第32个是控制编码 32 到126 包含了大小写英文字母,数字,标点符号和算术运算 符 我们通常在前面添加一位,使得每个字符构成一个字节 增加的这一位可以用来整体代表额外的128个字符,或者作为 奇偶校验用于差错检测 因此任意ASC II码的二进制串都是可以被8整除的 对于其它编码集的长度,例如Unicode,可被16整除 不失一般性,假定任意明文的长度其二进制串都可被8整除
XOR加密 ⊕或XOR表示异或运算,是用于加密的最简单的二进制运算 XOR加密:将一个串分为等长的块,然后用等长的密钥加密每个块 例如,我们用一个8it的块(一个字节),加密两个字符(两个字节)的串M,我们用一 个8-bit的密钥(例如:11001010)加密M两次: M: 1111111100000000 K: ⊕ 1100101011001010 C 0011010111001010 我们可以用相同的密钥解密;即,我们将C和K进行异或运算就可得到M: C 0011010111001010 K: ⊕ 1100101011001010 M: 1111111100000000 ·上述运算实现起来非常简单 ·但它不安全,知道(M,C)中的任意一个将泄漏K: M⊕C=M⊕(M⊕K)=K 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年 7
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 7 XOR 加密 ⊕ 或XOR表示异或运算, 是用于加密的最简单的二进制运算 XOR 加密: 将一个串分为等长的块,然后用等长的密钥加密每个块 例如, 我们用一个8bit的块(一个字节), 加密两个字符(两个字节)的串M,我们用一 个8-bit的密钥 (例如: 1100 1010) 加密M 两次: M: 1111 1111 0000 0000 K: ⊕ 1100 1010 1100 1010 C: 0011 0101 1100 1010 我们可以用相同的密钥解密; 即, 我们将C 和 K进行异或运算就可得到M: C: 0011 0101 1100 1010 K: ⊕ 1100 1010 1100 1010 M: 1111 1111 0000 0000 上述运算实现起来非常简单 但它不安全,知道 (Mi , Ci )中的任意一个将泄漏 K: Mi ⊕ Ci = Mi ⊕ (Mi ⊕ K) = K
数据加密标准 异或加密是安全的,只要一个密码只用一次,但这在实践中是不可行 的 ● 如果不公开加密算法呢? ● 为了研究加密算法的安全性,我们假定除了加密密钥以外的一切都是 公开的,而且密钥可以重用 。好的加密算法必须满足下列标准: -高效 抵御统计分析攻击 抵御暴力攻击 抵御数学分析攻击 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 8
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 8 数据加密标准 异或加密是安全的,只要一个密码只用一次,但这在实践中是不可行 的 如果不公开加密算法呢? 为了研究加密算法的安全性,我们假定除了加密密钥以外的一切都是 公开的,而且密钥可以重用 好的加密算法必须满足下列标准: -高效 -抵御统计分析攻击 -抵御暴力攻击 -抵御数学分析攻击
高效 。用于算法的运算必须在软硬件上便于实现 ●算法运行时应该适度消耗系统资源 ● 时空复杂度必须保持在输入规模的小的常数倍数以内 ●基本运算: 口异或 口置换:一对一映射 口替换:多对一映射 循环位移:置换的一种特殊形式 口有限域的运算 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 9
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 9 高效 用于算法的运算必须在软硬件上便于实现 算法运行时应该适度消耗系统资源 时空复杂度必须保持在输入规模的小的常数倍数以内 基本运算: 异或 置换:一对一映射 替换:多对一映射 循环位移: 置换的一种特殊形式 有限域的运算
抵御统计分析 分析C中字符出现的频率,可以得到其在明文M中所对应的原始字 符 扩散和混淆是平滑统计结构的标准方法 口扩散:C中的每个bit应该依赖于M中的多个bit,且尽可能的均匀 产生扩散性可以对明文段执行某些特定的运算,如替换运算, 并对新产生的二元字符串如法重复数次 ▣ 混淆.C中的每个bt应该依赖于秘密钥K的多个bit,且尽可能的 均匀 混淆性可通过生成K的子密钥并且在不同的轮次使用不同的子密钥 和获得 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 10
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 10 抵御统计分析 分析C中字符出现的频率, 可以得到其在明文M中所对应的原始字 符 扩散和混淆是平滑统计结构的标准方法 扩散: C 中的每个bit应该依赖于M中的多个bit,且尽可能的均匀 产生扩散性可以对明文段执行某些特定的运算,如替换运算, 并对新产生的二元字符串如法重复数次 混淆: C中的每个bit应该依赖于秘密钥K的多个bit,且尽可能的 均匀 混淆性可通过生成K的子密钥并且在不同的轮次使用不同的子密钥 和获得