课题:      3.4加密与解密                                                       
执教班:高一(1)(2)(3)(4)(5)
课时安排:  2               
教学目标
学科知识:
数据类型(字符串、字符),字符与ASCII码,函数ord()与chr(),循环语句,分支语句,条件(逻辑)表达式。
信息意识:
1.防范“盗窃”行为,保障数据安全。
2.设置安全密码保护数据安全。
3.了解数据加密的历史。
4.认识到加法密码的基本原理和算法。
学科思维:
1.通过任务一穷举破解密码感受运算速度,分析有哪些影响破解速度的因素。
2.抽象(恺撒密码抽象为字符串的替换操作) 、建模(把明文、密文当作字符串处理,字符串就是一种模型)
社会责任:
1.了解密码盗窃方式,理解对数据进行保护的意义。
2.了解相关法律知识。
教学重难点
教学重点:
1.用穷举法破解密码。
古代传递信息的方式2.保障数据安全的技巧。
3.恺撒密码的加密与解密算法。
教学难点:
1.提高效率穷举法破解密码。
2.理解凯撒密码的加密与解密算法。
第二课时
教学环节
教学内容
媒体或技术应用
一、导入
【让数据 ‘隐身’】一张老照片背后的故事——引入“加密”话题。
二、新知
一、数据加密的历史
3.4.3 数据加密技术的发展
时间
加密方式
683
拆字法。将明文中的文字进行组合生成新的字,即为密文,比如“十二月”合起来为“青”
北宋
代码法。北宋进士曾公亮曾搜集了40个常用军事短语,然后对其进行顺序编码:一、请弓;二、请箭;三、请刀;四、请甲;五、请旗;六、请锅幕;七、请马;八、请衣赐;九、请粮料……四十、战小胜。军队出征前,指挥机关将用上述短语编码的密码本发给将领,并约定用一首不含重复文字的40字五言律诗与密码相对应
公元前五世纪
移位法。希罗多德(Herodotus)的《历史》中记载了公元前五世纪,希腊城邦和波斯帝国发生多次冲突和战争。这些战争中希腊城邦中广泛使用了移位法进行加密处理战争通讯信息,使波斯帝国难以获得希腊城邦的军事情报,也就无法提前做军事部署。希腊城邦用来传输军事信息、命令的每段文字都有固定的字数,解密者手中会有一份文字移位说明。解密者拿到密文后,根据文字移位说明进行解密,从而破解其中的军事命令或消息
古罗马时期
《高卢战记》有描述恺撒曾经使用密码来传递信息,即所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。因据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码
第二次世界大战
密码机。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用
二、加密与解密
1.加密定义:加密就是将原始信息(数据)隐匿起来,使之在缺少特殊信息(数据)时不可读。
原始信息(数据)称为明文。
加密后的信息(数据)称为密文。
3.解密定义:将密文还原成明文的过程称为解密(或解码)。
【活动2】 揭秘“隐身术”——凯撒密码的加密
恺撒在征服高卢、袭击日耳曼和不列颠的多次战斗中频繁使用加密技术。苏托尼厄斯在公元2世纪写的《恺撒传》中对恺撒用过的一种加密技术进行了详细的介绍。想一想:明文:I LOVE YOU 加密后L ORYH BRX(密文),秘钥是?
这是一种位移加密方式,只对26个字母进行位移替换加密,规则简单,容易破解。下面是位移3次的对比:
明文字母表
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
密文字母表
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
学生实践一:撒密码加密算法,尝试补全流程图(凯撒密码加密过程.fld)
师讲解:加密过程
密文b
d~z
D~Z
a~c
A~C
不变
规律
ASCII码+3
ASCII码+3
ASCII码-23
ASCII码-23
不变
公式
'a'<=c[i]<='w' or 'A'<=c[i]<='W'
'x'<=c[i]<='z' or 'X'<=c[i]<='Z'
chr(ord(c[i])+3)
chr(ord(c[i])-26+3)
c[i]
备注:ord()、chr()p53页。
学生实践二:解密过程 ,打开学案,出解密规律并“补全公式”
明文c
a~w
A~W
x~z
X~Z
不变
规律
ASCII码-3
ASCII码-3
ASCII码+23
ASCII码+23
不变
公式
'd'<=b[i]<='z' or 'D'<=b[i]<='Z'
'a'<=b[i]<='c' or 'A'<=b[i]<='C'
chr(ord(b[i])-3)
chr(ord(b[i])+23)
b[i]
【试一试】请写出恺撒密码的解密算法。
(详见配套资源“撒密码(解密无界面).py”)
c=input("请输入密文:")
b=""
for i in range(0,len(c)):                  #获取密文内容的每一个字母,并破解
    if  'd'<=c[i]<='z' or 'D'<=c[i]<='Z':  #判断d-zD-Z间的字母
b=b+chr(ord(c[i])-3)                #破解密文
    elif 'a'<=c[i]<='c' or 'A'<=c[i]<='C':  #判断a-cA-C间的字母
        b=b+chr(ord(c[i])+23)              #破解密文
    else:
        b=b+c[i]                            #字母以外的密文不变
print("你的明文为:"+b)
【想一想】恺撒密码的安全性能如何?
可以说,保密性能极差。将明文字符前移或后移一个固定的长度d(称为密钥),即使改变d的值,也最多只需25次尝试d的值,就能破解。
四、小结
1.数据类型(字符串、字符),字符与ASCII码,函数ord()与chr(),循环语句,分支语句,条件(逻辑)表达式
2.加密与解密的过程,核心是秘钥。
3.相关法律
国家已经出台多部法律,大力实施数据保护,维护国家安全和网络秩序。2017年6月1日起施行的《中华人民共和国网络安全法》,明确要求网络运营者应当按照网络安全等级保护制度的要求,履行安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被篡改,窃取。
《中华人民共和国刑法》第二百八十五条至第二百八十七条,对非法侵入计算机系统,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,利用计算机实施金融、盗窃、贪污、挪用公款、窃取国家秘密等行为进行了量刑定罪。
课后作业:恺撒密码的安全性如何?你能提出一种改进方案吗?
备注实验等实践的教学设计样式可参照新课教学设计模板编制。