CTF---密码学(1)--古典密码-理论与实战详解
时间:2024-05-04 10:25:52 来源:网络cs 作者:言安琪 栏目:运营工具 阅读:
密码设计的根本目标:
机密性:确保数据在传输或存储的过程中不被窃取完整性:确保数据在传输或存储的过程中不被篡改或损坏可用性:确保数据在需要的时候可以被合法的用户访问或使用认证性:确保数据的来源和真实性不可否认性:确保发送者无法否认其发送的数据,可以证明数据的来源和真实性 其中,前三者被称为信息安全的CIA三要素常见的利用密码学的攻击方法:
唯密文攻击:指在仅知道已加密数据(即密文)的情况下攻击已知明文攻击:指在掌握了某段明文和对应密文的情况下攻击选择明文攻击:指攻击者除了知道加密算法外,还可以选定明文消息从而得到加密后的密文。选择密文攻击:指攻击者可以选择密文进行解密。唯密文攻击在攻击对称密码体制和非对称密码体制时都适用;已知明文攻击多用于攻击对称密码体制;选择明文攻击和选择密文攻击多用于攻击非对称密码体制;
一、古典密码:
一.1 古典密码---摩斯密码:
摩斯密码(Morse code)是一种用于传输信息的编码系统,通过使用短脉冲(点)和长脉冲(划)的组合来表示字母、数字和标点符号。摩斯密码最初被用于电报通信,但至今仍在某些情况下使用,如无线电通信、求救信号等。 摩斯密码使用了两个基本的信号单位:点(·)和划(—)。通过这两个单位的组合,可以表达不同的字母、数字和标点符号。摩斯密码基本码表:
如下是摩斯密码的基本码表 字母(注意都是大写字母!):通过字母码表可以发现,国际通用的求救信号SOS对应的摩斯密码为"...---..."
数字:
标点符号:
非英文字符:
特殊符号:
摩斯密码实战演练:
这里使用"攻防世界"中的题目:攻防世界官网https://adworld.xctf.org.cn/
注册并登陆后搜索Morse即可找到:
再点击下载附件:
附件打开后发现是由长度不等的1和0组成,这里需要把1和0转换为摩斯密码中对应的划和点:
11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110-- --- .-. ... . -.-. --- -.. . .. ... ... --- .. -. - . .-. . ... - .. -. --.
得到了对应的摩斯码后就可以通过查询摩斯密码的基本码表来进行解密了,但是这里一个一个的查过于麻烦,一方为大家推荐一个解密网站(这个网站也可以直接解密01组合的内容,不需要再转换为点划组合):
摩斯密码在线解密https://www.lddgo.net/encrypt/morse
得到对应的明文后,还需要应题目要求将大写字母转换为小写,最终得到flag:
11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110-- --- .-. ... . -.-. --- -.. . .. ... ... --- .. -. - . .-. . ... - .. -. --.MORSECODEISSOINTERESTINGmorsecodeissointerestingsyberpeace{morsecodeissointeresting}
一.2 古典密码---换位密码
一.2.1 换位密码---栅栏密码
栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合...每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文
算法一:
明文: The quick brown fox jumps over the lazy dog
去空格: Thequickbrownfoxjumpsoverthelazydog
分组(两个一组): Th eq ui ck br ow nf ox ju mp so ve rt he la zy do g
第一组: Teucbonojmsvrhlzdg
第二组: hqikrwfxupoeteayo
密文: Teucbonojmsvrhlzdghqikrwfxupoeteayo
这段密文的对应解密方式就是先将整段密文分为两组:
Teucbonojmsvrhlzdghqikrwfxupoeteayo
然后再对分出的第一组中插入空格,最后依次用第二组中的字符替换第一组中的空格:
Teucbonojmsvrhlzdghqikrwfxupoeteayo对密文进行分组:Teucbonojmsvrhlzdghqikrwfxupoeteayo各组依次穿插:T e u c b o n o j m s v r h l z d g h q i k r w f x u p o e t e a y o得到明文:Thequickbrownfoxjumpsoverthelazydog
算法二:
已知密文为:hrelldlioswmoe
该密文的处理方式:
对应的明文就是:hello world is me
那么这段明文的加密方式就是先将整段明文分为两组,再将第二组依次插入第一组的两个字符之间:
先对明文分组:helloworldisme各组依次穿插:h e l l o w o r l d i s m e得到密文:hrelldlioswmoe
两种算法的比较与总结:
假如有十位同学,他们的编号以及原始顺序为abcdefghij(明文)那么第一种算法的加密方式为:将十位同学分为两人一组:ab cd ef gh ig一共分为5组再将每组的第一位同学放在一起,第二位同学放在一起:acegi bdfhg最终得到密文:acegibdfhg第二种算法的加密方式为:将10位同学分为两组:abcdefghij再将第二组的同学依次插入第一组之间:a b c d e f g h i j最终得到密文:afbgchdiej可以看到算法一的解密方式就是算法二的加密方式,反之亦然
一.2.2 换位密码---凯撒密码
将明文中的每个字母都按照其在字母表中的顺序向后(或向前)移动固定数目(循环移动)作为密文例如将abcde按照向后移3位的方式进行加密:>>>abcdeabcdefghik最终得出:abcde>>>defgh
iodj{khoor zrug} 位移三位abcdefghijklmnopqrstuvwxyzflag{hello word}
一.2.3 换位密码---曲路密码
曲路密码需要事先约定“曲路路径”也就是密钥:
例如,假如有一个明文:flag{my-name-is-luoyifang#!}(共27个字符),要求加密方式为行或列为3:
如果是3行,那么就需要一个3行9列的表格:
f | l | a | g | { | m | y | - | n |
a | m | e | - | i | s | - | l | u |
o | y | f | a | n | g | } | # | ! |
对应的密文就是!un-l#}-ymsgni{g--afealmyoaf
如果是3列,那么就需要一个9行3列的表格:
f | l | a |
g | { | m |
y | - | n |
a | m | e |
- | i | s |
- | l | u |
o | y | i |
f | a | g |
} | # | ! |
对应的密文就是!giusenmal{-milya#}fo--aygf
一.2.4 换位密码---列移位密码
列移位密码和曲路密码相似,也需要分成表格,不过行列数是由密钥决定的:
给定明文为:The quick brown fox jumps over the lazy dog
给定密钥为how are u (一共7个字符,对应的表格就应当为7列),以how are u在字母表中的出现的先后顺序进行编号,我们就有a为1,e为2,h为3,o为4,r为5,u为6,w为7,所以先写出a列,其次e列,以此类推写出的结果便是密文:
密文: qoury inpho Tkool hbxva uwmtd cfseg erjez
一.3 古典密码---替换密码
一.3.1 单表替换加密
单表替换加密就是将字母表中的字母用另一个顺序被打乱的表来代替:
这种加密方式由于密钥字母为26个(有时会更多,例如用字母表之外的字符代替),非常难以爆破!
一.3.2 多表替换加密
棋盘密码:
明文luoyifang,加密后就是:31 45 34 54 24 21 11 33 22
Vigenere 维吉尼亚密码
使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式
明文:qiudianzanqiuguanzhu (求点赞求关注)
密文:luoyifang(洛一方)
加密时首先将密钥填充至与明文一致:
q i u d i a n z a n q i u g u a n z h ul u o y i f a n g l u o y i f a n g l u
然后查表得密文:bci.....(后面就不写啦😋,人工查表太费眼睛啦👀),这里我们直接借助在线网站:
一.4 古典密码---其他类型加密
培根密码:
培根密码是一种简单的替换密码,密文字符只有两个(a和b),每个明文字符都会被替换为一个由a和b组成的长度为5的字符串。
常规培根密码表:明文i和j、u和v所对应的密文是一样的:
扩展培根密码表,能够包括所有26个字符:
培根密码实战演练:
打开这个链接,得到题目内容http://ctf5.shiyanbar.com/crypto/enc1.txt链接打开后发现是一串摩斯密码,使用在线工具解密:
在线工具网站推荐:
在线工具大全 (lddgo.net)
CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码 (hiencode.com)
在线工具网 - 全面的程序猿工具箱 (wtool.com.cn)
记得先将原有的/删掉:-- --- .-. ... . ..--.- .. ... ..--.- -.-. --- --- .-.. ..--.- -... ..- - ..--.- -... .- -.-. --- -. ..--.- .. ... ..--.- -.-. --- --- .-.. . .-. ..--.- -.. -.-. -.-. -.. -.-. -.-. -.-. -.. -.. -.. -.-. -.. -.-. -.-. -.-. -.. -.. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.. -.. -.-. -.. -.-. -.-. -.-. -.-. -.. -.-. -.-. -.-. -.-. -.-. -.-. -.. -.-. -.-. -.-. -.. -.-. -.-. -.. -.-. -.-. -.-. -.-. -.. -.-. -.-. -.. -.. -.. -.-. -.-. -.. -.. -.. -.-. -.-. -.. -.-. -.. -..摩斯密码翻译:MORSE_IS_COOL_BUT_BACON_IS_COOLER_DCCDCCCDDDCDCCCDDCCCCCCCCCDDCDCCCCDCCCCCCDCCCDCCDCCCCDCCDDDCCDDDCCDCDD将DCCDCCCDDDCDCCCDDCCCCCCCCCDDCDCCCCDCCCCCCDCCCDCCDCCCCDCCDDDCCDDDCCDCDD转换为:baabaaabbbabaaabbaaaaaaaaabbabaaaabaaaaaabaaabaabaaaabaabbbaabbbaababb培根密码翻译:THIAOBAITCPPM最终的解密结果就是:MORSE_IS_COOL_BUT_BACON_IS_COOLER_THIAOBAITCPPM
其中将CD 转换为ab 可以使用记事本的转换功能(CTRL+H、全部转换)
猪圈密码:
对应查表即可:
键盘密码:
本文链接:https://www.kjpai.cn/news/2024-05-04/164667.html,文章来源:网络cs,作者:言安琪,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!