“人类的三次工业革命分别开创了蒸汽时代、电气时代、信息时代,人类文明得以出现了爆炸式的发展。在信息时代,人类历史上一次非常伟大的发明就是把计算机连接起来组成一个网络,在宇宙这个由粒子构成的物理空间中创建了网络空间。现代密码学的出现为网络空间大规模应用的出现和发展起到了不可替代式保驾护航的作用。然而由于历史原因,大众对密码学的认识仅仅停留在‘密码学就是加密和解密’这个层次上。自1976年以来,现代密码学所提供的密码技术和应用功能简直不可思议、匪夷所思。”
——《数字签名密史:从急需到有趣》
2019年10月26日,全国人大通过了《中华人民共和国密码法》,已于2020年1月1日起正式实施。这体现了面对新时代国家安全的新形势和国家利益的安全发展需求,坚持总体国家安全观是发展社会主义安全法治必须遵循的基本原则。笔者认为,人与人之间交流的基础是信任,而密码学所解决的就是网络空间中的信任问题。密码是保障网络与信息安全的核心技术和基础支撑,是解决网络与信息安全问题最有效、最可靠、最经济的手段。密码就像网络空间的DNA,可以完整实现身份防假冒、信息防泄密、内容防篡改、行为防抵赖等安全需求。
本文根据笔者自身与各大前辈的科研经验,为准备入门密码学的初学者推荐一些书籍、文章和视频资料。
一种简单轻松入门密码学的方法是学习密码学史,此处推荐书籍《密码了不起[知乎出品]》(刘巍然)。这是一本密码学科普读物。从贴吧表白到身份证号码隐藏的秘密,从公钥加密到密码学的新进展,此书介绍了生活中方方面面的密码知识。
还有一本更进阶的密码学史书籍是《数字签名密史:从急需到有趣》。此书在有趣与硬核之间取得了非常好的平衡,梳理了现代密码学的发展与研究轨迹,适合正在考虑或已经选择密码学作为研究方向的学生(其实这本书有些内容写的比一些密码学导论书籍还要深入)。
跨过了入门阶段(或者一步到位直接跳过),自然要从大的框架来学习密码学。关于密码学导论的优秀书籍和课程则非常多了,如著名的《Introduction to Modern Cryptography》,有毅力啃这本英文大块头自然是最好的。中文翻译的书籍则推荐:
《现代密码学:原理与协议》这本书是上面那本《Introduction to Modern Cryptography》的中文版,但翻译质量算不上非常优秀(如果看到语句不通的句子,不要大惊小怪,这是正常现象,有中文版过渡很不容易)。
《深入浅出密码学》(Understanding Cryptography)密码学经典入门书籍。
《图解密码技术》图解系列也算是经典的入门书籍系列了,由浅入深、简单易懂,非常适合作为密码学的入门书籍。
这些书网上也有很多电子版的资源,随便看其中一本就好了。对于从事密码学方向研究的同学,建议阅读《安全归约导论》(Introduction to security reduction)。安全归约是现代密码学研究中绕不开的话题,相信看完这本书对于阅读论文的安全性证明章节是有一定帮助的。
密码学的网络公开课则有些鱼龙混杂,以下推荐两个我觉得还不错的网课:【完整版-斯坦福-密码学】全13讲,这是一个非常非常经典的密码学公开课了,老师讲课语速飞快,请坐稳扶好。Hacker Dōjō 密码学专题二,一位清华大学博士做的知识分享视频,讲解的蛮生动易懂。如果想看英文公开课可以参考这篇知乎文章如何在一个月内入门密码学? - 刘巍然-学酥的回答 - 知乎。
数学是现代密码学的基础,在学习密码学的途中必然会遇见许许多多的数学难题,如数论、概率论等。系统性或选择性地补修数学知识都是一种不错的选择。国内高校将这些知识内容整合成了课程《信息安全数学基础》。这门课的自学教材我推荐《信息安全数学基础:算法、应用与实践(第2版)》(任伟)。相对于其它教材,此书减少了一些在信息安全中应用较少的非重点数学理论,注重从计算机科学(算法)角度介绍而不是从纯数学角度介绍。
《信息安全数学基础》在网络上也有一些不错的公开课,如【信息安全数学基础——哈尔滨工业大学】,这门课在b站上的评价不错,而且课程讲解的顺序与一般教材不同,是从抽象到具体。陈恭亮老师虽然也有公开课,而且他是著名教材的作者,但网友评价他的课是纯念PPT,所以这里不做推荐。但关于《信息安全数学基础》本人最推荐的课程是b站up主Alice-Bob做的系列教程密码学的数学基础(不断更新中...),此系列视频每节都不算特别长,非常适合在线自学。这位up主专注于密码学科普视频,目前还在不断更新中,非常推荐关注。
附加内容:笔者的研究方向是基于格的密码学,故在此也推荐一些入门格密码学的资料。基于格的密码学相对来讲比较新颖,网络上的相关教程和文章不多,优秀的中文内容更是凤毛麟角。这些资料都是研究者整理好的前沿研究心得。所以大致入门之后就可直接进入阅读论文的深渊了。以下推荐这些资源:
- 视频课:【-UP主汉语配音-【线性代数的本质】合集-转载于3Blue1Brown官方双语】】 一个讲线性代数的优秀视频,这个视频生动形象的解析了矩阵的知识。线代的知识不管是神经网络还是格密码都用的上,强烈建议不管任何方向的研究生都看一看。
-
格密码介绍(科普向) - 王小鱼的文章 - 知乎,综述性质的文章,值得一看。
-
Steven Yue的初探全同态加密系列文章,个人认为写的非常好,很适合用来入门格密码学(外号--菜狗,但一点都不菜,斯坦福大佬)。
-
Steven Yue的Lattice学习笔记系列,学习笔记性质的文章,较为全面的介绍了格的数学原理及其应用,作为初学者的教程则有些许晦涩难懂,但仍是目前最易理解的格密码长文章了。
-
知乎用户兰可的文章,他写的文章不是基础入门的内容,而是更进阶的技术细节,但写的非常生动易懂。
-
公开课:【2012年BIU密码学冬令营-01-Introduction to Lattices(中文字幕)】 ,这个会议一共有5个视频,但是画质比较低清,且时代久远。
-
公开课:【【中英字幕】Simons格密码讲座第1讲:格的数学定义】 ,2020年的公开课,字幕制作者不是专业字幕组,所以不会更新很快,看一节少一节。
以上便是笔者推荐的入门密码学的全部内容。总的来说这是一个有点门槛,但又不会特别困难的领域。以此为基础,可继续深入进行如公钥密码体制、后量子密码体制、区块链、联邦学习、安全多方计算等领域的学习和研究。路漫漫其修远兮,吾将上下而求索,大家一起加油吧!