密码学学习笔记 之 密码学随笔

   元旦快乐嗷,2021年水的第一篇博客,就来随便聊聊密码学叭,欢迎感兴趣的朋友一起交流讨论吖~

   密码学这个学科,和战争是离不开关系的,从以前的罗马战争,到最近一次的大战——第二次世界大战,都有密码学活跃的身影,并且对战局也有着非常重要的影响。但在这个相对和平而互联网发展迅速的年代,密码学则活跃在各种传输、交易等协议中。

   从历史上看,1945年前,密码学这门学科可以看作一门艺术,而1945年后,信息论之父——香农,发表的一篇《Communication Theory of Secrecy Systems》指出,数据安全是基于密钥的保密性而不是算法的保密性,从此,密码学正式开始被称为一门学科,现代密码学的设计也都基于这个原则。继而是1976年现代密码学之父Whitfield Diffie和Martin Edward Hellman提出的公钥密码学思想,被誉为密码学发展史上唯一的真正革命。从此现代密码也朝着公钥密码的方向发展。

   可能刚接触CTF的同学会觉得密码学相对其他方向门槛低。确实,如果接触的古典密码比较多的话,是会有这种感觉,因为古典密码也是出现在算力不足的年代,大多流程、理论也还是比较简单,从而也很容易被攻破。而现代密码的发明都会基于一些数学上的难题,所以学习密码学,有一个比较好的数理基础就比较重要。

   再谈谈目前的密码学算法。可以简单的分为对称密码和公钥密码(也就是非对称密码),一般来说在一个协议里,对称密码用来加解密传输的信息(因为算起来快),公钥密码用来加密传输对称密码的密钥。其中公钥密码比较常见而著名的就是基于大数分解难题的RSA、基于离散对数问题的DSA、基于椭圆曲线上离散对数问题的ECC。由于都是在有限域上,所以用的都是模运算。对称密码则可进一步拆成流密码和分组密码,其中比较重要的运算法则则是具有对合性的异或运算。流密码的思想就是通过一个初始状态,能生成一堆尽可能真随机的密钥流,用来异或明文信息得到密文信息,解密人只需要掌握这个初始状态就可以了。分组密码则是将明文和密钥输入,通过一些列复杂的的运算网络,然后计算出密文。

   所以我们要学什么?

   密码学也可以有两个终极方向,攻和守,你可以运用所学去攻破现在正在运行的算法,也可以运用所学去防御现在甚至是未来会出现的攻击手法。而在此前,你至少得把现存的一些用的比较多的密码算法给了解一遍叭,把现存的攻击手法也都给学会叭。而看懂原理、学会攻击,你至少得有相应的基础知识积累叭。

   学科上,数学、线性代数、信息安全数学基础这基本科可以算是密码学的基础课。这里说的是数学,包括但不限于高中数学、高等数学,甚至也有可能会出现一些奥赛的东西。然后是线性代数,里面的很多概念都是很有用的(虽然学的时候可能是云里雾里的,所以推荐去看一些课外的书,加深一些理解会吸收的比较好些)。最接近的就是信息安全数学基础,其实也就是抽象代数,模运算、模逆元、原根等等这些概念,还有很多运算性质,数论四大定理等等。把基础打好,对于后面一些具体密码算法的学习才容易理解。至于密码学更多的实体算法,《深入浅出密码学》是很不错的一本入门书籍。更进一步的与数学有关的密码学学习可以看看这本《introduction-to-mathematical-cryptography》

   总之,基础很重要!基础很重要!基础很重要!

   而现在有CTF这个“工具”,你可以在学习理论知识的同时付诸于实践,更加深理解,我觉得这才是CTF带给我们真正有用的,有价值的东西。它是一个很好的工具,一个学习、交流平台。诚然在CTF竞赛中拿到flag、取得名次、赢取奖金让人兴奋,但打CTF不可能会是一个终极目标。它只是一个开始…


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可联系QQ 643713081,也可以邮件至 643713081@qq.com

文章标题:密码学学习笔记 之 密码学随笔

文章字数:1.3k

本文作者:Van1sh

发布时间:2021-01-01, 00:00:00

最后更新:2021-01-02, 12:49:30

原始链接:http://jayxv.github.io/2021/01/01/密码学学习笔记之密码学随笔/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏