9 p% b- i4 o$ y3 O; T
: R: g) v4 g) ~' P* w. \/ |8 q2 O# P
* l( q- ?4 _2 [2 r1 B( o4 _: F9 A8 \% ]/ A
4 _6 p/ @" [7 q- }" f* n2 i: ~
+ z, c8 [7 b; }8 b1 ? (Bob) 有两个密钥, (Bob的公钥)和 (Bob的私钥)。
6 F8 r: y9 L) t, ]Bob的私钥只有自己知道, (Bob的公钥)可以让所有人都知道: (Pat)、 (Doug)、 (Susan) 。公钥和私钥是由特殊算法生成的,都可以用来把明文加密成不可读的密文,用相反的密钥可以把密文解密成可读的明文。0 i7 p, l0 E( ?8 `4 ?3 @4 W
" F% P# V2 I& s2 a3 V6 b: n7 z. h
+ S$ e1 w1 Q# t7 {* f
有一天, (Susan) 写了一封信,\"Hey Bob, how about lunch at Taco Bell. I hear they have free refills!\",然后通过 (Bob的公钥)进行加密,变成\"HNFmsEm6Un BejhhyCGKOK JUxhiygSBCEiC 0QYIh/Hn3xgiK BcyLK1UcYiY lxx2lCFHDC/A\",她可以放心的把信交给其他人,帮忙把信送给Bob。 (Bob)看到信之后,用 (Bob的私钥),解密这封信,就能看到Susan写的原话了。其他送信的人是完全看不懂的。3 Z& S( Y8 n( R4 _5 ^' |9 V$ L: ?
(Bob)打算给Susan回信,他并不害怕别人知道他说什么,所以他不需要对全文加密,但是他害怕有人偷偷修改他的内容,所以他首先给全文生成一个摘要信息。  。然后对摘要进行加密, 经过 (Bob的私钥)的加密,就变成了一个独一无二的数字签名 。数字签名被附加到信件的结尾,一起发给 (Susan) 。 (Susan)用 (Bob的公钥)解密数字签名,得到当时的信件摘要。然后自己再计算一次信息摘要,如果相同,那么证明信件没有被别人修改过。
5 P# }- u( q+ h& A送信的 (Doug)有一次偷偷的使用 (Susan)的电脑,用自己的 (Doug的公钥)替换了 (Bob的公钥),没有人去刻意记忆公钥,所以Susan当时没有发现,她给Bob写信的时候使用了她认为是 Bob的公钥(实际上是Doug的公钥)对信件进行加密.现在 (Doug)既可以读到Susan的信,也可以冒充 (Bob)制作数字签名,真正Bob的数字签名却被认为是错的。( B5 ?1 n' f: |2 S2 N1 z9 u3 x) o, m
后来, (Bob)发现了问题,他找到\"证书中心\"(certificate authority,简称CA),CA用 (CA的私钥),把Bob的 (Bob的公钥)加密一次,这个就是数字证书。带数字证书和Bob的数字签名的信件发给 (Susan)后,Susan先用 (CA的公钥)对数字证书解密,拿到一个一定真实的Bob公钥,进而证明的数字签名是否是真的,进而证明信件有没有被改动过。 |