在为某一应用选择密码体制时,我们需要从功能性、安全性和性能三方面考量。

  1. 功能性:该密码体制是否满足所需功能。
  2. 安全性: 该密码体制是否安全。
  3. 性能:对于所需要的安全性,该密码体制是否满足性能要求。

  此外,影响抉择的其它因素还有,是否由标准化组织制定了实用的标准?是否有商业化的密码产品?专利保护?现有开发的应用程度?等等。

对称密码体制

  对称密码体制的优点是效率高,但是也有一些很严重的缺点。

  密钥分发问题。对称密码体制的密钥分发信道必须是保密且保真的。在某些情况下,通过一个物理安全的信道,如利用一个可靠的信使作为安全信道,很容易实现密钥分发。另一种方法是利用在线的可信第三方。开始时,它为网络上所有实体建立一个保密的密钥(应用在针对客户机/服务器的Kerberos网络认证协议中)。这种方案适用于具有权威第三方机构的应用场景中,而不适合类似于邮件系统等不具有权威的第三方机构中。

  密钥管理问题。即在有N个实体的网络中,每个实体都需要保存其它N-1个实体的密钥。利用在线的可信第三方可以缓解这个问题。在需要密钥时由这一在线可行第三方分发密钥,因此可以减少实体存储大量密钥的压力。然而,这种情况对某些情况依然不适用。此外,由于两个(或多个实体)共享密钥,因此对称密码体制无法用于提供不可否认服务的数字签名,因为无法区分共享密钥的不同实体的行为。

公钥密码体制

  与对称密码体制不同,公钥密码体制的分发/交换只要求信道保真,不要求信道保密。

  公钥密码算法可以解决对称密码算法面临的问题:密钥分发,密钥管理和不可否认性。但是公钥密码的运算通常要比对称密码算法慢很多,所以通常混合使用公钥密码算法和对称密码算法,将对称密码算法的高效性和公钥密码算法的功能性结合起来。