透视 HTTP 协议
罗剑锋(Chrono)
前奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者
63943 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
开篇词 (1讲)
透视 HTTP 协议
15
15
1.0x
00:00/00:00
登录|注册

24 | 固若金汤的根本(上):对称加密与非对称加密

私钥加密后任何人都可以用公钥解密的用途
比喻密钥为现实中的锁和钥匙
使用对称加密提高通信速度
利用非对称加密解决密钥交换问题
非对称加密速度慢,适合密钥交换
对称加密速度快,适合大数据量加密
非对称加密通过公钥加密解决密钥交换问题
对称加密无法安全地进行密钥交换
混合加密
非对称加密
对称加密
课下作业
混合加密原理
加密算法性能比较
密钥交换
加密算法

该思维导图由 AI 生成,仅供参考

在上一讲中,我们初步学习了 HTTPS,知道 HTTPS 的安全性是由 TLS 来保证的。
你一定很好奇,它是怎么为 HTTP 增加了机密性、完整性,身份认证和不可否认等特性的呢?
先说说机密性。它是信息安全的基础,缺乏机密性 TLS 就会成为“无水之源”“无根之木”。
实现机密性最常用的手段是“加密”(encrypt),就是把消息用某种方式转换成谁也看不懂的乱码,只有掌握特殊“钥匙”的人才能再转换出原始文本。
这里的“钥匙”就叫做“密钥”(key),加密前的消息叫“明文”(plain text/clear text),加密后的乱码叫“密文”(cipher text),使用密钥还原明文的过程叫“解密”(decrypt),是加密的反操作,加密解密的操作过程就是“加密算法”。
所有的加密算法都是公开的,任何人都可以去分析研究,而算法使用的“密钥”则必须保密。那么,这个关键的“密钥”又是什么呢?
由于 HTTPS、TLS 都运行在计算机上,所以“密钥”就是一长串的数字,但约定俗成的度量单位是“位”(bit),而不是“字节”(byte)。比如,说密钥长度是 128,就是 16 字节的二进制串,密钥长度 1024,就是 128 字节的二进制串。
按照密钥的使用方式,加密可以分为两大类:对称加密和非对称加密
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

网络安全是当今互联网世界中至关重要的一环。本文深入浅出地介绍了HTTPS的安全性是由TLS来保证的,TLS通过加密算法实现了机密性,其中包括对称加密和非对称加密两种方式。对称加密使用相同的密钥进行加密和解密,而非对称加密则使用公钥和私钥进行加密和解密。文章还介绍了常用的对称加密算法如AES和ChaCha20,以及非对称加密算法如RSA和ECC。此外,还介绍了加密分组模式和密钥交换的问题。文章指出,混合加密方式能够结合对称加密和非对称加密的优势,既能高效地加密解密,又能安全地密钥交换,完美地实现了机密性。总的来说,本文对网络安全中加密算法的基本原理和应用进行了全面而深入的介绍,对读者快速了解网络安全领域具有重要意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《透视 HTTP 协议》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(91)

  • 最新
  • 精选
  • xiaolin777
    老师,今天面试官问我非对称加密为什么慢,非对称加密除了慢外还有什么缺点,您能帮我解答一下吗?

    作者回复: 非对称加密基于大数运算,比如大素数或者椭圆曲线,是复杂的数学难题,所以消耗计算量,运算速度慢。 除了慢,可能还有一个缺点就是需要更多的位数,相同强度的对称密钥要比非对称密钥短。 对称密钥一般都128位、256位,而rsa一般要2048位,不过椭圆曲线的会短一点。

    2019-09-19
    3
    76
  • TerryGoForIt
    简单来说,SSL 就是通信双方通过非对称加密协商出一个用于对称加密的密钥。

    作者回复: √

    2019-07-22
    2
    55
  • -W.LI-
    混合加密:用非对称加密,加密对称加密的私钥。对称加密的私钥又是会话级的随机数=一次会话一个私钥。就算别人baoli破解也只是破解了一个会话。

    作者回复: √

    2019-07-22
    3
    38
  • 鱼向北游
    私钥加密用公钥解是为了做身份认证,不可抵赖,因为默认私钥只有持有人知道

    作者回复: √

    2019-07-22
    2
    37
  • 啦啦啦
    今天刚看了另外一个课程的老师讲的,密钥,在这个词里念mi yue

    作者回复: 应该是钥匙的“yao”吧。 我搜了一下。 【mì yuè】读音下的“密钥”的意思:紧密的锁闭。这里的用法用了“密钥”的动词性质。 【 mì yào】读音下的“密钥”的意思:密码学中的专有名词,指解密所需要的特殊代码。这里用了“密钥”的名词性。 密钥现代用的最多的是密码学中的意思,在英文中解释为key,中文意思偏向于钥匙。在密码学中,特别是公钥密码体系中,密钥的形象描述往往是房屋或者保险箱的钥匙。因此在技术词典中,密钥被标注为【 mì yào】。 在一些词典中原来把密钥标注为【mì yuè】,由于权威性带来了一些影响,所以也有很多人把密钥念作【mì yuè】。由于钥在读作【 yuè 】也可以作“钥匙”的解释。但是钥被念作【 yuè 】时,往往偏向于钥的动词性,这种性质就跟“血”的用法相似。

    2019-12-12
    7
    28
  • 前端西瓜哥
    思考题第1题: (这里举个比较勉强的例子)假设 a 持有私钥,b 持有公钥,然后他们用一个加了锁的盒子进行通信。 1. a 把信件放到盒子里,然后用一排连接为锁链的锁将盒子锁起来,然后寄给 b。只要公钥能解开其中一个锁,那对方就能拿到信件。(可能换成能识别具有某些特征密码的密码锁的比喻会更好一些) 2. b 用公钥开锁拿到了信件,然后他写了一封回信,同样放到盒子里,然后挂上一个只有私钥才能打开的锁,寄给 a。 3. 只有 a 有有对应的钥匙(私钥),于是 a 拿到了回信。 思考题第2题不是很清楚题意,大概是问只要有公钥就能解密,私钥有什么意义? 答:虽然任何公钥都可以对私钥加密的数据解密,但这个解密后的数据如果是某个公钥持有人用自己私有的密钥加密(对称加密)后的加密数据,那其他人拿到是加密后的数据,无法得到真正的数据,于是可以保证机密性。

    作者回复: 回答的很认真。 第二个问题,问的是私钥加密公钥解密有什么作用,能够干什么。 因为私钥只能由一个人秘密持有,所以它加密的数据谁都可以解密,没有私密性,但这就是它的价值所在,可以证明这个数据就是私钥持有人发布的,可以用来做身份认证。

    2019-07-25
    25
  • 蚂蚁内推+v
    加密的分组模式,是怎么实现的,具体怎么做,这块不是很理解。方便老师指导下不

    作者回复: 拿ECB来举例子,假设使用aes128,密钥长度是16字节,那么就把明文按16字节分组,然后每个分组用密钥加密。 其他的cbc、ofb等的方法类似,但细节不同,例如cbc增加了初始向量。

    2019-07-22
    20
  • 青莲居士
    老师,你好,我不明白对称加密为啥会有密钥交换的过程,对称加密就一个密钥,客户端服务端各保存一份就可以了,为啥要传输交换呢?

    作者回复: 关键是“如何各保存一份”,两边加密通信必须要使用相同的密钥才行,不交换如何才能保持一致呢? 而且简单的一对一还好说,现实情况是网站要面对成千上万的用户,如何与这么多的客户端保持一致? 还有,如果总使用一个密钥,就很容易被破解,风险高,需要定期更换,最好是一次一密。 所以,为了安全起见,每次通信前双方都要交换密钥,这样就实现了“各保存一份”,用完就扔掉,下次重新交换。

    2019-08-02
    5
    19
  • Geek_66666
    在实际传输过程中,大家(包括其他人)怎么知道双方通信用的哪个公钥,是传输过程公开的,大家都可以获取看到的吗?如果大家都知道了,用私钥加密的内容都能被别人用公钥解密,这部分内容是不是不安全?

    作者回复: 公钥的传输必须使用证书,把公钥和持有者身份绑在一起,否则就会有信任问题,容易被别人冒充。 私钥加密的作用是签名,实现身份认证而不是数据保密,签名是公开的,所以不存在安全问题。

    2019-08-25
    2
    18
  • 1:加密算法中“密钥”的名字很形象,你能试着用现实中的锁和钥匙来比喻一下吗? 没有锁的大门是不安全的,谁想进就进,谁想拿的啥就拿点啥,就好像在网络中奔跑的HTTP报文。 为了安全性需要给明文加密,同样为了安全性需要给大门上锁,加密的明文变成了密文,没有没有解密是看不懂的,没有钥匙的人打不开锁是进不了门的。 一把钥匙一把锁,其他钥匙开不了,这就是对称加密。一把钥匙锁门,N把其他的钥匙都能打开,这就是非对称加密,那那把锁门的钥匙有啥用呢?可以证明这个院子是我的,证明锁是我上的。 2:在混合加密中用到了公钥加密,因为只能由私钥解密。那么反过来,私钥加密后任何人都可以用公钥解密,这有什么用呢? 第一眼感觉好像没啥用,后来发现可以凭支票去银行取钱。数字签名和身份认证,也是相当有用。 这节很有意思。 对称加密、非对称加密、混合加密,对于加密二字很容易理解,对于明文都能看懂,加密就是通过一些步骤把明文变密文,让人看不懂,只有使用密钥解密一下,密文变明文了大家又都能看懂了。 那啥是对称?啥是非对称?啥是混合? 对称强调A钥匙加密只有A钥匙能解码 非对称强调A钥匙加密后只有B钥匙能解密,B钥匙加密后只有A钥匙能解码。这个感觉好神奇,就好像我上锁后谁都能打开,上锁是没用的只能证明锁是我上的。 混合强调非对称和对称的组合使用,非对称用于密钥交换,对称用于数据的安全传输。

    作者回复: 总结的很好,非常认真,amazing!

    2020-03-30
    3
    14
收起评论
显示
设置
留言
91
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部