软件中的加密算法( 二 )

  • 同时也保存好其他国王送过来的公钥,名称不能搞乱了,更不能让别人替换了
  • 发邮件的过程如下:
  • 把邮件的正文用自己的私钥签名,附在邮件最后
  • 用接受者的公钥加密邮件的正文和签名
  • 把信送过去
  • 收邮件的过程如下:
  • 用自己的私钥解密,获得邮件正文和签名
  • 拿着发送者的公钥,对正文和签名进行验签
  • 把自己的公钥送到别人那边,要包装一下,那个就是公证书 
    自己的私钥也要好好的包装一下,这个就是私证书
    证书和证书链证书的烦恼
    假设国王们已经建立了证书体系,这个时候,某个国王英年早逝,他的弟弟扶持?/挟持?年幼的侄子摄政 。很不幸的是,暴毙的国王把象征权力的个人私证书和其他国王的公证书都付之一炬 。
    于是摄政王需要自己做一套公钥私钥,然后派信使去见每个国王,送去自己的公钥,拿回来对方的公钥 。这是一个痛苦的折磨,对于所有涉及到的人:
    • 对方国王怎么相信你? 
      突然证书说换就换,我是不是要跑一趟去求证一下?
    • 信使会不会有问题? 
      信使是很乐意用自己的公证书来代表国王的公证书 。他做俩个证书,左手的代表国王A把公证书给国王B,右手的代表国王B把公证书给国王A,用不着第三个代表证书,他就可以作为中间人来偷看+篡改来回的信件了 。
    就实际情况来说,最安全的方式是,其他的国王亲自过去,验证新王,交换证书 。
    但是很明显这个是一个成本很巨大的工作,而且很危险 。说不定回家的半路上,哪个国王头疼脑热的,也英年早逝了,然后大家又要重新跑一趟,包括那个宝座还没坐热的摄政王 。
    注意:即使有了internet,这样的场景下证书交换是不能通过网络的,因为信任没能解决,只能亲自跑 。
    证书的本质就是信任好在国王们都相信一个人——代表了神的意志的教皇 。教皇说:你们也别这样跑,来回折腾 。我给你们的公证书上面加上主的签名——当然也就是我代表主的签名,以后大家就只要如此如此:
    • 保存一个公证书,那就是主的证书,只要相信他就可以了,这个是一切证书之根;
    • 你们所有人的公证书,都要经过主的签名
    • 你发给别人带有签名的信件的时候,也要把你的公证书带上——记得哦,是主给你签名的公证书
    • 当别人收到你的信件、签名、公证书时候,
    • 他首先要根据主留给他的公证书来验签你的公证书是不是经过主认证的,
    • 再用你的证书来验证信件的签名
    更完美的方案用一个证书给别的证书做签名背书,产生了证书链,就解决了证书的 N*N 问题 。
    BTW:当某个国王派出军队出去征服新世界的时候,教皇一般也会派出一个大主教,授予他一个特殊的证书,这个证书是由教皇的证书签名,但是它还可以给别的证书签名 。 
    ——这个就是多级授权 。
    其它摘要MessageDigest不是加密
    也不是所谓的“单向加密”,就是消息摘要
    macmessage authentication code,一般不用 。




    推荐阅读