《密码学》课程直播教学设计与反思—以AES密码算法为例

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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位作为列

相关文档
最新文档