本文主要是介绍网络安全CTF夺旗赛入门到入狱-密码学上篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
哈喽大家好,我是菜鸡林某。
今天给大家带来CTF夺旗赛入门的第一步密码学篇
本篇预计分为两个部分
第一部分讲一下什么是密码学以及密码学基础的术语
下半部分讲几种常见的密码编码及其解码方法和几种常见的加密
当然不懂什么是CTF的同学也可以去看看我之前的帖子
传送门:
网络安全CTF夺旗赛入门到入狱-入门介绍篇
好那么林某人密码学课堂正式开课
一、什么是密码学?
Ø 平时大家登陆输入的账号密码是密码学的密码吗?
•—— 平时输入的那个密码专业来讲,称之为口令。
•—— 密码学的密码指的是通过加密算法运算得到的密文。
我来打个比方红豆和绿豆两个不同的豆子经过筷子或者搅拌机的搅拌得到的混合豆子。这当中红豆绿豆是明文,搅拌用的筷子或搅拌机就是加密的密钥,得到的混合物就是密码的密文,而我们的搅拌方式和分离红豆绿豆的方式就是加密解密的算法。
二、密码学的发展
密码学的发展大致分为四个阶段
第一个阶段是从古代到19世纪末——古典密码(classical cryptography)
在古代的战争中,多见使用隐藏信息的方式保护重要的通信资料。比如先把需要保护的信息用化学药水写到纸上,药水干后,纸上看不出任何的信息,需要使用另外的化学药水涂抹后才可以阅读纸上的信息。
这些方法都是在保护重要的信息不被他人获取,但藏信息的方式比较容易被他人识破,例如增加哨兵的排查力度,就会发现其中的猫腻,因而随后发展出了较难破解的古典密码学。
- 替换法
替换法很好理解,就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将 a 替换成 b,c替换成e ,这样acc 单词就变换成了bee,不知道替换规则的人就无法阅读出原文的含义。
替换法有单表替换和多表替换两种形式
。
单表替换即只有一张原文密文对照表单,发送者和接收者用这张表单来加密解密。
多表替换即有多张原文密文对照表单,不同字母可以用不同表单的内容替换。
例如约定好表单为:表单 1:abcde-swtrp 、表单2:abcde-chfhk 、表单 3:abcde-jftou。
规定第一个字母用第三张表单,第二个字母用第一张表单,第三个字母用第二张表单,这时 bee单词就变成了
(312)fpk ,破解难度更高,其中 312 又叫做密钥,密钥可以事先约定好,也可以在传输过程中标记出来。 - 移位法
移位法就是将原文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后得出密文,典型的移位法应用有 “ 恺撒密码 ”。
例如约定好向后移动2位(abcde - cdefg),这样 bee 单词就变换成了dgg 。
同理替换法,移位法也可以采用多表移位的方式,典型的多表案例是“维尼吉亚密码”(又译维热纳尔密码),属于多表密码的一种形式。 - 古典密码破解方式
古典密码虽然很简单,但是在密码史上是使用的最久的加密方式,直到“概率论”的数学方法被发现,古典密码就被破解了。
英文单词中字母出现的频率是不同的,e以12.702%的百分比占比最高,z 只占到0.074%,感兴趣的可以去百科查字母频率详细统计数据。如果密文数量足够大,仅仅采用频度分析法就可以破解单表的替换法或移位法。
多表的替换法或移位法虽然难度高一些,但如果数据量足够大的话,也是可以破解的。以维尼吉亚密码算法为例,破解方法就是先找出密文中完全相同的字母串,猜测密钥长度,得到密钥长度后再把同组的密文放在一起,使用频率分析法破解。
第二个阶段从20世纪初到1949年——近代密码
古典密码的安全性受到了威胁,外加使用便利性较低,到了工业化时代,近现代密码被广泛应用。
恩尼格玛机是二战时期纳粹德国使用的加密机器,后被英国破译,参与破译的人员有被称为计算机科学之父、人工智能之父的图灵。
恩尼格玛机使用的加密方式本质上还是移位和替代,只不过因为密码表种类极多,破解难度高,同时加密解密机器化,使用便捷,因而在二战时期得以使用。
第三个阶段从C.E.Shannon(香农) 于1949年发表的划时代论文“The Communication Theory of Secret Systems ”开始——现代密码
- 对称密码
对称密码应用了相同的加密密钥和解密密钥。对称密码分为:序列密码(流密码),分组密码(块密码)两种。流密码是对信息流中的每一个元素(一个字母或一个比特)作为基本的处理单元进行加密,块密码是先对信息流分块,再对每一块分别加密。
例如原文为1234567890,流加密即先对1进行加密,再对2进行加密,再对3进行加密……最后拼接成密文;块加密先分成不同的块,如1234成块,5678成块,90XX(XX为补位数字)成块,再分别对不同块进行加密,最后拼接成密文。前文提到的古典密码学加密方法,都属于流加密。
常见的加密DES、3DES、IDEA、AES
- 非对称密码
对称密码的密钥安全极其重要,加密者和解密者需要提前协商密钥,并各自确保密钥的安全性,一但密钥泄露,即使算法是安全的也无法保障原文信息的私密性。
在实际的使用中,远程的提前协商密钥不容易实现,即使协商好,在远程传输过程中也容易被他人获取,因此非对称密钥此时就凸显出了优势。
非对称密码有两支密钥,公钥(publickey)和私钥(privatekey),加密和解密运算使用的密钥不同。用公钥对原文进行加密后,需要由私钥进行解密;用私钥对原文进行加密后(此时一般称为签名),需要由公钥进行解密(此时一般称为验签)。公钥可以公开的,大家使用公钥对信息进行加密,再发送给私钥的持有者,私钥持有者使用私钥对信息进行解密,获得信息原文。因为私钥只有单一人持有,因此不用担心被他人解密获取信息原文。.
常见的加密RSA、ECC、ElGamal
- 数据摘要算法
数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法,常见的摘要算法有MD5和SHA
在互联网上进行大文件传输时,都要得用MD5算法产生一个与文件匹配的、存储MD5值的文本文件(后缀名为 .md5或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV 类似的方法来检查文件完整性,绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。
SHA中SHA1的应用较为广泛,主要应用于CA和数字证书中,另外在互联网中流行的BT软件中,也是使用SHA1来进行文件校验的,由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢
密码学是研究编制密码和破译密码的技术科学。
研究密码变化的客观规律,
应用于编制密码以保守通信秘密的,称为编码学
;
应用于破译密码以获取通信情报的,称为破译学
,总称密码学
。
Ø 密码编码学是包含数据变换的原理、工具和方法的一门学科,这种数据变换的目的是为了隐藏数据的信息内容,阻止对数据的篡改以及防止未经认可使用数据。
Ø 密码编码学是论述使明文变得不可懂的密文,以及把已加密的消息变换成可懂形式的艺术和技巧。
密码学的相关术语
- 密钥: 分为加密密钥和解密密钥。
- 明文:没有进行加密,能够直接代表原文含义的信息。
- 密文:经过加密处理处理之后,隐藏原文含义的信息。
- 加密:将明文转换成密文的实施过程。
- 解密:将密文转换成明文的实施过程。
- 密码算法:密码系统采用的加密方法和解密方法,随着基于数学密码技术的发展,加密方法
一般称为加密算法,解密方法一般称为解密算法。
这篇关于网络安全CTF夺旗赛入门到入狱-密码学上篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!