实用密码学 - 范学雷编程与开发技术教程

实用密码学 / 从0开始,快速掌握密码学技术

范学雷 前Oracle首席软件工程师,Java SE安全组成员,OpenJDK评审成员
📅 更新时间:
🔥 热门推荐
  • 📖 课程目录
  • 📝 课程介绍
  • 我想通过这个密码学专栏帮助你把握住基本概念、弄明白适用场景、躲得开常见错误。

  • 01 | 学习密码学有什么用?

    我们要理解信息安全的基本问题和基本需求,建立起均衡考量信息安全基本需求的意识。

  • 02|单向散列函数:如何保证信息完整性?

    单向散列函数是一个逆向运算困难,构造碰撞困难的函数。

  • 03|如何设置合适的安全强度?

    我们要建立对安全强度直观概念的认知,为系统设置合适的安全强度。

  • 04|选择哈希算法应该考虑哪些因素?

    我们要尽量选择现存的、可用的、流行的算法。

  • 05|如何有效避免长度延展攻击?

    我们要了解避免长度延展攻击的办法,尽量不要单纯使用单向散列函数来处理包含机密信息的数据。

  • 06|对称密钥:如何保护私密数据?

    我们要知道对称密钥的安全性,取决于密钥的保密性和算法的安全性,而不是算法的保密性。

  • 07 | 怎么选择对称密钥算法?

    我们罗列了常见的对称密钥算法,讨论了数据加密对应用性能的影响,还知道了分组算法和序列算法这两个概念。

  • 08 | 该怎么选择初始化向量?

    应用程序需要根据使用场景来制定适当的初始化向量选择方案,这是一个容易忽略的要求。

  • 加餐 | 密码学,心底的冷暖

    极客时间的《实用密码学》这个专栏,就是我为十年后的新模样,添的一块砖。

  • 09 | 为什么ECB模式不安全?

    我们要知道ECB模式不是安全的模式,一般的应用程序不应该直接使用ECB模式。

  • 10 | 怎么防止数据重放攻击?

    我们要理解CBC模式的三个关键点,了解计算时间偏差和算力偏差对算法安全性的影响。

  • 11 | 怎么利用解密端攻击?

    我们要知道CBC模式存在补齐预言攻击,知道使用不同初始化向量的来阻断补齐预言攻击。

  • 12 | 怎么利用加密端攻击?

    我们要知道CBC模式存在BEAST攻击,还要知道使用初始化向量来阻断BEAST攻击。

  • 13 | 如何防止数据被调包?

    我们要了解消息验证码要解决的问题,尽量选用现行的、流行的算法。

  • 14 | 加密数据能够自我验证吗?

    我们要了解带关联的认证加密,以及它要解决的问题。

  • 15 | AEAD有哪些安全陷阱?

    我们要知道AEAD算法初始化向量不能重复的要求,知道AEAD算法常用的初始化向量选择方案。

  • 16 | 为什么说随机数都是骗人的?

    今天,我们来讲一个之前总提到的知识点:随机数。

  • 17 | 加密密钥是怎么来的?

    我们要知道一个合格的对称密钥应该满足什么条件,以及对称密钥的两个主要来源。

  • 18 | 如何管理对称密钥?

    我们要有意识优先使用即用即弃的对称密钥,有意识去保护好需要留存的对称密钥。

  • 19 | 量子时代,你准备好了吗?

    我们要开始筹划抵御量子计算时代算力的事情,为量子时代做好准备。

  • 20 | 综合案例:如何解决约会难题?

    我们是时候回头看看,能不能使用我们学到的知识,来帮助牛郎织女解决好他们的约会问题了。

  • 结束语 | 深挖坑、广积粮

    深挖坑,广积粮,这是我送给你的学好密码学的一个小建议。

  • 结课测试 | 这些密码学的知识,你都掌握了吗?

    《实用密码学》课程结课了,来做一个小测试吧!

📋 课程详细介绍

你将获得 深度解析加密核心技术 组合多种密码技术的应用方法 10+企业级密码学应用场景分析 一线大厂密码技术实操经验 讲师介绍 课程介绍...

你将获得

  • 深度解析加密核心技术
  • 组合多种密码技术的应用方法
  • 10+企业级密码学应用场景分析
  • 一线大厂密码技术实操经验

讲师介绍


课程介绍

在2020年3月末,研究者公开了Zoom产品的重大安全漏洞,Zoom使用了一种并不安全的加密模式:ECB加密模式,而这种加密模式的安全问题早已经暴露多年。因为算法失当这个“小问题”,Zoom自身的品牌和信誉受到了极大伤害,给了竞争者充分的机会。

不可否认,密码技术是信息网络安全的基础,也是核心。无论是系统开发还是App开发,只要存在网络通信,信息就要加密,防止被截取和篡改。然而,即便大家意识到信息安全的重要性,清楚密码学的意义和价值,能够灵活使用不同密码算法的研发人员还很少;懂得密码学的安全领域专家更少;能够跟得上密码学发展进程的研发人员更是少得可怜。

在信息安全市场上,人才的需求和供给之间有一个巨大缺口,而且这个缺口还没有停止扩张。对研发人员来说,安全领域更是有着广阔的发展空间,很多技术人也开始向安全领域转型。

可学好用好密码学并不容易,它是一门需要深度积累的领域,且不说它的知识本身很庞杂,在实际应用层面,更是有很多“坑坑洼洼”。所以,如果在学习的过程中,有经验丰富的专家指点,学习起来会更加简单高效

因此,我们邀请了范学雷老师,他会通过这门课,帮你厘清密码学里的复杂概念,给出不同场景下,密码技术的选择和使用注意事项,尽可能帮你规避掉密码学常见的“坑”,让你真正地学会、用好密码学。

课程模块设计

本专栏分为四个模块。

模块一:课前必读
在正式开始密码学的学习之前,我们会先探讨一些问题:密码学是什么?学习密码学有什么用?通过讨论,你会理解信息安全的基本问题和需求,明确学习密码学的意义,为你的学习之路奠定一个良好的基础。

模块二:学会使用哈希函数
在这个部分,我们会讨论什么是单向散列函数、怎么判断和选择它的安全强度、如何根据性能和实际需求来选择哈希算法,以及有哪些常见的错误用法。单向散列函数是密码学的基础,扎扎实实地掌握了这部分内容,能够帮助我们建立起缜密的密码学思维方式

模块三:学会使用加密算法
在这个部分,我们会讨论加密算法的相关知识,比如说,什么是对称密钥、如何选择合适的对称密钥、加密算法的安全陷阱有哪些、ECB模式为什么不安全等等。你不用担心这部分知识枯燥难学,我们会把重点放在各种密码技术的适用场景和局限性上

最后,我们一起去看看密码学前沿技术的发展,感受密码学的魅力,学习应对未来的变局。

模块四:案例分析
在这部分,我们会通过一个综合案例,带你分析如何组合、搭配不同的密码技术,实现信息安全,也就是把密码学用起来,解决实际问题,将学到的知识融会贯通。


课程目录


特别放送

免费领取福利



限时活动推荐


订阅须知

💡 学习建议

  • 建议按照课程目录顺序学习,循序渐进掌握知识点
  • 每个章节配合实战练习,巩固所学内容
  • 遇到问题可在评论区交流,社区互助学习
  • 完成课程后尝试独立项目,检验学习成果

❓ 常见问题 FAQ

这个教程适合什么水平的学习者?

本教程从基础概念讲起,逐步深入到高级应用,适合零基础初学者到有一定经验的开发者。无论您是刚入门还是想提升技能,都能从中受益。

学习这个教程需要多长时间?

根据个人基础和每天学习时间不同,通常需要2-4周可以完成基础部分,深入掌握需要1-2个月的持续学习和实践。建议每天投入1-2小时系统学习。

学完后能达到什么水平?

完成本教程后,您将掌握编程与开发的核心技术和最佳实践,能够独立开发实际项目,具备中级开发工程师的技术能力,为求职或晋升打下坚实基础。