由于公钥密码体制中加密操作和解密操作的可分离性,产生了一种新的密码体制——数字签名,它以电子方式实现传统手写签名的功能,为消息提供不可否认性的安全服务。签名者(signer)利用自己的私钥,对消息进行变换,该操作称为签名算法(Signa‘ture Algorithm),所得的结果称为签名(signature)。实际通信中传送的是消息及其签名,验证者(Verifier)利用签名方的公钥和对应的变换,验证签名的合法性,该操作称为验证算法(Verification.Algorithm)。由于签名仅能由拥有对应私钥的签名者产生,所以签名者不能否认曾发送带有签名的消息,即提供了不可否认的安全服务。当然,上述结论是以签名算法安全为前提的,即不知道签名者的私钥则难于伪造利用签名者公钥可通过验证的签名。
加密体制和签名体制是公钥密码的主要内容,但是随着网络的日益普及和电子商务、电子政务的蓬勃发展,又产生了形形色色的密码应用环境,提出了多种新的密码需求,随之涌现出众多实现其他密码功能的公钥密码体制。今天的公钥密码不再仅仅包含加密体制和签名体制,可以认为具有多个密钥、密钥间不能完全相互导出、至少一个密钥是公开的密码系统均是公钥密码。其中密钥间不能完全相互导出是指至少存在一个密钥,利用系统的其他密钥无法(或者不存在多项式时间的算法)求得该密钥。
消息传送过程中,非授权者可以通过各种方法,如搭线窃听、电磁窃听、声音窃听等来窃取消息,本书称这些非授权者为截收者(Eavesdropper)或攻击者。截收者通过分析窃取获得的消息,采取可行方法破坏密码系统所提供的安全服务,如获得密文对应的明文以破坏机密性,伪造签名以破坏不可否认l生等,这个过程称为密码分析(Cryp tanalysis)。早期密码的安全性大都基于对算法的保密,但是算法一旦泄露,此前保护的消息将失去机密性。后来,在算法中引入了特殊变量——密钥,密钥的随机性增加了算法泄露后获得保密信息的困难程度。从提高密码安全性和增强密码实用性的角度出发,Kerckhoff提出了Kerckhoff准则:算法细节必须是公开的,密码安全性应仅基于使用密钥的保密。因为如果在知道算法的条件下仍不能破坏算法所提供的安全服务,则在不知道算法的条件下更难,所以上述准则实际上增强了对密码的安全要求。
展开