首先密码学的模型
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