非对称加密

对称加密与非对称加密 : 

    简单地说,对称加密是利用 密钥 加密,然后用密钥解决,而非对称加密则分为公钥和私钥,一般用法是 利用公钥加密,利用私钥解密。或者利用私钥签名,利用公钥验证。

  对于非对称加密而言,公钥是可以随便发放的。

    利用公钥加密,利用私钥解密的使用场景 : 

       假如有个皇帝,他想要远方的大臣能将秘密信件发送给自己,而中途不被人解读出秘密的内容,那么他可以利用非对称加密算法生成一个私钥,然后从私钥提取出公钥。并将公钥发送给远方的大臣。

    大臣如若有什么秘密想要别人不可知,只有皇上知道,那么他可以现将秘密写入信件中,然后通过公钥加密,其他人可能也有公钥,但是其他人没有私钥无法解密,即使得到了信件,也顶多将其截取,而不能得知其中内容是什么。

    利用私钥签名,公钥验证的使用场景 : 

      仍然是一个皇帝,他非常担心别人伪造圣旨,于是他生成一个私钥,提取出公钥,并将公钥广告天下。这样的话,传送使用私钥加密的圣旨下去,任何人都能通过公钥验证这是不是圣旨。如若有人想伪造圣旨,首先因为公钥推算不出私钥,所以他无法用私钥进行签名,当别人利用公钥来验证的时候,很轻易地就能发现是假圣旨。

  非对称加密总结 :

    1) 私钥能提取出公钥

    2) 公钥不能推算出私钥

    3) 公钥加密只有私钥能解密

    4) 私钥签名只要有公钥就能验证

  如何保护好私钥?

    在现实场景中,私钥很难去保护,特别是防止私钥被拷贝。当某个root用户拥有一个私钥能去证明他的身份时,如若他将私钥作为文件放在电脑上难免不安全,而私钥也不能像对称加密的密码一样把它背下来。因为长度越长的私钥安全性越高,长度太短不那么安全且私钥一般是算法生成的,内容毫无规律,根本不可能记忆。

  利用ukey设备去保存私钥 :

    ukey设备是一种智能卡设备,全称 usb key,他不仅可以像usb一样保存私钥,最重要的是特点是ukey内部含有芯片,它可以生成私钥,并且提供了接口可以在内部进行签名操作。并且虽然你可以销毁私钥。但无法读取私钥到外部。这保证了私钥从出生到到销毁都无法被外界所复制,只有拥有了这个设备你才有可能进行签名操作。

  使用pin码保护ukey :

    即使私钥已经被ukey保护地很好了(无法被取出意味着无法复制)。但是ukey设备如若丢失,也就无从安全性可言了。对此ukey设立了对称加密的密钥 : pin码,如若没有pin码则无法利用接口对ukey进行签名操作。这保障了即使ukey丢失,仍然能保障私钥的安全性。

  ukey对于私钥保护的总结 :

    1) ukey内部含有芯片,可以支持生成私钥,利用私钥进行签名等操作。

    2)  利用对称加密密钥pin码,保护ukey内部的私密数据,特别是私钥。

    成功地将 利用私钥 设立了两个条件 :

    1) 拥有ukey硬件

    2) 拥有pin码

    大大地提高了安全性。

  如何防止签名被复制?

    当皇帝采用私钥签名圣旨,如若总是提名皇帝的名字或者其他固定的值,那么很容易被仿造。对方可能知道 "abc" 字符串在签名后是 "qwe"(实际上签名后的长度是由签名算法决定的)。那么他不需要私钥就能直接签名 "qwe",很轻松地就仿造了圣旨。但是拥有私钥的人总是有信心的无论对方要求以什么字符串作为签名的源数据都可以给他。

    假设皇上让太监去宣读圣旨,然后接旨的人要求太监验证身份,说你给我签个"12345"作为签名我就相信你。 太监自然就拿出了ukey进行签名,并输入ukey的pin码,当然能签名 "12345"。在宣读圣旨完毕后,就将圣旨还给皇上,即使皇上不修改密码也不用担心太监去造假,因为ukey是无法复制的。而太监只要把ukey还给皇上,就失去了伪造签名的能力。

原文地址:https://www.cnblogs.com/w-pound/p/15167044.html