"GunPG是个完全免费的公钥加密技术软件包。在企业网络应用中,使用GunPG对在公共网络或局域网内传输的信息进行数字签名或加密保护,有利于提高企业网络的安全并降低安全验证成本。"

下载能够从GunPG官方网站上下载。 假如对这方面内容感兴趣,您能够阅读原文,参加相关调查。

作者:Mike Gaul
来自:www.bymg.com

GunPG是完全免费的公钥加密技术软件包,其有4个含义:

  1. 如任何其他GUN产品相同,能够免费获得他。
  2. 能够得到他的源代码,并安装GUN库一般公共许可(LGPL)规定,任何人都能够自由修改他并能够重新发布。和一般的公共许可协议(GPL)不同,LGPL也允许商业销售商编写建立在GunPG上的专用软件产品,而无须被迫发布他们的源代码。
  3. 避免了如IDEA和RSA这样的受专利制约的算法,因此,不必向任何一方支付许可费就能够使用他。
  4. GnuPG是在德国研发的,因此,他逃避了美国的出口限制。

在使用GunPG之前,先说说公钥加密技术在什么情况下应用,这里用的语言只是我自己理解的,可能不会很准确,假如需要准确的描述,请查看相关书籍。

  1. 生成“钥”时会产生一对“钥”:公钥和私钥。公钥,顾名思义,是公开的“钥”,那么私钥就是自己秘密保留的“钥”。
  2. 某人A想要给您发一个消息,但是希望不让其他人知道。那么,他能够使用您公开出来的公钥,对消息进行加密成密文。假如其他人得到密文,则没有办法解密。而假如您得到了密文,您能够使用您保留的私钥对密文进行解密。这个过程即“加密解密”的过程。
  3. 您给某人A发送一条消息,但是A可能怀疑这个消息是否真正是您发出的。那么您能够使用您的私钥对这个消息进行标记。而A要验证这个消息真的是您发出的,就能够使用您公开出来的公钥进行验证。这个对消息标记的过程即“数字签名”。
  4. A和B之间存在信任,B和C之间存在信任。那么,要在A和C之间建立信任,则能够……

需要特别注意的是:

  1. 请注意您们得到的公钥是真正来自您认为的那个人的。假如不是,则任何的信任将不复存在。
  2. 一般来说,将一个人的私钥保存在多用户系统上不是个好办法,有可能会被其他用户访问到。您应该始终把私钥保存在一张软盘上(要做备份),当不使用时把两者都锁起来。

实际操作

使用对方公钥加密信息,并将此信息发送给对方

  1. 使用对方公钥对信息进行加密,首先要获得对方公钥,然后使用 gpg -- import 进行导入。
  2. 然后应该使用 gpg --sign-key name 对这个公钥进行签名,来告诉 gpg 您能够确认这个公钥是正确并有效的。假如不进行这一步,会出现类似于下面的信息:
    gpg: BB2CFA5A: There is no indication that this key really 	belongs to the owner
    
        1024g/BB2CFA5A 2003-12-09 "……(这部分忽略)"
    
        Primary key fingerprint: ……(这部分忽略)
    
        Subkey fingerprint: ……(这部分忽略)
    
        It is NOT certain that the key belongs to the person named
    
        in the user ID. If you *really* know what you are doing,
    
        you may answer the next question with yes
    
        Use this key anyway?
    
        当然假如输入“y”也能够。但是每次都会提示。
  3. 使用下面命令对文档进行加密:
    gpg --encrypt --recipient name --armor secret_file
    假如要加密外加数字签名就要:
    gpg --recipient user_name --sign --encrypt --armor msg_file

快速参考

  1. 生成密钥对:
    gpg --export --armor
  2. 提出公钥并显示在屏幕上:
    gpg --export
  3. 提取公钥并仅仅使用可打印字符(ASCII):
    gpg --export --armor
  4. 从key.asc中导入公钥:
    gpg --import key.asc
  5. 列出我的公钥串的任何密钥
    gpg --list-keys
  6. 列出公钥串中任何的密钥连同签名(证书)
    gpg --list-sigs
  7. 列出我的私钥(能够多于一个)
    gpg --list-secret-keys
  8. 提出一个公钥的指纹
    gpg --fingerprint [user]
  9. 执行有关用户密钥的操作
    gpg --edit-key user_name
  10. 加密文档msg中的信息,而只有user用户能够读取
    gpg --encrypt --armor --recipient user msg_file
  11. 对收到的一条信息解密
    gpg --decrypt msg_file
  12. 使用我的私钥对一条消息签名,并使输出能够打印
    gpg --sign --armor msg_file
  13. 使用我的私钥对消息进行透明签名(保持消息可读)
    gpg --clearsign msg_file
  14. 核对我收到的一个签名消息是否来自经过验证的用户
    gpg --verify signed_msg_file
  15. 对一条消息进行签名和加密,并使输出能够打印

    文章整理:西部数码--专业提供域名注册虚拟主机服务
    http://www.west263.com
    以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!