loading ...
loading...

2008-04-19 | 数字证书

分享
标签: 数字证书 

数字证书

   

    你一定有过与其他人通过电子文件的方式交换信息的经历, 但是你是否考虑过这样一个问题: 你如何使你们的通信内容具有法律上的认可能力? 换言之, 你知道如何在交换电子信息时, 也能像交接纸介质文件一样, 加盖上一个 “大红章” 呢?

    首先, 让我们来讨论一下现实中 “大红章” 文件交换过程中, 所蕴含的物证意义. 我们来假设两个事务的参与方: 小明和小红. 在这个事务中, 小明要向小红提交一份正式的商业合同, 用以表示小明已经同意该合同中所列出的条款, 小红也同时要向小明明确表示:自己已经 “知晓” 小明已经同意该合同上的内容. 他们是怎么做的呢?

    1. 首先, 小明在合同上加盖红章. 然后把合同交给小红. 合同文件由小红保存.

    2. 小红收到合同之后, 回复合同已经收讫的收条, 收条上也有小红自己的印章. 此收条由小明收藏.

    在这个过程中, 如果红章不可伪造, 那么则确保了以下事实:

    ? 小明向小红证明, 此合同是由小明本人发出的(因为小明的印章在合同上面);

    ? 小明向小红明确表示了自己的意图, 并不可撤消(因为小红保存了合同文本);

    ? 小红向小明明确表明, 自己已经收到了小明的合同(因为小红的印章在收条上面);

    ? 小红不能否认自己已经收到小明的合同(因为收条由小明保存).

    ? 小红不能修改小明所承认的合同(因为小红无法复制小明的印章).

    

    那么, 在没有纸张实物存在的电子化信息交流中, 如何能达到相同的物证效果? 这时候, 就需要用一种 “电子印章” 来做到这些了.

    电子印章是什么? 是一个大红印章的图片文件么? 如果说在现实中伪造一个图章还有一定难度的话, 在电脑里复制一个图片显然就真是容易到了极点. 如果小红修改了合同内容, 并把原合同中的印章图片复制到伪造的合同中, 小明就无法证明此合同不是自己当初发出的原本.

    因此, 我们不能通过复制一个图章的图片作为文档有效性的证明, 而图章电子图片也因而没有任何的法律效力. 你现在应该已经认识到, 电子图章绝不会是一个图章图片文件那么简单了吧!

    技术虽然复杂, 但是原理却非常简单, 只要有一点点逻辑知识, 任何人都能轻易明白被称为 “电子印章” 的数字证书技术的原理, 了解其原理对于你正确运用这种技术有关键作用. 这是信息时代里即将被广泛使用的技术之一, 你一定要知道这些! 请随我来, 这会是一个非常有趣的脑筋体操.

    

    计算机中的加密算法有两大类,我们经常使用的那种,在加解密时都使用同一个密钥,这就叫“对称密钥”算法。另一类加密算法叫“不对称算法”,这种加密机制中,存在两个互相有关的密钥,用其中一个加密,就必须用另一个解密,反之亦然。这就是它被称为 “不对称密钥算法”的原因。

    不对称密钥算法的这种有趣的性质是电子密钥的原理基础。在创造了一对密钥之后,使用者向其他人公开其中一个,并保证此公钥的有效性,而将另一个密钥秘密保存,公开的称为“公钥”,秘密保存就是 “私钥”了。

    如果小明想证实某个文件是从他本人发出来的,只需用他的私钥加密文件,然后把加密后的文件和文件的原件同时发给小红。小红可以用小明的公钥解密,并把解密后的文件与原文对比,如果一致的话,就可如下推论两个事实:

    ? 因为:此密文可以用小明的公钥解密,所以:此密文可确认是用小明的私钥加密生成的。

    ? 因为:只有小明才有小明的私钥,所以:可证明此文件是小明本人发出的。

    ? 因为:解密后的明文文件与同时发来的原件相同,因此:可证明文件在传输中没有被修改过。被私钥加密后的密文与原文放在一起,就构成了能证明原文有效性、真实性的“电子证书”。

    

    还有另一种用法: 小明想发一份文件给小红,但是又不想让其他人看到内容,就可以用小红的公钥来加密文件,然后把密文发给小红,这个密文除了小红自己的私钥之外,没有其他密钥可以解开。这就保证了信息的只能被小红看到。

    这两种用法可以同时使用:小明把自己的原文以及证书一起用小红的公钥加密,发给小红,就保证了信息的真实性和安全性。

    

    那么,让我们看看通过“公私钥”方式,如何做到与现实世界中的“大红章”相同的证明效力吧!还是之前小明和小红的合同传递例子:

    1. 小明和小红都向外界发布自己的公钥样本,声明其合法性。

    2. 小明对合同文本用私钥加密,把加密之后的密文结果和明文一起传递给小红。加密之后的密文结果称为是原文的“签名”。

    3. 小红收到小明的密文和明文之后,用小明的公钥解密密文,得到解密明文,并用解密明文与小明的原始明文对比,如果一致,表示合同合法。

    4. 小红用自己的私钥加密回执,得到回执密文。并与回执明文一起传递给小明。

    5. 小明用小红的公钥解密回执,得到回执的解密明文,并与回执原明文对比,如果一致,表示回执合法。

    在这个过程中,通过“公私钥”机制保证了以下事实成立:

    ? 小明向小红证明,该合同是由小明本人发出的。因为除了小明,没有其他人可以生成能用小明公钥解解密的密文。

    ? 小明不能对合同做出单方面的修改,以及否认。因为小红可以出示小明发出的原始信息,其中包括了小明的明文的密文。

    ? 小红不能否认自己已经收到小明的合同。小明保存有用小红私钥签名的回执。

    ? 小红不能对合同做出单方面的修改,因为修改之后,会由于没有小明的私钥而无法重新生成小明的签名,对于没有自己有效签名的合同,小明有理由不承认有效。

    

    需要特别提到的一点,是对于密钥颁发的管理。如果只是两个人的事,那么大可以自己生成密钥,互相交换公钥后永久性使用。但是在互联网时代里,人与人之间大都是“零接触”的,只有电子方式的交流,在第一次接触时,如何确认对方的公钥是真实有效的将是一个问题。

    为了解决这个问题,互联中设立了一种叫CA的证书管理机构,专门负责为可信的企业或是个人颁发电子证书,为了保证它运作的公正,这些机构是非赢利性质的。

    如果小明向CA申请一个电子证书,CA会在审核了小明身份之后,为小明生成一个包括了公私钥的电子证书,同时用CA自己的私钥把小明的公钥签名。未来当小明需要把自己的签名文件发给其他人时,同时也将CA对这个签名的签名也一起发送。通过这样的方式,向接收者声明“小明此证书的真实性由CA组织证明”。

    进一步地,如果小明也有证书颁发的资质,他就可以用自己的签名为其他人颁发证书。这样就形成了一个“证明链”。签名的接收者可以从这个链行上溯上去,找到自己信任或是不信任的一环,或是顶级CA机构本身。对顶级CA机构的信任,是内置于支持证书系统的操作系统内部的。

    (提示:你现在就可以查看一下自己的信任列表:在IE里,打开“工具”菜单,选择“选项”,在“内容”标签里,点击“证书”,即可以查看自己电脑上已经记录过的证书,以及信任情况。)

    

    由于电子信息总是很容易复制,因此大家免不了考虑电子证书的安全性。实际上,电子签名要比现实的印章更能保证信息的真实有较。想伪造印章的人很容易就可以达到目的(如果不必长期使用的话,据说红萝卜是很好的印章材料),而从一个公钥求得对应的私钥是却极端困难。

    密钥对的生成的原理基于大合数的质因数分解,与之有关难题已经困挠了人类几百年没有进展,其中最著名的哥德巴赫猜想,直到现在都无法证明或证伪。目前唯一有效的破解方法是用电脑逐个地把密钥值域里的所有值都试验一遍,平均情况下,你会在试到值域的一半时得到正确密钥。那么这个成本有多高呢?让我们来计算一下。

    目前最常用的RSA公私钥加密算法中,常用的密钥长度是512比特,也就是说,密钥会是从0到2的512次方这些整数里的其中一个。以平均概率来说,会在尝试到2的511次时找到正确密钥。

    2的511次方是多大的一个数?大约是“6.7e+152”,这个数字是“67”后面加上152个“0”。假设我们有1亿亿台超级电脑,每秒种每台都可以试算1亿亿个密钥(顺便说一句,这样的电脑可能会在公元3008年发明),那么破解掉这个密钥需要的时间是:

    (6.7e+153)/(1.0e+32) = (6.7e+122)秒。约合(2.0e+115)年。

    这到底是多少年?如果非要念出这个数字的话,那是“2千亿亿亿亿亿亿亿亿亿亿亿亿亿亿”年。在这段时间里,我们的宇宙从诞生到灭亡可以最少来上1亿亿亿亿亿亿亿亿亿亿亿亿亿遍! (转载)
分享 分享 |  评论 (0) |  阅读 (?)  |  固定链接 |  发表于 07:34
搜狐博客温馨提示:搜狐博客官方不会要求参加活动的各位博友缴纳任何的手续费用。请勿轻信留言、评论中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请 点击查看详情
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
 
  *中国人爱国心,搜狗输入法爱国主题皮肤下载>>
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复