4.密码算法的分类
1)受限制的算法与基于密钥的算法
1883年科克霍夫( Kerckhoff)在其名著《军事密码学》中建立了下述原则:密码系统中的加/解密算法即使为密码分析员所知,也应该无助于用来推导出明文或密钥,这一原则已被后人广泛接受,汉口科克霍夫原则,并成为密码系统设计的重要原则之一.换言之,科克霍夫假设是指在评定一个密码体制的安全性时,假定攻击方知道所有目前已使用的密码学方法,系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。
如果算法的保密性是基于保持加/解密算法的秘密,这种算法称为受限制的算法;而如果算法可以公开,即算法的安全性不是基于算法的保密,而是基于密钥的安全性,也即基于科克霍夫原则,则这种算法称为基于密钥的算法。现代密码学的一个显著特点是将算法的安全性基于密钥进行设计,而且其算法细节可以公开。这种算法可以接受公众的分析和破解企图。