密码学课程教学中的“破”与“立”

2018-04-02 01:24邢宇航过惠平王利涛
计算机教育 2018年3期
关键词:密码学密码算法

邢宇航,李 敏,过惠平,王利涛

(火箭军工程大学 作战保障学院,陕西 西安 710025)

0 引 言

密码学课程是各高校信息安全专业的基础课程,为后继专业课程学习奠定基础。密码学课程系统介绍密码学发展历史、密码体制及对应经典密码算法等,为密码应用奠定基础[1-4]。信息安全已完全上升到国家安全战略层面,密码学是信息安全的基础,随着计算机和网络化全域应用,密码作为体系作战的最后一道防线,具有重要地位和作用。

密码学作为信息安全专业的基础课程,不仅教密码算法的设计和实现,而且教密码算法的应用和评估。但在实际教学中发现,由于密码为战争和私密信息服务的属性,在悠久的发展历史中,常被冠以神秘色彩,初学者都对密码学有畏惧心理。同时,密码学以数学为基础,理论性强,造成了数学恐慌症。如何克服这种情况,搞好密码学教学是值得深入思考的问题[5-6]。笔者结合多年的教学经验和与学生交流的心得体会,提出从密码学教学中的“破”与“立”角度展开对密码学教学的思考,“破”是把大问题化成小问题、简单问题或者不存在的问题;“立”是指在“破”的基础上,建立新的易于理解和掌握的知识框架。“破”的主要是由于畏惧心理、理论性强及其他因素所产生的教学问题;“立”的是利于教和学的新内容体系,让学生在实践应用中找兴趣,在新的教学内容体系下学知识,进而达到掌握密码学知识的目的。

1 密码学课程教学中的“破”

1.1 “破”的原则

“破”是为了回避密码学教学过程中的困难和障碍,以利于教学。因此,“破”应该把握的基本原则有:一是“破”的有理有据。“破”是把困难的问题分解,使得问题易于理解和解决,所以,这里强调的有理有据是说分解的方法和思路是合理的,是在把原问题矛盾分化解决,而不是扩大和偏离;比如讲解分组密码DES时,16轮的变换,再加上多种运算和复杂的编码环节,学生不容易接受。把DES的整个加密流程分成初始变换、轮变换、密钥生成、末轮不交换4个问题。只要弄明白这4个问题,整个加密流程就清楚了,而不是上来就抓最难理解的编码环节和16轮的变换。二是“破”的有方法。学生觉得难就不学,要找到方法和手段让学生觉得不难学,才是真正的“破”。三是“破”是规避不是逃避。学习过密码学的都知道,如果对密码算法进行纯数学式的推导或者讲解时,学生很难接受,不好理解,但若换一种形式就可能很容易理解。比如解释某算法的安全性时,解释其密钥空间很大,很安全,但不管你怎么表达,学生很难留下印象,若你把密钥空间的量换算为时间来表示,学生一下就明白了。

1.2 “破”的对象

教学是教和学两个方面,需要两个方面共同努力,才能实现教学相长。教的方面来说,需要打破传统的“填鸭子”和面面俱到的传授理念,切实规划组织好教学内容,从教学内容出发,找教学方法和手段。学的方面来说,一是要打破学生畏惧心理。密码学长期处于被保护和不公开的管理模式下,大家对其非常陌生,感到很神秘。实际上,密码无处不在,就在我们的身边和生活中,比如银行存储卡、网络账号登录等,这样想就好多了。二是要打破密码就是数学的思想。密码学属于应用数学,密码算法由各种数学函数构造,运用各种运算,最终把明文信息变成密文信息[7-11],主要涉及数论、代数学、概率统计、数理统计及离散数学等,这些构成了密码学的数学基础[12]。密码确实基于数学理论来保证算法的安全性,但它是把正确的数学结果结论用在合适的地方,从而构造了密码算法。只要掌握密码算法的设计思想,即便不做深入的数学推导,同样可以学好密码学。打破“教”和“学”两个方面的不良习惯和思想,需要老师和学生积极配合,把对密码学的误会解开,揭开密码学的神秘面纱,才能形成对密码学教与学的共识,为“立”奠定基础。

2 密码学课程教学中的“立”

密码学课程教学的“立”是相对于“破”来说的,为了达成教和学的共识,需要排解掉畏惧心理,同时把密码理论性强的思想踩在脚下,才能接受和认识密码学。在“破”的基础上,为了达到更好的教学效果,必须建立易于接受的新的教学知识体系,教学体系的根本就是内容体系。结合多年教学经验和心得体会,我们总结了“一条主线、两种思想、三类算法、四个应用”的密码学内容体系(见表1)。这个体系无论对于老师还是学生来说,从整体上把握密码内容的脉络都非常有帮助,能够提高教与学的效率。

表1 密码学教学内容体系

2.1 紧紧抓住“一条主线”

一条主线就是密码学发展这条主线。密码学发展是一个不断完善的过程,密码学发展和时代密不可分,学习密码学必须了解和掌握密码学发展历史,这是学习密码学的共性要求。每一个算法的设计都不能脱离时代背景,密码学发展严格来分,主要有几个里程碑意义的时间阶段,进而把密码学发展历史分为古典密码、现代密码、近代密码和当代密码。比如古典密码,没有计算机和严格理论证明,古典密码的学习和理解就要建立在简单数学运算和字母代替变换上,虽然简单,但它代表着那个时代的特征。再比如DES,20世纪70年代公开的算法,以当时的计算机发展水平,非常安全,但到了20世纪末,计算机的计算能力大大提高,DES算法就不安全了。密码学发展历史就是理解密码学的一把钥匙,运用好这把钥匙,非常有助于密码学学习。密码学发展历史虽然有助于理解与掌握课程内容,但每个阶段的密码学内容庞杂和曲折,而且时间跨度较大,不能把大量精力和时间花在一个阶段,因此要采取对密码学发展历史简讲,拔出精髓和主要思想,让教学内容轻快起来,让学生理解并掌握密码学发展历史和每个阶段的主要思想。

2.2 牢牢把握“两种思想”

两种思想是混淆和扩散。虽然混淆和扩散最初是分组密码设计时遵循的基本原则,但对后来的密码算法设计影响深远,很多密码算法设计都遵守这项原则。从算法结构上来说,密码算法有些相对复杂,有些相对简单,但不管怎么设计算法编码环节,只要把握了这两个原则,就比较容易理解密码算法的设计过程,因为这些设计都是为了达到混淆或者扩散的目的。这两种思想对理解对称密码体制,尤其是分组密码体制来讲,非常有效。比如讲解DES时,如果牢牢把握这两种思想,对于DES编码环节的理解就非常简单;而公钥密码体制多是基于数学难题,RSA算法是基于大合数难以分解问题,ECC算法是基于离散对数难解问题,把握这一点,也可以较好理解公钥密码设计思想。

2.3 牢固掌握“三类算法”

三类算法就是DES、基于LFSR的序列密码和RSA算法。在密码学教学内容中,这3类算法发展不但成熟,而且非常具有代表性,是密码学发展历史上具有里程碑意义的事件。掌握这3种经典算法,对于把握整个密码学内容非常有帮助。在密码学悠久的历史中,密码学真正成为一个学科应该是从1949年香农的信息理论开始,它奠定了密码学的数学基础。后随着计算机的出现,密码学得到了长足进步,密码体制也出现了分类,比较典型的有根据加解密密钥是否相同而分为对称密码体制和非对称密码体制,根据加密方式不同而分为分组密码和序列密码,这些密码体制后来得到了快速发展,现行的密码算法基本都属于这些密码体制。在密码学教学过程中,大家都不约而同地把分组密码和序列密码单独成章进行讲述,虽然这两种密码体制都是对称密码体制,但是它们发展比较成熟,很多经典的密码算法成为后人追随的典型。在实际应用中,分组密码和序列密码应用也最为广泛,其高效性和安全性得到大家的青睐。这是密码学讲授的重点内容,也是学生必须要掌握的内容。在众多的分组密码中,最为成熟和典型的就是基于Feistel网络结构的DES算法和基于SP网络结构的AES算法,而序列密码的典型是基于LFSR设计的序列密码,RSA算法和ECC算法则是公钥密码的典型算法,抽出这些典型算法进行精讲,学生只需把握这些密码算法的设计思想,举一反三,能够自行理解和掌握其他同类密码算法。

2.4 熟练运用“四个应用”

四个应用是指信息加密、信息认证、密钥分发和数字签名。密码学的初衷是保证信息的安全,随着网络的广泛应用,密码的职能由最初的保密扩展到保密、认证以及密钥分发。密码学侧重于工程应用,掌握密码学的工程应用,就能够更好理解密码算法的设计精髓。详细讲解密码算法的工程应用,既能激发学员的学习兴趣,又能很好理解理论内容,一举两得。密码算法的设计具有非常明显的目的性,就是为了实现某个目标,借助数学和逻辑组织的一个函数。采用倒推的思路,如果把握了算法设计的目的,将非常有助于理解和分析密码算法。在讲解经典密码算法的基础上,应详细介绍这些算法如何应用、在什么环境下使用及其安全性评价等。把握算法的工程应用,将大大加深学生对密码学课程内容的理解和掌握。

教学是教和学的两个过程,教学相长是教学的最高境界。教学中“破”与“立”的根本目的是克服课程教与学过程中的困难和障碍,分解和回避矛盾,再逐步解决。密码学博大精深,既有严格理论推导的部分,又有偏于工程实践的编码环节,如何把握这些内容,融会贯通,在有限的课时内讲出精彩是每个老师都在深入思考的问题。密码学虽源于数学,但不同于数学,不能把密码学课程讲成数学课程。教学无定法[13-14],因材施教才是最好的方法。同时,学生也可以根据自己的情况,选择适合自己的学习方法。

3 结 语

密码学属于应用数学,又属于计算机科学,既讲究理论的严密性,又侧重于工程应用。不同类型的大学,对学生的要求不同,应用环境也不同,我们可能偏于工程类大学的要求,对于做密码理论研究的院校来讲,可能更侧重于算法的设计,但不管怎样,密码算法为信息安全服务的本质不变,密码的初衷没变,因此,不管是密码学教学,还是密码学学习,要兼顾密码的理论特性和工程应用属性,才能更好把握密码学的教和学,做到教学相长。

参考文献:

[1]金晨辉, 郑浩然, 张少武, 等. 密码学[M]. 北京: 高等教育出版社, 2009. 11.

[2]宋秀丽, 罗文俊, 王进, 等. 现代密码学原理与应用[M]. 北京: 机械工业出版社, 2012. 3.

[3]范九纶, 张雪锋, 刘宏月, 等. 密码学基础[M]. 西安: 西安电子科技大学出版社, 2008. 1.

[4]王文海, 蔡红昌, 李新社, 等. 密码学理论与应用基础[M]. 北京: 国防工业出版社, 2009. 9.

[5]李曦. 密码学课程实践教学存在的问题及改进措施[J]. 高等教育研究, 2011(2): 23-24.

[6]杨铮, 王勇, 罗颂, 等. 密码学基础教学改革与实施新探索[J]. 福建电脑, 2016(9): 166-167.

[7]Oded G(以色列). 密码学基础[M]. 北京: 电子工业出版社, 2003. 1.

[8]胡予濮, 张玉清, 肖国镇.对称密码学[M]. 北京: 机械工业出版社, 2 002.7.

[9]吴文玲, 冯登国, 张文涛.分组密码的设计与分析[M]. 北京: 清华大学出版社, 2009.7.

[10]乔纳森·卡茨, 耶胡达·林德尔.现代密码学——原理与协议[M]. 任伟, 译, 北京: 国防工业出版社, 2012.

[11]Wade T, Lawrence C W. 密码学与编码理论[M]. 王全龙, 译. 北京: 人民邮电出版社, 2008.

[12]陈恭良.信息安全数学基础[M]. 1版. 北京: 清华大学出版社, 2004. 6.

[13]田有亮, 王雪梅. 算法思维在密码学教学中的应用[J]. 创新教育, 2015(22): 188-189.

[14]张恩, 王岁花, 代丽萍. 翻转课堂在密码学课程教学中的应用案例[J]. 计算机教育, 2016(7): 64-67.

猜你喜欢
密码学密码算法
密码里的爱
哪种算法简便
图灵奖获得者、美国国家工程院院士马丁·爱德华·海尔曼:我们正处于密钥学革命前夕
Travellng thg World Full—time for Rree
密码抗倭立奇功
进位加法的两种算法
根据问题 确定算法
费马小定理和素数在密码学的应用
密码藏在何处
夺命密码