- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 证明:这是上述3个引理的直接推论。 综上所述,Rijndael密码的解密算法与加密算法的计算网络相同,只是将各计算部件换为对应的逆部件。 3.5 加解密的相近程度及解密算法 * 1. (1) 设M′是M的逐比特取补,证明在DES中,如果对明文分组和加密密钥都逐比特取补,那么得到的密文也是原密文的逐比特取补,即:如果Y=DESK(X),那么Y′=DESK′(X′) 提示:对任意两个长度相等的比特串A和B,证明(AB)′=A′B。 对DES进行穷搜索攻击时,需要在由256个密钥构成的密钥空间进行。能否根据(1)的结论减小进行穷搜索攻击时所用的密钥空间? 4. 习题 * 2. 证明DES的解密变换是加密变换的逆。 3. 在DES的ECB模式中,如果在密文分组中有一个错误,解密后仅相应的明文分组受到影响。然而在CBC模式中,将有错误传播。例如在图3.11中C1中的一个错误明显地将影响P1和P2的结果。 (1) P2后的分组是否受到影响? (2) 设加密前的明文分组P1中有1比特的错误,问这一错误将在多少个密文分组中传播?对接收者产生什么影响? 4. 习题 * 4. 在8比特CFB模式中,如果在密文字符中出现1比特的错误,问该错误能传播多远? 5. 在实现IDEA时,最困难的部分是模216+1乘法运算。以下关系给出了实现模乘法的一种有效方法,其中a和b是两个n比特的非0整数: 注意: (ab mod 2n)相应于ab的n个最低有效位,(ab div 2n)是ab右移n位。 4. 习题 * (1) 证明存在惟一的非负整数q和r使得ab=q(2n+1)+r。 (2) 求q和r的上下界。 (3) 证明q+r2n+1。 (4) 求(ab div 2n)关于q的表达式。 (5) 求(ab mod 2n)关于q和r的表达式。 (6) 用(4)和(5)的结果求r的表达式,说明r的含义。 4. 习题 * 6. (1) 在IDEA的模乘运算中,为什么将模数取为216+1而不是216? (2) 在IDEA的模加运算中,为什么将模数取为216而不是216+1? 4. 习题 * THE END! 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * * * * * * * * * * * * * * * * * * * * * * * * c(x)是与x4+1互素的,因此是模x4+1可逆的。列混合运算也可写为矩阵乘法。设b(x)= c(x)a(x),则 3.2 轮函数 * 这个运算需要做GF(28)上的乘法,但由于所乘的因子是3个固定的元素02、03、01,所以这些乘法运算仍然是比较简单的。 对状态State的所有列所做的列混合运算记为MixColumn(State) 图3.21是列混合运算示意图。 3.2 轮函数 * 图3.21 列混合运算示意图 3.2 轮函数 * 列混合运算 * 列混合运算 * 列混合运算 * 列混合运算的逆运算是类似的,即每列都用一个特定的多项式d(x)相乘。 d(x)满足 (‘03’x3+‘01’x2+‘01’x+‘02’)d(x)=‘01’ 由此可得 d(x)=‘0B’x3+‘0D’x2+‘09’x+‘0E’ 3.2 轮函数 * (4) 密钥加(AddRoundKey) 密钥加是将轮密钥简单地与状态进行逐比特异或。轮密钥由种子密钥通过密钥编排算法得到,轮密钥长度等于分组长度Nb。 状态State与轮密钥RoundKey的密钥加运算表示为 AddRoundKey (State, RoundKey) 图3.22是密钥加运算示意图。 3.2 轮函数 * 图3.22 密钥加运算示意图 3.2 轮函数 * 密钥加运算的逆运算是其自身。 综上所述,组成Rijndael轮函数的计算部件简捷快速,功能互补。轮函数的伪C代码如下: Round (State, RoundKey) { ByteSub (State); ShiftRow (St
文档评论(0)