GPG 签名与加密

Posted on April 22, 2011

首先密码学的模型

1) 通信双方的机器是没有问题的。没有木马,没有坏人。 2) 通信线路是不可靠的,有人监听,有人伪造信息

那么,就要解决2个问题,首先,我得确信这个信息是你发送的,不是别人伪造你 发送的,俗称数字签名, 第二,我要确保没有人知道我们之间的通信,也就是加密。

非对称加密的意思就是,同时有2个key. 用其中一个加密,只能用另一个解密。 这样,随机选一个做私钥,另一个公开做公钥就是下面我要讲的 GPG 签名与加密。

对于 GPG 来说,GPG 会生成一个密钥对,一个是公钥,一个是私钥。

对于公钥,你需要将它上传到公钥服务器。 对于私钥,要绝对反正泄露,并且不能丢失!!!! 我重复,不能丢失,也不能泄露。

如果你要让别人相信你的邮件不是伪造的,那么你就需要进行签名。 签名就是用自己的私钥加密邮件。因为公钥是公开的,所以任何人都可以解密你的 邮件。但是只有用你的私钥才能发出那封邮件,所以别人可以肯定这是你的邮件, 不是别人伪造的。这就是用私钥进行签名的原因。

如果是发送加密邮件,那么你必须有对方的 GPG 公钥。 然后你用 对方公钥 加密邮件。

因为这个时间上只有收件人有加密时使用的公钥的对应私钥,所以只有你的收件人 能解密这个邮件. 这样你就保证了你的邮件只有他能看到。PS, 你自己也不能解 密那个邮件。因为你没有他的私钥。

加密和签名同时使用的时候,就可以保证

1) 他可以确信邮件是你发送的 2) 你可以确信只有他能看那封邮件

===================================== 但是,这个前提是,你怎么知道/确信指定的公钥就是他的? 他怎么知道/确信某 个密钥就是你的!!!!

这就引入了一个 信任机制。

比如 A B C

A 通过见面得知了 B 的公钥。这个时候 A 和 B 可以相互100%确认对方的公钥。

这个时候来了个 C . C 自称他的公钥是 XXXX 。

C 和 A 见过面。交换过公钥。

然后 A 就给 C 的公钥签名,

B 收到 C 的邮件的时候,发现他的公钥被 A 签名了,B 就可以不需要亲自去核 实,就可以确定 XXXX 确实是 C 的公钥.

其实和 SSL 的证书机制差不多的啦。 我的 GPG 公钥是

E84C0359 , 

指纹是

85D9 2529 F2D6 EE19 CBEB A685 A4F8 533E E84C 0359

请记住哦 ;)

Comments