数字证书是网络通讯中标志通讯各方身份信息的一系列数据,它提供了在互联网上验证通信各方身份的方法,它是权威机构-CA认证机构,又称为证书授权(Certificate Authority)中心发行。
数字证书是经证书管理中心数字签名的包含公开密钥、拥有者信息以及公开密钥的文件。证书的格式遵循ITUTX.509国际标准。X.509数字证书通常包含以下内容:
1.证书的版本信息。
2.证书的序列号,每个证书都有唯一的证书序列号。
3.证书所使用的签名算法。
4.证书的发行机构名称,命名规则一般采用X.500格式。
5.证书的有效期,通用的证书一般采用UTC时间格式,它的计时范围为1950-2049。
6.证书所有人的名称,命名规则一般采用X.500格式。
7.证书所有人的公开密钥。
8.证书发行者对证书的签名。
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个客户可以设定特定的仅为本人所知的私有密钥(私钥),用它进行数据解密和签名;同时设定一把公共密钥(公钥)并由本人公开,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。
数字加密是一个不可逆过程,即只有使用私有密钥才能解密。在公开密钥密码体制中,常用的是RSA体制。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),在计算上想要推导出解密密钥(私密密钥)是不可能的。按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。
公开密钥体系解决了密钥发布的管理问题,客户可以公开公开密钥,而保留私有密钥。使用者可以使用接收方的公开密钥对发送的信息进行加密,安全地传送到对方,然后由接收方使用自己的私有密钥进行解密。
客户可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。
(2)保证信息自签发后到收到为止未曾做过任何修改,签发的文件是真实文件。
数字签名具体做法如下:
1)将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证,只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。
2)将该报文摘要值发送者的私人密钥加密,然后连同原报文一起发送给接收者,产生的报文称数字签名。
3)接收方收到数字签名后,用同样的HASH算法对报文计算摘要值,然后与用发送者公开密钥进行解密解开的报文摘要值相比较,如果相等则说明报文确实来自所谓的发送者。
如果所有用户都由同一CA为其签署证书,则这一CA就必须取得所有用户的信任。用户证书除了能放在目录中供他人访问外,还可以由用户直接把证书发给其他用户。用户B得到用户A的证书后,可相信用户A的公钥加密的消息不会被他人获悉,还相信用户A的私钥签署的消息是不可全国伪造的。
非对称加密最初可能是为了解决密匙保管与交换难题. 非对称加密过程中用一个密匙加密只能用另一个密匙解密. 由此解决了密匙交换难题: 公匙随意发放; 保管也大为简化: 保护好私匙就可以了. PKI 之所以成为或 "称为" 体系, 是包括了实施中所必需的公匙管理: 认证, 发放, 收回, 查询等.
现在看加密过程. 以加密邮件为例. Alice 发加密邮件给 Bob.
1a. Alice 从 Bob那里或从PKI服务器得到 Bob的公匙
2a. Alice 用 Bob的公匙加密邮件, 发送给 Bob
3a. Bob 受到加密邮件, 用自己的私匙解密.
其他人如果截获加密邮件, 由于没有 Bob的私匙, 无法解密邮件.
签名过程则是非对称加密的另一用法
1b. Alice 在用 Bob的公匙加密邮件前先对邮件产生摘要Ha.
2b. Alice 用自己的私匙加密邮件摘要, 连同加密邮件(2a)发送给 Bob
3b. Bob 将加密邮件摘要用Alice的公匙解密得到解密的邮件摘要Ha. (公匙可以从 Aliceb那里或从PKI服务器得到), 并用自己的私匙解密邮件(3a).
4b. Bob 对解密的邮件产生摘要Hb, 与(3b)解密的邮件摘要Ha比较.
如果无误, 则可确认: 1) 该邮件由Alice 发出, 因为只有Alice 有自己的私匙; 2)邮件在传递过程中未遭篡改, 因为邮件摘要比较结果一致.
另外, 因为只有Alice 有自己的私匙, Alice 无法否认该邮件由自己发出.
如果 PKI Service Provider 用 RootCA 对 Alice 的公匙做签名操作, 由于RootCA的公匙可以公开获得, 对 Alice 的公匙进行核实(4b)即可确认该公匙为 Alice 所有. 在解密的邮件中看到对方的证书信息是因为对方对邮件不但加密并且签名, 对方的公匙已经含有有关信息. 既是签名, 当然要你看到才对.
总结:
用对方的公匙加密, 用自己的私匙解密
用自己的私匙签名, 用对方的公匙核实
转自:http://wpmsn.spaces.live.com/blog/cns!C0776A11EB428FDA!333.entry?wa=wsignin1.0&sa=683191712