Crypto是一个比较晦涩难懂的,学科干一行就要行一行,希望决定选择这个方向的你能一直坚持下去吧。 密码学历史由来已久,在我看来可追溯到人类使用文字的开始那一阶段,创造文字的人能看能从最初的文字这些符号中提取信息而其他人不可以这也就算是一种密码了。但是密码学作为一门科学发展的历史却很短暂,是在上个世纪中叶才作为一门真正意义上的科学来发展的,在之前更多的是类似于一门艺术,研究密码学的人通常都是联想能力强,思维活跃的人。这个对于现代的密码来说也同样适用。 研究密码学主要分为两个方向:密码编码学和密码分析学,一般情况下接触到的都是密码编码学,但是我们Crypto主要做的就是密码分析学。密码分析学对于数学功底要求较高要从已知的密码算法和数据进行数学运算合理的反向推出我们所要的信息,也就是在Crypto中的flag。 看到这里,不管你是否还依旧要选择这个方向,都请你记住,一定要打好基础。万事贵在坚持。碰到困难不要退缩,狠磕,死磕。
新手村的玩家们初学CTF可能对Crypto和Misc更感兴趣一些。因为在初期的新生赛之类的,这两个方向给出的题目大多都上手简单,不太需要很多的专业知识,门槛相对低一些。但其实所有方向都是一样的,Crypto前期的简单主要仅限于刷题网站的前几道题目,大多为古典密码的部分,只需要认出加密方式就可以进行解密,甚至有些工具输入密文就可以一把梭(指通过简单的点击鼠标等操作就可以完成)得到flag。但到了中后期的比赛,古典密码逐渐退出了Crypto的题目中,常见于Misc题目。那么在新手村的玩家们就应当最慢在一个月内解决像凯撒,栅栏,维吉尼亚,仿射…………等等
了解完古典密码后,就要对现代密码进行一个入门,按我的课程安排来看,这个时间还没有学习理论部分的内容(虽然学校的课程无法评价)。那么这个阶段就需要进行一个自学的操作。这部分会分为理论和编程两部分的学习
去学习数学,也就是密码学数学基础(数论、信息安全数学基础都是一个东西)。 数论被成为数学王冠上最闪耀的明珠,其重要性和难度可想而知,这个是需要狠狠努力去学习的。
a、去学习python这门编程语言,密码学通常要处理的数据是相当大的需要使用一种简便的语言来进行运算。 b、学习使用sagemath这个工具
去学习现代密码学,加密算法等相关内容
不能光学不做练习,在学习的中间也要穿插进行训练,多去那些练习平台上去做题,感受什么是真正的ctf(下面是一些知名的网站,可以在上面去进行一个练习)
进行完基础内容的联系我们就要进行深入的了解了,在上一个阶段的刷题的过程中由于各种各样的原因总有题目有很多的困难没有完全看懂,这个时候就可以去将之前的题目再做一遍相信会有新的收获。另外可以收集一些论文和博客,进行学习和参考。
进行完上一个阶段已经算是对密码学的相关知识了然于心了,但是还没有真正的开始ctf之路,ctf毕竟是个竞赛我们不能闭门造车,真正的各种情况还是要到实际的题目中去会遇到各种各样的题目,甚至有一道题目好几种不同的解出方法,到了这个阶段就可以去参加国内外的各种比赛去例如: -Hgame -Beginctf -iscc -n1ctf -nssctf -nctf -西湖论剑 -各省的省赛和国赛 ... 去进行一个试炼,测试自己的实力,不太行就要接着加油练习。
如果对crypto感兴趣的话,欢迎和我联系,QQ:1738327323