密码学(6)

74 阅读5分钟

DES

加密流程图

1.png 2.png 初始置换 3.png 每轮变换的详细过程 4.png 扩展置换E-盒-32位扩展到48位 5.png 代替函数 6.png S盒定义 7.png 1.每一个S盒都接受6个比特作为输入并产生4个比特作为输出。

2.输入的第一和最后一个比特构成一个2位二进制数,用来选择Si表中的四行所定义的四种替代的一种,中间的4个比特则选出一列。 8.png

P置换(起到很好扩散的效果)

9.png

密钥的产生

1.png

置换密表1是将64比特转化为56比特密钥。

置换密表2是将56比特转化位48比特密钥。

左移调度表是规定了在每一轮里密钥要转动的比特数。

DES解密

Feistel密码的解密算法与加密算法相同,只是子密钥的使用次序相反。

DES的雪崩效应

雪崩效应:明文或密钥的一点小的变动都会引起密文的较大变化,P置换的目的是提供雪崩效应。

DES的强度

56位密钥的使用

关于DES算法的一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有2的56次方个。

DES算法的性质

1.密码分析者有没有利用DES算法本身的特征来攻击它的可能性。

2.DES的核心式S盒,除此之外的计算是属线性的。S盒作为改密码的非线性组件相对安全性至关重要。

3.1976年美国NSA提出了几条S盒的设计准则,但盒子的设计标准(其实也就是整个算法的设计标准)并未公开,人们怀疑这些盒子的设计可能隐藏着一种可以使得了解S盒弱点的敌对方成功进行密码分析的隐患。这种可能性使人心神不安,而且这么多年以来的确有不少S盒的规律性以及未曾料到的行为被发现。

4.尽管如此,至今还没有人成功地发现S盒想象中地致命缺陷(至少没有人公开承认这样一个发现)。

DES的争论

DES设计标准

NSA告诫DES的设计者,代替和置换等的设计标准是“敏感”的,并要求IBM公司不要公布这些信息和数据。

迭代次数

在8轮迭代之后,密文基本上就是每一明文位和密钥位的随机函数,为什么算法不在8轮之后停止?

抗差分分析

差分分析表明任何不少于16次迭代的DES算法都可以用穷举法更有效的方法破译,而DES恰巧为16次迭代,这是偶然的巧合吗?差分分析方法是以色列学者E.Biham和A.Shamir在1990年发明的,但据称IBM在1974年就掌握了这种差分分析法。

其他安全强度

加密单位仅有64位二进制,这对于数据传输来说太小,因为每个区组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。

差分密码分析法:2的47次方次尝试。

线性密码分析法:2的43次方次尝试。

设计准则

S盒的设计准则度

1.S盒首次出现在Lucifer算法中,因DES的使用而流行。

2.S盒是许多密码算法的唯一非线性部件,因此,它的密码强度决定了整个算法的安全强度。

3.提供了密码算法必须的混淆作用。

4.如何全面准确地度量S盒地密码强度盒设计有效地S盒是分组密码设计和分析中地难题。

5.非线性度、差分均匀性、严格雪崩准则、没有陷门。

P置换的设计准则

P置换的目的是提供雪崩效应(明文或密钥的一点小的变动都引起密文的较大变化)。

轮函数的设计准则

安全性、速度、灵活性:能在多平台实现

密钥扩展算法的设计

1.设计目标:子密钥的统计独立性和灵敏性。

2.实现简单

3.速度快

4.不存在简单关系:给定两个有某种关系的种子密钥,能预测它们轮子密钥之间的关系。

5.种子密钥的所有比特对每个子密钥比特影响大致相同。

6.从一些子密钥比特获得其他的子密钥比特在计算机上是最难的。

7.没有弱密钥。

实现的设计原则

1.软件实现的要求:使用子块和简单的运算,密码运算在子块上运行,要求子块的长度能自然地适应软件编程,如8、16、32比特等。应尽量避免按比特置换,在子块上所运行地密码运算尽量采用易于软件实现地运算。最好是用处理器地基本运算,如加法、乘法、移位等。

2**.硬件实现的要求**:加密和解密的相似性,即加密和解密过程的不同应仅仅在密钥使用方式上,以便采用相同的器件来实现加密和解密,以节省费用和体积。尽量采用标准的组件结构,以便能适应于在超大规模集成电路中实现。

小结

1.分组密码是一种加密解密算法,将输入明文分组当做一个整体处理,输出一个等长的密文分组。

2.许多分组密码都采用Feistel结构,这样的结构由许多相同的轮函数组成。每轮里对输入数据的一半进行代换,接着用一个置换来交换数据的两个部分,扩展初始的密钥使得每一轮使用不同的子密钥。

3.DES是应用最为广泛的分组密码,它扩展了经典的Feistel结构。DES的分组和密钥分别是64位和56位。

4.差分分析法和线性分析法是两种重要的密码分析方法。DES对这两种攻击有一定的免疫性。