基于密码算法的信息安全数学基础案例教学方法研究

作者: 牛淑芬 董润园 刘维

基于密码算法的信息安全数学基础案例教学方法研究0

摘要:信息安全数学基础是网络与信息安全专业研究生的基础课程,主要为学生后续的课程学习提供数学理论基础。经过探讨信息安全数学基础教学中存在的不足,设计了一个基于密码算法为案例的教学改革模式。该教学模式将数学理论与密码算法相结合、将密码算法与编程实践相结合。经过教学实践证明,该教学方法能充分调动学生的积极性和主动性,让学生在掌握数学理论的同时,深入地理解数学理论在密码实践中的应用,同时算法编程的实现让知识的掌握更为直观。

关键词:信息安全数学基础;密码算法案例;教学方法

中图分类号:G642      文献标识码:A

文章编号:1009-3044(2022)29-0126-03

1 引言

信息安全作为一门新兴的综合性很强的交叉性学科,涉及计算机科学、密码学、数学、通信学、信息学、安全工程、法律等诸多学科[1],其目的是保障信息在存储和传输过程中的保密性、完整性、不可否认性等特性。信息安全数学基础是信息安全专业学生的核心课程,本学科建立在数学理论的基础之上并且涉及多个数学分支[2],如:离散数学、数论、代数学等课程。作为一门新的数学课程,虽然有很强的理论性,但它也有别于一般的数学课程,那就是与密码学课程相关,如:现代密码学、网络安全基础、协议分析等[3],所以本课程也具有一定的实践应用性。本文通过分析信息安全专业硕士研究生在学习过程中存在的问题,探讨以密码算法案例为主线的教学模式,使学生在密码算法应用实践中学习相关的数学理论知识。

信息安全数学基础内容涉及众多的性质和定理,内容抽象[4],需要大量的理论推导,对于逻辑推理能力较弱的理工科学生而言理解难度比较大,导致学生的学习积极性和主动性都不高。笔者近五年一直讲授信息安全专业的信息安全数学基础和现代密码学两门课程,结合近五年的授课经验和长期的教学探索,发现存在以下问题:

(1)教学方法单一,学生积极性和主动性不高。

由于现有的教学时数是36学时,为了在有限的课时中完成教学内容,本课程的讲授方式重理论轻应用,重算法轻编程,基本以板书形式结合PPT讲授,这样的教学方式和手段使得课程的教学显得枯燥,而对于计算机专业的研究生来说,编程实现算法是其优势,本教学改革拟根据课程内容的特点和学生的实际学习能力,通过案例教学和编程调动学生的学习积极性。

(2)教学目的与实践脱节。

根据传统数学类课程的教学模式,学生只是掌握了本课程的数学原理,提高了学生的逻辑能力和解题能力,而缺少对本课程和信息安全后续课程(如:现代密码学)的联系,无法形成一个完整的体系,也无法融会贯通各个课程的知识点,使得教学内容和实践应用脱节。

笔者结合教学环节中发现的问题以及信息安全专业硕士生后续课程的教学需求,根据学生学习阶段的反馈,积极探索适合创新模式的教学改革方法。本着数学理论与密码算法相结合,以及将密码算法与编程实践相结合的教学目的,提出了一种基于密码学案例的信息安全数学基础教学模式,该教学模式将数学理论与密码算法相结合,将密码算法与编程实践相结合。该教学方法能充分调动学生的积极性和主动性,让学生在掌握数学理论的同时,深入地理解数学理论在密码实践中的应用,同时算法编程的实现让知识的掌握更为直观。

2 基于密码算法的案例教学模式

在本课程的教学过程中,依然是遵循以理论教学为主的教学理念,但适当地加入密码算法案例教学,目的是让学生学以致用,重视理论与实践相结合。在本教学设计中,因课时的限制,选取了三个经典的密码算法案例:RSA加密算法、基于椭圆曲线的ElGamal加密算法以及基于中国剩余定理的秘密共享。其目的是将知识点与实际应用结合,通过编程实现,对知识的理解更为直观化。在学习了大素数、最大公约数、同余、欧拉函数和逆元的知识以后,我们以RSA加密算法为案例进行研究教学,详细了解各个知识点的具体应用。基于椭圆曲线的密码算法在密码学中有着非常重要的应用,包括最为热点的区块链安全是基于椭圆曲线的加密,故在平方剩余和椭圆曲线群知识点讲解后,补充基于椭圆曲线的ElGamal加密算法,使学生对知识的理解会更为透彻,也能增加趣味性和实践性。具体教学模式如图1所示。

2.1 以RSA加密算法为案例的学习目标

在以RSA加密算法[6]为案例的教学设计中,通过对算法的讲解和编程实现,可让学生学习理解大素数、最大公约数、同余、模幂、欧拉函数、逆元等知识点的定义和在密码算法中的应用,最后编程实现,以便直观地理解各个知识点的内容。

RSA加密算法:

① 参数生成:任意选取两个大素数[p]和[q],计算[n=pq],[φ(n)=(p-1)(q-1)],随机选择整数[e<φ(n)],满足[gcd(e,φ(n))=1];计算整数[d],满足[ed=1modφ(n)]。[p],[q]和[φ(n)]保密,加密者的公钥为[(n,e)],私钥为[d][5]。

② 加密:对于消息[m],计算[C=mdmodn],则密文为[C]。

③ 解密:解密者计算[m=Cemodn]。

通过RSA算法的理论分析,首先让学生了解基本的加解密算法,学习大素数、逆元、互素等知识点在密码学中的应用。其次,通过程序的输出,直观理解大素数的概念,认识并掌握模逆元的求法。

如图2所示,程序运行输出大素数[p]和[q],输出公钥[e]和私钥[d],其中[d]为[e]的逆元。同时也可以看出,解密的消息等于随机产生的明文消息。

2.2 以ElGamal加密算法为案例的学习目标

在第四章二次同余式和平方剩余的内容的学习中,有如下的例题:

例 1:求满足方程[E]:[y2=x3+x+6(mod11)]的所有的点,由二次剩余概念可求得椭圆曲线上的点为:[(2,4)],[(2,7)],[(3,5)],[(3,6)],[(5,2)],[(5,9)],[(7,2)],[(7,9)],[(8,3)],[(10,2)],[(10,9)]。

本例题考查学习的任务是平方剩余的求法,在密码学中,此知识点和密码学中的椭圆曲线相关,在实际教学设计中,可提前讲解第8章椭圆曲线的定义。基于椭圆曲线群的密码算法在密码学中应用非常广泛,本内容的案例教学设计选取了经典的[ElGamal]公钥加密算法,并给出程序运行结果。

定义1[7]: [p>3]是一个素数,[Zp]上的同余方程[y2=x3+ax+b(modp)]的所有解[(x,y)∈Zp×][Zp]连同一个特殊的点(无穷远点)共同构成[Zp]上的椭圆曲线[y2=x3+ax+b][(modp)],且[4a3+][27b2≠0]。

在本例题的讲解中,根据椭圆曲线的概念,可知方程[y2=x3+x+6(mod11)]的点满足椭圆曲线方程,其次可以证明椭圆曲线上的点可以构成一个加群。

加法运算如下:已知椭圆曲线上两点[P(x1,y1)]和[Q(x2,y2)],则[(x3,y3)=(x1,y1)+(x2,y2)]的求法如公式(1)[8]:

[λ=(y2-y1)(x2-x1)-1λ=(3x21+a)(2y1)-1][x2≠x1x2=x1]

则可得:

[x3=λ2-x1-x2y3=λ(x1-x3)-y1]                          (1)

取椭圆曲线群的生成元[α=(2,7)],可以如公式(1)计算[α]的倍数,要计算[2α=(2,7)+(2,7)],首先计算:[λ=(3×22+1)(2×7)-1mod11][=8mod11]

所以有:[x3=82-2-2mod11y3=8(2-5)-7mod11=2mod11]

因此:[2α=(5,2)]。

定义2: [Z*p]上的[ElGamal]公钥密码体制[6]

设[p]是一个素数,使得[Z*p,⋅]上的离散对数问题是难处理的,令[α∈Z*p]是一个本原元。令[Ρ∈Z*p],[C=Z*p×Z*p],[β≡αamodp],[p,α,β]是公钥,[a]是私钥。对[K=p,α,a,β],以及一个(秘密)随机数[k∈Zp-1],定义[eKx,k=y1,y2],其中[y1=αkmodp]且[y2=xβkmodp],对[y1,y2∈Z*p],定义[dKy1,y2=y2y1a-1modp]。

例 2:椭圆曲线的生成元为[α=(2,7)],Bob的私钥为[7],由定义3,加密运算:

[Ek=m,k] [=k(2,7),m+k(7,2)=y1,y2]

取明文[m=10,9],[k=3],则:

[Ek=3(2,7),(10,9)+3(7,2)]

由公式(1)可得:

[y1=3(2,7)=(8,3)y2=(10,9)+3(7,2)=(10,2)]

即密文为:

[Ek=(8,3),(10,2)]

由解密算法可得:

[Dk=y1,y2=y2-ay1=(10,2)-7(8,3)=(10,2)-(3,5)=(10,2)+(3,-5)=(10,2)+(3,6)=(10,9)=m]

通过前4章的学习,学生的理论基础有所提高,对密码算法已经有一定的掌握,因此在第8章的教学过程中,在讲授椭圆曲线的加法、重复倍加算法及椭圆曲线密码算法等内容的基础上,更进一步增加密码算法案例,更有利于衔接现代密码学课程的学习。教学方式采用翻转课堂的形式,在教师讲解密码算法基础上,让学生查阅资料自主学习椭圆曲线密码系统,结合讲授的算法进行编程。

2.3 以秘密共享算法为案例的学习目标

秘密共享是将秘密值以适当的算法拆分,拆分后的每一个子秘密分发给不同的参与者,只有若干个参与者一同出示子秘密才能恢复秘密值。秘密共享算法在密码学中尤为重要,尤其在5G/6G网络中,由于大量用户的移动性,密钥协商和秘密共享成了难点和重点,也是近年来研究的热点。

事实上,秘密共享方案在现实生活中也有极其广泛的应用,例如银行业务处理、政府机要库门开启、导弹发射等,都需要多人同时到场。一些重要的文档或者信息,也需要多人分开掌管等。在密码学中,有线性秘密共享算法,Shamir秘密共享算法和中国剩余定理秘密共享。

中国剩余定理又称孙子定理,是求解一元线性同余方程组问题方法。中国剩余定理的基本内容的数学表述如定义3。

定义3: 中国剩余定理[9]

设[m1,…,mk]是[k]个两两互素的正整数,则对任意的整数[b1,…,bk],同余式组

[  x≡b1      (mod m1)  x≡bk      (mod mk)]

一定有解,且解是唯一的。

由于中国剩余定理的解具有唯一性及正确性,故适于使用中国剩余定理进行构建秘密共享方案。

基于中国剩余定理的秘密共享:

分解秘密:对于某秘密值[s],计算

[s1≡s(modm1)       s2≡s(modm2)⋮     sn≡s(modmn)     ]                        (2)

则子秘钥为[(si,mi),i=1,2,…,n]。

上一篇 点击页面呼出菜单 下一篇