尽管从事“计算机安全与保密”课程的一线课堂教学已超过十年,但当我们重新审视这门课程的时候,仍感觉不是那么随心所欲。与“操作系统”、“数据结构”等计算机专业课程相比,“计算机安全与保密”课程总显得有些特别。
“计算机安全与保密”课程并不是自成体系,涉及许多其他的课程,如“抽象代数”、“操作系统”、“计算机网络”、“数据库理论与应用”、“信息论与编码”等,似乎很复杂、很庞大。与此形成反差的是,每年开课时总能吸引不少没有太多计算机专业基础的其他专业的同学,他们来到课堂上津津有味地旁听。
“计算机安全与保密”的基础实验之一“AES加密”,对于计算机专业的同学来说,大多数都需要3天左右,这已经超过了为整个课程配的上机总时长。一些同学认为这个实验必须做,否则相关部分的课程就白上了; 另一些同学则认为这个实验耗时太长,还是不做为好。
同学们对这门课的侧重点也存在较大分歧。一些同学认为应侧重于应用,如怎样攻击或防范攻击是很重要的; 另一些同学却认为真正有趣的还是那些玄妙的加密、解密方案。
感兴趣的同学很多且分歧较大,造成了该课程教学中的一个困难,即难以找到一本合适的教材。从教学实践上来看,这门课理想的教材应该至少具备以下的特点:
(1) 内容编排要合理。既能使同学们在计算机安全方面提高素养和能力,又能使没有太多基础的同学保持浓厚兴趣并积极参与实践。
(2) 重视方法和思路胜过具体知识和手段。陆续有一些方案被破解或认为不那么安全,但解决安全问题的思路不会有大的变化。
(3) 理论与实践并重。
在整理了以往的讲义和学生问答后,我们决定编写本教材。受限于水平和能力,无法将教材编得这么理想,但这确实是我们不断进步的方向。
关于本教材,还要做以下说明:
(1) 为使本书尽可能地系统且全面,本书中个别部分参考了国外教材中的实例,但本书中绝大多数构造的实例来源于课堂教学或实践教学,实例中的数据也均通过编程得到。
(2) 为了帮助读者深入研究,某些重要的算法(如椭圆曲线)提供了非常大的数据实例。读者不必对这些“大数”产生恐惧或反感,因为相关部分往往还有一些小数据的实例。而且即便是跳过这些实例,也不会影响对全书的理解。
(3) “香农理论”虽然是一个重要的理论基础,但根据同学们的建议,移到了附录A中。跳过“香农理论”并不影响对全书的理解。
(4) 教师可根据总课时安排教学内容。课时较多时,可逐章讲授。课时不多的情况下,可结合课时要求及侧重点选择以下的组合:
第1章→第2章→第3章→第6章→第7章→第9章
第1章→第2章→第3章→第6章→第7章→第10章
第1章→第2章→第3章→第4章→第5章→第10章
第1章→第2章→第3章→第10章
第1章→第2章→第3章→第4章→第5章
第1章→第2章→第3章→第6章→第7章
第1章→第2章→第3章
最后,感谢过去几年给这门课提出各种意见的同学们,同学们的热情和求知精神给予我们编写教材的动力。还要感谢为本教材编写提供帮助的编辑、老师和研究生。特别感谢张小韬、张瑞霞、吕宏强等几位研究生,他们的录入和校对工作对本教材的编写帮助很大。
由于本教材涉及知识面较广,难度较大,不足之处在所难免。为便于以后教材的修订,恳请专家、教师及各类读者多提宝贵意见。
编者
2012年9月
