AES block cipher
For AES, key sizes: 128,192,256 bits; Block size: 128 bits; AES网络主要分为轮换(substitution)和排序(permutation)两种方式。并且实现的过程是可逆的(为了能够解密)。相对于DES每一轮中有一半的数据是不会被改变的,AES中每一轮中每一位的数据都会发生变化。
AES流程图
系统架构
AES系统框图
其中,在ByteSub部分,采用的是查找表的方式,目的是为了减少加密过程中的复杂计算时间。这实际上也是一个平衡的过程。如果我们有足够大的空间,我们就可以对这三轮计算都用查找表(需要很多空间),但是速度会很快。计算平衡的细节如下表。
Code Size/Performance trade-off
在这里Dan给了一些具体应用中的例子:
- 在javascript中使用AES. 计算机往往会计算好查找表,然后在用这个查找表对数据进行加密;
- 在Inter和AMD的硬件中,AES也广泛应用着;
现在而言,并没有很多有效的攻击手段;
Block Ciphers from PRGs
这一章节主要的内容是说明,我们是可以通过扩展的方式从一个安全的PRG,构建一个安全的PRF. 但是因为构建相对复杂,在实际的应用中,肯定没有启发式的AES来的效率高。
image
同样的,通过把 GGM PRF插入到 Luby-Rackoff theorem中,我们也可以根据PRG构建安全的PRP.
Dan说,任何安全的PRP也都是一个安全的PRF,只要足够大。理论证明如下图:
PRF Switching Lemma
最后,他安利我们说,请不要怀疑AES和3DES的内部安全性,放心大胆的用吧...