《密码学》课程直播教学设计与反思—以AES密码算法为例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《密码学》课程直播教学设计与反思—以AES密码算法为例
摘要:为顺利开展疫情期间教学工作,根据密码学学科特点和高校教学安排,
对《密码学》课程开展线上直播教学。本文以AES密码算法为例,进行直播教学
设计及教学反思,便于今后更好开展教学工作。
关键词:直播教学;密码学;教学设计
一、引言
2019年12月以来,湖北省武汉市陆续发现了多例新型冠状肺炎病例,为了
防止疫情进一步扩散,2020年1月26日,国务院新闻发布会要求各地大、中、
小学2020年春季学期推迟开学[1]。为了进一步保障教学工作按时完成,教育部1月29日发出倡议:利用网络平台,展开“停课不停学”[2]。各个高校为响应“听课
不停学”政策,纷纷采取了多种教学方式,如:线上直播、电视教学、学生自学等。作者根据《密码学》课程的学科特点,并结合当前疫情的形势和教学安排,充分
利用网络资源开展线上直播教学。本文以《密码学》课程中的AES密码算法为例,对开展直播教学的工作进行阐述与反思,为今后的教学工作提供经验借鉴。
二、AES密码算法课程设计
(一)教学目标
学生通过学习本节课的内容,掌握AES密码算法的数学基础、设计思想和算
法流程,为后序的密码学实验课程打下理论基础。同时增强学生的信息保密意识
和保密责任感,为今后从事密码学相关工作打下基础。
(二)教学设计
AES密码算法由于涉及到一些数论的基本知识且加解密流程较为复杂,因此
在课程安排上采用4个学时分别对AES密码的数学基础知识、算法的由来及框架、轮函数及密钥生成算法、思考题探讨与分析进行讲解。
1.数学基础知识
(1)十六进制加法
学习AES密码的数学基础知识,可以采用回顾旧知识,引入新课的方法。首
先需要同学们回忆一下我们之前学的数的进制。我们最常用的是几进制数呢?答:十进制。除了十进制数,我们还学过哪几个进制?答:二进制、八进制和十六进制。
AES密码算法主要涉及十六进制的加法和乘法运算,下面我们首先来看十六
进制的加法运算。这里采用学生自学和教师讲解相结合的方式,发挥学生在学习
时的主动性。请同学们先自己看课本上59页的例子,思考为什么十六进制的
57+83=D4呢?
同学们通过观察和计算已经了解到,十六进制的加法运算是将数字化为多项式,再将两个多项式做模二加运算,而我们说的模二加运算,实际就是异或运算。比如:这里的57和83分别对应二进制的01010111、10000011,将对应位的二进
制相加,做异或运算,得到11010011,化为十六进制就得到了D4。所有的十六
进制加法运算,d都采用相同的方法。
(2)十六进制乘法
AES密码需要用到十六进制的乘法,也叫做x乘法。这里采用边讲解边写板
书的方式来给同学们讲授。以5713为例:
57对应的二进制为01010111
13对应的二进制为00010011
我们根据13对57进行四次移位,每次移位的结果分别为:10101110、01000111、10001110、00000111。我们将移0位、移1位、移4位的结果相加,
得到最终的结果11111110,将结果化为十六进制,得到FE,因此5713=FE。
十六进制的加法和乘法是后期AES密码加密的基础运算,对保障数据安全具
有重要意义,需要同学们熟练掌握。
2.算法的由来及框架
AES密码算法的由来主要采用理论讲授、举例分析的方式开展教学。2001年
11月,高级加密标准AES(Advanced EncrCyption Standard)被美国国家标准技术研
究所NIST宣布成为取代DES的新一代的加密标准。
目前AES被世界广泛使用,已成为对称密码算法中最流行的密码算法之一。
比如我们目前使用的微信小程序,就是用这种算法传输加密的。
AES是基于SP网络的迭代型分组密码,具备以下基本参数:
分组长度:128位
密钥长度:128、192、256位
轮数:依据密钥长度而定
这时候通过提问和对比分析的方式,给同学们提一个问题。当AES密码算法
的密钥长度为128位时,加密轮数却是10轮,比DES少,这是为什么呢?
答:因为DES算法使用Feistel结构并没有在每一轮迭代中对整个分组加密,
单轮的DES只加密64位的一半,而AES是使用SP网络,每一轮要对整个分组的128位加密。
我们下面针对AES-128来分析:16字节的明文首先和密钥做异或,用异或操
作是因为快,而且开销小,可使用简单的硬件进行运算。然后,进行10轮迭代,第10轮运算后的输出就是密文。
注意,在入口处和出口处有两个变换。入口处是明文和密钥异或,出口的变
换是在第10轮完成的,仔细观察,可以发现,第10轮迭代少了什么呢?答:列
混合!这里是和其余9轮不一样的。
图1 AES密码的设计思路
前9轮的加密涉及4种操作:字节替代、行移位、列混淆、轮密钥加。第10
轮由于出口处理,少了列混淆。每一轮加密使用的子密钥是不同的。
这些操作都有什么作用呢?我们知道分组密钥要满足香农提出的扩散和混淆,这些是通过轮函数来实现的,第一层字节代替是轮函数中唯一的非线性层,起到
了混淆的作用。行移位和列混淆共同构成了线性扩散层,在这里起到高度扩散的
作用。轮密钥加起到生成密钥的作用。轮函数是AES的重要部件,下节课我们来
重点讲解一下轮函数的工作原理。
3.AES密码轮函数及密钥生成算法
轮函数的及密钥生成算法主要采用理论讲授、举例分析、对比分析的方式进行。
(一)字节代替
字节代替:通过S盒完成一个字节到另一个字节的非线性映射,位置不变。
首先将128比特的数据分为16字节,前4个字节为1列,依次排列。这样就将128比特的数据和4×4的矩阵建立了联系。通过查找S盒完成替换。AES可以
看作是用16个不同的S盒完成替换。将数据的高4位作为行号,低4位作为列