非对称加密,给你极致的安全感!

Java技术 潘老师 4年前 (2020-09-28) 1532 ℃ (0) 扫码查看

有一天,你终于按捺不住内心的冲动,想向心仪已久的女神小琳表达自己的爱意,可又怕遭到小琳的拒绝且被他人知晓,此时,你心中有两个问题要解决:

(1)让小琳知道你喜欢她的这个信息。

(2)绝不能让第三者知道你向小琳表达的爱意。

作为谨慎而又充满才智的你,很快就意识到“对称加密”的方式已经不适合,因为网络世界不同于现实世界,计算机强大的算力可能在很短时间内猜到你的密文含义,因此,是时候采用更加安全的“非对称加密”方式了!

非对称加密,给你极致的安全感!

非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)——百度百科。

不管公钥还是私钥,尽管听上去很神秘,但是你只要把它理解为钥匙就行,公钥是对外公开的,而私钥是自己私有,绝对不能对外公开的,它们本质上都是字符串。如图,它们就长这样:

非对称加密,给你极致的安全感!

终于,你想好了发送的表白信内容是“love”,

你和小琳分别需要这么做:

你获取到了小琳的在网络上公开的公钥字符串“publickey”,并且就用这把公钥来加密你想表达的“love”,此时你可能会惊讶:用公开的字符串来加密,岂不是很容易就被拦截破解?

其实是不会的,因为非对称加密不同于对称加密,非对称加密是不可逆推的,使用公钥加密,却不能使用原公钥解密,只能用对应的私钥解密,而私钥只有公开公钥的小琳有。另外,公钥是由私钥算出来的,一个私钥可以计算出多个公钥,但无法通过多个公钥推导出私钥,而这,正是非对称加密的核心。

剩下的过程就简单了,你使用加密函数y = F(a,b),只要分别把a,b替换为你的表白信“love”和小琳的公钥“publickey”,即:

F(love,publickey) = y

函数F就会将加密计算后的结果y代替love在网络中游走,直到传输到小琳那里,即使你的同学截取了你密文y,也无法逆推原文,除非他拥有了小琳的私钥。

小琳接收到你的密文y,她要用解密函数 G 和私钥“privatekey“来获取原文,即:

G(y,privatekey) = love

终于,小琳明白了你的心意,原来如此大费周章,就是想表达你“love”她,一段美好的恋情可能从此就拉开了序幕。

  • 非对称加密需要公钥和私钥,公钥对外公开,用于别人加密,私钥自己留着,千万别泄露,这是解密的的重要凭证。
  • 公钥和私钥都是字符串,当然,是比较复杂的字符串。
  • 公钥是有私钥计算来的,由公钥无法推导私钥,是单向的过程,因此,非对称加密核心是不可逆推。

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/1381.html
喜欢 (6)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】