公钥私钥

公钥私钥
一,公钥私钥 
  1
,公钥和私钥成对出现 
  2
,公开的密钥叫公钥,只有本身知道的叫私钥 
  3
,用公钥加密的数据只有对应的私钥能够解密 
  4
,用私钥加密的数据只有对应的公钥能够解密 
  5
,若是能够用公钥解密,则必然是对应的私钥加的密 
  6
,若是能够用私钥解密,则必然是对应的公钥加的密 
 
明白了? 
  
 
假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉大家,而后我告诉你们,1是个人公钥。 
  
 
我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,可是他不知道2就是解密的私钥啊,因此他解不开,只有我能够用数字2,就是个人私钥,来解密。这样我就能够保护数据了。 
  
 
个人好朋友x用个人公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,可是别人解不开,由于别人不知道2就是个人私钥,只有我才能解密,解密后就获得a。这样,咱们就能够传送加密的数据了。 
  
 
如今咱们知道用公钥加密,而后用私钥来解密,就能够解决安全传输的问题了。若是我用私钥加密一段数据(固然只有我能够用私钥加密,由于只有我知道2是个人私钥),结果全部的人都看到个人内容了,由于他们都知道个人公钥是1,那么这种加密有什么用处呢? 
  
 
可是个人好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用个人私钥2,加密,加密后的内容是d,发给x,再告诉他解密看是否是c。他用个人公钥1解密,发现果真是c。这个时候,他会想到,可以用个人公钥解密的数据,必然是用个人私钥加的密。只有我知道我得私钥,所以他就能够确认确实是我发的东西。这样咱们就能确认发送方身份了。这个过程叫作数字签名。固然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名。 
  
 
好,咱们复习一下: 
  1
,公钥私钥成对出现 
  2
,私钥只有我知道 
  3
,你们能够用个人公钥给我发加密的信了 
  4
,你们用个人公钥解密信的内容,看看能不能解开,能解开,说明是通过个人私钥加密了,就能够确认确实是我发的了。 
  
 
总结一下结论: 
  1
,用公钥加密数据,用私钥来解密数据 
  2
,用私钥加密数据(数字签名),用公钥来验证数字签名。 
  
 
在实际的使用中,公钥不会单独出现,老是以数字证书的方式出现,这样是为了公钥的安全性和有效性。 
  
 
二,SSL 
 
我和我得好朋友x,要进行安全的通讯。这种通讯能够是QQ聊天,很频繁的。用个人公钥加密数据就不行了,由于: 
 1
,个人好朋友x没有公私钥对,我怎么给他发加密的消息啊?   (注:实际状况中,能够双方都有公私钥对) 
  2
,用公私钥加密运算很费时间,很慢,影响QQ效果。 
  
 
好了,好朋友x,找了一个数字3,用个人公钥1,加密后发给我,说,咱们之后就用这个数字来加密信息吧。我解开后,获得了数字3。这样,只有咱们两我的知道这个秘密的数字3,别的人都不知道,由于他们既不知x挑了一个什么数字,加密后的内容他们也没法解开,咱们把这个秘密的数字叫作会话密钥。 
  
 
而后,咱们选择一种对称密钥算法,好比DES,(对称算法是说,加密过程和解密过程是对称的,用一个密钥加密,能够用同一个密钥解密。使用公私钥的算法是非对称加密算法),来加密咱们之间的通讯内容。别人由于不知道3是咱们的会话密钥,于是没法解密。 
  
 
好,复习一下: 
  1
SSL实现安全的通讯 
  2
,通讯双方使用一方或者双方的公钥来传递和约定会话密钥   (这个过程叫作握手) 
  3
,双方使用会话密钥,来加密双方的通讯内容 
  
 
上面说的是原理。你们可能以为比较复杂了,实际使用中,比这还要复杂。不过庆幸的是,好心的先行者们在操做系统或者相关的软件中实现了这层(Layer),而且起了一个难听的名字叫作SSL,(Secure   Socket   Layer)。


但愿能获得收获.
相关文章
相关标签/搜索