超详细!密码学简述,零基础入门到精通,永久收藏备用
前言共三部分密码学简介、密码领域和常见密码算法、密码学杂谈和实践第一部分初识密码学什么是密码学让我给你讲个故事。在古代信息需要从一个王国传递到另一个王国。当信息传递者在王国之间旅行时由于保管着机密信息传递者常常会受到入侵者的攻击入侵者想要拦截并读取信息的内容。在这种情况下成功地将信息从一端发送到另一端非常困难。所以人们想出了一个解决这个问题的方法。这个想法是剃掉信使的头发把信息写在头皮上。后来一旦信使头上的头发重新长出来基本上覆盖了信息信使就会被派往另一个王国在那里传递信息。如果信使被入侵者拦截和抓获那么他们将无法找到被信使头发覆盖的信息。这是密码学的一个很好的例子密码学是*一种将我们的敏感信息隐藏起来不让不受欢迎的人发现的方法。*古代技术的问题人类历史上发明了几种此类技术来保护我们的数据安全。然而自古以来人们就注意到这些技术在一些关键领域存在不足即隐藏数据需要很长时间技术很慢隐藏数据的过程很繁琐它不是自动的每次都需要手动隐藏数据安全性不高这些技术存在一些弱点第一台加密机随着时代的进步我们需要我们的加密机制比以前更快、更高效、更安全。德国在世界大战中发明的恩尼格玛密码机就是一个很好的例子。这台机器长这样恩尼格玛密码机图片来自阿兰图灵研究所这台机器用于隐藏攻击坐标以便盟军无法派遣军队阻止攻击。攻击坐标曾经被加密隐藏数据的过程而消息在另一边被解密取消隐藏数据。这是一台使用多字母替换密码的机电转子机器。暂时不必担心深入理解它们。下面这份完整版的网络安全/黑客技术学习资料已经上传网盘朋友们如果需要可以微信扫描下方二维码 即可自动领取↓↓↓布莱切利园炸弹图片取自维基百科为了应对恩尼格玛密码艾伦·图灵的团队发明了 Bombe一种可以解密恩尼格玛密码加密信息的机器。因此这是一场机器之间的斗争。恩尼格玛密码负责加密信息隐藏信息而 Bombe 则负责显示信息。到那时数学已经参与到加密过程中众所周知数学最终将成为密码学和数据安全领域的关键因素。密码学是阻止黑客和恶意人士非法获取我们的信息并对我们造成伤害的唯一屏障。很快计算机和互联网都发明了。人们需要隐藏互联网上的信息因此出现了新的算法来隐藏信息。该机制很简单数据将使用一条称为密钥的秘密信息进行隐藏只有发送者和接收者知道。因此只有这两方才能分别隐藏和读取数据并防止不受欢迎的人看到它。以下是该过程的摘要。对称密钥加密图片来自 Geekflare 网站数据是明文。数据的隐藏格式称为密文或加密文本。将明文转换为密文的过程称为加密密钥是加密密钥即密钥。消息到达接收方后使用相同的密钥来取消隐藏此过程称为解密。由于加密和解密过程的密钥相同因此它被称为私钥加密或对称密钥加密。您将阅读的密码学领域的大部分内容将涉及加密和解密的基本过程以及密钥的使用。从根本上讲理想情况下我们只希望密钥对黑客保密即使黑客知道算法和密文他们也无法破解系统。这被称为Kerckhoff 原理如下所示摘自https: //cybersophia.net/articles/what-is/what-is-kerckhoffs-principle/这在某种程度上是所有现代加密机制和算法的基础。这些原则在设计时将安全性作为核心同时还考虑了计算的简易性。这些原则还规定系统不必是最秘密的组件因为该功能由密钥提供。该系统不必保密并且即使落入敌人手中也不会造成不便。- Auguste Kerckhoffs在设计系统时我们应该假设敌人会立即完全熟悉它们。- 克劳德·香农我们将慢慢尝试了解这些加密系统是如何在数学上构建或开发的。但是让我们看看另一种使用多个密钥而不是 1 个密钥的加密系统如私钥或对称密钥加密。这种新型的加密系统称为非对称密钥加密或公钥加密。让我们看一下图表一目了然地了解它。此处的加密和解密过程通过 2 个不同的密钥完成。加密密钥与解密密钥不同。简化如下如果在对称密钥加密系统中*加密密钥 解密密钥然后**在非对称密钥加密系统中**加密密钥 ! 解密密钥*对称和非对称之间的另一个真正关键的区别是在对称密钥加密中整个系统中只有一个密钥而在对称密钥加密系统中有**2*n 个密钥其中 n 表示系统中的参与方数量。这意味着如果系统中有 5 个参与方那么系统中每个参与方都会有一个公钥和一个私钥。**因此系统中总共会有 5*2 10 个唯一的密钥。如下图所示。第二部分常见密码领域及算法密码学领域密码学领域包含多个子领域。让我们总结一下密码学领域包含的子主题。首先我们可以想象密码学领域分为两个子领域。子域名 01 → 加密这是与创建加密协议有关的领域这些协议可以保护我们的数据免受第三方的侵害因为我们希望能够安全地进行通信。加密技术远远超出了安全的范围也提高了通信过程的效率。通信过程中的安全问题也会影响通信效率因为修复这些问题需要时间而且会严重损害服务的整体品牌形象。子域名 02 → 密码分析这是检查和分析现有加密和安全协议的安全参数的领域。这也是黑客用来破坏现有协议和利用系统的领域。这是密码学更数学化的一面涉及使用复杂的微分和积分。密码学的要点有人可能会问我们为什么要有诸如密码学之类的系统和领域。难道只是为了隐藏我们持有的数据不让黑客发现吗事实证明这并不是密码学的唯一用途。事实证明我们无法说出系统中谁是黑客因为黑客不是天生的。这意味着任何人都可能是黑客每个人都可能是一样的互相发动攻击。因此当前的服务和系统在提供安全性方面需要注意三件事数据必须对对手或各方隐藏他们不应看到数据数据在从一个节点或计算机移动到另一个节点或计算机时不得以不良方式更改提供服务的网络应不可用。这是安全三角机密性 → 隐藏数据完整性 → 确保数据不会以不良方式更改可用性 → 确保网络或通信链路不会中断。有几个因素会影响安全三角例如算法、网络安全、数据传输机制等。接下来让我们看看一些经典安全攻击的类别。经典的安全攻击让我们了解安全领域中可能发生的安全攻击。攻击分为两类被动攻击主动攻击被动攻击这些攻击本质上不是攻击。它们是不直接接触网络、不直接更改用户数据的攻击。此类攻击的目的是尽可能多地获取数据和情报然后将其与其他方法结合起来造成全面破坏。主动攻击这些攻击是直接由对手如果我们愿意的话可以称为黑客造成的损害对手对数据或系统进行更改从而损害系统的机密性、完整性或可用性从而造成经济、社会和/或个人损害。主动攻击有可能并且经常以被动和主动攻击相结合的方式发生。回顾对称密钥加密图片取自https://t.ly/BMSh1我们知道对称密钥加密使用单个密钥进行加密和解密。这意味着两个用户之间的系统将使用同一个密钥来隐藏和显示数据。接下来让我们看看一些流行的对称密钥算法。DES → 数据加密标准这就是著名的 DES 算法。DES 算法使用的独特概念是使用多轮而不是单轮。DES 通常涉及 16 轮递归加密。这意味着对于试图破解密钥的黑客来说破解系统需要递归地找出每一轮的密钥这意味着总共需要 16 个密钥。这已经意味着对手破解系统的过程将极其棘手和困难。传输密钥对于真实方来说也不是一项艰巨的任务因为每轮的轮密钥都来自一个只需传输一次的主密钥。然而截至撰写本文时DES 已被多次破解并且使用 DES 并不是业界推荐的标准。AES → 高级加密标准由于 DES 已被破解因此需要一种更好、更可靠的算法因此 Rijndael 算法被选为 DES 算法的后继者。AES 正是为此而生。AES 的特殊之处在于它继承了前代算法的因子或使用多轮算法。此外AES 还通过使用我们所谓的 S 盒增加了自己的特色其中数据也使用子字节、移位行和混合列操作进行混合和打乱。这为黑客增加了额外的混乱层与 DES 相比破解系统异常困难。然而AES 最近也被破解了在撰写本文时它不再是行业推荐的标准。这不必担心因为可以使用其他高级安全标准来代替 AES我们将很快讨论这一点。对对称密钥加密的批评该系统很容易想象密钥不会随着用户数量的增加而呈指数增长并且管理密钥相对容易与非对称系统相比。这也是对称密钥加密非常快速且合理使用的原因。对这种加密的最大批评是仅使用一个密钥即可实现的安全级别。安全性有限并且无法使用此方法进行多项加密操作例如证明由真实方执行的操作数字签名。回顾非对称密钥加密图片来源作者非对称密钥加密在有 6 名参与者的非对称系统中我们可以看到每个参与者将生成 2 个唯一密钥或一个密钥对。因此总共会有 12 个密钥。现在让我们也看看流行的非对称加密标准。RSA 算法有几种流行的非对称加密算法其中 RSA 最为流行。重要的是要了解 RSA 使用我们所谓的模块化算法为网络中的单个计算机或参与者生成 2 个唯一密钥或单个密钥对。这意味着其中一个密钥将用于加密另一个将用于解密。了解RSA算法模运算看上图想象一下 mod 相当于除以一个数然后求除法结果的余数。例如18 mod 9 相当于将 18 除以 9余数为 0。19 mod 9 的结果为 1因为将 19 除以 9 的余数意味着余数为 1。这是模数运算。记住这么多就足以理解 RSA 的基础了。现在让我们看看 RSA 是如何工作的。下面是我们将使用 RSA 加密和解密数据的两个方程式。图片取自https: //www.cantorsparadise.com/rsa-algorithm-in-depth-mathematical-walk-through-3bf33759022a让我们了解方程式中提到的关键术语。C → 密文 M → 明文消息 N → 用 e 取模的数字 → 部分公钥 d → 部分私钥让我们为上面提到的变量代入一些值。e 3 d 7 N 33 M 4 C 我们现在就找出答案假设某人有 2 个密钥一个公钥和一个私钥。现在我想使用公钥 RSA 系统加密消息 (M) 以隐藏它然后隐藏消息的加密版本。然后我将使用用户的公钥数据来加密消息。对于加密M ** e mod N** e mod N 4 ** 3 mod 33 31 → 这是密文 C因此我们将密文 31 传输到接收方最终使用用户的私钥进行解密。解密过程如下 →C ** d mod N** d mod N 31 ** 7mod 33 4 → 这是恢复的明文消息 M对非对称密钥加密的批评非对称密钥加密是现代密码学中一个强大且无可争议的部分。与对称密钥相比它提供了更高的安全性。然而对这种技术最大的批评来自于这样一个事实由于需要创建和共享大量密钥密钥管理极其棘手。这也是这种加密需要更多资源和计算的原因。第三部分密码学杂谈密码学Cryptography是一门将信息进行加密处理与传递以及分析加密信息的学科。根据以 RSA 为代表的公钥加密体系的出现可以将密码学的发展过程分为古典密码学与现代密码学两部分。古典密码学以「置换法」与「替换法」为基础多应用于军事与情报领域现代密码学则建立在数学、计算机与通信科学的基础上除了加密信息之外数字签名、数据完整性、身份认证等也是现代密码学的研究课题。密码学Cryptography大致可分为古典密码学Classic cryptography和现代密码学Modern cryptography两者的主要差别在于计算机的使用一般来说古典密码学是基于字符的而现代密码学是基于二进制位的。密码学的概念与人们平时登陆网站、使用银行账户的「密码」并不相同。这些用于身份认证的「密码」更准确的翻译是通行词password它是现代密码学的诸多应用之一。一般来说古典密码学是基于字符的而现代密码学是基于二进制位的。古典密码学主要包括两类即替换和置换。置换法依照一定的规则改变原始信息中的字母排列顺序替换法将原始信息中的字母按照一定的规则替换成其他字母。置换法与替换法的安全性较差古阿拉伯的学者们开创了破译加密信息的科学 — — 密码分析学通过频率分析的方法破解替换式加密法。代换代换密码是将明文中的字符替代成其他字符即替代转换若整个加密过程中每个字符采用同一张表替代则为单表代换密码类似的若整个加密过程中每个字符采用不同的表替代则为多表代换密码典型的单表代换密码有凯撒密码、培根密码等多表代换密码有维吉尼亚密码等。凯撒密码凯撒密码(Caesar cipher)就是将明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如当偏移量为3时所有的字母A将被替换成DB变成E以此类推。明文Hello World的加密过程如下取偏移量为3计算H的后3位为K以此类推密文为Khoor Zruog类似的解密过程如下计算K的前3位为H以此类推明文为Hello World注意当偏移量为13时这种凯撒密码的特例又被称为ROT13(回转13位)加密ROT13加密是一种对等加密(Reciprocal cipher)对等加密是对称加密的一个特例即该类密码的加密算法是它自己本身的逆反函数换言之要对其解密只需对其密文再次套用加密算法即可。当偏移量未知时可采用穷举法一个个试偏移量必定小于26。培根密码培根密码(Bacon’s cipher)加密时明文中的每个字母都会转换成一组5个英文字母。其转换依靠下表按照上表明文hello的密文为AABBBAABAAABABBABABBABBBA显然密文的长度是明文长度的5倍。除了上表用来加密小写明文外还有一张用来加密大写明文的表如下同理明文HELLO的密文为aabbbaabaaababbababbabbba。注意虽然表中出现了AB两种字符但培根密码的本质是二进制即用两种不同的特征来加密明文可以是字母的大小写或字体的样式等等。例如采用字母的大小写加密hello为GOod gOOd STUdY, dAY dAy UP, haHa其中大写代表A小写代表B类似的也可以用粗体代表A正常代表B以字体的样式加密hello。显然培根密码所包含的信息可以和用于承载其的文章完全无关。维吉尼亚密码维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法这一表格包括了26行字母表每一行都由前一行向左偏移1位得到。行为明文行列为密钥列密文位于表格内。明文HELLOWORLD的加密结果如下选择某一关键词作为密钥如SECRET对于明文第1个字母H对应密钥的第1个字母S于是使用表格中S行字母表进行加密得到密文第一个字母Z以此类推若密钥长度小于明文长度则转到密钥第1个字母继续循环最终得到密文ZINCSPGVNU类似的解密过程如下根据密钥第1个字母S所对应的S行字母表发现密文第1个字母Z位于H列因而明文第1个字母为H依次类推显而易见维吉尼亚密码相对于本文介绍的其他古典密码很难利用穷举法破解。置换置换密码是将明文中的字母重新排列字母本身不变但其位置改变即位置转换典型的有栅栏密码等。栅栏密码栅栏密码(Rail fence cipher)又称篱笆密码就是把要加密的明文分成n个一组然后把每组的第一个字连起来紧接着把每组的第二个字连起来以此类推形成一段无规律的话。明文Hello World的加密过程如下去掉空格HelloWorld5个一组HelloWorld取出每组第1个字母HW取出每组第2个字母eo以此类推连在一起HWeolrllod加上适当空格HWeol rllod类似的解密过程如下去掉空格HWeolrllod分成5栏HW、eo、lr、ll、od取出每栏第1个字母Hello依次类推连在一起HelloWorld加上适当空格Hello World注意这里栅栏的栏数取决于n的取值一般而言n要整除字母数n不可能大于或等于字母数当不知道n为多少时可采用穷举法一个个试。其他当铺密码准确来说当铺密码不是一种加密方式而是一种编码方式它是将中文和数字进行转化的算法具体为当前汉字有多少笔画出头就转化成数字几。如王夫 井工 夫口 由中人即为67 84 70 123。猪圈密码猪圈密码(Pigpen cipher)又称共济会密码(Masonic cipher)是一种以格子为基础的简单代换式密码。下图为猪圈密码中所用符号与26个英语字母之间的对应关系明文X MARKS THE SPOT的加密结果如下在长达一千多年的时间里古典密码学以置换法与替换法为基础不断演进。以维吉尼亚密码为代表的多字母表替换式加密法轮流使用多个不同的替换式密码表依次对明文中的字母进行加密。第二次世界大战时德军使用的「恩尼格玛」是一种基于复杂的多表替换加密原理的机械式密码机但最终由于自身加密算法的缺陷被图灵设计的「炸弹」攻克。休·怀特摩尔创作的戏剧“破译密码”的内容为艾伦·图灵的生活艾伦·图灵是在二战中帮助英国破译恩尼格玛密码机的密码的最大功臣。英国畅销书作家罗伯特·哈里斯于1996年出版的小说“恩尼格玛”讲述的是布莱切利园的密码学家们破译恩尼格玛的过程。2001年这本小说被拍成了电影“恩尼格玛”。由乔纳森·莫斯托拍摄并于2000年上映的电影U-571讲的是一群美国潜艇兵为缴获一台恩尼格玛密码机而抢了一艘德国潜艇后的故事。电影中的恩尼格玛密码机是一个收藏家手里的真品。这部电影的情节并没有严格地按照历史发展英国皇家海军在1941年击败德军潜艇U-110号最早获得德国海军密码机也是猎杀U-571电影的真实版本美国只是在1944年诺曼底登陆之前缴获了一艘U型潜艇。2014年上映的电影《模仿游戏》讲述了艾伦·图灵等英国的数学家、逻辑学家协助军方破译恩尼格玛密码机的过程。2019年网易推出的非对称对抗悬疑手游《第五人格》中求生者阵营需要破译五台密码机让大门通电输入密码逃生所需破译的五台密码机就是恩尼格玛密码机。置换式与替换式加密法的弱点在于没能完全消除密文中有关明文的某些特征保留了明文中的某些信息。奥古斯特·柯克霍夫在 19 世纪提出的柯克霍夫原则Kerckhoff’s Principle概括性地总结了加密算法应遵循的设计原则即使加密系统的各个环节都是公开知识Public knowledge只要密钥未被泄漏加密系统都应该是安全的。加密算法的安全性问题本质在于如何降低攻击者在了解加密算法并拥有足够长的密文片段的前提下猜测出正确密钥的可能性1948 年香农创立了信息论并在次年的一篇论文中从数学的角度讨论了加密系统人们开始从科学的角度探究密码学的奥秘。零基础入门学习网络安全网络安全学习路线学习资源对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。**读者福利 |**【CSDN大礼包】最新网络安全/网安技术资料包~282G无偿分享**安全链接放心点击**!网络安全的知识多而杂怎么科学合理安排下面给大家总结了一套适用于网安零基础的学习路线应届生和转行人员都适用学完保底6k就算你底子差如果能趁着网安良好的发展势头不断学习日后跳槽大厂、拿到百万年薪也不是不可能初级网工1、网络安全理论知识2天①了解行业相关背景前景确定发展方向。②学习网络安全相关法律法规。③网络安全运营的概念。④等保简介、等保规定、流程和规范。非常重要2、渗透测试基础一周①渗透测试的流程、分类、标准②信息收集技术主动/被动信息搜集、Nmap工具、Google Hacking③漏洞扫描、漏洞利用、原理利用方法、工具MSF、绕过IDS和反病毒侦察④主机攻防演练MS17-010、MS08-067、MS10-046、MS12-20等3、操作系统基础一周①Windows系统常见功能和命令②Kali Linux系统常见功能和命令③操作系统安全系统入侵排查/系统加固基础4、计算机网络基础一周①计算机网络基础、协议和架构②网络通信原理、OSI模型、数据转发流程③常见协议解析HTTP、TCP/IP、ARP等④网络攻击技术与网络安全防御技术⑤Web漏洞原理与防御主动/被动攻击、DDOS攻击、CVE漏洞复现5、数据库基础操作2天①数据库基础②SQL语言基础③数据库安全加固6、Web渗透1周①HTML、CSS和JavaScript简介②OWASP Top10③Web漏洞扫描工具④Web渗透工具Nmap、BurpSuite、SQLMap、其他菜刀、漏扫等恭喜你如果学到这里你基本可以从事一份网络安全相关的工作比如渗透测试、Web 渗透、安全服务、安全分析等岗位如果等保模块学的好还可以从事等保工程师。薪资区间6k-15k到此为止大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗【“脚本小子”成长进阶资源领取】7、脚本编程初级/中级/高级在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中面对复杂多变的网络环境当常用工具不能满足实际需求的时候往往需要对现有工具进行扩展或者编写符合我们要求的工具、自动化脚本这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中想要高效地使用自制的脚本工具来实现各种目的更是需要拥有编程能力.零基础入门建议选择脚本语言Python/PHP/Go/Java中的一种对常用库进行编程学习 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP IDE强烈推荐Sublime ·Python编程学习学习内容包含语法、正则、文件、 网络、多线程等常用库推荐《Python核心编程》不要看完 ·用Python编写漏洞的exp,然后写一个简单的网络爬虫 ·PHP基本语法学习并书写一个简单的博客系统 熟悉MVC架构并试着学习一个PHP框架或者Python框架 (可选) ·了解Bootstrap的布局或者CSS。8、超级网工这部分内容对零基础的同学来说还比较遥远就不展开细说了贴一个大概的路线。感兴趣的童鞋可以研究一下不懂得地方可以【点这里】加我耗油跟我学习交流一下。网络安全工程师企业级学习路线如图片过大被平台压缩导致看不清的话可以【点这里】加我耗油发给你大家也可以一起学习交流一下。一些我自己买的、其他平台白嫖不到的视频教程需要的话可以扫描下方卡片加我耗油发给你都是无偿分享的大家也可以一起学习交流一下。网络安全学习路线学习资源结语网络安全产业就像一个江湖各色人等聚集。相对于欧美国家基础扎实懂加密、会防护、能挖洞、擅工程的众多名门正派我国的人才更多的属于旁门左道很多白帽子可能会不服气因此在未来的人才培养和建设上需要调整结构鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”才能解人才之渴真正的为社会全面互联网化提供安全保障。特别声明此教程为纯技术分享本书的目的决不是为那些怀有不良动机的人提供及技术支持也不承担因为技术被滥用所产生的连带责任本书的目的在于最大限度地唤醒大家对网络安全的重视并采取相应的安全措施从而减少由网络安全而带来的经济损失