CTF中常见的密码学(2)
前言
第一篇文章👉[CTF中常见的密码学(一)](坂琴的小窝🍜 - 🍐Ciallo~(∠・ω <)⌒⭐)。
一.维吉尼亚密码
1.加密
维吉尼亚密码就是一些偏移量不同的凯撒密码组成的,首先需要如下表。
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
假设密钥是TAKAGISAN,则对应上面👆表转换成数字密钥就是key=(19,0,10,0,6,8,18,0,13)。
假设明文是TAKAGISAN IS THE FIRST IN THE WORLD,然后按照密钥分为九个一组,密钥数字排序如果不够,可以从头开始排序,如下表操作即可,假设下面对应的索引数字为a,密钥数字为b,那么加密之后的数字c就是(a+b)mod26取余数即可,最后在按照上表对应的数字排序即可得到密文。
| 明文 | T | A | K | A | G | I | S | A | N | I | S | T | H | E | F | I | R | S | T | I | N | T | H | E | W | O | R | L | D |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 对应的索引数字 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 8 | 18 | 19 | 7 | 4 | 5 | 8 | 17 | 18 | 19 | 8 | 13 | 19 | 7 | 4 | 22 | 14 | 17 | 11 | 3 |
| 密钥数字 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 19 | 0 |
| 加密之后的数字 | 12 | 0 | 20 | 0 | 12 | 16 | 10 | 0 | 0 | 1 | 18 | 3 | 7 | 10 | 13 | 0 | 17 | 5 | 12 | 8 | 23 | 19 | 13 | 12 | 14 | 14 | 4 | 4 | 3 |
| 密文 | M | A | U | A | M | Q | K | A | A | B | S | D | H | K | N | A | R | F | M | I | X | T | N | M | O | O | E | E | D |
所以TAKAGISAN IS THE FIRST IN THE WORLD加密之后的密文是MAUAMQKAABSDHKNARFMIXTNMOOEED。公式就是(a+b)mod26=c。
2.解密
假设已经知道了密钥是TAKAGISAN密钥是key=(19,0,10,0,6,8,18,0,13),公式是(c-b)mod26=a,也就是对应的索引数字减去密钥数字再来mod26即可,如下表。
| 密文 | M | A | U | A | M | Q | K | A | A | B | S | D | H | K | N | A | R | F | M | I | X | T | N | M | O | O | E | E | D |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 对应的索引数字 | 12 | 0 | 20 | 0 | 12 | 16 | 10 | 0 | 0 | 1 | 18 | 3 | 7 | 10 | 13 | 0 | 17 | 5 | 12 | 8 | 23 | 19 | 13 | 12 | 14 | 14 | 4 | 4 | 3 |
| 密钥数字 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 19 | 0 |
| 解密之后的数字 | 19 | 0 | 10 | 0 | 6 | 8 | 18 | 0 | 13 | 8 | 18 | 19 | 7 | 4 | 5 | 8 | 17 | 18 | 19 | 8 | 13 | 19 | 7 | 4 | 22 | 14 | 17 | 11 | 3 |
| 明文 | T | A | K | A | G | I | S | A | N | I | S | T | H | E | F | I | R | S | T | I | N | T | H | E | W | O | R | L | D |
二.摩斯电码
当然也是字符对应字母,如下表
字母表
| 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
|---|---|---|---|---|---|---|---|
| A | .- | B | -… | C | -.-. | D | -… |
| E | . | F | …-. | G | –. | H | … |
| I | … | J | .— | K | -.- | L | .-… |
| M | – | N | -. | O | — | P | .–. |
| U | …- | V | …- | W | .– | X | -…- |
| Y | -.– | Z | –… |
标点符号
| 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
|---|---|---|---|---|---|---|---|
| . | .-.-.- | : | —… | , | –…– | ; | -.-.-. |
| ? | …–… | = | -…- | ’ | .---- | / | -…-. |
| ! | -.-.– | - | -…- | - | …–.- | " | .-…-. |
| ( | -.–. | ) | -.–.- | $ | …-…- | & | … |
| @ | .–.-. | + | .-.-. |
数字长码
| 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
|---|---|---|---|---|---|---|---|
| 0 | ----- | 1 | .---- | 2 | …— | 3 | …– |
| 4 | …- | 5 | … | 6 | -… | 7 | –… |
| 8 | —… | 9 | ----. |
在线解密网址👉摩斯电码在线解密。
三.MD5(哈希算法)
MD5不可逆,只能通过枚举,MD5的特征是,(1)长度固定,(2)只可能小写和数字32个字符👉在线CMD加密解密,比如加密123456,如下。
MD5:e10adc3949ba59abbe56e057f20f883e。
四.猪圈密码
用格子来做的简单替换,加密,如下图格子适应,和对应图。
如下是字母对应图👇。
按照图表来加密解密即可。
五.九宫格按键加密
也是简单的替换密码,如下表替换。
| 1 | 2 abc | 3 def |
|---|---|---|
| 4 ghi | 5 jkl | 6 mno |
| 7 pqrs | 8 tuv | 9 wxyz |
没有1,比如a在第二个格子那么就是21,z在第9个格子就是94,k在第五个格子就是52。
六.26键加密
1.QWE密码
指的是按照QWE键盘顺序来加密也就是QWERTYUIOP这种,如下表所示。
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Q | W | E | R | T | Y | U | I | O | P | A | S | D | F | G | H | J | K | L | Z | X | C | V | B | N | M |
入👆表加密即可。
2.坐标加密
先如下图所示,如果是(红色,黄色)也就是先行后列的顺序,(1,1)=Q,(1,2)=W,(2,1)=A,(2,2)=S。
如果是(黄色,红色)也就是先列后行的顺序,(1,1)=Q,(1,2)=A,(2,1)=W,(2,2)=S。
七.曲路密码
也是一种换位密码,需要双方事先约定好密钥(曲路路线)
假设明文是Takagisan is the best in the world。
填入4行七列表(需要事先约定好)
| T | a | k | a | g | i | s |
|---|---|---|---|---|---|---|
| a | n | i | s | t | h | e |
| b | e | s | t | i | n | t |
| h | e | w | o | r | l | d |
如下图👇加密回环路线,从右往左(需要事先声明好),最终加密效果就是,dtesihnlritgastowsjkaneehbat,解密也非常简单,按照约定,4行7列,回环路线从右往左,密文从左到右,重新排序即可。
八.当铺密码
当铺密码就是中文与数字的结合,当前的汉字有多少笔画出头,就是转换成数字几。
如下表,就是当铺密码所对应的汉字和所对应的数字。
| 汉字 | 所对应的数字 |
|---|---|
| 由 | 1 |
| 中 | 2 |
| 人 | 3 |
| 工 | 4 |
| 大 | 5 |
| 王 | 6 |
| 夫 | 7 |
| 井 | 8 |
| 羊 | 9 |
比如夫大 工大 夫井,就是75 45 78,对应ASCII码就是KEN。
九.培根密码加密方式
第一种方法如下表
| 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | aaaaa | B | aaaab | C | aaaba | D | aaabb | E | aabaa | F | aabab | G | aabba | H | aabbb | I | abaaa | J | abaab |
| K | ababa | L | ababb | M | abbaa | N | abbab | O | abbba | P | abbbb | Q | baaaa | R | baab | S | baaba | T | baabb |
| U | babaa | V | babab | W | babba | X | babbb | Y | bbaaa | Z | bbaab |
第二种方法如下表
| 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 | 字母 | 加密后 |
|---|---|---|---|---|---|---|---|
| a | AAAAA | g | AABBA | n | ABBAA | t | BAABA |
| b | AAAAB | h | AABBB | o | ABBAB | u-v | BAABB |
| c | AAABA | i-j | ABAAA | p | ABBBA | w | BABAA |
| d | AAABBA | k | ABAAB | q | ABBBB | x | BABAB |
| e | AABAA | l | ABABA | r | BAAAA | y | BABBA |
| f | AABAB | m | ABABB | s | BAAAB | z | BABBB |
加密解密python程序如下👇,源自于网络,自己经过了一些修改。
1 | import re |
十.RSA算法加密
RSA算法,应该算难的一种了,视频可以去看李永乐老师的👉李永乐老师讲RSA,首先需要知道的东西如下👇。
1 | 1.两个质数:p q(只有1和他本身两个约数的数叫做质数) |
看懂如上即可看不懂怎么办,我也看不懂,如下的带数操作。
1 | m=14 e=3 p=5 q=11 请写出RSA加密解密过程和结果 |
求n:p*q=5*11=55
求φ(n):φ(n)=(p-1)*(q-1)=(5-1)(11-1)=40
求d:已知求d公式为(e*d)modφ(n)=1,就是(3*d)mod40=1,算出d为27。
加密:已知公式为(m^e)modn=c套用(14^3)mod55=c,算出c为49
解密:已知公式为(c^d)modn=m套用(49^27)mod55=m,算出m为14
第二测试题如下👇
1 | p=43 q=59 e=13 m=134879475204 用RSA对m进行加密 |
加密公式为(m^e)modn=c,我们需要知道e和n即可算出c。
求n:n=p*q=43*59=2537
加密m:(134879475204^e)mod2537=1202
未完待续…





