本讲主要内容 。分组密码的简介 。DES密码算法 OAES密码算法 。分组密码的操作方式 3 CNR@HEU http://machunguang.hrbeu.edu.cn
本讲主要内容 分组密码的简介 DES密码算法 AES密码算法 分组密码的操作方式 3
分组密码的简介 ●分组密码的含义 。分组密码的设计思想 ●分组密码的设计准则 CNR@HEU http://machunguang.hrbeu.edu.cn
分组密码的简介 分组密码的含义 分组密码的设计思想 分组密码的设计准则 4
分组密码的概述 ·分组密码(block cipher)是现代密码学中的重要体制之一,也 是应用最为广泛、影响最大的一种密码体制,其主要任务是提 供数据保密性,也可以用到在许多方面,如构造伪随机数生成 器、序列密码、认证码和哈希函数等。 。分组密码又分为对称分组密码和非对称分组密码,习惯上,分 组密码一词在很多场合指的是对称分组密码,简称分组密码。 由于分组密码加解密速度较快,安全性好,以及得到许多密码 芯片的支持,现代分组密码发展非常快,在许多研究和应用领 域得到了广泛的应用。 CNR@HEU http://machunguang.hrbeu.edu.cn
分组密码的概述 分组密码(block cipher) (block cipher)是现代密码学中的重要体制之一 是现代密码学中的重要体制之一,也 是应用最为广泛、影响最大的一种密码体制,其主要任务是提 供数据保密性,也可以用到在许多方面 也可以用到在许多方面,如构造伪随机数生成 器、序列密码、认证码和哈希函数等。 分组密码又分为对称分组密码和非对称分组密码,习惯上,分 组密码 词在很多场合指的是 一词在很多场合指的是对称分组密码,简称分组密码。 由于分组密码加解密速度较快,安全性好,以及得到许多密码 芯片的支持,现代分组密码发展非常快,在许多研究和应用领 域得到了广泛的应用。 5
分组密码的含义 也称块密码,它是将明文消息经编码表示后的二进制序 列poP1,P,划分成若干固定长度(譬如m)的组(或块) p=(PoP1,Pm,各组分别在密钥k=(k,k,,k)的控制 下转换成长度为n的密文分组c=(co,c,Cn。其本质是一 个从明文空间(m长的比特串的集合)P到密文空间(n长的 比特串的集合)C的一一映射。(一般而言,m=n) K=(KoK1-.kt-1) K=(KoK-.Kt-1) ppoP1w…Pm 加密算法 解密算法 =(Po2P12Pm-1 CNR@HEU http://machunguang.hrbeu.edu.cn
分组密码的含义 也称块密码,它是将明文消息经编码表示后的二进制序 列p0,p1,…,pi, …划分成若干固定长度(譬如m)的组(或块) p=(p0,p1,…,pm-1),各组分别在密钥 各组分别在密钥k=(k0,k1,…,kt-1)的控制 下转换成长度为n的密文分组c=(c0,c1,…,cn-1)。其本质是一 个 间 从明文空 (m长的 特串的集合 的比特串的集合)P到密 间 文空 (n长的 比特串的集合)C的一一映射。(一般而言,m=n) k=(k0,k1,…,kt-1) k=(k0,k1,…,kt-1) ( ) 加密算法 ( ) 解密算法 ( ) 6 p=(p0,p1,…,pm-1) 加密算法 c=(c0,c1,…,cn-1) 解密算法 p=(p0,p1,…,pm-1)
分组密码的置换 。对于一个分组长度为的分组密码,不同的密钥对应不同的加 密解密变换,即,对于给定的密钥k,加密变换Ek是GF(2)”上 的一个置换,解密变换D是Ek的逆变换。 。如果密钥长度为t,则密钥量为2t。因为GF(2)”上共有2n!个 不同的置换,所以必须有2t≤2!。为了便于密钥管理,通常 密钥长度不能太大。当然,密钥长度不能太小,否则,难 以抵抗对密钥的穷举搜索攻击。 CNR@HEU http://machunguang.hrbeu.edu.cn
分组密码的置换 对于一个分组长度为n的分组密码,不同的密钥对应不同的加 密解密变换,即,对于给定的密钥k,加密变换Ek是GF(2) 密解密变换,即,对于给定的密钥k,加密变换Ek是GF(2)n上 的一个置换,解密变换Dk是Ek的逆变换。 如果密钥长度为t,则密钥量为2t。因为GF(2)n上共有2n!个 不同的 换置 ,所以必须有2t ≤2n!。为 密钥管 了便于 理,通常 密钥长度t不能太大。当然,密钥长度t不能太小,否则,难 以抵抗对密钥的穷举搜索攻击。 7
分组密码的要求 当分组长度较小时,攻击者通过 。分组长度要足够大 穷举明文空间,得到密码变换规 律,难于抵御选择明文攻击。 。密钥量要足够大 如果密钥量小,攻击者可以有效地通过 穷举密钥,对密文进行解密,以得到有 。密码变换足够复杂 意义的明文,难于抵御唯密文攻击。 。加密和解密运算简单 使攻击者除了穷举法攻击以外, 找不到其他简洁的数学破译方法。 。无数据扩展或压缩 便于软件和硬件实现,性能好。 8 CNR@HEU http://machunguang.hrbeu.edu.cn
分组密码的要求 分组长度要足够大 当分组长度较小时,攻击者通过 分组长度要足够大 穷举明文空间 得到密码变换规 密钥量要足够大 穷举明文空间,得到密码变换规 律,难于抵御选择明文攻击。 密钥量要足够大 密码变换足够复杂 如果密钥量小,攻击者可以有效地通过 穷举密钥,对密文进行解密,以得到有 意义的明文,难于抵御唯密文攻击。 密码变换足够复杂 加密和解密 算简单 意义的明文,难于抵御唯密文攻击。 使攻击者除了穷举法攻击以外 加密和解密运算简单 使攻击者除了穷举法攻击以外, 找不到其他简洁的数学破译方法。 无数据扩展或压缩 便于软件和硬件实现,性能好。 8
分组密码的设计思想 。扩散 ●混乱 9 CNR@HEU http://machunguang.hrbeu.edu.cn
分组密码的设计思想 扩散 混乱 9
扩散 所谓扩散,是指要将算法设计成明文每一比特的变化尽 可能多地影响到输出密文序列的变化,以便隐蔽明文的统计 特性。形象地称为雪崩效应。 扩散的另一层意思是密钥每一位的影响尽可能迅速地扩 展到较多的密文比特中去。即扩散的目的是希望密文中的任 一比特都要尽可能与明文、密钥相关联,或者说,明文和密 钥中任何一比特值发生改变,都会在某种程度上影响到密文 值的变化,以防止将密钥分解成若千个孤立的小部分,然后 各个击破。 10 CNR@HEU http://machunguang.hrbeu.edu.cn
扩散 所谓扩散,是指要将算法设计成明文每 是指要将算法设计成明文每 比特的变化尽 一比特的变化尽 可能多地影响到输出密文序列的变化,以便隐蔽明文的统计 特性。形象地称为雪崩效应。 扩散的另一层意思是密钥每一位的影响尽可能迅速地扩 展到较多的密文比特中去。即扩散的目的是希望密文中的任 一比特都要尽可能与明文 一比特都要尽可能与明文 一比特都要尽可能与明文 一比特都要尽可能与明文、密钥相关联,或者说,明文和密 钥中任何一比特值发生改变,都会在某种程度上影响到密文 值的变化,以防止将密钥分解成若干个孤立的小部分,然后 各个击破。 10
扩散的举例说明 明文 密文 00000000 XXXXXx1 无扩散技术 的加密 00000001 XXXXXX11 00000000 01011010 有扩散技术 的加密 00000001 11101011 11 CNR@HEU http://machunguang.hrbeu.edu.cn
扩散的举例说明 明文 密文 00000000 xxxxxx01 无扩散技术 的加密 00000001 xxxxxx11 有扩散技术 的加密 00000000 01011010 00000001 11101011 11
混乱 所谓混乱,是指在加解密变换过程中是明文、密钥以及密 文之间的关系尽可能地复杂化,以防密码破译者采用解析法(即 通过建立并求解一些方程)进行破译攻击。 混乱可以用“搅拌机”来形象地解释,将一组明文和一组 密钥输入到算法中,经过充分混合,最后变成密文。同时要求, 执行这种“混乱”作业的每一步都必须是可逆的,即明文混乱 以后能得到密文,反之,密文经过逆向的混乱操作以后能恢复 出明文。(按照混乱原则,分组密码算法应有复杂的非线性因 素) 12 CNR@HEU http://machunguang.hrbeu.edu.cn
混乱 所谓混乱,是指在加解密变换过程中是明文、密钥以及密 文之间的关系尽可能地复杂化,以防密码破译者采用解析法(即 通过建立并求解一些方程)进行破译攻击。 进行破译攻击。 混乱可以用“搅拌机”来形象地解释,将一组明文和一 将一组明文和一 将一组明文和一 将一组明文和一组 密钥输入到算法中,经过充分混合,最后变成密文。同时要求, 到算法中,经过充分混合,最后变成密文。同时要求, 执行这种“混乱”作业的每一步都必须是 作业的每一步都必须是可逆的,即明文混乱 以后能得到密文,反之,密文经过逆向的混乱操作以后能恢复 出明文。(按照混乱原则,分组密码算法应有复杂的非线性因 素) 12