3.4 加密与解密 【新教材】2021-2022学年教科版(2019)高中信息技术必修一 课件(31张PPT)

文档属性

名称 3.4 加密与解密 【新教材】2021-2022学年教科版(2019)高中信息技术必修一 课件(31张PPT)
格式 pptx
文件大小 16.0MB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2021-11-23 10:19:42

图片预览

文档简介

(共31张PPT)
第2单元 编程计算
第1单元 初识数据与计算
第3单元 认识数据
第4单元 计算与问题解决
第5单元 数据分析与人工智能
信息技术
(必修1)
3.4 加密与解密
学习目标
★ 理解数据加密和解密的概念及原理。
★ 了解数据加密的历史。
★ 会用Python实现简单的加密算法。
★ 会分析生活中由密码引起的数据安全问题, 理解对数据进行保护的意义。
任务一 解开网站账号被盗之谜
不少人有密码被盗的经历, 这往往会导致个人信息泄露, 甚至是财产损失。 你是否有使用账号、密码的经验?请你与同学交流、讨论并上网搜索填写表格。
盗窃方式 防盗措施
肩窥方式 我们可以在输入密码时遮挡自己的操作过程,防止别人偷看密码信息;或者确定环境安全后再进行操作
字典破解
暴力破解
肩窥攻击是指通过窥看用户的键盘输入,鼠标移动等方式来获取用户口令。
字典破译是利用人们习惯用人名、地名或者常见的词语设置成密码的习惯进行破译,有好的字典是关键。
暴力破解是一个一个的尝试。
密码不要用生日,姓名及拼音缩写,手机号、简单数字组合,单词、身份证号,用户ID等。
密码同时包含大小写字母、数字、特殊符号,不少于8位
※ 活动1 防范 “盗窃” 行为
活动2 设置安全密码
请你打开教科书配套资源中的 “数据安全性测试.py”,运行并测试穷举搜索一个5位、 7位和9位的数字密码, 分别需要多长时间, 然后填写下表。
密码长度 密码值 破解时间
5位 12567 1.0毫秒
98302 15.6毫秒
7位 1234567 79.922毫秒
9784302 425.524毫秒
9位 123456789 8秒939.25毫秒
321809456 12秒544.216毫秒
密码是指用来核对用户ID以验证用户就是本人的一组字符。
密码
想一想, 如果密码中还有字母, 破解的时间会变长吗?
Def jiemi():
dl=datetime.datetime.now() #获取当前系统时间d1
p=int(varin. get()) #获取输入文本框的数字密码
for i in range(0,p+1): #从0循环到正确密码数值
if i==p: #如果密码相同
d2=datetime.datetime.now() #获取当前系统时间d2
d=d2—dl #取得时间差
#在输出文本框中显示解密用时
varout.set(str(d.seconds)+"秒"+str(d.mic roseconds/1000)+”毫秒" )
varin和varout是程序中的两个文本框对象,分别用来接收输入的密码
和显示解析密码所需时间。
get和set是文本框的两个方法,分别用于接收文本框中的数据和在文本框中显示输出数据。
varin.get( )
varout.set( )
包含个人信息
不要使用电话号码、身份证号或生日等信息作为密码。
包含用户名
不要使用整个用户ID或用户ID的一部分作为密码。
密码长度
使用长度不少于8个字符的密码。密码长度越长越不容易被破解。
有含义的词
不要使用字典中能找到的词语作为密码,即使是字母次序颠倒过来的常用词语也不可以。
多种符号组合
在可能的情况下,尽量使用字母、数字和特殊字符(如¥,#)相结合的密码。
创建安全密码的一般技巧
防止密码被盗----其他手段
防止密码被盗
1. 限制登录次数
2. 使用验证码
3. 使用用户具有排他性的自然特征(如指纹、人脸等)
4.
对数据采取二次加密
什么是加密?如何对数据进行加密呢?
在古代,人们是怎样秘密传送数据的呢?请你利用网络搜索相关 信息, 了解数据加密的发展历史, 并完成下表。
任务二 让数据“隐身”
时间 加密方式
683年 拆字法,将明文中的文字进行组合生成新的字,即为密文,比如十二月合起来为“青”。
北宋 代码法。北宋进士曾公亮曾搜集了40个常用军事短语,然后对其进行顺序编码:一、请弓;二、请箭;三、请刀;四、请甲;五、请枪旗;六、请锅幕;七、请马;八、请衣赐;九、请粮料……四十、战小胜。军队出征前,指挥机关将用上述短语编码的密码本发给将领,并约定用一首不含重复文字的40字五言律诗与密码相对应
公元前五世纪 移位法。希罗多德(Herodotus)的《历史》中记载了公元前五世纪,希腊城邦和波斯帝国发生多次冲突和战争。这些战争中希腊城邦中广泛使用了移位法进行加密处理战争通讯信息,使波斯帝国难以获得希腊城邦的军事情报,也就无法提前做军事部署。希腊城邦用来传输军事信息、命令的每段文字都有固定的字数,解密者手中会有一份文字移位说明。解密者拿到密文后,根据文字移位说明进行解密,从而破解其中的军事命令或消息
古罗马时期 《高卢战记》有描述恺撒曾经使用密码来传递信息,即所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。因据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码
第二次世界大战 密码机。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用
※ 活动1 古老的 “隐身术”
活动1 古老的“隐身术” —— 加密与解密
将原始信息(数据)隐匿起来,使之在缺少特殊信息(数据)时不可读就是加密。
将密文还原成明文的过程称为解密(或解码)。
原始信息(数据)称为明文。
加密后的信息(数据)称为密文。
控制加密和解密的过程进行的是密钥。
04
加密
活动1 古老的“隐身术” —— 加密与解密过程
04
加密解密过程
加密算法
ON SUNDAY
明文数据
密钥
RQ VXQGDB
密文数据
密钥
ON SUNDAY
明文数据
加密
解密
解密算法
Bob
Anna
试一试
输入明文: ON SUNDAY
观察分析:“恺撒密码”的加密原理
体验“恺撒密码”
对应密文:

活动2 揭秘“隐身术” —— 分析恺撒密码加密原理
明文:ON SUNDAY 密文:RQ VXQGDB
明文字母 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 Z




D
G
Q
R
V
X
B
E
L
F
H
I
J
K
M
N
O
P
S
T
U
W
Y
Z
A
C
分析恺撒密码加密原理:
N
O
R
Q
S
V
U
X
D
G
A
D
Y


06
活动2 揭秘 “隐身术”—— 分析恺撒密码加密原理
加密原理:
将明文中的每一个字母用字母表中该字母后的第3个字母替换。
1)若明文字母在“A”和“W”之间,则直接后移三位得到相应密文字母;
2)否则,如果明文字母在“X”和“Z”之间,则返回字母表的开头按顺序后移。
小写字母加密原理相同 ,同时恺撒密码只加密英文字母。
补全算法流程图
自定义函数开始
CaesarCipher()
输入明文c
密文b置初值为空
循环实现对明文c中的每一位字符进行加密,并按顺序存放于密文b中
输出密文b
自定义函数结束
计数器i置初值为0
i≥明文长度
c[i]介于
' a '与' w '或
' A '与' W '之间
c[i]在字母表中后移三位,并连接到密文b后
c[i]后移三位,超出字母表,返回表头按顺序查找,并连接到密文b后
c[i]介于
' x '与' z '或
' X '与' Z '之间
计数器i=i+1
密文与明文相同






设计恺撒密码加密算法:
循环加密过程
设计恺撒密码加密算法
c[i]在字母表中后移三位
字母不能直接加3,进行算术运算,因此,要先将字母转换成数字。
计算机中每一个字母根据ASCII码都可以转换成一个数字。
ord() 和 chr() 转换函数
例如:
A可以转换成数字65,后移3位,即加3得到数字68,数字68再转换成字母D。
chr(ord( )+3)
连接到密文b后
b+chr(ord(c[i])+3)
b =
c[i]后移三位,超出字母表,返回表头按顺序查找
先用ord(c[i])+3,实现后移三位,再减26,还原到26位字母的开头,按顺序找到相应字母的ASCII。
ord(c[i])+3-26 即 ord(c[i])-23
最后用chr()将数字转换成相应的加密字母:
ord(c[i])-23
连接到密文b后
b=b+chr(ord(c[i])-23)
c[i]在字母表中后移三位,并连接到密文b后
c[i]后移三位,超出字母表,返回表头按顺序查找,并连接到密文b后
c[i]
' A '
chr( )
补全算法流程图
自定义函数开始
CaesarCipher()
输入明文c
密文b置初值为空
循环实现对明文c中的每一位字符进行加密,并按顺序存放于密文b中
输出密文b
自定义函数结束
计数器i置初值为0
i≥明文长度
c[i]介于
' a '与' w '或
' A '与' W '之间
c[i]介于
' x '与' z '或
' X '与' Z '之间
计数器i=i+1
密文与明文相同






设计恺撒密码加密算法:
循环加密过程
c[i]在字母表中后移三位,并连接到密文b后
b=b+chr(ord(c[i])+3)
c[i]后移三位,超出字母表,返回表头按顺序查找,并连接到密文b后
b=b+chr(ord(c[i])-23)
部分核心算法代码
def CaesarCipher(): #“加密”按钮激发函数
c = mingwen.get("0.0", "end") #获取mingwen对象的内容(明文)
b = "" #密文b置初值为空
miwen.delete("0.0", "end") #清空miwen对象的内容
for i in range(len(c)): #获取明文内容的每一个字符,并加密
if 'a' <= c[i] <= 'w' or 'A' <= c[i] <= 'W' : #判断a~w或A~W间的字母
b = b+chr(ord(c[i])+3) #生成密文
elif 'x' <= c[i] <= 'z' or 'X' <= c[i] <= 'Z' : #判断x~z或X~Z间的字母
b = b+chr(ord(c[i])-23) #生成密文
else:
b = b+c[i] #字母以外的明文不变
miwen.insert(" 0.0 ",b) #在miwen对象中显示结果
mingwen
miwen
分析“恺撒密码”(有界面)程序部分核心算法代码:
加法密码
在加法密码算法中,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
加密算法操作中的一组数字被称之为密钥。比如,恺撒密码的密钥为3,像这种加密和解密使用同一个密钥,被称为对称加密体制。
加法密码又被称为移位密码。
明文c a~w A~W x~z X~Z 其他
密文b d~z D~Z a~c A~C 不变
规律
公式
明文c a~w A~W x~z X~Z 不变
密文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])-23)
c[i]
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]
完善恺撒密码解密算法代码
练一练
凯撒大帝收到了如下密文,请你改进“3-4 凯撒密码.py”程序,帮助他进行解密,并告诉他该做什么?
密文:hqhpb dkhdg,sohdvh eh suhsduhg!
恺撒密码安全性能如何?
可以说,保密性能极差,很容易被解密。就算将明文字符前移或后移一个固定的长度d(称为密钥)发生变化,也最多只需25次尝试d的值,就能破解。
想一想
一种可行的改进方式是,建立一个明文字符与密文字符之间的一一映射表,即“密表”。如:
明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文:QWERTYUIOPASDFGHJKLZXCVBNM
加密时,A→Q,B→W,…;解密时Q→A,W→B,…。其小写字母对应法则也相同,即a→q,b→w,…。这样保密性能大大提升,破解难度大大增加。另外,这个“密表”也可以按需要改变。
密码二次加密
利用恺撒密码的改进算法,对94个字符的组合密码,进行二次加密,这样就能更大限度的保障我们帐户和密码的安全了。
DES加密算法,
RC4加密算法,
IDEA加密算法等。
感兴趣的同学们,可以通过网络自行搜索了解。
常见加密算法:
信息安全责任
要善于网上学习,不浏览不良信息。
要诚实友好交流,不辱骂欺诈他人。
要增强自我保护意识,不随意约会网友。
要维护网络安全,不破坏网络秩序。
要有益身心健康,不沉溺虚拟时空。
要树立良好榜样,不违反行为准则。
自觉遵守“全国青少年网络文明公约”:
课堂练习
王同学在申请微信账号时设置的密码哪个更安全( )
练习1
C.设置了一个8位的纯数字密码
B.用字母、数字和特殊字符组成的8位以上的密码
A.用生日作为密码方便好记
D.将密码与用户名设置成相同的
B
在信息社会中,密码成为保障我们财产安全的第一道枷锁,因此我们需要提高自身的防盗意识,以下说法正确的是:( )
练习2
C.在安全级别较高的区域内,处理个人敏感信息
B.绑定手机号码对账号进行认证
A.不点击、不回复、不打开不知情链接
D.以上说法都对
D
课堂练习
练习3
课堂练习
加密和解密本质上是对数据进行的某种交换,控制加密和解密过程进行的是( )
A 密钥
B 明文
C 密文
D 信息
A
练习4
课堂练习
为保证信息安全,信息需要加密传输,其原理如下所示。
现将10个数字按图示排成一圈,并设置一种信息加密规则——加密钥匙为“n&3”, “n&3” 表示把明文n换成图中从它开始顺时针跳过3个数字后的那个数字,例如明文是5时,它对应的密文是9.若收到的密文是6452,那么通过解密,它对应的
明文是( )
A 2017
B 2018
C 3219
D 3216
密文:6 4 5 2
明文:
B
2
0
1
8
任务一
解开网站账号被盗之谜
任务二
让数据“隐身”
项目:
神秘密码之谜
1
活动1 设置安全密码
2
活动2 防范”盗窃“行为
1
活动1 古老的“隐身术”
2
活动2 揭秘“隐身术”
课堂小结
加密与解密
密码
加密与解密
密码是指用来核对用户ID以验证用户就是本人的一组字符。
加密:加密就是将原始信息(数据)隐匿起来
解密:将密文还原成明文的过程称为解密。
创建安全密码的一般技巧
“2”要
“3”不要