◆陆向艳 刘峻
基于安全目标驱动的密码学教学方法研究
◆陆向艳1,2刘峻1
(1.广西大学计算机与电子信息学院 广西 530004;2.广西多源信息挖掘与安全重点实验室 广西 54100)
针对当前密码学教学存在学生学习主动性缺乏、算法逻辑理解困难等问题,本文提出一种基于安全目标驱动的密码学教学方法。该方法根据密码学发展不同阶段所出现的满足不同安全目标的密码算法来进行密码算法教学设计,旨在通过算法设计的安全目标来引导学生理解算法设计的逻辑,从而提高学习的兴趣,缓解畏难情绪。
安全目标;古典密码;现代密码
当前互联网的广泛应用,给社会和个人带来了极大的便利,同时也带来了诸多安全问题,如隐私泄露、假冒伪装、入侵等,保护网络安全成为当前网络安全管理的重要内容。密码学可以提供多种网络安全保障机制,是实现网络安全的核心技术之一。由于密码学[1-4]内容涵盖信息学、数学和计算机科学等多个学科,课程内容涉及面较广,是一门交叉学科,具有很强的理论性,因此相当多的学生对该课程学习比较畏惧,采取什么样的教学方式,才能让学生能够较好地掌握和应用密码学是当前该课程教学面临的挑战问题。
密码学也称为密码编码学。内容主要包括古典密码、对称密码体制、非对称密码体制、认证算法、数字签名和密码管理等内容。古典密码主要有Caesar密码、单表代替密码、Playfair密码、Hill密码和Vigenère密码等;对称密码体制主要有DES算法和AES算法等;非对称密码体制主要有RSA算法、ElGamal密码算法、椭圆曲线密码算法等;认证算法主要包括安全HASH算法和消息认证算法等;数字签名主要有ElGamal签名、DSA算法和椭圆曲线数字签名算法等;密钥管理主要包括对称密钥管理和非对称密钥管理。由于密码学涉及的算法和相关协议众多,同时要求学生具备良好的数论和近世代数基础,理论性很强,导致学生容易产生畏难情绪,缺乏学习主动性。
密码学可以实现信息安全的机密性、完整性、真实性和不可否认性四个安全目标。但在教学过程中发现相当多的学生对密码算法如何实现这四个目标理解不够充分,导致算法设计思想难以把握,算法逻辑理解有困难。
针对当前密码学教学存在学生学习主动性缺乏、算法逻辑理解困难等问题,本文提出一种基于安全目标驱动的密码学教学方法。该方法是根据密码学发展不同阶段所出现的满足不同安全目标的密码算法来进行密码算法教学设计,旨在通过算法设计的安全目标来引导学生理解算法设计的奥秘——算法逻辑,从而提高学习的兴趣,缓解畏难情绪。密码学发展历史主要分为古典密码和现代密码学两大阶段。根据这两个阶段算法设计所满足的安全目标,设计以下基于安全目标驱动的教学方法:
(1)Caesar密码算法
Caesar密码算法提出的安全目标是古代战争通信信息的保密需求,基于这个目标,提出基于字母替代的信息隐藏方式。加密过程为:明文编码P=p1p2…pn,密文编码C = c1c2…cn,加密变换为c=E(p)=(p+k) mod 26 ,解密变换为p=D(c)=(c-k)mod 26 ,k∈[1,25]。Caesar密码算法通过简单的字母替代来保障战争信息的安全性,由于密钥k 只有25个,密钥空间很小,所以可以轻易通过穷举攻击方式破解,同时,Caesar密码算法明文和密文之间存在一一对应的线性统计规律,可以通过统计密文字母规律还原明文。
(2)单表代替密码算法
单表代替密码算法提出的安全目标是克服Caesar密码算法密钥空间小和明文到密文之间的线性统计规律。基于这个安全目标的单表代替密码算法,用一个英文短语作为密钥短语,如HOW ARE YOU,去掉重复字母得HOWAREYU,将它依次写在明文字母表之下,然后再将字母表中未在短语中出现过的字母依次写在密钥短语之后,从而构造出一个字母代换表(如图1)。
图1 单表字母代换表
算法加密过程是应用这个字母代换表对明文字母逐一进行代替,解密过程也是应用这个表进行逆向代替。相比Caesar密码算法,单表代替密码算法密钥空间扩大了很多,大小为26!,具有良好的对抗穷举攻击的性能,但明文到密文仍然存在线性统计规律。
(3)其他古典密码算法
其他古典密码算法提出的安全目标是在保证密钥空间足够大的情况下,降低单表代替密码算法明文到密文之间的线性统计规律。这些密码算法分别是:Playfair密码、Hill密码、Vigenère密码、Vernam密码等。这些密码算法在相当大的程度上降低了明文到密文之间的线性统计规律,但未能完全去除这种规律。
(1)基于安全目标驱动的对称密码算法教学
①DES算法
DES算法提出的安全目标是在保证密钥空间足够大的情况下,破除古典密码算法明文到密文之间的线性统计规律。DES算法是一种分组对称加密算法,明文和密文均为64位二进制数。64位密钥保证了密钥空间足够大,算法采用复杂的代换算法来破除明文到密文之间的线性统计规律。DES算法加密过程是明文信息在密钥的控制下,重复执行16轮相同的混淆和扩散变换,转换成密文,轮迭代中使用了S盒变换(非线性函数)来实现明文到密码之间的非线性转换。解密过程和加密过程使用相同的密钥和算法。DES在1977-1997近20年的服役之后,由于密钥空间不足以抵抗日益增长的穷举攻击计算能力,最终被宣布停止使用。
②AES算法
AES算法提出的安全目标是密钥长度比DES大且可变,抵抗所有已知的攻击。AES算法和DES一样也是一种分组对称加密算法,根据密钥长度可变的安全目标,密钥有128、192、256位三种长度选择,密钥空间远大与DES,抵抗穷举攻击能力更强。为实现抵抗所有已知攻击,算法采用基于有限域的集合运算。AES算法加密过程是明文信息128位,在密钥的控制下,根据密钥长度进行不同轮次(10轮、12轮、14轮分别对应128、192、256 位长度的密钥)的迭代运算。每轮迭代依次执行四种变换:字节替代、行移位、列混合、轮密钥加,字节替代是明文和密文信息之间的非线性变换部分,基于有限域GF(28)上求多项式逆元及矩阵向量运算实现,列混合是有限域GF(28)上的四维向量与有限域GF(28)上的一个固定可逆方阵的乘积,行移位和轮密钥加是简单的移位和模加运算。通过字节替代、行移位、列混合这三个变换将明文信息进行充分的混合,以实现明文到密文的非线性变换,通过轮密钥加使密文的生成在密钥的控制之下。
③对称密码算法的缺陷
对称密码算法的优点是能够快速安全地实现明文到密文的变换,实现信息的保密性。但在网络应用环境下存在两个主要缺点:一是在大规模用户情况下存在密钥数量庞大,密钥管理困难的问题;二是无法实现身份认证和数字签名。
(2)基于安全目标驱动的非对称密码算法教学
①非对称密码算法的安全目标和设计思想
非对称密码算法的安全目标是克服对称密码算法密钥管理困难,和无法实现身份认证和数字签名这两个缺陷。根据这个安全目标,非对称密码算法的设计思想是每个用户单独有一对密钥,其中一个密钥保密称为私钥,另一个密钥公开称为公钥。应用公钥就可以解决密钥管理的难题,同时应用公钥和私钥可解决身份认证和数字签名问题。
② RSA算法
RSA算法是最著名的非对称密码算法,算法安全性(公钥的公开不影响私钥的保密性)是大整数素数因子分解的计算困难性问题。RSA公钥和私钥的生成是:为每一个用户随机地选择两个大的素数p,q,计算n=pq,ø(n)=(p-1)(q-1),选择一个秘密的随机数e,满足1 ③其他公钥密码算法及其安全性 其他公钥密码算法有ElGamal密码和椭圆曲线密码。ElGamal公钥密码算法的安全性是基于离散对数求解的计算困难性:对于函数y≡gxmod p,其中g为素数p的生成元,已知y、g、p,计算x是困难的。椭圆曲线公钥密码算法的安全性是基于椭圆曲线对数求解的计算困难性:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q的情况下求出小于p的正整数k是一个计算难题。 (3)基于安全目标驱动的消息完整性认证算法教学 对称和非对称密码算法主要实现了消息的机密性、身份认证和数字签名这三大安全目标,对于消息完整性即是否被篡改这个安全目标,需要消息完整性算法实现。实现消息完整性验证的算法主要有HASH函数和消息认证码。HASH函数是将就消息分成若干组,HASH函数有一个固定的初值,每组明文依次进行相同的函数变换计算,除了第一组使用初值之外,其余每组计算的输出作为下一组计算的输入,最后的输出作为消息完整性验证值,由于每位明文都参与了HASH函数值的计算,所以一旦明文信息被篡改,则重新计算的函数值将发生改变。消息认证码和HASH函数相似,但在应用明文消息进行计算的同时加入密钥参与计算,最后输出的函数值与消息和密钥都相关,所以可以用于消息完整性和用户身份认证。 相当多的学生对密码学课程具有畏难情绪,缺乏学习主动性。本文提出一种基于安全目标驱动的密码学教学方法。该方法以密码学发展历史为主线,密码算法的安全目标为驱动,对密码学各类算法进行教学设计,引导学生理解算法设计的逻辑,从而缓解畏难情绪和提高学习的兴趣。该方法在多次教学实践中效果显著,受到学生的欢迎。 [1] William Stallings(美)威廉·斯托林. 密码编码学与网络安全—原理与实践(第七版)[M]. 北京:电子工业出版社,2017. [2]杨波. 现代密码学(第4版)[M]. 北京:清华大学出版社,2017. [3]段桂华,王建新,李敏,等. “专德创”融合教学模式设计及其在密码学课程中的应用[J].计算机教育,2020(04):1-4. [4]路秀华,张全雷,周霞,等. 现代密码学课程的课题化教学方法研究[J]. 计算机教育,2020,4(03):1-3,7. 广西软科学研究计划(桂科AB17205002);广西研究生教育创新计划(JGY2015004);广西多源信息挖掘与安全重点实验室开放基金项目(MIMS20-06)3 结束语