总结一下这个学期的密码课

周三下午完成了《密码学》这门课的期末考试之后,我就有种想法想写这篇文章。可是接着有周五要交的《专家系统》学期项目要赶,所以这两天一直没有机会,当时的想法也淡忘了许多。

对于密码学这门课本身,我感觉是处在了一个比较尴尬的地位。首先是这门课的面向,在我们学校的课程中属于 4000 等级的课,也就是说一般是给大四的学生来学的。密码学本身有一部分数学相关的知识需要理解,又不是每个人日常都必须了解的,因此放在 4000 等级,意思是不需要每个人都学这门课,如果学生对于这个领域有兴趣的话,可以修这门课。因此我们这门课上的同学并不算多。另一个方面是这门课的难度,我们在这学期学了以下几个部分:基础密码(比如 substitution cipher,affine cipher 等)的加密与破解、信息论与 block cipher、DES 与 AES、RSA 加密、Hash 函数。这些部分需要用到的数学知识其实并没有许多,除了一般的加减乘除外,有限域的知识(就是取余数)比较常用外,极限之类的东西就用得非常少了。学完了这门课之后,我觉得一个大学二年级毕业的学生,离散数学合格毕业的学生完全可以学这门课程,根本不需要等到大四去学。

在做期末考试卷子的时候,我有股感慨,为什么这门课不能开卷考试呢?很多相关的东西,我们考察的都是对于定理和公式的背诵。我想,将来在实际的应用当中,我们需要把这些公式全都背过吗?尤其是如果不从事密码学领域的钻研的话更是如此。日常写个程序,首先是当前的算法已经有很多公开的代码可以直接使用,而且就算要自己重新写,也可以找论文来参考再实现。而一个程序员把加密解密的定理公式都熟记于心的话,是不是不是很现实呢?

我在尤其是来加拿大之后,就有感觉记忆力下降的趋势。过去初中时看两眼就能背诵的东西,到了高中时可能就要看两天了,而到了大学后就要看更多的时间,而且一段时间后就忘记了。特别是英文的资料,死记硬背的话更是不容易。

我觉得密码学是一门实践性质的课,给你一段密码,用某种解密方法来揭开,如果能有一个这个方法的实施表格,这样做起来应该会很容易。可是如果加上了记忆这一步,对于一个记忆力不好的学生来说就不是那么简单了。

另外,我们的老师在给我们上课的时候,也是拿着自己的笔记在往白板上抄写。我不是说老师一定要与学生公平,但是否老师能按照要求学生的要求来要求自己呢?如果在考试的时候,给学生一些记忆方面的题,那么自己能否同样做到呢?而且,这门课对最让我们觉得不满的是,在最后考试前不画范围。老师说我们需要了解期中考试前和期中考试后的所有内容,这样的话还干什么需要期中考试呢?我们有这么多东西要背诵,能否把量减少一些呢?

总结起一个学期的课来,我觉得我作业部分做得还不错,这是为什么呢?还不是因为开卷。这样作为一个密码学课程的结业要求来说是不是正常呢?这门课如果没有期末考试的话,是不是可以单从作业就可以判断出学生对课程内容的领悟呢?

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据