数字签名
认证
技术
课程
渐进
教学
案例
设计
张艳硕
第 30 卷 第 4 期北京电子科技学院学报2022 年 12 月Vol.30 No.4Journal of Beijing Electronic Science and Technology InstituteDec.2022数字签名和认证技术课程的渐进式教学案例化设计张艳硕 刘天宁 李梦东北京电子科技学院,北京市 100070摘 要:数字签名和认证技术作为密码学的重要分支之一,在信息安全领域得到了广泛应用,其重要作用也日益显现。本课程在实际教学过程中面临着理论知识范围广、知识交叉多元化、应用前景广泛、实践性强等特点。本文旨在提出课程的渐进式教学案例化设计,用实践性、教学性强的案例,通过对比的方法,由浅入深,循序渐进地去讲解数字签名和认证技术的理论知识和实际应用,通过数字签名和认证技术课程的理论性、应用性和实践性教学的案例化设计展示使学生直接、快速了解数字签名和认证技术的相关知识,提高学生学习课程的积极性,并逐渐适应和掌握学习课程的方法。最后,还对教学实践经验进行总结,案例化教学设计能够使学生形成更好的密码学应用知识体系,开阔眼界,提高专业素质,为今后的课程学习和实践打下坚实的基础。关键词:数字签名;渐进式教学;教学设计;人才培养中图分类号:G421 文献标识码:A文章编号:1672-464X(2022)4-115-130 基金项目:2020 年教育部新工科项目“新工科背景下数学课程群的教学改革与实践”、基本科研业务费(项目编号:328202008)、“信息安全”国家级一流本科专业建设点项目 作者简介:张艳硕(1979-),男,副教授,博士,硕导,通信作者,从事密码数学理论研究。E-mail:zhang_yanshuo 刘天宁(2000-),男,本科在读,信息安全专业。E-mail:tianning_0518 李梦东(1964-),男,教授,从事密码算法及其应用研究。E-mail:lmd 1 引言 随着信息技术的大规模应用和数字经济的加速发展,信息安全问题日益突出1,其核心技术基础之一的数字签名和认证技术,被广泛地应用于军事、通信、电子商务和电子政务等领域,它在身份认证、数据完整性和抗否认等方面具有其它技术无法替代的作用。数字签名和认证技术课程是密码学专业基础课的必要延伸,是信息安全类课程所用认证技术的更为全面和深入的介绍。本课程在实际教学过程中面临着理论知识范围广、知识交叉多元化、应用前景广泛、实践性强等特点。因此,如何设计数字签名和认证技术课程的教学内容,如何改善课程的教学方法一直是今后需要持续研究的问题。渐进式教学法是我国传统的教学方法,它产生和形成于我国深厚的文化背景中2。循序渐进是渐进式教学法的要旨。渐进式教学具有内容上由浅入深、由易到难的特点,便于学生学习、理解、掌握和综合运用3。从简单到复杂的普遍认知规律和实验教学规律是渐进式教学需要具备的规律。渐进式教学方法已经在众多学科教学中应北京电子科技学院学报2022 年用,其实用性已经得到较为充分的证实。目前,数字签名和认证技术大多作为密码学课程教学的一部分,在教学中往往较少进行较为深入的学习,针对数字签名和认证技术的教学内容主要集中在签名算法和认证技术的简单介绍,然而数字签名和认证技术的重要性日益凸显,同时本课程的教学是一个层次分明的渐进过程,目前数字签名和认证技术教学领域还没有较为系统的渐进式教学模式的提出。数字签名和认证技术课程应采用循序渐进、层次递进并结合具体案例的方式进行渐进式案例化教学。首先将课程分为理论、应用和实践这三个部分,以知识层次递进的方式渐进的教学相应知识。然后再将每个部分的知识从较为基础知识讲起,再在其基础上循序渐进地教授较为综合的相关知识,这样符合渐进式教学的普遍规律。在理论上,主要涉及基础签名算法和认证协议的介绍;在应用上,主要涉及具有附加功能签名和认证协议的各种具体方案和分析方法,以及它们在不同场合的应用;在实践上主要涉及在实际密码系统中具有较好适用性的签名和认证协议的相关知识。本文旨在提出数字签名和认证技术课程的渐进式教学案例设计,用实践性、教学性强的案例,由浅入深,循序渐进地去讲解数字签名和认证技术的理论知识和实际应用。渐进式教学案例设计作为一种较为新颖且实用的教学方法,能让学生直接、快速掌握更多的数字签名和认证的知识,更好地培养学生的应用实践能力,为培养从事密码与信息安全类领域的人才做好相关知识的储备以及学习方法的拓展,从而更好地适应密码应用技术快速发展的大环境。本文首先介绍数字签名和认证技术在理论方面的渐进式教学案例,其次是在应用方面的渐进式教学案例,然后介绍在具体实践中的渐进式教学案例,最后介绍课程教学中的实践经验。2数字签名和认证技术课程的基本特征2.1 课程理论知识范围广数字签名和认证技术是一门理论知识内容多,覆盖面非常广泛的课程。同时也是理论难度大,实践性和应用性均比较强的课程。故本课程的学习需要很多前置课程作为基础,前置课程包含密码学、信息安全数学基础等。前置课程的知识量大、难度高,体现出本门课程对数学和密码学基础的要求。目前数字签名和认证技术在理论和实践上己经形成了丰富的知识体系,因此需要掌握的相关知识也非常广泛。2.2 课程的知识交叉多元化从课程内容的联系上讲,数字签名和认证技术可以说是多个学科的一个交汇点,这些学科包括:密码学、概率论、近世代数、密码学应用技术等。从应用数学的角度看,数字签名和认证技术是计算数论、抽象代数等理论的一种应用4;从通信的角度看,数字签名和认证技术是保密通信和通信网络安全的研究内容;从计算机应用的角度看,数字签名和认证技术是数据安全、计算机安全和网络安全的研究内容。数字签名和认证技术的研究内容决定了它的交叉性和多元化,这使数字签名和认证技术从不同的方面得到研究,从而得以不断发展。2.3 课程应用前景广泛密码法的颁布为签名算法和认证技术的发展保驾护航。签名算法和认证技术及其应用的不断发展与革新,使得课程的内容更加实用,课程的知识更加丰富,课程的应用前景更加广泛。因此课程的教学应做到与时俱进,为学生提供最新签名算法和认证技术的相关知识以及获取最新知识的渠道,利用最新文献资料对相关问题做进一步的研究,有效拓展学生的知识面。2.4 课程实践性强目前,数字签名和认证技术已广泛应用于商611第 30 卷数字签名和认证技术课程的渐进式教学案例化设计 业、金融和办公自动化等系统中,同时作为一种密码学的基础构件,成为安全电子商务和安全电子政务的关键技术之一4。数字签名和认证技术课程的基本目的在于让学生掌握数字签名和认证技术的基础知识并加以实际应用。因此,我们需要重视实践教学,让学生在完成本门课程的学习后可以较为熟练的掌握签名算法和认证协议的实际应用。因此课程的教学不应局限于基础算法以及协议的讲解,还应强化其实践性。3数字签名和认证技术渐进式理论教学案例设计 从本质上讲,本课程的主要内容是一些具体的签名算法和认证协议,由此可见数字签名算法和认证协议的基础理论知识对于本课程的重要性。3.1 DSA 及其标准化 DSS 算法的渐进式教学在进行数字签名内容的教学时,同学们往往对 DSS 签名标准和 DSA 算法分不清,采用渐进式教学方法可以让同学们在了解签名算法后更有效的学习基于这种算法的签名标准3。DSS 数字签名标准使用的算法称为 DSA,它是在 ElGamal 和 Schnorr 两个方案基础上设计出来的。DSA 算法如下:(1)全局公钥 K:p,q,g。p,q,g 作为系统参数,供所有用户使用,在系统内公开。(2)一个长度为 L 比特的大素数 P,L 的大小在 512 到 1024 之间,且为 64 的倍数。(3)q 是能被 p-1 整除的 160 比特的素数。(4)一个 q 阶元素 g Zp。g 可以这样得到,任选 hZp;如果 h(p-1)/qmodp1,则令 gh(p-1)/qmodp,否则重选。(5)一个用户随机选取的整数 x Zp,并计算出 y gxmodp。(6)一个 HASH 函数(SHA-1)H:0,1 Zp。(7)对消息 M 生成数字签名时,随机选取一个 秘 密 整 数kZp,计 算 出r(gkmodp)modq;s k-1(H(m)+xr)modq,输出(r,s)为签名人对 M 的签名。(8)检查 r 和 s 是否属于0,q,若不是,(r,s)不是签名。(9)计算ts-1modq,r(gh(m)tmodqyrtmodqmodp)modq。(10)比较 r=r 是否成立。我们在完成 DSA 算法的学习后可以对基于它的签名标准 DSS 更好地进一步学习,我们将具体的 DSA 算法结合 DSS 框架基础进行讲解,让学生更好理解签名标准的算法以及签名标准,为学生之后学习签名标准提供良好思路。通过表 1 我们来渐进学习 DSS 和 DSA 算法。表 1 DSA 算法和 DSS 的渐进式对比DSADSS签名算法(1)-(7)对应 DSS(2)用私钥对摘要加密:最重要为第(7)r (gkmodp)modq;s k-1(H(m)+xr)modq(1)发送方将发送信息原文用 SHA 函数编码,产生固定长度的数字摘要。(2)发送方用自己的私钥对摘要加密,形成数字签名,附在原文后面。(3)发送方产生通信密钥,用它对带有数字签名信息进行加密,传到接受方。(4)发送方用接受方的公钥对自己的通信密钥进行加密后,传到接受方。接受方收到加密后的通信密钥,用自己的私钥对其进行解密,得到发送方的通信密钥。(5)接受方用发送方的通信密钥对收到的经加密签名原文解密,得到数字签名和原文。签名算法(8)-(9)对应 DSS(6)签名解密:检查 r 和 s 是否属于0,q,计算 t s-1modq,r (gh(m)tmodqyrtmodqmodp)modq 签名算法(10)对应 DSS(7)摘要比较:比较 r=r 是否成立。(6)接受方用发送方公钥对数字签名解密,得到摘要;同时将原文 SHA 函数编码,产生另一个摘要。(7)接受方将两个摘要比较,若一样,说明信息没有被破坏或篡改。711北京电子科技学院学报2022 年 在进行 DSA 算法及 DSS 标准的学习时,我们先介绍 DSA 算法的签名验签过程以及算法具体流程,在掌握算法的基础上,循序渐进的学习基于 DSA 算法的 DSS 签名标准。渐进式教学为我们学习签名算法及其标准提供了新的方法。我们在介绍其签名算法具体过程的基础上,将具体签名算法步骤与签名标准的模型及基础框架相对应,以此来渐进学习基于这种签名算法的签名标准。3.2 OSS 及其改进 ESIGN 算法的渐进式教学我们也可以采用渐进式教学的方法来学习数字签名体制及其改进的签名方案。OSS 签名体制以及 ESIGN 签名方案就是很好的案例。采用渐进式教学方法可以让同学们在了解签名体制后更有效的学习基于这种签名体制的改进方案。OSS 签名体制是由 Ong、Schnorr 与 Shamir于 1984 年所提出,但在 1987 年被证明为不安全,直到 1993 年才有人提出一个安全的改进方法5。ESIGN 是由 Okamoto 和 Sharaishi 在 OSS 的基础上提出的数字签名方案。ESIGN 是日本NTT 院士 Tatsuaki Okamoto 于1990 年提出的6。我们首先学习 OSS 签名体制,在学习 OSS签名体制后,通过表 2 来进一步深入学习基于OSS 签名体制改进版的 ESIGN。表 2 OSS 和 ESIGN 的渐进式对比签名名称对比内容OSSESIGN初始化参数:n=pq,k 满足 gcd(k,n)=1,计算 e-k-2modn=-(k-1)2modn参数:三个不同的大素数 p、q(pq),n=p2q,指数 k(k 4)计算=O(n2/3)签名任选整数 r,满足 gcd(r,n)=1,计算 s112(mr-1+r)modns2k2(mr-1-r)modn。发送 m 和(s1,s2)作为签名选择一个随机数 x(x Zpq)计算:w=h(m)-xk(modn)pqy=wkxk-1modp