2007年8月17日星期五

文件加密与数字签名实例详解

  在WIN2000中为我们提供了具有相当安全级别的加密措施,那就是用个人的公钥和私钥配对使用加密或解密。下面就以一个具体例子来讲解加密和解密,以及保护加密文件的过程

  谈到文件加密或许有人 马上联想起WORD或EXCEL等文档文件的密码保护,要注意在此我所要讲的绝不是这种密码保护,而WIN2000所拥有的利用加密钥匙来实现的文件加密 和数字签名,它是数字化的。WORD或EXCEL的密码保护仅是保证文件在没有密码时不能打开或修改,这个保护级别相对来说较低,一般这种保护密码很容易 通过一些专用程序解密。而现在要讲的文件加密和数字签名,加密后的文件在解密之前会面目全非,没有对应的密码是无法进行阅读的,更别谈修改了,况且这种密 码比起前者所使用的密码长许多倍,而且是配对使用的,据专家分析用任何程序解密的可能性几乎为零,即使能解密,也起码要10000年,你说这样的解密又有 什么意义呢?所以说这里所讲的文件加密与数字签名的密级相对来讲高了许多许多!

  在正式讲解文件加密和数字签名之前我们要先了解加密的工具,在这里我们用的是用户的公钥(Public Key)和私钥(Private Key)来实现的,加密、解密必须用同一个用户的一对公钥和私钥来配对使用,也就是说如果加密时用的某用户的公钥,那么解密时就必须用其人的私钥来解,反 之如加密时用的是某人的私钥,那么解密时必须用其人的公钥来解,不能同时用公钥或私钥,更不能用不同用户的公钥或私钥来解密。公钥可以告诉别人,但私钥却 一般不能告诉别人,除非授权。就象我们的大楼一样,大门钥匙我们可以给各住户,但各家自己门的钥匙却只能给住户本人,不能随便给。下面我要讲的“文件加 密”与“数字签名”虽然其过程不一样,但原理是一样的,大家注意理解。

  文件加密

  我们知道加密的目的就是在于证明用户身份,防止别人偷截你的文件或内容。我们同样知道现在网络还存在许多不安全因素,在我们发送电子邮件或传输 文件时或许有很多人在别处密切监视着我们,特别是对一些大公司伟输一些机密文件时,怎样实现安全传输呢?在WIN2000中为我们提供了具有相当安全级别 的加密措施,那就是用个人的公钥和私钥配对使用加密或解密。下面就以一个具体例子来讲解加密和解密,以及保护加密文件的过程。

  现假设有A公司的老板名叫BOb,B公司的老板名叫Alice,现BOb想传输一个文件File BS给Alice,这个文件是有关于一个合作项目标书议案,属公司机密,不能给其它人知道,而恰好有一个C公司的老板Linda对A和B公司有关那项合作 标书非常关注,总想取得A公司的标书议案,于是他时刻监视他们的网络通信,想如果Bob通过网络传输这份标书议案时从网络上截取它。为了防止Linda截 取标书议案,实现安全传输,我们可以采用以下步骤:

  1、首先Alice把自己的公钥(设为Public Key A)通过网络传给Bob;

  2、Bob用Alice的公钥(Public Key)给标书议案文件File BS加密;

  3、Bob把经过加密的文件传给Alice;

  4、Alice收到Bob传来的File BS后再用自己的私钥(设为 Private Key)来解密。

  或许有朋友会要问,在第一步中C公司的老板Linda同样可以截取Alice的公钥(Public Key),且在第3步中也可以截取加密后的标书议案文件File BS,但首先要知道这都没有任何意义。因为虽然Linda获取了Alice的公钥和标书议案文件File BS,但用Alice公钥加密后的文件只能用Alice的私钥来解开,即使使用Alice的公钥也无法自己解密,因为公钥和私钥必须配对使用,这就是发明 这种加密方法的绝妙之处。所以在这个传输中可算是比较安全的,当然安全是相对的,据说曾经有黑客专家宣称可以利用个人的公钥推算出其私钥,结果事实证明可 能性几乎为零,即使可能也要10000年后才可以,你说这又有什么意义呢?至于这个人公钥和私钥如何获得我下面将详细介绍,在此不作重叙。

  数字签名

  数字签名也主要是为了证明发件人身份,就象我们来看到的某文件签名一样,但现在要说的签名是采取数字的方式,它可以防止别人仿签,以过加密后的 签名就变得面目全非,别人根本不可能看到真正的签名样子,它与前面所讲的文件加密机理是一样的,但方法不太一样,下面介绍如下。

  仍就和文件加密所举的例子一样,Bob要在所发的文件File BS后面要加以签名,以证明这份标书的有效性(因为Bob是A公司的老板),同样是发给B公司的老板Alice,公司C的老板如果想要假冒Bob的签名发 另一份标书给Alice,以达到破坏A公司中标的目的。

  1、Bob首先把自己的公钥发给Alice;

  2、Bob再要对File BS文件签名以Bob的私钥进行加密,加密后再发给Alice;

  3、Bob把经过加密的签名文件传给Alice;

  4、Alice在收到加密后签名文件File BS后用Bob的公钥进行解密。

  因为File BS已经用加密方式进行加密,同上例,我们知道Linda无法获得Alice的私钥,也就无法阅读到文件内容,但它可以用Bob的公钥解读File BS的签名。但这同样没有意义,因为如果Linda要仿冒Bob的数字签名必须要有Bob的私钥,否则Alice无法用Bob的公钥对签名进行解密,或许 你又要说如果Linda也把自己的公钥发给Alice,那么Alice怎样区别哪一个公钥是真正的Bob的公钥呢?这就要涉及到后面要讲的公钥的获得途径 了,先要说的就是Alice可以到发证机关进行查询来辨别,就这样Linda的阴谋也就不能得逞。

没有评论: