APP下载

信息安全专业密码学课程体系的建设

2018-04-02侍伟敏周艺华杨宇光

计算机教育 2018年3期
关键词:密码学公钥密码

侍伟敏,周艺华,杨宇光,姜 楠

(北京工业大学 计算机学院,北京 100142)

0 引 言

随着互联网的快速发展,信息安全日益受到重视,特别是斯诺登事件之后,世界各国更是加强了信息安全的建设工作[1]。国内有80多个高校开设了信息安全本科专业,北京工业大学信息安全专业以计算机科学与技术一级学科、信息安全北京市重点(交叉)学科为支撑学科,以“卓越工程师培养计划”[2]为目标进行信息安全本科专业人才的培养。

密码学是信息安全专业的基础课程,它是研究密码学编码和密码学分析的综合性应用科学,是保证信息系统的保密性、认证性、完整性和不可否认性等属性的重要工具[3-4]。其中,各种加密和认证技术是实现网络安全环境中如电子政务和电子商务等系统的必要手段[5]。然而,作为信息安全专业重要的基础课程,密码学的课程体系建设是否完善直接影响后续专业课程的教学质量和学生对信息安全专业的整体把握。

1 密码学课程体系存在的问题

目前北京工业大学信息安全专业仅开设密码学数学基础课程和密码学课程,要想构建完善的密码学课程体系还存在以下不足。

1)密码学数学基础课程开设少。

密码学涉及丰富的数学知识,主要包括代数、组合论、初等数论、概率论、随机过程、图论、数理统计、信息论、计算复杂性等[6]。目前信息安全专业仅开设了高等数学、线性代数、概率论与数理统计、集合与图论课程,而对于公钥密码算法涉及的群、环、域,椭圆曲线,格运算等内容都没有包含,因此,需要开设相应的课程来弥补以上内容。

2)密码学算法实验安排不合理。

目前,信息安全专业密码学分课堂讲授和实验两部分,在一定程度上注重了理论与实践相结合,但对密码学的实验安排还存在不合理的现象。首先,实验算法的内容太少,仅有对称密码的DES和非对称的RSA算法实验,对于学生深入理解不同类型密码算法显然不够;其次,除了选用一些经典密码算法DES和RSA算法之外,应该与时俱进,设置较新的密码算法。

3)无专门开设密码学实践方面的课程。

密码学具有很强的实践性,比如解决网络应用环境中不可或缺的重要属性保密性、认证性、完整性和不可否认性都需要借助密码学的各种算法实现。由于密码学的最终学习目标是培养和造就满足国家和行业需求的工程型安全人才,解决具体的国家或行业安全问题,因此,需要教师在密码理论课程学习的过程,除了通过课堂讲授帮助学生了解密码学的基础原理和思想,还需要通过不同类型密码算法的编程实现,让学生更深入地理解密码算法设计的流程和方法;更重要的是针对某类信息安全问题,运用所学密码学理论设计一个关于某类信息安全问题的密码应用系统或方案,培养学生设计信息系统安全解决方案和实现相应系统的专业能力和团队协作能力。因此,对信息安全专业的学生来说,在开设密码学这门课之后,再开设关于密码学的综合设计实践课程是不可缺少的。

图1 密码学课程建设体系结构图

2 密码学课程体系的建设

密码学课程体系是信息安全专业教学和科研工作的基础和核心,其最终目标是培养创新型、实用型的信息安全专用人才。根据各门密码类具体课程的定位内容以及前修后续关系,笔者认真梳理了其课程体系的逻辑关系,给出密码课程体系关系见图1。

如图1所示,从纵向划分主要包括密码学基础、密码学算法、密码学应用和密码学实践4个层面。从横向划分,第1—4学期主要开设一些关于密码学数学基础课程,包括高等数学、集合与图论、概率论与数理统计、密码学数学基础和信息论与编码;第5学期开设密码学算法课程,即密码学;第6学期开设密码学应用课程,即密码学技术;第7学期开设密码学实践课程,即密码学综合设计;第5—7学期开设一些关于密码学前沿技术讲座。各个环节的具体内容如下。

1)密码学基础。

密码学基础层面主要开设了4门基础数学、密码学数学基础和信息论与编码课程。其中基础数学作为本专业的公共必修课程主要包括高等数学、线性代数、概率论与数理统计、集合与图论。

由于数论和代数结构是解决密码关键技术的理论基础,比如公钥密码算法涉及的群、环、域,椭圆曲线,格运算等内容都没有在以上基础数学课程内包含,而现有各学科教学体制中缺乏专门介绍密码以及信息安全涉及的数学知识的课程,因此,为了适应信息技术发展的需求,将密码学数学基础作为一门独立的专业基础课程,主要讲授整数的可除性、同余、二次同余与平方剩余、原根与指标、代数基础和椭圆曲线6个章节,各章节的主要内容如下。

(1)整数的可除性章节包括整除、最大公因数、最小公倍数、素数的概念、欧几里得除法、数学基本定理;整数的表示、广义欧几里得除法。

(2)同余章节包括同余、同余式的概念、剩余类、欧拉定理、费马小定理、一次同余式、中国剩余定理。

(3)二次同余与平方剩余章节包括二次同余式、平方剩余的概念、模为奇素数的平方剩余与平方非剩余、勒让德符号、雅可比符号、模p平方。

(4)原根与指标章节包括指数、原根及基本性质、指标、高次同余式的求解。

(5)代数基础章节包括群的定义和性质、陪集、置换群、循环群、环和域的基本概念、理想和商环、多项式环、域的有限扩张、有限域的性质、有限域的表示、有限域上的多项式。

(6)椭圆曲线章节包括基本概念、椭圆曲线的加法原理、有限域的椭圆曲线等。

在系统介绍与密码学关系密切的数学知识以及一些常用的计算方法的同时,应该通过一些应用实例使学生了解数学知识在信息安全中的应用,通过这些实例帮助学生更好地理解抽象的数学知识,为进一步应用数学知识解决密码学理论与实践问题奠定扎实的数学基础。

另外,密码编译算法设计、密码系统安全性和密码算法评价等均以信息论为基础,因此,在密码学数学基础开设的第3学期,作为专业选修,又开设了信息论与编码课程。

2)密码学算法。

密码学算法层面主要以密码学课程为主,围绕密码学算法,分课堂讲授和实验两部分。其中课堂讲授主要有6个章节,即绪论、序列密码、分组密码、公钥密码、消息认证和杂凑算法、数字签名,其中各章节的主要内容如下。

(1)绪论主要介绍密码学基本概念、密码学发展、密码体制与密码分析、密码体制的安全性、古典密码体制。

(2)序列密码介绍序列密码的基本概念、线性反馈移位寄存器、线性移位寄存器的一元多项式表示、m序列。

(3)分组密码主要介绍分组密码的基本概念、分组密码的设计原则、分组密码的结构、分组密码的安全性、DES、AES。

(4)公钥密码主要介绍公钥密码概述、RSA、背包密码体制、ELGamal密码体制、Rabin密码体制、椭圆曲线密码体制。

(5)消息认证和杂凑算法主要介绍杂凑函数概念及安全性、杂凑函数的构造方法、MD5、SHA、Hash函数、消息认证码。

(2)适当提前“未知数、变量的使用”“代数式的运算”尤其是“代数式的运算”最早开始年级;适当推后代数思维知识主题最晚结束年级.中国代数思维课程内容阶段跨度是六国中最小的国家,所属4个知识主题均只属一个阶段,连续性较弱;然而,代数思维作为联系“算术”与“代数”的桥梁,在澳大利亚、英国、美国、南非均横跨小学、初中、高中3个阶段,适当延长中国整个代数思维课程内容的设置时间显得很有必要.

(6)数字签名主要介绍数字签名的基本概念、利用公钥密码实现数字签名、数字签名标准DSS。

通过课堂讲授可以让学生掌握课程教学内容中规定的一些基本概念、基本理论和基本方法。其中对一些基本方法的核心思想的分析,学生能够对这些基本概念和理论有更深入的理解,使之有能力将它们应用到一些问题的求解中。

另外,在掌握密码学基本原理和主要算法的基础上,应结合实验课程教学,更进一步让学生理解密码学算法的主要流程和典型方法,加深对理论的理解,为之后密码学综合设计部分积累一定的实践经验。该部分主要包括算法验证和算法实现两种实验,可选用不同类型的密码算法,如古典密码算法、分组密码算法、序列密码算法和公钥密码算法等。其中在算法验证实验过程中,通过各类密码算法的验证软件,学生能更加深入地理解不同类型密码算法的原理和流程,更清楚地明白这些密码算法的设计细节、工作模式、参数选择等;另外在算法实现实验的过程中,通过利用程序设计语言实现不同类型的密码算法,除了让学生更好地掌握密码算法设计的机理和方法之外,更重要的是帮助学生学会逐步分析算法的结构,培养学生的软件实现能力、查阅资料能力、获取适当工具能力和表达能力等。

3)密码学应用。

密码学应用层面开设了密码学技术,该课程是基于密码算法解决安全问题的重要技术,主要包括密钥管理技术、认证技术和安全协议3个部分,具体内容如下。

(1)密钥管理技术主要包括密钥的生成、密钥的分发、密钥的验证、密钥的更新、密钥的存储和密钥备份等技术。

(2)认证技术主要包括相关的认证协议如单向认证协议、相向认证协议、三向认证协议和群组认证协议以及认证系统框架(如基于对称密钥的认证框架Kerberos、基于公钥证书的认证框架PKI技术、基于IBE的认证框架等),其中重点是讲解基于公钥证书的认证框架PKI技术(包括PKI概念及组成、数字证书、PKI技术实现、PKI提供服务、PKI应用系统)。

(3)安全协议主要包括应用于电子邮件的安全协议、应用于电子商务的安全协议以及可信计算中密码应用技术,其中电子邮件安全协议介绍PGP、S-MIME、PEM,电子商务安全协议介绍安全套接层协议SSL和安全电子交易协议SET,可信计算中密码应用技术介绍密码学对可信计算的支撑作用,静态/动态可信机制和可信计算认证流程。

4)密码学实践。

密码学实践层主要设置了密码学综合设计课程,即针对某类信息安全问题,运用所学的密码算法,设计出一个密码应用系统或方案,如基于数字证书的身份认证系统,即实现认证中心CA为用户颁发X509证书,了解数字证书的格式、证书的申请、审核、签发、获取及撤销等实现过程,之后再基于颁发的数字证书实现身份的认证功能。综合设计实验使学生获得设计、分析和解决信息安全问题的综合体验,增强了学生理论结合实际的能力,培养了学生设计信息系统安全解决方案和实现相应系统的专业能力和团队协作能力。

5)密码学前沿技术讲座。

随着计算机、电子和通信等技术的不断进步,密码学也得到了快速发展。然而,密码学教材由于篇幅限制无法涵盖最新的密码技术。为了开阔学生的视野,在第5—7学期开设一些关于密码学前沿技术讲座,每个学期聘请外校专家或从事密码学研究的教师开设1~2次的讲座,比如讲解关于基于属性的密码学、轻量级密码学、后量子密码学和量子密码学等最新进展以及密码学在物联网、大数据、智能电网、车联网等较新领域中的应用技术,让学生跟进密码学最新发展动态,了解先进的密码学技术。这不仅开拓了学生视野,更重要的是增强了学生的学习兴趣。

3 结 语

目前信息安全专业还不是一个很成熟的专业,存在许多缺陷。密码学作为国内信息安全专业的重要基础课程,针对信息安全专业,如何建设密码学课程体系是本文的核心研究内容。当然,密码学课程体系的建设和发展任重道远,还需要继续不断尝试和探索。

参考文献:

[1]王鹤鸣. 从信息化发展历程看密码学发展——专访西安电子科技大学通信工程学院王育民教授[J]. 信息安全与通信保密,2011(12): 13-15, 19.

[2]教育部. 教育部关于实施“卓越工程师教育培养计划”的若干意见 [EB/OL]. (2011-1-8)[2017-09-19]. http://www.moe.gov.cn/publicfles/business/htmlfles/moe/s6342/201102/ xxgk_115066.html.

[3]郑彦斌, 周星辰. 密码学课程的教学探索[J]. 大众科技, 2017, 19(210): 88-89.

[4]王昭. 密码学教学与创新教育[J]. 计算机教育, 2011(6): 41-44.

[5]卢开澄. 计算机密码学——计算机网络中的数据保密与安全[M]. 3版. 北京: 清华大学出版社, 2003.

[6]孙菁, 傅德胜.“密码学”课程教学方法的探索与实践[J]. 计算机教育, 2006(9): 28-30.

猜你喜欢

密码学公钥密码
密码里的爱
图灵奖获得者、美国国家工程院院士马丁·爱德华·海尔曼:我们正处于密钥学革命前夕
密码抗倭立奇功
神奇的公钥密码
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
密码藏在何处
夺命密码
以群为基础的密码学
一种公开密钥RSA算法的实现