破译密码体制的一般思路
- 经典密码分析
古典密码分析可以理解为从密文y中得到明文x,或者是密钥k。密码分析可以分为两类:一类是发现加密方法内部结构的分析攻击,一类是将加密算法看作是黑盒,试图测试所有可能密钥进行破解蛮力攻击。 - 实施攻击
可以通过旁道分析获得密钥,例如:测试处理私钥的处理器的功耗、使用信号处理技术从功耗轨迹中恢复出密钥、电磁辐射或算法运行等等。但是,实施攻击最大多数情况是针对攻击者可以物理访问的密码体制,所以绝大多数针对远程系统的基于Internet的攻击通常不会考虑这种方法。 - 社会工程攻击
这个就好理解了,通过行贿、勒索、跟踪或者侦查来获得密钥,或者诈骗也能得到。
也可以通过软件系统中的缓冲区溢出攻击、 恶意代码等方式获得密钥。
攻击者总是在寻找我们密码体制中最脆弱的环节,所以,我们必须拥有足够强壮的算法,还有要保证切断社会工程攻击和实施攻击的可能性。
可靠的密码体制必须遵循Auguste Kerckhoffs提出的Kerckhoffs原理:
即使除密钥外的整个系统的一切都是公开的,这个密码体制也必须是安全的。尤其是即使攻击者知道系统的加密算法和解密算法,此系统也必须是安全的。
合适的密钥长度
我们要知道:
只有在蛮力攻击是已知最好的攻击方法时,才会考虑对称加密算法中的密钥长度问题。只要有一个分析攻击可以成功,那么拥有再大的密钥空间都无济于事。
对称算法和非对称算法所要求的密钥长度完全不同。比如,长度为80位的对称密钥所提供的安全性和1024位的RSA密钥安全性相当。
所以对于安全对称密码来说,大的密钥空间只是必要但不充分条件。并且,我们都知道摩尔定律:在成本保持不变时,计算能力每隔18个月变回增加一倍。在密码学中,它可以理解为,破译所需的成本及时间都会呈指数减少。