分组密码 童讲人:马春光 machunquang@hrbeu.edu.cn CNR@HEU http://machunguang.hrbeu.edu.cn
分组密码 主 讲人:马春光 machunguang@hrbeu.edu.cn
本讲主要内容 。分组密码的简介 。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
扩散 所谓扩散,是指要将算法设计成明文每一比特的变化尽 可能多地影响到输出密文序列的变化,以便隐蔽明文的统计 特性。形象地称为雪崩效应。 扩散的另一层意思是密钥每一位的影响尽可能迅速地扩 展到较多的密文比特中去。即扩散的目的是希望密文中的任 一比特都要尽可能与明文、密钥相关联,或者说,明文和密 钥中任何一比特值发生改变,都会在某种程度上影响到密文 值的变化,以防止将密钥分解成若千个孤立的小部分,然后 各个击破。 10 CNR@HEU http://machunguang.hrbeu.edu.cn
扩散 所谓扩散,是指要将算法设计成明文每 是指要将算法设计成明文每 比特的变化尽 一比特的变化尽 可能多地影响到输出密文序列的变化,以便隐蔽明文的统计 特性。形象地称为雪崩效应。 扩散的另一层意思是密钥每一位的影响尽可能迅速地扩 展到较多的密文比特中去。即扩散的目的是希望密文中的任 一比特都要尽可能与明文 一比特都要尽可能与明文 一比特都要尽可能与明文 一比特都要尽可能与明文、密钥相关联,或者说,明文和密 钥中任何一比特值发生改变,都会在某种程度上影响到密文 值的变化,以防止将密钥分解成若干个孤立的小部分,然后 各个击破。 10