分组密码算法事实上则是在密钥的控制下,由某个置换完成针对明文分组的加密变换。为确保密码算法的安全强度,对其要求如下。
(1)分组长度足够大
在分组长度比较小的时候,分组密码和古典的代替密码有类似之处,它仍然留下了明文的明确信息。这种统计信息有机会让攻击者利用,攻击者可以有效地耗尽明文空间并获得密码转换本身。
(2)密钥量足够大
由密码密钥确定的密码更改只是密码的一小部分总替换,若此部分充分小,攻击者可成功穷举明文空间确定的全部置换。此时,攻击者便可解密密文,来获取有意义的明文。
(3)密码变换足够复杂
使攻击者除穷举法外,没有其他快速便捷的破译方式。
在实践中经常采取以下两种方法来达到上面的要求。
1)把大的明文分组分为一些小段,分别实现所有小段的加密置换,最终实施合并操作,实现使总的分组长度够大。这样做有助于实际分析与评测密码,来确保密码算法的强度。
2)采用乘积密码。乘积密码则为是通过某种方式持续实施两个及以上密码变换,例如,设存在两个子密码变换T1与T2,便先通过T1加密明文,然后再通过T2对得到的结果进行加密。若合适的话,乘积密码可有效地隐藏密码变换的不足,形成相对其中任一个密码变换强度还大的密码系统。