《电子商务安全(第2版)》:
2.数字证书
PKI签名的核心元素是由CA签发的数字证书,它提供了认证、数据完整性和数据保密性服务,主要是提供了不可抵赖性服务。它的做法就是利用证书公钥和与之对应的私钥进行加密/解密,并产生对数字电文的签名及验证。数字签名是利用公钥密码技术和其他密码算法生成一系列符号及代码组成电子密码进行签名,来代替书写签名和印章。这种电子式的签名还可进行技术验证,其验证的准确度是物理世界中对手工签名和印章的验证所无法比拟的。这种签名方法可在很大范围的可信PKI域中进行认证,或在多个可信的PKI域中进行交叉认证,它特别适用于互联网上的安全认证和传输。
3.公钥密码技术
常用的、成熟的公钥密码技术是RSA,后来又产生椭圆算法ECC,它们与传统的对称密钥算法有本质的区别。对称密钥算法具有一个密钥,加解密时用的是同一个密钥。而公钥算法利用的是非对称的密钥,将其中一个密钥采用私密的安全介质保密存储起来,不对任何外人泄露,简称为“私钥”;另一个密钥可以公开发表,用数字证书的方式发布在称为“网上黄页”的目录服务器上,用LDAP协议进行查询,也可在网上请对方发送信息时,主动将该公钥证书传送给对方,这个密钥称为“公钥”。
公私密钥对的用法是:当发送方向接收方发送文件时,发送方用接收方的公钥对原文进行加密,接收方收到发送方的密文后,用自己的私钥进行解密,其他人是无法解密的,因为他人不拥有接收方的私钥;而用私钥加密文件公钥解密则是用于签名,即发送方向接收方签发文件时,发送方用自己的私钥加密文件传送给接收方,接收方用发送方的公钥进行解密。
4.数字摘要
在实际应用中发出的文件签名并非是对原文本身进行加密,而是要对原文进行哈希运算,即对原文做数字摘要。该密码算法也称单向哈希运算,其运算结果称为哈希值,或称数字摘要,也有人将其称为“数字指纹”。哈希值有固定的长度,运算是不可逆的,不同的明文其哈希值是不同的,而同样的明文其哈希值是相同并且是唯一的,原文发生了任何改动,其哈希值就会变化。数字签名是用私钥对数字摘要进行加密,用公钥进行解密和验证。
一个哈希函数的好坏是由发生碰撞的概率决定的。如果攻击者能够轻易地构造出具有相同的哈希值的两个消息,那么这样的哈希函数是很危险的。一般来说,安全哈希标准的输出长度为160b,这样才能保证它足够安全。
3.1.4数字签名方案分类
广泛应用的数字签名方法主要有三种,即RSA签名、DSS签名和哈希签名。此外,也可以使用对称密码算法实现数字签名。这四种算法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的,用DES算法、RSA算法都可实现数字签名。但三种技术都有缺陷,或者没有成熟的标准。
1.RSA签名
用RSA或其他公开密钥密码算法的最大方便是没有密钥分配问题(网络越复杂、网络用户越多,其优点越明显)。因为公开密钥加密使用两个不同的密钥,其中有一个是公开的,另一个是保密的。公开密钥可以保存在系统目录、未加密的电子邮件信息、电话黄页(商业电话)或公告牌中,网上的任何用户都可获得公开密钥。而私有密钥是用户专用的,由用户本身持有,它可以对由公开密钥加密信息进行解密。
RSA签名技术实际上是通过一个哈希函数来实现的。数字签名的特点是代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。一个最简单的哈希函数是把文件的二进制码相累加,取最后的若干位。哈希函数对数据通信的双方都是公开的。
……
展开