资源简介 (共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() #获取当前系统时间d1p=int(varin. get()) #获取输入文本框的数字密码for i in range(0,p+1): #从0循环到正确密码数值if i==p: #如果密码相同d2=datetime.datetime.now() #获取当前系统时间d2d=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明文数据加密解密解密算法BobAnna试一试输入明文: 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密文字母DGQRVXBELFHIJKMNOPSTUWYZAC分析恺撒密码加密原理:NORQSVUXDGADY??06活动2 揭秘 “隐身术”—— 分析恺撒密码加密原理加密原理:将明文中的每一个字母用字母表中该字母后的第3个字母替换。1)若明文字母在“A”和“W”之间,则直接后移三位得到相应密文字母;2)否则,如果明文字母在“X”和“Z”之间,则返回字母表的开头按顺序后移。小写字母加密原理相同 ,同时恺撒密码只加密英文字母。补全算法流程图自定义函数开始CaesarCipher()输入明文c密文b置初值为空循环实现对明文c中的每一位字符进行加密,并按顺序存放于密文b中输出密文b自定义函数结束计数器i置初值为0i≥明文长度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置初值为0i≥明文长度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对象中显示结果mingwenmiwen分析“恺撒密码”(有界面)程序部分核心算法代码:加法密码在加法密码算法中,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。加密算法操作中的一组数字被称之为密钥。比如,恺撒密码的密钥为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码+3ASCII码+3ASCII码-23ASCII码-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码-3ASCII码-3ASCII码+23ASCII码+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加密算法等。感兴趣的同学们,可以通过网络自行搜索了解。常见加密算法:信息安全责任要善于网上学习,不浏览不良信息。要诚实友好交流,不辱骂欺诈他人。要增强自我保护意识,不随意约会网友。要维护网络安全,不破坏网络秩序。要有益身心健康,不沉溺虚拟时空。要树立良好榜样,不违反行为准则。自觉遵守“全国青少年网络文明公约”:课堂练习王同学在申请微信账号时设置的密码哪个更安全( )练习1C.设置了一个8位的纯数字密码B.用字母、数字和特殊字符组成的8位以上的密码A.用生日作为密码方便好记D.将密码与用户名设置成相同的B在信息社会中,密码成为保障我们财产安全的第一道枷锁,因此我们需要提高自身的防盗意识,以下说法正确的是:( )练习2C.在安全级别较高的区域内,处理个人敏感信息B.绑定手机号码对账号进行认证A.不点击、不回复、不打开不知情链接D.以上说法都对D课堂练习练习3课堂练习加密和解密本质上是对数据进行的某种交换,控制加密和解密过程进行的是( )A 密钥B 明文C 密文D 信息A练习4课堂练习为保证信息安全,信息需要加密传输,其原理如下所示。现将10个数字按图示排成一圈,并设置一种信息加密规则——加密钥匙为“n&3”, “n&3” 表示把明文n换成图中从它开始顺时针跳过3个数字后的那个数字,例如明文是5时,它对应的密文是9.若收到的密文是6452,那么通过解密,它对应的明文是( )A 2017B 2018C 3219D 3216密文:6 4 5 2明文:B2018任务一解开网站账号被盗之谜任务二让数据“隐身”项目:神秘密码之谜1活动1 设置安全密码2活动2 防范”盗窃“行为1活动1 古老的“隐身术”2活动2 揭秘“隐身术”课堂小结加密与解密密码加密与解密密码是指用来核对用户ID以验证用户就是本人的一组字符。加密:加密就是将原始信息(数据)隐匿起来解密:将密文还原成明文的过程称为解密。创建安全密码的一般技巧“2”要“3”不要 展开更多...... 收起↑ 资源预览