第三章分组密码 分组密码的一般模型 二、DES与IDEA 三、AES算法 rijndael 四、分组密码分析方法 五、分组密码工作模式 2021/2/20
2021/2/20 1 第三章 分组密码 一、分组密码的一般模型 二、DES与IDEA 三、AES 算法——Rijndael 四、分组密码分析方法* 五、分组密码工作模式
分组密码的一般模型 萃大 2021/220
2021/2/20 2 一、分组密码的一般模型
扮组密码概 分组密码: 将消息编码表示后的数字(通常是0和1)序列x 划 n的组x X 为的类 k=lp 变换成 等长的输出数字序 (长的量)) k=(.…;k) k=(ko, k, k) 密钥 密钥 明文 密文 加密算法 明文 解密算法 =,Y y=(= 分组密码框图 2021/2/20
2021/2/20 3 分组密码概述 • 分组密码: 将消息编码表示后的数字(通常是0和1)序列 x1 , x2 ,…, xi ,…划分为长为n的组 ,各组(长 为n的矢量)分别在密钥 的控制下变换成 等长的输出数字序列 (长为m的矢量)。 x x x x = ( 0 1 1 , , , n− ) k k k k = ( 0 1 1 , , , t− ) y y y y = ( 0 1 1 , , , m− ) 加密算法 解密算法 明文 ( ) 0 1 1 , , , n x x x x − = 密文 密钥 密钥 明文 ( ) 0 1 1 , , , t k k k k − = ( ) 0 1 1 , , , m y y y y − = ( ) 0 1 1 , , , n x x x x− = ( ) 0 1 1 , , , t k k k k − = 分组密码框图
分组密码是一种满足下列条件的映射E: F2×Sk→>F2 对每个k∈SE是从到的置换 E(k)钥为时的加密函数 D(=,小密钥为时的解密函数 密钥规模:l= logit 密钥长度等于密钥规模当且仅当:Sk=F2 Eg:DES真正的密钥规模=56bit也就是密钥长度 2021/2/20 4
2021/2/20 4 • 分组密码是一种满足下列条件的映射E: • 对每个 , 是从 到 的置换 • :密钥为 时的加密函数 • :密钥为 时的解密函数 • 密钥规模: bit • 密钥长度等于密钥规模当且仅当: Eg:DES真正的密钥规模 =56bit,且 也就是密钥长度 2 2 m m F S F →k E k (• , ) 2 m F 2 m F E k (• , ) k k S k D k (• , ) k 2 log k l S = 2 t S F k = l l
分组密码设计问题 分组密码的设计问题在于找到 种算法,能在密钥控制下从一个足 够大且足够好的置换子集中,简单 而迅速地选出一个置换,用来对当 前输入的明文的数字组进行加密变 换 2021/2/20
2021/2/20 5 分组密码设计问题 分组密码的设计问题在于找到一 种算法,能在密钥控制下从一个足 够大且足够好的置换子集中,简单 而迅速地选出一个置换,用来对当 前输入的明文的数字组进行加密变 换
分组密码算法应满足的要求 分组长度m要足够大: 防止明文穷举攻击法奏效。 密钥量要足够大: 尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷 举攻击奏效。 由密钥确定置换的算法要足够复杂: 充分实现明文与密钥的扩散和混淆,没有简单的关系可循, 要能抗击各种已知的攻击 2021/2/20 6
2021/2/20 6 分组密码算法应满足的要求 • 分组长度n要足够大: 防止明文穷举攻击法奏效。 • 密钥量要足够大: 尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷 举攻击奏效。 • 由密钥确定置换的算法要足够复杂: 充分实现明文与密钥的扩散和混淆,没有简单的关系可循, 要能抗击各种已知的攻击
分组密码算法应满足的要求 加密和解密运算简单: 易于软件和硬件高速实现。 数据扩展: 般无数据扩展,在采用同态置换和随机化加密技术时 可引入数据扩展。 差错传播尽可能地小 2021/2/20
2021/2/20 7 分组密码算法应满足的要求 • 加密和解密运算简单: 易于软件和硬件高速实现。 • 数据扩展: 一般无数据扩展,在采用同态置换和随机化加密技术时 可引入数据扩展。 • 差错传播尽可能地小
三、DES与IDEA 萃大 2021/220 8
2021/2/20 8 二、 DES与IDEA
数据加密标准(DES) DES的历史 1971年IBM,由 Horst Feistel领导的密码研究项目 组研究出 LUCIFER算法,并应用于商业领; 1973年美国标准局征求标准,IBM提交结果; 1977年,被选为数据加密标准; 虽然DES已有替代的数据加密标准算法,但它仍 是迄今为止得到最广泛应用的一种算法,也是一 种最有代表性的分组加密体制。 2021/2/20
2021/2/20 9 数据加密标准(DES) • DES的历史 – 1971年IBM,由Horst Feistel领导的密码研究项目 组研究出LUCIFER算法,并应用于商业领域; – 1973年,美国标准局征求标准,IBM提交结果; – 1977年,被选为数据加密标准; – 虽然DES已有替代的数据加密标准算法,但它仍 是迄今为止得到最广泛应用的一种算法,也是一 种最有代表性的分组加密体制
D严密过程 将64bit明文位置进行置 换,得到一个乱序的64 bit明文组,而后平分成 输入 D左右两段,IP中各列元素位号数 相差为8,相当于将原明文各字 64bit明文数据 节按列写出,各列比特经过 奇偶采样置换后,再对各 初始置换 行进行逆序,将阵中元 该算法 素按行读出构成 置换输出 乘积变换 IP和PP在 义上 (16轮迭代) 作用不大 的作用 将16轮迭代后给出的64 逆初始置换 bit组进行置换,得到输出 的密文组。输出为阵中 64bit密文数据 的元素按行读得 的结果 输出 2021/2/20 10
2021/2/20 10 DES加密过程 • DES利用56bit长度的密 钥K来加密长度为64bit 的明文,得到长度为 64bit的密文 • 该算法分三个阶段实现 • IP和IP -1在密码意义上 作用不大,它们的作用 在于打乱原来输入x的 ASCII码字划分的关系 ,并将原来明文的校验 位x8 , x16,, x64变成为IP 输出的一个字节。 逆初始置换 乘积变换 ( 16轮迭代 ) 64bit密文数据 64bit明文数据 初始置换 输入 输出 将64bit明文位置进行置 换 得到一个乱序的64 bit明文组 而后平分成 左右两段 IP中各列元素位号数 相差为8 相当于将原明文各字 节按列写出 各列比特经过 奇偶采样置换后 再对各 行进行逆序 将阵中元 素按行读出构成 置换输出 将16轮迭代后给出的64 bit组进行置换 得到输出 的密文组 输出为阵中 的元素按行读得 的结果