正在加载图片...
。674 北京科技大学学报 第32卷 SeP1以《1)为初始条件迭代Logisti映射, 更难,但不应该把密码系统的安全性建立在敌手不 产生混沌流{¥}: 知道所使用的密码系统这个前提之下.因此,在设 SeP2对混沌流{)},按升序排序,得到 计一个密码系统时,应该在Kerckho假设下达到 有序序列{(}: 安全9 SeP3确定每一个混沌值在有序序列 常用的密码分析攻击有四类从难到易列举 {()}中的位置编号,记录为羊功,即得到置 如下. 换地址码{年}=: (1)唯密文攻击:密码分析者有一个或者多个 SeP4按照置换地址码{【),对图像第1 密文 行的像素进行置换,将第1行的第列(在[↓y) (2)己知明文攻击:密码分析者有一些明文以 像素分别置换到第1行的第t列: 及相应的密文. SeP5把YW的值赋给Y1,对第2行至 (3)选择明文攻击:密码分析者有机会使用密 第M行重复Step1~SeP4直到第M行的像素全 码机,因此可以选择一些明文,并产生密文 部置换完毕, (4)选择密文攻击:密码分析者有机会使用密 使用相同的密钥只需将Sp4改为“按照置 码机,因此可以选择一些密文,并产生明文 上述每一种攻击,目的都是确定密码系统所使 换地址码{中)}对图像的第1行像素进行逆置 用的密钥.后面两种攻击看似不合理,但是密码系 换,即分别将第1行的第【j列像素置换到第1行 统的密钥一旦投入使用(该密钥不为密码分析者所 的第列”,其他步骤相同,即可实现图像行置乱算 知,被嵌入到设备中,密码分析者就可能操纵.这 法的正确解密. 种设备在日常生活中很常见如电子钱包卡(elec 如文献[3]的描述,图像列置乱算法只需对上 tron ic purse ca,GSM电话中的SM卡,销售点 述图像行置乱加解密算法作简单修改,在此不再重 终端机(post of sale tem inalmachin9和网络应用会 复叙述.图像行置乱算法,还可以进一步改进成为 议的令牌加密(web application session pken encryp 行列复合置乱算法.对于像素数目为仪的明文 ton19 图像,行列复合置乱算法的全过程,如上述Sp 1~Step5和承接在Step5之后的Stp6~Step10 3唯密文攻击 的描述 文献[3]使用Lgisti9映射作为图像置乱算法 Sep6把Y)的值赋给Y1: 的混沌系统以初始条件作为密钥.原文认为该算 Step7以Y1)为初始条件迭代Logisti9映射, 法的密钥空间为(一11)之间的全体实数.考虑如 产生混沌流{Y》,对混沌流{Y}¥按升序 下事实:图像置乱算法使用的混沌系统都是在有限 排序,得到有序序列{(}: 精度下实现的.如果实现精度为Lbjt则密钥共有 SeP8确定每一个混沌值Yj在有序序列 2+1个,即密钥熵为+1全部21个密钥并不是 {4j}中的位置编号,记录为羊或即得到置换 都可用,例如0.50这些坏点是不能在置乱算法 地址码{羊j: 中使用的. SeP9按照置换地址码{【j)¥,对图像第1 准确的穷举攻击复杂度可以如下估计.用行置 列的像素进行置换,将第1列的第行([1M) 乱算法加密一幅像素数目为M仪的明文图像,生 像素分别置换到第1列的第t)行: 成所有的置换地址码需要MN次混沌迭代。M次长 SeP10把¥M)的值赋给平1),对第2列到 度为的序列的排升序操作和N次置换.以交换 第N列重复SeP7~SePg直到第N列的像素全 排序法的起泡排序为例,长度为的序列排序平均 部置换完毕, 需要比较YN1)2次,交换YN-1)/2次,而 2 K erckhof假设和攻击类型 一次交换需要移动3次,即移动3YN-1)2次.假 设一次混沌迭代与比较、移动操作的耗时相等,则 对密码算法进行分析时,通常假设密码分析者 总的攻击复杂度为2MN+4MVYN-1)2=2M. 知道密码设计的系统和工作原理,即秘密全寓于密 对于相当大的尺寸M==1024(这是一幅较大的 钥中.这个假设称作Kerkho锻设.当然,如果密 数字图像的典型尺寸,攻击复杂度为2M=2. 码分析者不知道所使用的密码系统那么破译密码 同理,加密同样大小的明文图像列置乱算法的攻北 京 科 技 大 学 学 报 第 32卷 Step1 以 x( 1)为初始条件迭代 Logistic映射, 产生混沌流 {x( i)} N i=1; Step2 对混沌流 {x( i)} N i=1按升序排序, 得到 有序序列{x′( i)} N i=1; Step3 确定每一个混沌值 x( i)在有序序列 {x′( i)} N i=1中的位置编号, 记录为 t( i), 即得到置 换地址码{t( i) } N i=1 ; Step4 按照置换地址码 {t( i) } N i=1对图像第 1 行的像素进行置换, 将第 1行的第 i列 ( i∈ [ 1, N] ) 像素分别置换到第 1行的第 t( i)列 ; Step5 把 x( N)的值赋给 x( 1 ), 对第 2行至 第 M行重复 Step1 ~ Step4, 直到第 M行的像素全 部置换完毕 . 使用相同的密钥, 只需将 Step4改为 “按照置 换地址码{t( i) } N i=1对图像的第 1行像素进行逆置 换, 即分别将第 1行的第 t( i)列像素置换到第 1行 的第 i列 ”, 其他步骤相同, 即可实现图像行置乱算 法的正确解密. 如文献 [ 3]的描述, 图像列置乱算法只需对上 述图像行置乱加解密算法作简单修改, 在此不再重 复叙述 .图像行置乱算法, 还可以进一步改进成为 行列复合置乱算法.对于像素数目为 M×N的明文 图像, 行列复合置乱算法的全过程, 如上述 Step 1 ~ Step5和承接在 Step5 之后的 Step6 ~ Step10 的描述 . Step6 把 x(N)的值赋给 x( 1) ; Step7 以 x( 1)为初始条件迭代 Logistic映射, 产生混沌流 {x( j)} M j=1, 对混沌流 {x( j) } M j=1按升序 排序, 得到有序序列 {x′( j)} M j=1 ; Step8 确定每一个混沌值 x( j)在有序序列 {x′( j) } M j=1中的位置编号, 记录为 t(j), 即得到置换 地址码 {t(j) } M j=1 ; Step9 按照置换地址码 {t( j) } M j=1对图像第 1 列的像素进行置换, 将第 1列的第 j行 ( j∈ [ 1, M] ) 像素分别置换到第 1列的第 t( j)行; Step10 把 x( M)的值赋给 x( 1), 对第 2列到 第 N列重复 Step7 ~ Step9, 直到第 N列的像素全 部置换完毕 . 2 Kerckhoff假设和攻击类型 对密码算法进行分析时, 通常假设密码分析者 知道密码设计的系统和工作原理, 即秘密全寓于密 钥中.这个假设称作 Kerckhoff假设 .当然, 如果密 码分析者不知道所使用的密码系统, 那么破译密码 更难, 但不应该把密码系统的安全性建立在敌手不 知道所使用的密码系统这个前提之下 .因此, 在设 计一个密码系统时, 应该在 Kerckhoff假设下达到 安全 [ 8] . 常用的密码分析攻击有四类, 从难到易列举 如下 . ( 1) 唯密文攻击:密码分析者有一个或者多个 密文 . ( 2) 已知明文攻击 :密码分析者有一些明文以 及相应的密文 . ( 3) 选择明文攻击 :密码分析者有机会使用密 码机, 因此可以选择一些明文, 并产生密文. ( 4) 选择密文攻击 :密码分析者有机会使用密 码机, 因此可以选择一些密文, 并产生明文. 上述每一种攻击, 目的都是确定密码系统所使 用的密钥 .后面两种攻击看似不合理, 但是密码系 统的密钥一旦投入使用 (该密钥不为密码分析者所 知 ), 被嵌入到设备中, 密码分析者就可能操纵 .这 种设备在日常生活中很常见, 如电子钱包卡 ( elec￾tronicpursecard), GSM电话中的 SIM卡, 销售点 终端机 ( post-of-saleterminalmachine)和网络应用会 议的令牌加密 ( webapplicationsessiontokenencryp￾tion) [ 9] . 3 唯密文攻击 文献 [ 3] 使用 Logistic映射作为图像置乱算法 的混沌系统, 以初始条件作为密钥 .原文认为该算 法的密钥空间为 ( -1, 1)之间的全体实数 .考虑如 下事实:图像置乱算法使用的混沌系统都是在有限 精度下实现的 .如果实现精度为 Lbit, 则密钥共有 2 L+1个, 即密钥熵为 L+1.全部 2 L+1个密钥并不是 都可用, 例如 ±0.5, 0这些坏点是不能在置乱算法 中使用的 . 准确的穷举攻击复杂度可以如下估计 .用行置 乱算法加密一幅像素数目为 M×N的明文图像, 生 成所有的置换地址码需要 MN次混沌迭代, M次长 度为 N的序列的排升序操作和 MN次置换 .以交换 排序法的起泡排序为例, 长度为 N的序列排序平均 需要比较 N( N-1) /2次, 交换 N(N-1) /2次, 而 一次交换需要移动 3次, 即移动 3N( N-1) /2次 .假 设一次混沌迭代与比较 、移动操作的耗时相等, 则 总的攻击复杂度为 2MN+4MN( N-1) /2 =2MN 2. 对于相当大的尺寸 M=N=1 024(这是一幅较大的 数字图像的典型尺寸 ), 攻击复杂度为 2MN 2 =2 31. 同理, 加密同样大小的明文图像, 列置乱算法的攻 · 674·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有