【学习笔记】非对称加密通信
本文最后更新于 907 天前,其中的信息可能已经有所发展或是发生改变。

为了参加区块链相关比赛并学习编写区块链项目,我打算学习一下区块链的一些基础知识,今天我就学习了密码学中的非对称加密。

个人理解

非对称加密是相对于对称加密的,打个比方:

一般情况下,如果我租了间房子,那么包租婆就会把房门钥匙复刻一份给我,因此,这间房是我跟包租婆都可以打开的。

但是,如果包租婆的这把钥匙被小偷偷走了,那小偷就能用包租婆的那把钥匙来开我的房门,从而窃走我的物品。

这就是对称加密,双方共用同一个密钥来进行加密通信,那么在不信任对方的条件下,协商密钥的这个过程就十分的危险。如果双方中的任何一方泄露了密钥,那么双方的通信暴露无遗。

情形如图所示

那么,非对称加密是什么情形呢?

想到一半,发现打的比方不太合理,就不献丑了hhh

简单来说,非对称加密拥有两个不同的密钥,即公钥(Public key)和私钥(Private Key),任意一方想要和对方通信,那么先通过非对称加密算法生成一个密钥对,一个公钥,一个私钥,通信时,将公钥先发送给对方,对方使用公钥将明文加密后传送给自己(由于哈希算法的不可逆性,中间人无法通过公钥推算出明文),这个时候,对方可以生成自己的密钥对,再将对方生成的公钥发送给自己,于是,双方的加密通信就建立了。

这个加密通信过程的关键是双方都不能泄露自己的私钥,因为只有私钥才能解密使用对应公钥加密的密文。

对称加密

优点

加密速度快,需要的算力少。

缺点

若通信双方任意一方泄露密钥,整个通信暴露无遗,任何知道该密钥的第三方都能够窃听到明文数据。

非对称加密

优点

安全性高,即使双方互相泄露公钥,第三方仍然无法窃听到数据。

缺点

加解密速度较慢,需要的算力更多。

看来,两种加密都有优缺点,并且优缺点互补,作为成年人,当然是两个都要啦!于是就有了:混合加密

混合加密

双方先通过非对称加密通信建立起安全的通信渠道,然后在非对称加密通信中交换对称加密的密钥,当双方协商完毕后,就可以进行对称加密通信了。这种方式既兼顾了加密通信时的性能,又能保证通信时的安全性(保证对称加密的密钥在交换的过程中不会泄露)。

但混合加密还是不够安全,因为没能够解决非对称加密时,中间人伪装成通信目标的问题,如果中间人伪装成通信目标,那么通信内容还是会被中间人窃取,这就非常麻烦了。

为了解决双方都不能互相信任对方的问题,自然又引入了第三方,若我能够确认对方发来的消息是通过自己信任的第三方传来的,那么,我就能信任对方,同理,对方也是如此,前提是他们都要拥有信任的第三方。于是,就引入了数字签名,虽然还没有深入学习,但我已经感受它的用途之广了:HTTPS、驱动验证等等。

理解后的我只能感叹一句,密码学真伟大!

非对称加密基本原理(摘自百度百科)

  1. 乙方生成一对密钥(公钥私钥)并将公钥向其它方公开
  2. 得到该公钥的甲方使用该公钥对机密信息进行加密后再发送给乙方。
  3. 乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。

一些常用的非对称加密算法

  • RSA:RSA 是一种目前应用非常广泛、历史也比较悠久的非对称秘钥加密技术,在1977年被麻省理工学院的罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)三位科学家提出,由于难于破解,RSA 是目前应用最广泛的数字加密和签名技术,比如国内的支付宝就是通过RSA算法来进行签名验证。它的安全程度取决于秘钥的长度,目前主流可选秘钥长度为 1024位、2048位、4096位等,理论上秘钥越长越难于破解,按照维基百科上的说法,小于等于256位的秘钥,在一台个人电脑上花几个小时就能被破解,512位的秘钥和768位的秘钥也分别在1999年和2009年被成功破解,虽然目前还没有公开资料证实有人能够成功破解1024位的秘钥,但显然距离这个节点也并不遥远,所以目前业界推荐使用 2048 位或以上的秘钥,不过目前看 2048 位的秘钥已经足够安全了,支付宝的官方文档上推荐也是2048位,当然更长的秘钥更安全,但也意味着会产生更大的性能开销。
  • DSA:既 Digital Signature Algorithm,数字签名算法,他是由美国国家标准与技术研究所(NIST)与1991年提出。和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。
  • ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC(Elliptic curve cryptography,椭圆曲线密码学)和 DSA 的结合,椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障,据称256位的ECC秘钥的安全性等同于3072位的RSA秘钥,和普通DSA相比,ECDSA在计算秘钥的过程中,部分因子使用了椭圆曲线算法。

文章参考:

非对称加密 – 百度百科

【小学生科普密码学】#2 对称加密/非对称加密/混合加密

转载请注明出处!本文链接: https://battlehawk233.cn/post/375.html



暂无评论

发送评论编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇