密码学基础知识0基础小白版超详细收藏这篇就够了目录一、密码的基础概念1密码的概念2.密码的技术发展3密码算法分类对称密码算法1序列密码2分组密码1分组密码的工作模式公钥密码算法各类公钥密码算法——各类算法对比杂凑密码算法常见的杂凑函数的对比二密钥管理的基本概念1密码算法的安全强度2密钥的生命周期1密钥生成产生钥匙a在密钥协商过程中从共享秘密派生密钥2密钥分发送钥匙3密钥存储存钥匙4. 密钥使用用钥匙5. 密钥更新 / 轮换换钥匙6. 密钥吊销作废钥匙7. 密钥销毁销毁钥匙8.密钥归档保管钥匙一、密码的基础概念1密码的概念密码是采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。平时遇到的登录微信、QQ、邮箱遇到的“密码”只能叫做口令。2.密码的技术发展大致经历了古典密码、机械密码和现代密码三个发展阶段。古典密码是密码学的源头如凯撒密码、滚筒密码、密码盘基本上都是算法参数的形式机械密码是用了一些机械和电动装备用于实现数据加解密计算典型代表是恩尼格玛密码机现代密码的奠基性论文《保密系统的通信理论》在《贝尔系统技术杂志》上发表。3密码算法分类常见的密码算法包括对称密码算法、非对称密码算法和密码杂凑算法三个1对称密码算法简单说就是**加密和解密用同一个 “钥匙”** 的加密方法。打个比方就像你用一把钥匙锁上了一个箱子之后想打开这个箱子必须用同一把钥匙才行。这里的 “钥匙” 就是一串特定的代码加密时用它把明文能看懂的信息变成乱码密文解密时再用这把钥匙把乱码变回明文。 它的特点很明显加密和解密的 “钥匙” 完全相同或者能从一个快速算出另一个。就像现实中分享钥匙一样这种算法需要保证 “钥匙” 能安全地传给对方不然别人拿到钥匙就能解开信息。速度通常很快适合加密大量数据比如我们日常用的聊天软件加密、文件加密很多都用到了对称密码算法比如 AES 算法。对比一下如果加密和解密用不同的钥匙比如一个是公开的 “锁”一个是只有自己有的 “钥匙”那就是非对称密码算法了。1序列密码常见的有ZUC算法。其算法长度为128比特该算法由128比特种子密钥和128比特IV共同作用生成32比特的密钥流。2分组密码SM4——是我国发布的商用密码算法中的分组密码算法。为了配合WAPI无线局域网标准的推广应用。下面是常见的对称密码算法的对比分组密码的工作模式2公钥密码算法又叫非对称加密算法简单说就是**加密和解密用两把不同的 “钥匙”** 的加密方法这两把钥匙是一对被称为 “公钥” 和 “私钥”。打个比方就像你有一个带两把钥匙的锁 —— 一把是 “公钥”可以复制很多份给任何人相当于一个 “公开的信箱”别人都能用这把钥匙公钥把信件锁进信箱而另一把是 “私钥”只有你自己保管相当于 “信箱的唯一钥匙”只有用它才能打开信箱取出信件。 它的核心特点公钥公开谁都能用来加密信息但加密后的信息**只有对应的私钥才能解密**别人拿公钥也解不开。反过来用私钥加密的信息比如数字签名别人可以用对应的公钥验证是不是你发的因为只有你的私钥能生成这样的加密结果。不需要像对称密码那样 “偷偷传递钥匙”因为公钥可以随便给安全性主要靠私钥的绝对保密私钥一旦泄露别人就能解密你的信息。但缺点是速度通常比对称密码慢所以一般不直接加密大量数据更多用于 “传递对称密码的钥匙”比如 https 加密时先用公钥加密对称钥匙再用对称钥匙加密数据或者做身份验证比如数字签名。常见的公钥密码算法有 RSA、ECC椭圆曲线加密等我们平时网上付款、发邮件签名背后很多都用到了它。各类公钥密码算法——各类算法对比3杂凑密码算法杂凑算法也叫哈希算法、散列算法其实**不是加密算法**它的作用更像 “信息指纹”—— 把任意长度的信息转换成一个固定长度的 “字符串”叫哈希值或散列值而且这个过程是 “单向” 的没法从哈希值反推回原来的信息。打个通俗的比方就像把一堆食材比如蔬菜、肉类放进粉碎机最后磨成一小堆固定大小的粉末哈希值。不管原来的食材是多是少、是什么种类出来的粉末量是固定的而且你没法从这堆粉末反推出原来的食材是哪些但只要食材有一点点变化哪怕多了一粒盐磨出来的粉末就会完全不一样。它的核心特点单向性抗原像攻击只能从原文算出哈希值不能从哈希值还原原文//。弱////抗碰撞性抗第二原像攻击//不同的原文哪怕只差一个字符几乎不可能算出相同的哈希值叫 “碰撞”概率极低。强抗碰撞攻击即找到两个消息M1、M2M1≠M2使得H(M1)H(M2)是困难的。固定长度不管原文是 1 个字还是 1 个 G 的文件哈希值的长度固定比如 MD5 是 32 个字符SHA-256 是 64 个字符。常见用途密码存储网站不会存你的明文密码而是存密码的哈希值。你登录时网站把你输入的密码算成哈希值和存的对比一致就通过这样即使数据库泄露别人也拿不到明文密码。文件校验比如下载软件时官网会给一个哈希值。你下载后算出文件的哈希值和官网的对比一致就说明文件没被篡改或损坏。数字签名辅助结合公钥算法用哈希值给大文件 “瘦身”再签名提高效率。常见的杂凑算法有 MD5已不安全易被破解、SHA-1逐渐淘汰、SHA-256目前广泛使用安全性高等。常见的杂凑函数的对比二密钥管理的基本概念1密码算法的安全强度Q:选择什么密码算法如何评估量化评估算法安全性A:不同场景需要不同类型的算法核心原则是优先选择经过国际 / 行业标准认证、且未被发现重大漏洞的算法。对称加密算法一般用于数据加密如文件、通讯。非对称安全强度Security Strength表示征攻破一个密码算法或系统所需的工作量 简单来说就是这个算法能抗住多久的破解攻击单位为 bit , 意义一个算法安全强度为xbit则意味着攻破它所需的计算量最多为2的x次方次。2密钥的生命周期密钥的生命周期是指从密钥生成到销毁的时间跨度。不同的密钥有不同的密钥周期1密钥生成产生钥匙密钥生成是密钥生命周期的起点就像工厂生产钥匙密钥生成是 “造钥匙” 的第一步。不是随便编个数字就行得用专门的算法比如 RSA、AES国家主管部门批准的随机数发生器生成一串随机且复杂的字符确保别人猜不到。举例生成一把 “家门钥匙”齿纹越复杂小偷越难复制。密钥的长度比如 256 位就像齿纹的复杂度越长越安全。在实际场景中密钥可能不是由随机数直接生成的而是通过某个秘密值进行派生的——密钥派生函数Key Derivation FunctionKDF,它一般利用对称密码算法或者密码杂凑算法实现密钥生成。a在密钥协商过程中从共享秘密派生密钥密钥协商里的 “从共享秘密派生密钥”就是两个人先通过某种方式搞出一个 “共同的秘密”比如用 Diffie-Hellman 算法算出的那个数但这个秘密不能直接当密钥用得经过一套固定的 “加工流程”变成真正能用的密钥。举个例子你和朋友约定好一个 “共享秘密”—— 比如一串数字 “123456”。但这串数字太简单直接当密码密钥不安全。于是你们提前说好规则“把每个数字加 3再倒过来”。按这规则加工后“123456” 就变成了 “987654”这个结果才是你们实际用的密钥。这里的 “加工流程” 有两个关键作用让原始的共享秘密更 “像密钥”比如长度符合要求、格式规范增加安全性就算原始秘密被人偷看了一点没掌握加工规则也猜不出最终密钥。现实中这个 “加工流程” 有专业的算法比如 KDF但核心逻辑就是用一个共同的秘密加一套双方都知道的 “变身规则”变出能用的密钥。b从主密钥派生密钥密钥分散从主密钥派生密钥说白了就是先有一个 “总钥匙”主密钥然后用一套固定的 “分钥匙规则”从这个总钥匙里变出好多把 “专用钥匙”派生密钥每把专用钥匙各管一摊事儿。举个生活例子你家有个 “主钥匙” 能打开大门但家里还有卧室、书房、保险柜总不能都用大门钥匙开吧于是你按事先定好的规则比如 “主钥匙掰断左边 3 厘米是卧室钥匙掰断右边 2 厘米是书房钥匙”从主钥匙衍生出几把专用钥匙各自对应不同的门。这里的关键逻辑主密钥是 “根”是最核心的那个秘密得保管得特别好派生规则是公开的 “公式”比如用专业算法 KDF但没有主密钥光知道规则也变不出专用钥匙派生出来的密钥各司其职比如有的负责加密数据有的负责验证签名有的负责临时会话就算某把专用钥匙泄露了主密钥和其他钥匙还能安全用不用全换。这样做的好处是不用单独生成和保管一大堆钥匙只要管好主密钥就能按需求随时变出各种专用钥匙既安全又方便管理。适用于生成大量对称密钥的场景。具备明确的层级关系 国家-省部-地方-个人2密钥分发送钥匙生成的密钥要送到需要用的人手里比如发送方和接收方但过程必须偷偷摸摸不能被别人看到。比如你给朋友寄钥匙不能贴在快递单上得用加密的方式比如 “密钥交换协议”私下传递确保只有朋友能收到。如果密钥在分发时被截获就像快递被偷别人就能用你的钥匙开门了。3密钥存储存钥匙钥匙不能随手丢得找个安全的地方放起来。个人层面可能存在手机的加密芯片里或专门的 “密钥管理工具”类似带锁的抽屉。企业层面可能存在硬件安全模块HSM里这是一种防黑客的 “保险箱”即使电脑被黑密钥也拿不出来。绝对不能明文存在记事本、电脑桌面就像把钥匙插在门锁上。4. 密钥使用用钥匙这是密钥发挥作用的环节比如加密文件、解密信息、验证身份类似用钥匙开门、锁门。加密用密钥把明文比如 “我爱你”变成乱码比如 “#%/*”别人看不懂。解密接收方用同样的密钥对称加密或配对的密钥非对称加密把乱码变回 “我爱你”。使用时要 “用完就收”不能在内存里留痕迹防止被恶意程序偷走。5. 密钥更新 / 轮换换钥匙钥匙用久了可能磨损或有泄露风险需要定期换新的。就像家里的钥匙用了几年担心被人配过换一把新锁芯。比如银行的密钥可能每天换一次普通 APP 的密钥可能每月换一次根据安全需求定。换新钥匙时要确保旧钥匙彻底失效同时新钥匙的分发和存储要重新走一遍安全流程。6. 密钥吊销作废钥匙如果发现钥匙可能被偷了比如怀疑密钥泄露就得紧急宣布这把钥匙作废不让它再用。发现钥匙丢了赶紧告诉家人 “旧钥匙没用了别用它开门”同时换锁。通过 “证书吊销列表CRL” 或 “在线证书状态协议OCSP” 通知所有人“这把密钥失效了别信它”7. 密钥销毁销毁钥匙当密钥彻底没用了比如过期、被吊销或系统停用要彻底毁掉一点痕迹都不能留。不是简单删除文件而是用随机数据覆盖存储密钥的内存或硬盘区域就像把旧钥匙掰断、熔掉确保无法复原。旧手机淘汰时要彻底删除密钥信息否则别人恢复数据可能拿到密钥。8.密钥归档保管钥匙密钥归档说白了就是把加密用的 “钥匙”密钥妥善保存起来方便以后需要的时候能找到、能用。打个比方你家里有个保险柜钥匙很重要但平时不用总拿在手里就会找个安全的地方比如抽屉深处、专门的钥匙盒存起来万一哪天要用保险柜就能快速找到钥匙。密钥归档也是这个道理这些 “密钥” 是用来加密文件、数据、通讯内容的没有它们加密的东西就解不开。归档不是随便丢着而是要按规则存比如存在安全的服务器、加密的存储设备里还要记清楚哪个密钥对应哪批数据、什么时候到期等等。目的是防止密钥丢了比如管理员离职没交接以后想解密老数据时找不到钥匙导致重要信息永久丢失。黑客/网络安全学习包《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取请添加图片描述以上资料如何领取文章来自网上侵权请联系博主