从数学角度而言,一个密码系统即为一族映射,这族映射是通过密码方案来定的,实际用哪个映射是通过密钥定的。密码体制的安全性存在以下2方面的因素。
1.所使用的密码算法的保密强度
密码算法的保密强度由密码的设计技术、破译能力等决定。
2.密码算法之外的不安全因素
尽管密码算法能做到实际不能破译,攻击者也有可能借助其他非技术手段攻克密码系统。这些不安全因素来源与管理或使用中的漏洞。
因此,密码算法的保密强度并不是与密码系统的安全性等同。密码系统一定要同时完善技术与管理的要求,才能确保整个密码系统的安全。对于一个密码体制而言,若攻击者在得到密文的情况下对确定明文没有一点帮助。实际使用中,一个密码体制的安全性应该不依靠于对密码算法的保密,而只依靠于对密钥的保密。
Kerckhoffs原则指的是假如密码攻击者了解加密数据利用的算法,数据的安全性应当由密钥的选择来决定。这说的不是一定非得要公开加密算法,而是由于加密算法在其出现时已经是公开的。