我的GitHub
0%

无星的安全之旅(五)——密码入门

密码学入门,我们介绍一些简单的密码

brainfuck

这是一个完备的图灵语言

Brainfuck基于这样一台机器。它具有一列初始化为0的数组(数组长度最初要求是30,000,但这个标准不是必要的)和一个初始指向第一个元素的指针。

该语言总共只有8个命令,除此之外所有其他字符都会被忽略

1
><+-.,[]

所以看到了这八个字符组成的,就是brainfuck

命令 功能 C语言
> 指针右移一个元素 p++;
< 指针左移一个元素 p–;
+ 指针当前所指元素加1 *p++;
- 指针当前所指元素减1 *p–;
. 输出指针所指元素对应字符 putchar(*p);
, 输入字符的ASCII码值到指针所指元素 *p=getchar();
[ 若指针所指元素为0,则跳转到对应 ‘]’处继续执行 while(*p){
] 若指针所指元素不为0,则跳转至对应 ‘[‘处继续执行 }

其实说那么多,也不会自己动手算,让我们上工具

brainfuck

1
++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>++++++++++++++++++++++++++>++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>++++++.>----.<-----.>-----.>-----.<<<-.>>++..<.>.++++++.....------.<.>.<<<<<+++.>>>>+.<<<+++++++.>>>+.<<<-------.>>>-.<<<+.+++++++.--..>>>>---.-.<<<<-.+++.>>>>.<<<<-------.+.>>>>>++.

来,告诉我flag

1
flag{Oiiaioooooiai#b7c0b1866fe58e12}

Caesar’s Secert 凯撒密码

凯撒密码,古老的密码

说白了就是字符偏移

给一个偏移量

所有的字符进行偏移

例如偏移量为1,abc进行偏移后,字符串为bcd

例如偏移量为2,abc进行偏移后,字符串为cde

例如偏移量为3,abc进行偏移后,字符串为def

这么说明白了吧

那么上工具 Caesar

1
kqfl{hf3x4w'x_h1umjw_n5_a4wd_3fed}

给我flag

1
flag{ca3s4r's_c1pher_i5_v4ry_3azy}

栅格密码

栅格密码更简单了,一般都是2的倍数,,因为他要分两层

比如加密字符串为acbd

将它沿中间拆开,则为

1
2
a c
b d

上下交替合并,解密结果为abcd

321,上链接,栅格密码

1
fa{ereigtepanet6680}lgrodrn_h_litx#8fc3

等一个flag

1
flag{reordering_the_plaintext#686f8c03}@

维吉尼亚密码

维吉尼亚密码是一个多字母替代密码。

维吉尼亚密码是一种简单的多表代换密码(由26个类似的Caesar密码的代换表组成),

即由一些偏移量不同的恺撒密码组成,这些代换在一起组成了密钥。

维吉尼亚加密原理

核心:为了掩盖字母使用中暴露的频率特征,解决的办法就是用多套符号代替原来的文字。

密码对照表如下图

原理介绍

密码表

密钥中的字母为行,明文中的字母为列。

所以关键是找key

key怎么来呢?

找密文中相同字符之间的间隔,大概率就是密钥的倍数

维吉尼亚密码

那么我们再简单一点

一些入门签到题,会给一点提示,例如下面这题

1
pqcq{qc_m1kt4_njn_5slp0b_lkyacx_gcdy1ud4_g3nv5x0}

其中pqcq很明显是flag

我们可以得到kfck

k好像重复了,猜一下kfc是密钥

得到原文

1
flag{la_c1fr4_del_5ign0r_giovan_batt1st4_b3ll5s0}

RSA解密

[CTF密码学]RSA相关题目解题方法与python脚本总结(附例题)

RSA原理及各种题型总结

说简单一点

1
2
3
4
5
n(两个大素数p、q的乘积)
e(公钥)
c(密文)
m (明文 就是待加密的文本啦,一般也就是我们的flag。)
d (私钥)

思路一

有n,我们要做的就是解出p和q

我是阿星,阿星的阿,阿星的星!