时间:2024-05-04
李景涛,刘 洋
(1.复旦大学 软件学院,上海 201203; 2.上海市智能信息处理重点实验室,上海 20433)
信息技术给我们带来的不仅是更多的信息、更便捷的通信方式和更快速的网络,也带来了更多的信息安全隐患和威胁,现代人不得不关心日常生活中的隐私和信息安全问题。密码学作为信息安全的关键技术之一,提供了保障信息安全的有效方法。因此,本科生学习的密码学基础专业课程得到了全世界许多高校的重视[1-5]。在复旦大学计算机科学技术学院,密码学基础是信息安全专业本科生的必修课,这门课程作为密码学领域的入门级课程,修读学生不仅要掌握密码学领域的基本概念和方法,还要学会灵活应用密码学方法解决实际应用问题[6]。
密码学课程教学面临的一个共性问题是,在讲解其复杂的数学原理和公式的过程中,如何提高学生的兴趣和学习主动性。事实上,当今绝大多数安全解决方案不需要对密码技术数学原理有特别详细的了解,更重要的是如何引导学生从对数学原理的理解转化到实际应用[1]。因此,有必要改革传统教学方法,培养适应行业需要的信息安全人才。
互动式教学作为现代欧美大学一种基本的教学方法,在计算机学科的教学中已经被有效实践,近几年来也已成为我国教育界广受关注、积极探索的一种教改措施[4]。互动式教学方法可以吸引学生自主投入到课程的学习,比那些传统的讲授内容和直接传递信息的教学方法效果更好[7]。可以在密码学基础课程中使用的方法大致可分为3类:实验与项目、课堂讨论、角色扮演。
一些教育工作者分享了他们在课程实验和项目设计方面的经验和建议[2],在课堂讨论或者研讨会式的教学研究方面也有一些文献介绍[1,8],这些教学方法的实现细节与课程内容紧密相关,实际使用中需结合课程特点量体裁衣。角色扮演也已经被应用于计算机学科的教学中[8],例如软件工程课程,但在密码学基础课程的教学中较少提及。此外,一些教育工作者已使用多媒体工具促进教与学的互动和研讨[2-4, 9]。
针对信息安全的专业特点与培养方案要求,笔者重新设计了上述教学方法,这些方法实现的教学目标包括:①使学生自主地以某种方式将所学知识表达出来,提高学习的效率;②通过项目实践,提高学生的编程技能、分析和使用演示文稿、撰写报告等技能。本文还将分析总结在实践中使用这些方法需要注意的若干细节问题。经过几年的教学实践,学生对课程更加感兴趣,在教学考评中也对课程给予了更高的评价。
密码学基础课面向信息安全专业三年级开设,每周4个学时,包括3学时课堂教学与1学时实验课。对学生来说,这门课是他们第一次系统地接触密码学领域知识,大多数学生在进入这个领域之前没有接触过相关的其他课程。课堂时间主要安排教师授课和随堂讨论。学生实验课与课后的任务包括:完成2~3个课程项目和一定数目的作业,课程项目一般以团队合作的形式完成,学生被分配到各个项目组中,每组3~4个学生(以随机的方式组成,也可以按学生自愿的原则产生)。每学年教学班级规模在40人左右,该课程在学院开设已经超过10年,现在的教学主要由本文第一作者承担。
(1)课程目标。修读密码学基础课程后,学生能够掌握基本的密码学算法原理,对加密、解密技术具备一定的实际应用能力,为今后从事信息安全理论与技术的研究、从事信息安全技术与管理工作奠定理论和技术基础,能够利用密码技术服务于社会。
(2)基本内容。基于上述目标,课程主要分为两大部分:密码学基础和应用密码学基础。
密码学基础部分介绍密码学的发展、密码学原理、密码算法的设计与分析方法,主要包括密码学发展历史、古典密码算法、密码学基本术语、密码学的体制与分类、现代分组密码(如DES等)原理和设计方法、流密码的基本原理与设计方法、公开密钥密码的原理与设计方法、数字签名、报文鉴别原理和方法,能够使用编程语言(C语言或Java等)和MATLAB软件进行程序设计。
应用密码学基础部分主要阐述公钥基础设施(PKI)、身份认证技术以及现在已经被广泛应用于Web和电子商务的安全机制。这部分给学生一定的实用方面的知识,使学生能够运用基本理论和技术解决复杂系统中的安全问题,内容主要包括PKI原理与应用、身份认证技术、Web应用安全、密码学前沿主题。
实际上很难找到一种适合上述所有主题的互动式教学方法,上述内容中也有一些可能更适合传统的课堂讲解式教学。上述两部分内容大致可以根据教学实践使用的方法划分,密码学基础的数学原理部分主要运用传统的课堂讲解式教学,辅以课堂对话、头脑风暴等随堂研讨方法;而应用密码学基础部分更适合互动式教学,例如,可采用项目为导向的教学、动手实验、案例讨论等。必须强调的是,在实际教学实践中这些方法并不是一成不变的,例如笔者在几乎所有课堂上都运用了随堂研讨式教学方法。
互动式教学是一类教学方法的统称,涵盖的范围很广,本文主要提供4种方法:课堂对话、头脑风暴、主题演讲和讨论、促进动手学习的课程项目,笔者将分享如何将这些方法应用到密码学基础课程的教学上。不同的方法之间可能会有一些概念上的重叠。
在互动式教学中,教师不单需要像传统式教学中那样传授内容和信息,还需要引导学生的讨论。笔者采用课堂对话这种方式开展讨论。经过学生之间以及学生和教师之间的讨论后,学生能够更好地掌握该主题的相关知识。以笔者的经验来看,这是提高课堂参与度的一种非常有效的方法。
在课堂对话之前,教师必须精心准备讨论的主题。那些在历史上为寻求最佳解决方案而不断被探索的问题就是最好的主题[8]。教师在直接讨论中应该朝着问题正确答案的方向引导学生。当一个问题出现时,学生的最初解答可能只是正确答案的一部分。这时需要由教师引出思考这个问题时容易忽视的方面,学生进一步通过讨论完善自己的答案。例如,在讲解完许多古典的加密技术(如Caesar密码、单字母表密码)之后,课堂上提出了一个问题:“如果你是一个攻击者,你将如何破解这些经典加密技术?”首先,Caesar密码由于密钥数量少而容易被破解;其次,虽然单字母表密码的可用密钥数量庞大,但是由于它不会改变密文中字母出现的相对频率,也容易被破解;然后介绍一些密码系统设计的基本原则,从改进的古典加密技术(如Playfair和Vigenere密码),到混乱和扩散这两个奠定现代对称密码学基础的概念。
在具体实践中,课堂对话的典型应用场景是针对古典加密技术的课堂设问与引导回答,像游戏一样带有一定神秘色彩的古典密码设计与破解特别容易吸引学生。古典密码技术虽然目前已无实用价值,却是引导学生理解密码学基本概念的最好工具。
课堂上的头脑风暴可以让学生更自由地思考,从而产生新的问题解决方案,使学生具有创造性思维。在进行头脑风暴形式的讨论时,先提出要讨论的问题,要求所有学生自由地思考问题的解决方案;然后将各种方案不加评论地收集起来,随后在课堂上进行整理和评价。目标问题不应该过于简单或复杂,相反,应该是具有一定挑战性的、发人深省的、可以解决的。需要注意的是,教师应该让每个学生觉得他对这个问题的建议得到了尊重。在实际教学中,笔者有很多运用头脑风暴的例子,例如要求学生列举出网上银行中验证登录用户身份的所有可能的方法,学生列举出了简单口令、动态口令、基于质询应答的加密认证等方法,然后引领学生分析这些方法各自的优点和缺点。
主题演讲和讨论主要包含3个步骤:①由教师选定一个话题作为任务布置给学生;②课后学生通过阅读相关材料进行演讲准备;③由其中的一些学生进行主题演讲,关于此主题的更加深入的讨论也随之展开。如果需要,整个班级可以被分成若干个讨论小组,每个小组得到不同的话题。通过这种方式,学生就有更加充裕的时间对话题进行研究、准备和讨论。在整个过程中,学生通过阅读材料、制作幻灯片、进行演讲和讨论等,不仅有利于加深对选定主题的理解,也使相关技能得到提高,后者对于学生未来的职业生涯更加重要。下面是笔者在课堂上使用的一些主题:对现代常用的加密技术进行比较分析;基于Web的电子支付协议中需用到哪些密码技术;SSL协议在应用过程中的问题分析。
项目沉浸式互动教学主要是通过企业项目培养学生的应用能力,近年来项目式教学改革措施在一定程度上改善了知识传授的问题,但项目式教学的项目是教师虚拟的实际问题,是实际问题的抽象和简化。对于信息安全专业的学生,大部分将在本科毕业后直接进入相关行业工作,项目沉浸式研讨是一种缩小行业人才需求与高校培养差距的教学方式。这种教学方法将按照学生的意愿,每人选择一个企业专家导师,一起指导学生浸入实际企业项目,学生在与导师和同伴的交流中进行课堂知识的应用、整合和重构,其实质是一种基于情境学习理论的研讨互动式学习模式[10]。通过项目沉浸,学生学会用课堂上的专业知识解决企业的实际问题,有效解决课堂所学与现实应用脱节的问题,引导学生掌握解决实际问题的必要技能和思维方法。通过项目过程中的团队合作,也使学生锻炼了人际沟通技巧,与团队成员的协调能力。此外,为了将课堂与工业界紧密结合起来,笔者还邀请一些加密库的开发者和企业的安全技术人员作主题报告,介绍密码学在他们工作中的应用。
互动式教学方法实践过程中,仍然有许多问题需要思考和讨论。
首先,相比传统的以课堂讲解为主的教学方式,互动式教学方法需要更多的课堂时间,即需要较多的时间帮助学生了解知识点以及知识点之间的复杂联系,也要求学生在课余时间能够仔细阅读密码学领域相关文献。一般情况下,教师在使用互动式教学方式时需要为许多不可预料的学生提问做好准备,为保证课堂教学和研讨能够按计划完成,教师通常也需要更多的准备时间。
其次,在互动式教学中,教师往往倾向于同积极发言、参与讨论的学生进行交流,这些学生往往有更多的机会表达自己的想法,在课程项目工作中也会比其他学生投入更多的精力。这是一把双刃剑:一方面应当尽量使更多的学生参与课堂的讨论;另一方面没有必要保证每个学生都拥有同等的课堂讨论机会,因为那些不参与讨论的学生还是可以通过与其他同学的讨论加深对课程内容的理解,有助于加强记忆。
第三,挑选适合学生的企业项目比较困难。由于大多数学生是第一次接触密码学相关课程,缺少相关的实践经验,而企业中的项目大多面向有经验的安全技术人员。因此,想要找到适合初学者参与的企业项目比较困难,这需要教师的精心准备。
最后,互动式教学对学生成绩的客观评定较为困难。单纯的考试很容易量化学生的成绩,但是要综合评估学生在课堂对话、头脑风暴、主题演讲、项目沉浸实践这4个方面的表现就变得困难。例如,如果将学生的成绩评定主要依赖于项目中工作的表现,那么学生就会倾向于在项目工作上多花费时间,从而忽视课程内容的学习。在笔者的课程评分中,从两个方面强化知识内容学习的重要性:其一是学生总评成绩的60%来源于对课程内容的理解程度(即考试分数);另一种是尽可能在项目中安排一些课程的主干知识。
在面向密码学基础的互动式教学4个主要方法的应用中,统计教学班级的反馈意见发现:对互动式教学的满意率达到95%,没有学生认为这样的学习过程是难以接受的;大部分学生认为参与动手项目、课堂对话以及头脑风暴,比主题演讲更加有意义,项目沉浸式教学更能激发主观能动性,使他们自主参与学习;大多数学生认为在互动式教学中积极地参与课堂讨论非常重要。
从反馈结果看,课程设计和互动式教学方法总体上令人满意,多数学生能够从互动式教学中获益。但需要看到,仍然有部分学生认为增加课堂讨论和互动环节会浪费时间,如何进一步完善交互式教学方法和技巧,使之更好地被学生接受,需要进一步研究和探索。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!