公私钥与加密、签名

依然范特西╮ 提交于 2020-03-28 02:24:42
先明确一下概念: 
公钥加密私钥解密,   没问题,也可以说是 "公共密钥加密系统 " 
私钥加密公钥解密,一般不这么说,应叫 "私钥签名,公钥验证 ",也可以说是“公共密钥签名系统” 

再来说一下 "公共密钥签名系统 "目的:(如果晕就多看几遍,这个没搞清,后面的代码就更晕) 

A欲传(信息)给B,但又怕B不确信该信息是A发的。 
1.A选计算(信息)的HASH值,如用MD5方式计算,得到:[MD5(信息)] 
2.然后用自已的私钥加密HASH值,得到:[私钥(MD5(信息))] 
3.最后将信息与密文一起传给B:传给B:[(信息)   +   私钥(MD5(信息))] 

B接到   :[(信息)   +   私钥(MD5(信息))] 
1.先用相同的HASH算法算出(信息)的HASH值,这里也使用MD5方式   
得到:   [MD5(信息)!] 
2.   再用A的公钥解密   [   私钥(MD5(信息))] 
      [公钥(私钥(MD5(信息)))]   =   [(MD5(信息)] 
      如能解开,证明该   [   私钥(MD5(信息))]是A发送的 
3.再比效[MD5(信息)!]与[(MD5(信息)] 
      如果相同,表示(信息)在传递过程中没有被他人修改过 
再补充一点,非对称密钥的目的是为了实现不对等的身份验证。加密算法在这里只是实现目的的一个手段。 

他不适合大数据块的加密。这种方式还应该用对称密钥加密方法(如DES)  

 注意,我为何说这种方式不叫加密:因为A所发的(信息)至始到尾都是暴露的。 


在个种模式下,任何人都可以看到(信息),也可以修改(信息) 
但如果(信息)被修改了,B可以发现 

所以 "公共密钥加密系统 "叫信封,如我们邮信时的信封,保证内容不被人看到 
“公共密钥签名系统”叫手印,保证收到该信的人能确认发信人身份

 如果要加/解密大段的数据,那么只能公钥加密,私钥解密。但是如果是做签名的话,就像wxwinter说的,用私钥加密签名,公钥验证是可以的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!