917825-密码学-第四章 分组密码 4.1分组密码设计原则和设计方法
- 格式:ppt
- 大小:682.50 KB
- 文档页数:36
密码学基础知识(四)分组密码⾸先再说说密码体制那点事,密码体制按密钥分为两派,对称和公钥,不过也可以分为分组密码和流密码(序列密码)。
刚才看了⼀眼,发现忘把图⽚传上来了,下次有功夫的。
说句废话,分组密码主要采⽤混淆原则和扩散原则来抵抗攻击者对该密码体制的统计分析。
那分组密码是什么东西呢?通俗讲就是将明⽂分块,然后分块加密。
分组密码设计的准则:①分组长度分组长度越长意味着安全性越⾼,但是会影响加密解密的速度。
1977年之后,由于计算速度和分析技术的提⾼,建议使⽤分组长度128位。
②密钥长度密钥越长同样意味着安全性越⾼,但会影响加密和解密的速度。
现在⼀般认为64位的密钥是不安全的,通常使⽤的密钥长度为128位。
③轮函数F轮函数F通常之迭代分组密码中单轮加密解密算法的实现部分,是分组密码结构的核⼼,由其实现数据的混乱和扩散。
在设计中,轮函数要遵循雪崩效应准则和位独⽴准则。
评价轮函数实际质量的指标有安全性,速度和灵活性。
④迭代的轮数迭代分组密码的本质是单轮不能提供⾜够的安全性⽽多伦迭代增强其安全性。
⼀般⽽⾔,迭代轮数越多,密码分析越困难,但过多的迭代会使输⼊和输出的关系复杂化,影响加解密速度,⽽安全性增强不明显,⼀般⽽⾔,决定迭代轮数的准则是:是密码分析的难度⼤于简单穷举攻击的难度。
⑤⼦密钥的⽣成⽅法理论设计⽬标是⼦密钥的统计独⽴性和密钥更换的有效性。
包括:实现简单,便于硬件实现,⼦密钥的⽣成不影响迭代轮函数的执⾏;不存在简单关系;种⼦密钥的所有⽐特对每个⼦密钥⽐特影响⼤致相同;没有弱密钥或弱密钥容易避开;保证密钥和密⽂符合位独⽴准则和雪崩效应。
分组密码的设计应满⾜的要求:①分组要⾜够长。
假设n为分组长度,则要使分组代换字母表中的元素个数2n⾜够⼤,以防⽌明⽂穷举攻击。
②密钥长度要⾜够长,以防⽌密钥穷举攻击。
但密钥⼜不能过长,这不利于密钥的管理且影响加解密的速度。
③由密钥确定的置换算法要⾜够复杂,⾜以抵抗各种已知的攻击,如查分攻击和线性攻击等,使攻击者除了利⽤穷举攻击外,⽆其他更好的攻击⽅法。
分组密码的设计就是找到⼀种算法,能在密钥的控控制下从⼀个⾜够⼤且⾜够好的置换⼦集中简单⽽迅速的选出⼀个置换,⽤来对当前输⼊的明⽂进⾏加密交换。
⼀般地,分组密码的设计准则包括安全性准则和实现性准则两种。
前者主要研究如何设计安全算法,分组长度和密钥长度,后者主要讨论如何提⾼算法的执⾏速度。
1 安全性原则 关于实⽤密码的两个⼀般的设计原则是Shannon提出混乱原则和扩散原则。
1.混乱原则:⼈们所设计的密码应使得密钥和明⽂以及密⽂之间的信赖关系相当复杂以⾄于这种信赖性对密码分析者来说是⽆法利⽤。
2.扩散原则:⼈们所设计密码应使得密钥的每⼀位数字影响密⽂的多位数字以防⽌对密钥进⾏逐段破译,⽽且明⽂的每⼀位数字也影响密⽂的多位数字以便隐藏明⽂数字的统计性性。
影响现代分组密码安全性的因素很多,主要取决于密码算法、分组长度和密钥长度,相应的安全性设计准则也包括三类: 2.密码算法的设计准则 1) 算法可以公开:密码体制的安全性应当仅依赖于对密钥的保密,⽽不应基于对算法的保密,这既是数据加密算法标准化所必需要求的,同时也是络保密通信赖以⽣存的基础。
2) 混乱原则:密码算法应当保证密钥,明⽂和密⽂的依赖关系相当复杂,以⾄于这种依赖性对密码分析者来说使⽆法利⽤的。
3) 扩散原则:⼈们所设计的密码应使得密钥的每⼀位数字影响密⽂的许多位数字,以便隐藏明⽂数字的统计特性。
4) 能抵抗差分分析和线性分析:为使密码算法能抵抗差分分析,通常选取具有“本原转移概率矩阵”的markov 型密码,通过对⼀个“弱”密钥函数进⾏多次迭代,⽽得到⼀个“强密码”,为使密码算法抵抗线性分析,通常要求算法中包含⾼度⾮线性密码函数。
5) 没有弱密钥:当弱密钥或半弱密钥的个数较少时,它们对体制本⾝的安全性影响不在,在算法设计中稍作处理就可避免,⽽且随即选取⼀个密钥是弱密钥的概率随密钥空间的增⼤⽽趋于0。
3.密钥长度的设计准则 为使密码算法能抵抗对密钥强⼒攻击,必须保证密钥长度尽可能⼤,⽐如, 在近⼏年来新出现的各种算法,密钥长度都已经要求⾄少128bits。