RSA公钥密码系统的教学设计及应用
2022-04-25丁婷婷方贤进梁兴柱石文兵
丁婷婷,方贤进,梁兴柱,石文兵
(1.安徽现代信息工程职业学院 信息工程系,安徽 淮南232001;2.安徽理工大学 计算机科学与工程学院,安徽 淮南232001)
0 引言
在教育部最新设置的18个计算机类专业目录中[1],信息安全(080904K)、网络空间安全(080911TK)、保密技术(080914TK)、区块链工程(080917TK)和密码科学与技术(080918TK)等专业的课程体系中均涉及现代密码学课程,并且都是这些专业的核心课程.RSA公钥密码系统在现代密码学中具有非常重要的地位,也是国际上最成功的密码系统之一,目前被广泛应用于各种网络、通信与软件系统中.RSA公钥密码系统中的教学知识点多且较为枯燥,在教学中往往会使学生产生厌倦情绪.为了提高RSA 公钥密码系统的教学质量,真正让学生学有所用,很多教师进行了教学改革与研究,如丁勇[2]提出了使用有限群抽象代数知识来证明RSA 能够正确解密,从而帮助学生理解和学习RSA 公钥系统;周洁等[3]指出了RSA算法涉及的基于数学难题的教学模式,包括素数、欧拉函数、最大公约数、欧几里得除法、同余、模幂计算和中国剩余定理等;胡小明等[4]从理论教学和实践教学两方面对信息安全专业密码学课程进行探讨,并提出一套新颖的教学方法和课堂评价标准;田有亮等[5]从算法思维的角度讨论了模块化教学思路的可行性.为了在教学中能够让学生充分理解RSA 公钥密码系统,训练其学习现代密码学的算法思维,培养其利用RSA 公钥密码系统解决实际问题的能力,论文梳理了RSA 公钥密码系统教学中的理论知识、算法和性质,包括欧拉定理、RSA 的密钥生成算法、RSA 加密算法、RSA 解密算法、RSA 数字签名和RSA 算法的乘法同态性;总结了几个RSA 公钥密码系统的安全性原理,包括选择密文攻击、共模攻击和低指数攻击等;针对RSA 公钥密码系统教学中的理论知识、算法、性质和安全性原理等构建了函数库,并通过案例教学验证了函数库的可用性,提高了学生解决复杂工程问题的能力.
1 RSA公钥密码系统教学体系设计
1.1 教学体系设计思路
RSA公钥密码系统教学涵盖的知识点多,特别是数学知识,实用性比较强.因此,为了加强理论学习的系统性和全面性,按照所需掌握的基本知识层递关系,将RSA 公钥密码系统教学体系设计为四层.第一层是数学基础理论层,包括Euler 定理、Euler 函数、最大公约数和数的素性等;第二层是函数库层,包括最大公约数计算、大整数幂模运算、扩展的Eculid 算法、模运算乘法逆元、快速积运算、快速幂运算和素性判定运算等;第三层是RSA 算法层,包括密钥生成算法、加密算法、解密算法、数字签名算法和验证签名算法等;第四层是RSA 应用层,涉及RSA 的性质与安全性内容,包括RSA 算法的乘法同态性、选择明文攻击、选择密文攻击、共模攻击和低指数攻击等.
通过讲授、讨论,使学生能够了解RSA 公钥加密系统针对性的理论和定理,掌握基本实现原理,重点掌握传统加密算法和解密算法等.
1.2 RSA公钥密码系统教学体系设计中各层之间的关系
函数库层中各函数的形式化说明,以及函数层中各函数与RSA 算法层、RSA 算法层与RSA 应用层的调用关系设计如表1和表2所示.
表1 函数层与RSA算法层之间的调用关系
表2 RSA算法层与RSA应用层之间的调用关系
RSA 算法层与RSA 应用层之间关系的梳理,一方面是为了实现案例教学,提高课堂的教学效果,另一方面,通过实现RSA 算法的乘法同态性、选择密文攻击、共模攻击和低指数攻击等应用训练学生解决复杂工程问题的能力.
2 案例教学
为了避免出现“满堂灌”等枯燥乏味的说教方式,选择具有实际应用背景、典型的案例融入教学设计中,使课程内容更加形象、丰富,不仅能激发学生的学习兴趣,还能加深学生对知识的理解和运用[6].例如,在教学中通过案例一和案例二的求解和验证,使学生理解并能够灵活运用RSA 算法常见的攻击方式以及RSA密码体制的同态性分析.
2.1 案例教学一:RSA算法中的共模攻击
问题:若用户user1 和user2 共享模数n=524 747,他们的公钥e1,e2分别是30 283,8 209.若攻击者截获user1 和user2 对同一明文m加密的结果分别是c1=51 297,c2=365 457.求解攻击者破解明文m的方法并进行验证.
解答步骤如下:
实验运行的结果如图1所示.
图1 共模攻击实验验证结果
2.2 案例教学二:RSA算法的乘法同态性
问题:对于明文m1,m2,验证RSA是否有乘法同态性,即是否存在:Ee(m1m2)≡Ee(m1)*Ee(m2).
解答步骤如下:
实验运行的结果验证了RSA算法具有乘法同态性,如图2所示.
图2 RSA算法乘法同态性验证
3 结语
论文实现了将RSA 公钥密码系统进行分层次教学设计,并建立了RSA 公钥密码系统教学的函数库,通过案例教学的方式丰富教学内容,提高了课程教学质量以及学生应用RSA 解决实际问题的能力.经教学实践表明,RSA公钥密码系统教学体系设计获得了良好的教学效果.但本文建立的函数库的计算范围只涉及整数域,还未达到工业级别RSA 安全性的需求,故不能在商用RSA 加密、解密和数字签名中进行应用,这也是今后要进行研究的工作.