已阅读5页,还剩106页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 2 2分组加密技术 2 2 1基本概念2 2 2标准算法的介绍DES算法国际数据加密算法 IDEA AES算法2 2 3分组密码的分析方法2 2 4分组密码的工作模式 2 2 2 1基本概念 密码学中常见的有两种体制 对称密码体制 单钥密码体制 如果一个加密系统的加密密钥和解密密钥相同 或者虽然不相同 但是由其中的任意一个可以很容易地推导出另一个 即密钥是双方共享的 则该系统所采用的就是对称密码体制 非对称密码体制 公钥密码体制 分组密码是指将处理的明文按照固定长度进行分组 加解密的处理在固定长度密钥的控制下 以一个分组为单位独立进行 得出一个固定长度的对应于明文分组的结果 属于对称密码体制的范畴 3 基本概念 续 在分组密码的设计中用代替 置换手段实现扩散和混淆功能 混淆 Confusion 指加密算法的密文与明文及密钥关系十分复杂 无法从数学上描述 或从统计上去分析 扩散 Diffusion 指明文中的任一位以及密钥中的任一位 对全体密文位有影响 经由此种扩散作用 可以隐藏许多明文在统计上的特性 增加密码的安全 分组密码的安全特性 4 2 2 2标准算法的介绍 数据加密标准 DataEnryptionStandard DES 国际数据加密算法 IDEA 高级加密标准 AdvancedEncryptionStandard AES 5 DES加密算法的背景 发明人美国IBM公司W Tuchman和C Meyer1971 1972年研制成功 基础1967年美国HorstFeistel提出的理论产生美国国家标准局 NBS 1973年5月到1974年8月两次发布通告 公开征求用于电子计算机的加密算法 经评选从一大批算法中采纳了IBM的LUCIFER方案 标准化DES算法1975年3月公开发表 1977年1月15日由美国国家标准局颁布为数据加密标准 DataEncryptionStandard 于1977年7月15日生效 6 DES加密算法的背景 美国国家安全局 NSA NationalSecurityAgency 参与了美国国家标准局制定数据加密标准的过程 NBS接受了NSA的某些建议 对算法做了修改 并将密钥长度从LUCIFER方案中的128位压缩到56位 1979年 美国银行协会批准使用DES 1980年 DES成为美国标准化协会 ANSI 标准 1984年2月 ISO成立的数据加密技术委员会 SC20 在DES基础上制定数据加密的国际标准工作 7 数据加密标准DES DES是一种著名的分组密码算法 DES的分组长度 64位 密钥长度 64位 包括8比特的奇偶校验位 密钥通过扩展后 经过16轮对明文分组的代换和置换 生成密文 8 DES算法描述 为二进制编码数据设计的 可以对计算机数据进行密码保护的数学运算 DES使用56位密钥对64位的数据块进行加密 并对64位的数据块进行16轮编码 在每轮编码时 一个48位的 每轮 密钥值由56位的 种子 密钥得出来 DES算法的入口参数有三个 Key Data和Mode Key为8个字节共64位 是DES算法的工作密钥 Data也为8个字节64位 是要被加密或被解密的数据 Mode为DES的工作方式 有两种 加密或解密 64位明文变换到64位密文 密钥64位 实际可用密钥长度为56位 9 DES将明文分成64比特分组 每次对一个分组进行加密 共经过16轮变换 产生64比特的密文 DES的密钥为56比特 通过密钥调度算法每次产生48比特的子密钥用于一轮的加密 DES的工作过程 10 DES算法框图 第1轮 第16轮 11 DES算法描述 续 初始换位 IP 的功能是把输入的64位数据块按位重新组合 并把输出分为L0 R0两部分 每部分各长32位 其置换规则见下表 1初始换位与逆置换 例 设置换前的输入值为D1D2D3 D64 则经过初始置换后的结果为 L0 D58D50 D8 R0 D57D49 D7 58504234261810026052443628201204625446383022140664564840322416085749413325170901595143352719110361534537292113056355473931231507 初始换位 IP 表 12 DES算法描述 续 逆置换正好是初始换位的逆运算 例 第1位经过初始置换后 处于第40位 而通过逆置换 又将第40位换回到第1位 其逆置换规则如下表所示 40084816562464323907471555236331380646145422623037054513532161293604441252206028350343115119592734024210501858263301410949175725 逆置换IP 13 说明 初始换位 IP 的逆置换 可记为IP 1 它在16轮变换之后应用 即针对第16轮变换输出作出置换 将40 8 48等比特位分别放置于1 2 3等比特位位置 实现将第1 2 3 64比特位恢复为初始位置 置换后的结果为64比特的密文 14 58504234261810026052443628201204625446383022140664564840322416085749413325170901595143352719110361534537292113056355473931231507 初始换位IP 40084816562464323907471555236331380646145422623037054513532161293604441252206028350343115119592734024210501858263301410949175725 逆置换IP 15 逆IP变换确保在解密时使用与加密相同的算法 经过IP置换后得到正确的加密 第16轮变换输出 作为解密第1轮变换的输入 16 DES算法的一次迭代过程图 17 2f函数 f函数包括4部分 1 扩展置换 2 密钥运算 3 S 盒置换 4 P 盒置换 18 1 扩展置换 使用扩展置换 就是将32比特块 每1轮右半部分输入 扩展成为48比特 重复输入16比特 扩展置换 320102030405040506070809080910111213121314151617161718192021202122232425242526272829282930313201 从右图可以看出 扩展操作是将原有的32比特按8行4列排列后构成输入矩阵 然后复制输入矩阵的第1列并向循环上移1位 添加到输入矩阵的右侧 复制输入矩阵的第4列并循环向下移1位 添到输入矩阵的左侧 最后构成8行6列的输出矩阵 共48比特 19 2 密钥混合 扩展操作的输出矩阵48比特与48比特的轮密钥做异或运算 其中的轮密钥是由56比特原始密钥经过密钥调度产生的 3 S 盒置换 将密钥混合后输出的48比特分为8组 每组6比特 经过8个独立的S盒替换 输出8组4比特值 每个S盒可以看做一个表格 通过查表实现非线性转换 S盒替换是DES算法安全的核心 每个S盒是一个4行16列的表格 20 在S 盒变换中用到的S1 S2 S8共8个选择函数 它们是DES算法的核心 其功能是把6bit数据变为4bit数据 下表为S1 S8盒的替换阵列 S1替换阵列 查表输入为6比特 取最低和最高比特位的10进制值作为行号 中间的4比特的10进制值作为列号 查找对应表格中的数值 例 输入为 110100 2 行号取 10 2 2 列号 1010 2 10由此查表结果为9 21 22 23 24 25 101100 102 012345678910111213141501441312151183106125907101574142131106121195382411481362111512973105031512824917511314100613 0010 输出4位 使用选择函数S1的例子 输入6位 S1 26 110100101100 110101 100100101100 27 1607202129122817011523260518311002082414322703091913300622110425 P 盒置换 4 P 盒置换 S盒替换输出32比特 再经过一个固定的P盒置换 该置换操作时的本轮每个S盒替换输出 在下一轮经过扩展操作后 扩散到6个不同的S盒中 P盒置换比特位重新如下表所示 即将输入的第16 7 20比特重排到输出的第1 2 3比特位置 F函数中的S盒置换操作实现了 混淆 confusion P盒置换实现了 扩散 diffusion 从而保证了DES的安全性 28 3密钥调度算法 在64比特的密钥中 除去8个比特奇偶校验位 8 16 24 64 只有56比特可用 56比特密钥作为初始输入 经过置换选择PC1 PermutedChoice1 输出的56比特分为左右两部分 各28比特 分别进行左循环移位 之后左右两部分合并进行置换选择操作PC2 产生48比特轮密钥 第一轮的左循环移位输出作为第2轮密钥产生的输入 再次进行左循环移位 以此类推 直到产生16轮的子密钥 29 密钥调度中的左循环移位每一轮移动的比特个数不同 从第1轮到第16轮位移次数为 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 这样每一比特密钥大约在16轮中的14轮中用到 解密时密钥调度算法一致 只是按逆序使用 最后使用K1 解密处理程序与加密相同 56位分为C0和D0两部分 各28位 然后分别进行第1次循环左移 得到C1 D1 将C1 28位 D1 28位 合并得到56位 再经过缩小选择换位2 从而便得到了密钥K0 48位 依此类推 便可得到K1 K2 K15 不过需要注意的是 16次循环左移对应的左移位数要依据下述规则进行 30 5749413325170901585042342618100259514335271911036052443663554739312315076254463830221406615345372921130528201204 置换选择PC1 置换选择PC2 141711240105032815062110231912042608160727201302415231374755304051453348444939563453464250362932 31 密钥Ki 48bit 的生成算法 K PC1 C0D0 LS1 LS1 C1D1 LS2 LS2 LS16 LS16 C16D16 PC2 PC2 K1 K16 32 DES的安全性分析 DES的实际密钥长度为56 bit 就目前计算机的计算能力而言 DES不能抵抗对密钥的穷举搜索攻击 1997年1月28日 RSA数据安全公司在RSA安全年会上悬赏10000美金破解DES 克罗拉多州的程序员Verser在Internet上在数万名志愿者的协作下 用96天的时间找到了密钥长度为40 bit和48 bit的DES密钥 1998年7月电子边境基金会 EFF 使用一台价值25万美元的计算机在56小时之内破译了56 bit的DES 1999年1月电子边境基金会 EFF 通过互联网上的10万台计算机合作 仅用22小时15分就破解了56 bit的 ES 不过这些破译的前提是 破译者能识别出破译的结果确实是明文 也即破译的结果必须容易辩认 如果明文加密之前经过压缩等处理 辩认工作就比较困难 33 DES算法的公开性与脆弱性 DES的两个主要弱点 密钥容量 56位不太可能提供足够的安全性S盒 可能隐含有陷井 Hiddentrapdoors DES的半公开性 S盒的设计原理至今未公布 34 DES加密的一个例子 1 取16进制明文P 0123456789ABCDEF 2 密钥K为 133457799BBCDFF1 去掉奇偶校验位以二进制形式表示的密钥是 00010010011010010101101111001001101101111011011111111000 3 应用IP 得到 L0 11001100000000001100110011111111L1 R0 11110000101010101111000010101010 4 然后进行16轮加密 5 最后对L16 R16使用IP 1得到密文 85E813540F0AB405 35 IDEA InternationalDataEncryptionStandard 由瑞士联邦理工学院的XuejiaLai和JamesMassey于1990年提出 分组长度为64 bit 密钥长度为128 bit 能抵抗差分密码分析 目前还没有发现明显的安全漏洞 应用十分广泛 著名的电子邮件安全软件PGP就采用了IDEA进行数据加密 国际数据加密算法 IDEA 36 IDEA的混淆特性是经由混合下述三种操作而成的 以比特为单位的异或运算 用 表示 定义在模 mod65536 的模加法运算 其操作数都可以表示成16位整数 用 表示这个操作 定义在模 1 mod65537 的模乘法运算 IDEA的混淆特性 37 由于上面3个操作 基于以下的 非兼容性 Incompatible 当应用在IDEA时 可以充分发挥出混淆的特性 三种中的任意两个 都不满足 分配律 例如运算 及 任意a b c 则有 a b c a b a c 3个操作中的任意2个 都无法满足 结合律 例如运算 及 任意a b c a b c a b a c 因此在IDEA的设计中 使用了这三种操作混合组合来打乱数据 攻击者无法用化简的方式来分析密文与明文及密钥之间的关系 IDEA的混淆特性 38 IDEA的扩散特性是建立在乘法 加法 MA 的基本结构上 该结构一共有4个16位的输入 两个16位的输出 其中的两个输入来源于明文 另两个输入是子密钥 源于128位加密密钥 Lai经过分析验证 数据经过8轮的MA处理 可以得到完整的扩散特性 IDEA的扩散特性 39 IDEA的设计理念 IDEA的设计主要考虑是针对16位为单位的处理器 因此无论明文 密钥都是分成16位为一个单元进行处理 IDEA使用了三种简单的基本操作 因此在执行时可以达到非常快的操作 在33MHz386机器上运行 加密速度可以达到880kb s 经过特殊设计的VLSI芯片 更可以达到55Mb s的速度 IDEA采用三种非常简单的基本操作 混合运算 以达到混淆目的 而相对地 DES采用经过特殊设计的S 盒 而对这些S 盒的分析又不对外公开 相较之下 IDEA的安全性评估 较易被大家接受 IDEA的整体设计非常规律 MA运算器及变换运算器重复使用在系统上 因此非常适合VLSI实现 40 AES算法 1997年4月15日 美国国家标准技术研究所 NIST 发起征集AES AdvancedEncryptionStandard 的活动 目的是为响应公众日益增长的替换DES的要求 确定21世纪的数据加密标准 1997年9月12日正式公布了通告 通告要求AES比3DES快而且安全 分组长度为128 bit 密钥长度为128 192及256 bit NIST原名为NBS 国家标准局 是美国商业部下属的一个机构 1988年改为现名 著名的DES加密算法即是由它们颁布的 1998年8月20日公布了符合基本要求的15个算法 1999年3月22日从中选出了5个 2000年4月25日对5个算法进行了讨论 2000年10月2日 NIST公布了最终的获胜者是Rijndael算法 比利时人设计 AES算法能有效地抵抗差分分析与线性攻击 但加密 解密过程不完全对称 使用了不同的代码和S 盒 所以实现起来占用资源相对多一些 41 AES算法 Rijndael算法 1 数据块长度和密钥长度可以是128比特 192比特和256比特 其原型是Square算法 设计策略 宽轨迹策略 WideTrailStrategy 宽轨迹策略针对差分分析和线性分析提出 其最大优点是可以给出算法的最佳差分特征的概率及最佳线性逼进的偏差的界 42 AES算法 Rijndael算法 2 Rijndael采用的是代替 置换网络 每一轮由以下三层组成 线性混和层 确保多轮之上的高度扩散 非线性层 由16个S 盒并置而成 起到混淆的作用 密钥加层 子密钥简单地异或到中间状态上 S 盒选取的是有限域GF 28 中的乘法逆运算 它的差分均匀性和线性偏差都达到了最佳 43 Rijndael算法加密过程 1 44 2 2 3分组密码的分析方法 解密与密码分析解密是加密的逆过程 是指掌握密钥和密码算法的合法人员从密文恢复出明文的过程 密码分析则是指非法人员对密码的破译 而且破译以后不会告诉对方 共同点 解密 脱密 和 密码分析 密码破译 都是设法将密文还原成明文 不同点二者的前提是不同的 解密 脱密 掌握了密钥和密码体制 而密码分析 破译 则没有掌握密钥和密码体制 45 分组密码的分析方法 根据攻击者掌握的信息 可将分组密码的攻击分为以下几类 唯密文攻击 攻击者除了所截获的密文外 没有其他可利用的信息 已知明文攻击 攻击者仅知道当前密钥下的一些明密文对 选择明文攻击 攻击者能获得当前密钥下的一些特定的明文所对应的密文 选择密文攻击 攻击者能获得当前密钥下的一些特定的密文所对应的明文 46 分组密码的分析方法 续 一种攻击的复杂度可以分为两部分 数据复杂度和处理复杂度 数据复杂度是实施该攻击所需输入的数据量 处理复杂度是处理这些数据所需的计算量 对某一攻击通常是以这两个方面的某一方面为主要因素 来刻画攻击复杂度 例如 穷举攻击的复杂度实际就是考虑处理复杂度 差分密码分析其复杂度主要是由该攻击所需的明密文对的数量来确定 47 几种常见的攻击方法 1 强力攻击强力攻击可用于任何分组密码 且攻击的复杂度只依赖于分组长度和密钥长度 严格地讲攻击所需的时间复杂度依赖于分组密码的工作效率 包括加解密速度 密钥扩散速度以及存储空间等 强力攻击常见的有 穷举密钥搜索攻击 字典攻击 查表攻击和时间 存储权衡攻击等 48 几种常见的攻击方法 续 2 差分密码分析基本思想通过分析明文对的差值对密文对的差值的影响来恢复某些密钥比特 若给定一个r轮的迭代密码 对已知n长明文对为和 定义其差分为式中表示集合中定义的群运算 为在群中的逆元 密码分析者可随机选择具有固定差分的一对明文 只要求它们符合特定差分条件 然后使用输出密文中的差分 按照不同的概率分配给不同的的密钥 随着分析的密文对越来越多 其中最可能的一个密钥就显现出来了 这就是正确的密钥 49 几种常见的攻击方法 续 3 线性密码分析本质 一种已知明文攻击方法 基本思想 通过寻找一个给定密码算法的有效的线性近似表达式来破译密码系统 对已知明文密文和特定密钥 寻求线性表示式式中 是攻击参数 对所有可能密钥 此表达式以概率成立 对给定的密码算法 使极大化 为此对每一盒的输入和输出构造统计线性路线 并最终扩展到整个算法 50 2 3公钥加密技术 本节提示2 3 1基本概念2 3 2RSA公钥密钥算法2 3 3ElGamal算法2 3 4椭圆曲线算法 51 2 3 1基本概念 1976年 W Diffie和M E Hellman发表了 密码学的新方向 NewDirectionsinCryptography 一文 提出了公钥密码学 Public keycryptography 的思想 在公钥密码体制 Public keycryptosystem 中加密密钥和解密密钥是不同的 加密密钥可以公开传播而不会危及密码体制的安全性 通信的一方利用某种数学方法可以产生一个密钥对 一个称为公钥 Public key 另外一个称为私钥 Private key 该密钥对中的公钥与私钥是不同的 但又是相互对应的 并且由公钥不能推导出对应的私钥 选择某种算法 可以公开 能做到 用公钥加密的数据只有使用与该公钥配对的私钥才能解密 52 基本概念 续 公钥加密算法的核心 单向陷门函数 即从一个方向求值是容易的 但其逆向计算却很困难 从而在实际上成为不可行 定义1 设是一个函数 如果对任意给定的 计算 使得是容易计算的 但对于任意给定的 计算 使得是难解的 即求的逆函数是难解的 则称是一个单向函数 53 基本概念 续 定义2 设是一个函数 是与有关的一个参数 对于任意给定的 计算 使得是容易的 如果当不知参数时 计算的逆函数是难解的 但当知道参数时 计算函数的逆函数是容易的 则称是一个单向陷门函数 参数称为陷门 54 2 3 2RSA公钥密码算法 RSA是Rivet Shamir和Adleman于1978年在美国麻省理工学院研制出来的 它是一种比较典型的公开密钥加密算法 基础大数分解和素性检测 将两个大素数相乘在计算上很容易实现 但将该乘积分解为两个大素数因子的计算量是相当巨大的 以至于在实际计算中是不能实现的 55 RSA公钥密码算法 续 算法内容 1 公钥选择两个互异的大质数和 使 是欧拉函数 选择一个正数 使其满足 则将作为公钥 2 私钥求出正数使其满足 则将作为私钥 3 加密变换将明文作变换 使 从而得到密文 4 解密变换将密文作变换 使 从而得到明文 56 RSA公钥密码算法 续 如果A要发送信息M给B A和B之间用以下方式进行通信 计算密文 发送C给B 从A接收C 计算明文 一般要求p q为安全质数 现在商用的安全要求为n的长度不少于1024位 应用 PEM PGP 57 RSA公钥密码算法 续 算法的安全性分析1 如果密码分析者能分解的因子和 他就可以求出和解密的密钥 从而能破译RSA 因此破译RSA不可能比因子分解难题更困难 2 如果密码分析者能够不对进行因子分解而求得 则可以根据求得解密密钥 从而破译RSA 因为所以知道和就可以容易地求得和 从而成功分解 因此 不对进行因子分解而直接计算并不比对进行因子分解更容易 58 RSA公钥密码算法 续 3 如果密码分析者既不能对n进行因子分解 也不能求而直接求得解密密钥 则他就可以计算是的倍数 而且利用的倍数可以容易地分解出n的因子 因此直接计算解密密钥并不比对n进行因子分解更容易 注意问题p和q的长度相差不能太多 p 1和q 1都应该包含大的素因子 p 1和q 1的最大公因子要尽可能小 59 2 2 3ElGamal算法 该体制是由ElGamal在1985年提出的 其安全性是基于有限域上计算离散对数的困难性 ElGamal提出了加密模型和认证模型两种体制 加密模型没有被充分应用 而其认证模型是美国数字签名标准 DSS 的基础 60 2 2 3ElGamal算法 算法内容1 选取大素数 是一个本原元 和公开 2 随机选取整数计算是公开的加密密钥 是保密的解密密钥 3 明文空间为 密文空间为 4 加密变换为 对任意明文 秘密随机选取一个整数 则密文为其中5 解密变换 对任意密文 明文为 61 ElGamal算法的安全性分析 有限域上的离散对数问题定义设是素数 是一个本原元 已知和 求满足的唯一整数 称为有限域上的离散对数问题 现在要求在ElGamal密码算法的应用中 素数p按十进制表示至少应该有150位数字 并且p 1至少应该有一个大的素因子 62 2 2 4椭圆曲线算法 1985年Koblitz和Miller提出在密码学中应用椭圆曲线的思想 使其成为构造公开密钥密码系统的一个有利工具 其安全性是基于椭圆曲线上的离散对数计算的困难性 优点 椭圆曲线上离散对数的计算要比有限域上离散对数的计算更困难 与RSA相比 椭圆曲线密码体制能用较短的密钥达到较强的安全性 这样实现上能节省系统资源 63 椭圆曲线算法 续 1 有限域上的椭圆曲线设表示一个有限域 是域上的椭圆曲线 则是一个点的集合 表示为 其中表示无穷远点 在上定义 运算 是过的直线与曲线的另一交点关于x轴的对称点 当时 是点的切线与曲线的另一交点关于轴的对称点 这样 构成可换群 Abel群 O是加法单位元 零元 64 椭圆曲线算法 续 椭圆曲线离散对数问题 ECDLP 给定义在上的椭圆曲线 一个阶的点和点 如果存在1 确定整数1 0 1 n 1 RSA是基于因子分解 其算法的核心就是如何寻找大数的因子分解 但ECDLP是比因子分解难得多的问题 65 椭圆曲线中两种运算示意图 椭圆曲线上的加法 P Q R 椭圆曲线上一点的2倍 P P R 66 椭圆曲线算法 续 2 椭圆曲线上的密码算法1985年N Koblitz和Miller提出将椭圆曲线用于密码算法 分别利用有限域上椭圆曲线的点构成的群 实现了离散对数密码算法 椭圆曲线数字签名算法ECDSA 由IEEE工作组和ANSI AmercianNationalStandardsInstitute X9组织开发 67 椭圆曲线算法 续 3 椭圆曲线密码算法的发展RSA的长密钥带来了运算速度慢和密钥存储与管理的问题 由于其自身的优点 椭圆曲线密码学被普遍认为将替代RSA成为通用的密码算法 应用 数字签名 智能卡研究 陶仁骥 陈世华 基于有限自动机的公开密钥加密方法 FAPKC0 FAPKC1 FAPKC2 FAPKC3 68 2 4流密码技术 本节提示2 4 1流密码基本原理2 4 2二元加法流密码2 4 3几种常见的流密码算法 69 2 4流密码技术 在单钥密码体制中 按照加密时对明文处理方式的不同 可分为分组密码和流密码 流密码亦称为序列密码 是将待加密的明文分成连续的字符或比特 然后用相应的密钥流对之进行加密 密钥流由种子密钥通过密钥流生成器产生 密钥流可以方便地利用以移位寄存器为基础的电路来产生 特点 实现简单 加密速度快 错误传播低 70 2 4 1流密码基本原理 原理通过随机数发生器产生性能优良的伪随机序列 密钥流 使用该序列加密信息流 逐比特加密 得到密文序列 71 按照加解密的工作方式 流密码分为同步流密码和自同步流密码 1 同步流密码密钥流的产生完全独立于信息流 种子密钥K 72 流密码基本原理 续 2 自同步流密码是一种有记忆变换的密码 每一个密钥字符是由前面n个密文字符参与运算推导出来的 其中n为定值 即 如果在传输过程中丢失或更改了一个字符 则这一错误就要向前传播n个字符 有错误传播现象 种子密钥k 73 2 4 2二元加法流密码 符号描述与示例加密操作 密钥流 k1 k2 k3 明文流 m1 m2 m3 密文流 c1 c2 c3 解密操作 密钥流 k1 k2 k3 密文流 c1 c2 c3 明文流 m1 m2 m3 例 电报内容 专列下午2点到达 的加密过程如下 密钥流 78 35 02 E4 B2 明文流 D7 A8 C1 D0 CF C2 CE E7 32 B5 E3 B5 BD B4 EF A1 A3 密文流 AF 9D C3 34 7D 74 二元加法流密码 续 Golomb随机性假设 在序列的一个周期内 0与1的个数相差至多为1 在序列的一个周期圈内 长为1的游程数占总游程数的1 2 长为2的游程数占总游程数的 长为的游程数占总游程数的且在等长的游程中0 1游程各占一半 序列的异相自相关系数为一个常数 满足Golomb随机性假设的序列称为伪随机序列 75 二元加法流密码 续 流密码的设计最核心的问题是密钥流生成器的设计 密钥流生成器一般由线性反馈移位寄存器 LinearFeedbackShiftRegisterLFSR 和一个非线性组合函数两部分构成 其中 线性反馈移位寄存器部分称为驱动部分 另一部分称为非线性组合部分 76 二元加法流密码 续 反馈移位寄存器 feedbackshiftregister 1 组成结构反馈移位寄存器由n位的寄存器 称为n 级移位寄存器 和反馈函数 feedbackfunction 组成 移位寄存器序列的理论由挪威政府的首席密码学家ErnstSelmer于1965年提出 77 二元加法流密码 续 2 工作原理移位寄存器中所有位右移一位 最右边移出的位是输出位 最左端的一位由反馈函数的输出填充 此过程称为进动一拍 反馈函数f b1 bn 是n元 b1 bn 的布尔函数 移位寄存器根据需要不断地进动m拍 便有m位的输出 形成输出序列o1o2 om 78 二元加法流密码 续 例1 如图所示为一个3 级反馈移位寄存器 反馈函数f x b3 b2 初态为 100 输出序列生成过程如下 状态输出位100 0110 0011 1101 1110 0011 1101 1110 0因此 对应初态 100 的输出序列为 0011011011 周期为3 b3 b2 b1 t2 t3 a 移位寄存器结构图 110 011 101 初态 100 b 状态转移图 1 1 0 c 序列圈 0 79 二元加法流密码 续 3 输出序列的周期移位寄存器的周期是指输出序列中连续且重复出现部分的长度 位数 如 例1 输出序列中连续且重复出现的序列为 011 则其周期为3 其输出序列可表示为 0 011 将其用图的方式表示出来称为 序列圈 如图 c 所示 4 状态某一时刻移位寄存器中所有位的值称为一个状态 n 级的FSR共有2n个状态 3 级移位寄存器的状态共有23 8个 它们分别是 000 001 010 011 100 101 110 111 但是 并非所有的状态都被用到 如 例1 除初始状态以外 仅有三个状态周期性地参与了输出序列的产生 80 二元加法流密码 续 当反馈移位寄存器的反馈函数是异或变换时 这样的反馈移位寄存器叫线性反馈移位寄存器 如图所示 81 二元加法流密码 续 移位寄存器中存储器的个数称为移位寄存器的级数 移位寄存器存储的数据为寄存器的状态 状态的顺序从左到佑依次为从最高位到最低位 在所有状态中 叫初态 并且从左到右依次称为第一级 第二级 第n级 亦称为抽头1 抽头2 抽头3 抽头n n级线性反馈移位寄存器的有效状态为个 它主要是用来产生周期大 统计性能好的序列 82 二元加法流密码 续 非线性组合部分主要是增加密钥流的复杂程度 使密钥流能够抵抗各种攻击 对流密码的攻击手段主要是对密钥流进行攻击 以线性反馈移位寄存器产生的序列为基序列 经过不规则采样 函数变换等 即非线性变换 就可以得到实用安全的密钥流 不规则采样是在控制序列下 对被采样序列进行采样输出 得到的序列称为输出序列 控制序列的控制方式有钟控方式 抽取方式等 函数变换有前馈变换 有记忆变换等 83 二元加法流密码 续 代表性的序列模型1 钟控模型当LFSR 1输出1时 时钟信号被采样 即能通过 与门 驱动LFSR 2进动一拍 当LFSR 1为0时 时钟信号不被采样 即不能通过 与门 此时LFSR 2不进动 重复输出前一位 钟控发生器的示意图如下 84 2 前馈模型Geffe发生器是前馈序列的典型模型 其前馈函数g x x1x2 x2x3 为非线性函数 即当LFSR 2输出1时 g x 输出位是LFSR 1的输出位 当LFSR 2输出0时 g x 输出位是LFSR 3的输出位 Geffe发生器示意图如下 85 2 4 3几种常见的流密码算法 1 A5算法法国 欧洲数字蜂窝移动电话系统 GSM 中使用的序列密码加密算法3个LFSR 移位寄存器的长度分别是19 22和23 但抽头都较少2 Rambutan算法英国的算法 由通信电子安全组织设计5个LFSR组成 每个LFSR长度大约为80 级 而且有10个抽头 3 RC4算法由RonRivest于1987年为RSA数据安全公司设计的可变密钥长度的序列密码 广泛用于商业密码产品中 4 SEAL算法IBM公司的PhilRogaway和DonCoppersmith设计的一种易于用软件实现的序列密码 是一个伪随机函数簇 86 2 5电子信封技术 对称密码算法 加 解密速度快 但密钥分发问题严重 非对称密码算法 加 解密速度较慢 但密钥分发问题易于解决 为解决每次传送更换密钥的问题 结合对称加密技术和非对称密钥加密技术的优点 产生了电子信封技术 用来传输数据 87 电子信封技术的原理 88 2 6信息隐藏技术 本节提示2 6 1信息隐藏技术的发展2 6 2信息隐藏的特点2 6 3信息隐藏的方法2 6 4信息隐藏的攻击 89 信息隐藏的定义 信息隐藏 InformationHiding 或更严格地称为信息伪装 Steganography 该单词来源于古希腊 意思是将有用或重要的信息隐藏于其他信息里面以掩饰其存在 顾名思义就是将秘密信息秘密地隐藏于另一非机密的文件内容之中 其形式可为任何一种数字媒体 如图象 声音 视频或一般的文档等等 其首要目标是隐藏的技术要好 也就是使加入隐藏信息后的媒体目标的降质尽可能小 使人无法看到和听到隐藏的数据 达到令人难以察觉的目的 90 2 6 1信息隐藏技术的发展 历史背景 1 最早记载例子 480B C希腊人在蜡板上隐写2 不可见墨水 17世纪 3 微缩胶片与微缩小点编码 1857年 4 藏头诗 乐谱 文字材料 纸张水印 信息时代 1 数字媒体 图象音频视频文档 具有大量冗余空间2 数字媒体的版权保护 3 信息安全 信息战争 个人隐私保护的需要 91 信息隐藏技术的发展 续 信息隐藏主要分为隐写术 Steganography 和数字水印 DigitalWatermark 两个分支 隐写术Simmons提出的囚犯问题数字水印数字水印技术通过在数字作品中加入一个不可察觉的标识信息 版权标识或序列号等 需要时可以通过算法提出标识信息来进行验证 作为指证非法复制的证据 92 1信息隐藏概念与分类 128127126 120123124 858586 011 100 011 128127127 121124124 868587 基于图像隐藏 93 信息隐藏概念与分类 基于图像隐藏 94 中国古典名著 水浒传 第六十一回 吴用智赚玉麒麟 张顺夜闹金沙渡 中有这样一首诗 芦花丛中一扁舟 俊杰俄从此地游 义士若能知此理 反躬逃难可无忧 基于语义隐藏 信息隐藏概念与分类 95 隐写 是信息隐藏的一个重要分支 它利用人类的视觉冗余将秘密信息嵌入到指定的载体之中 载体 图像 文本 音频 视频 票据和数字签名等 信息隐藏概念与分类 96 分类 隐写术 数字水印 信息分存 隐写 隐写分析 脆弱性水印 鲁棒性水印 密钥共享 图像分存 信息隐藏 信息隐藏概念与分类 97 Alice Bob Wendy 信息隐藏的 囚犯问题 模型 基本原理 信息隐藏概念与分类 98 2 6 2信息隐藏的特点 不破坏载体的正常使用由于不破坏载体的正常使用 就不会轻易引起别人的注意 能达到信息隐藏的效果 同时 这个特点也是衡量是否是信息隐藏的标准 载体具有某种冗余性通常好多对象都在某个方面满足一定条件的情况下 具有某些程度的冗余 如空间冗余 数据冗余等 寻找和利用这种冗余就成信息隐藏的一个主要工作 99 信息隐藏的特点 续 载体具有某种相对的稳定量这只是针对具有健壮性 Robustness 要求的信息隐藏应用 如数字水印等 寻找载体对某个或某些应用中的相对不变量 如果这种相对不变量在满足正常条件的应用时仍具有一定的冗余空间 那么这些冗余空间就成为隐藏信息的最佳场所 具有很强的针对性 任何信息隐藏方法都具有很多附加条件 都是在某种情况下 针对某类对象的一个应用 出于这个特点 各种检测和攻击技术才有了立足之地 例如StirMarK水印攻击软件 100 2 6 3信息隐藏的方法 信息隐藏的算法主要分为两类 1 空间域方法通过改变载体信息的空间域特性来隐藏信息 2 变换域方法通过改变数据 主要指图像 音频 视频等 变换域的一些系数来隐藏信息 101 信息隐藏的方法 1空间域算法 1 最低有效位 LSB 方法利用原数据的最低几位来隐藏信息 对于数字图像 就是通过修改表示数字图像颜色 或者颜色分量 的较低位平面 即通过调整数字图像中对感知不重要的像素低比特位来表达水印的信息 达到嵌入水印信息的目的 优点是算法简单 计算量小 计算速度通常比较快 而且提取信息时通常不需要原始图像 缺点是很脆弱 无法经受一些无损和有损的信息处理 102 信息隐藏的方法 2 文档结构微调方法由Brassil等人首先提出了三种在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产科医疗告知的法律要点与沟通技巧
- 创业策划书案例(18篇)
- 交叉设计在生物等效性试验中的质量控制样品应用
- 二线及以上耐药治疗的选择逻辑
- 初三化学实验教学计划
- 乙肝相关性肝硬化的抗病毒治疗
- 供应链视角的企业信息化应用模式研究
- 2026年中国激光设备行业发展展望及投资策略报告
- erp供应链采购管理论文
- 临床试验质量保证体系构建
- 苏菲新生儿呼吸机操作手册(中文)
- 公路工程投标施工组织设计方案
- 【MOOC】大学生心理健康-厦门大学 中国大学慕课MOOC答案
- 品管圈PDCA案例-中医医院减少住院患者艾灸烫伤率医院改善成果汇报
- 搭建医患之间的心灵之桥-特职教育(大兴安岭职业学院)知到智慧树答案
- 基于“双减”背景下的小学语文作业设计探究
- GB/T 32151.27-2024温室气体排放核算与报告要求第27部分:陆上交通运输企业
- 五笔字型速查表史上全面版本(编码和字根)
- 第八单元 语文园地八-人教部编版(含答案)
- 国开(河北)2024年秋《现代产权法律制度专题》形考作业1-4答案
- 口腔诊所服务标准操作流程手册
评论
0/150
提交评论