比如说软件安装,为了安全,一般的要求安装的软件都有开发商签名,但是世界上的软件开发商数不胜数,而且几乎天天都有的新成立的,如果每一个人的计算机都维护全球的软件提供商的数字签名公钥是不合实际的。应该要有一些公众信任的公证机构来维护这些公钥数据。因此用户的计算机只需保留这些公正机构的公钥就可以放心安装很多软件了。
当你安装软件时,软件可能附带有一个数字签名(或hash数字等)和证书,该证书假设由A机构出具,表示A对于签名或hash数字认证(即不是伪造的)。当然,该证书本身就是一个数字签名,但是你的计算机保留了该公正机构A的公钥,你当然可以验证证书是否伪造的,如果证书是真的,那么你也可以假设签名是真的,然后你可以(对软件)验证签名了,如果签名验证通过, 你也可以比较放心地安装和使用软件了。 当然,现实世界的证书和实际应用要复杂的多,有级的(根的)公证机构开具的证书,通常用于对其他较低级的公正机构进行公正,而那些相对低级的公证机构又对众多的签名进行公正。还有用于延续证书有效期的证书... 至于采用什么加密算法,一般由签名文件或证书文件本身自描述的(自己说明自己采用什么算法、密钥长度等信息,当然这些算法应该是符合标准的)。