1、第2单元 编程计算第1单元 初识数据与计算第3单元 认识数据第4单元 计算与问题解决第5单元 数据分析与人工智能信息技术信息技术(必修(必修1 1)3.4 3.4 加密与解密加密与解密学习目标任务一 解开网站账号被盗之谜盗窃方式盗窃方式防盗措施防盗措施肩窥方式肩窥方式我们可以在输入密码时遮挡自己的操我们可以在输入密码时遮挡自己的操作过程,防止别人偷看密码信息;或作过程,防止别人偷看密码信息;或者确定环境安全后再进行操作者确定环境安全后再进行操作字典破解字典破解暴力破解暴力破解肩窥攻击是指通过窥看用户的键盘输入,鼠标移动等方式来获取用户口令。字典破译是利用人们习惯用人名、地名或者常见的词语设置成
2、密码的习惯进行破译,有好的字典是关键。暴力破解是一个一个的尝试。密码不要用生日,姓名及拼音缩写,密码不要用生日,姓名及拼音缩写,手机号、简单数字组合,单词、身份手机号、简单数字组合,单词、身份证号,用户证号,用户IDID等。等。密码同时包含大小写字母、数字、密码同时包含大小写字母、数字、特殊符号,不少于特殊符号,不少于8 8位位 活动1 防范“盗窃”行为活动2 设置安全密码 请你打开教科书配套资源中的“数据安全性测试py”,运行并测试穷举搜索一个5位、7位和9位的数字密码,分别需要多长时间,然后填写下表。密码长度密码长度密码值密码值破解时间破解时间5位125671.0毫秒9830215.6毫秒
3、7位123456779.922毫秒9784302425.524毫秒9位1234567898秒939.25毫秒32180945612秒544.216毫秒密码是指用来核对用户密码是指用来核对用户IDID以验证用户就是本人的一组字符。以验证用户就是本人的一组字符。密码密码想一想,如果密码中还有字母,破解的时间会变长吗?l varin和varout是程序中的两个文本框对 象,分 别 用 来 接 收 输 入 的 密 码和显示解析密码所需时间。l get和set是文本框的两个方法,分别用于接收文本框中的数据和在文本框中显示输出数据。varin.get()varout.set()包含个人信息不要使用电话号码
4、、身份证号或生日等信息作为密码。包含用户名不要使用整个用户ID或用户ID的一部分作为密码。密码长度使用长度不少于8个字符的密码。密码长度越长越不容易被破解。有含义的词不要使用字典中能找到的词语作为密码,即使是字母次序颠倒过来的常用词语也不可以。多种符号组合在可能的情况下,尽量使用字母、数字和特殊字符(如¥,#)相结合的密码。创建安全密码的一般技巧防止密码被盗防止密码被盗-其他手段其他手段防止密码被盗1.限制登录次数2.使用验证码3.使用用户具有排他性的自然特征(如指纹、人脸等)4.对数据采取二次加密任务二 让数据“隐身”时间时间加密方式加密方式683年拆字法,将明文中的文字进行组合生成新的字,
5、即为密文,比如十二月合起来为“青”。北宋北宋代码法。北宋进士曾公亮曾搜集了40个常用军事短语,然后对其进行顺序编码:一、请弓;二、请箭;三、请刀;四、请甲;五、请枪旗;六、请锅幕;七、请马;八、请衣赐;九、请粮料四十、战小胜。军队出征前,指挥机关将用上述短语编码的密码本发给将领,并约定用一首不含重复文字的40字五言律诗与密码相对应公元前五世纪公元前五世纪移位法。希罗多德(Herodotus)的历史中记载了公元前五世纪,希腊城邦和波斯帝国发生多次冲突和战争。这些战争中希腊城邦中广泛使用了移位法进行加密处理战争通讯信息,使波斯帝国难以获得希腊城邦的军事情报,也就无法提前做军事部署。希腊城邦用来传输
6、军事信息、命令的每段文字都有固定的字数,解密者手中会有一份文字移位说明。解密者拿到密文后,根据文字移位说明进行解密,从而破解其中的军事命令或消息古罗马时期古罗马时期高卢战记有描述恺撒曾经使用密码来传递信息,即所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。因据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码第二次世界大战第二次世界大战密码机。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用 活动1 古老的“隐身术”活动1 古老的“隐身术”加密与解密将原始信息(数据)
7、隐匿起来,使之在缺少特殊信息(数据)将原始信息(数据)隐匿起来,使之在缺少特殊信息(数据)时不可读就是时不可读就是加密加密。将密文还原成明文的过程称为将密文还原成明文的过程称为解密解密(或解码)。(或解码)。原始信息(数据)称为原始信息(数据)称为明文明文。加密后的信息(数据)称为加密后的信息(数据)称为密文密文。控制加密和解密的过程进行的是控制加密和解密的过程进行的是密钥密钥。04加密活动1 古老的“隐身术”加密与解密过程04加密算法ON SUNDAY明文数据密钥RQ VXQGDB密文数据密钥ON SUNDAY明文数据加密加密解密解密解密算法BobBobAnnaAnna试一试输入明文:输入明
8、文:ON SUNDAY 观察分析:观察分析:“恺撒密码恺撒密码”的加密原理的加密原理对应密文:对应密文:活动2 揭秘“隐身术”分析恺撒密码加密原理明文:明文:ON SUNDAY 密文:密文:RQ VXQGDB明明文文字字母母A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO OP PQ QR RS ST TU UV VW WX XY YZ Z密密文文字字母母DGQRVXBELFHIJKMNOPSTUWYZAC分析分析恺撒密码恺撒密码加密原理加密原理:NORQSVUXDGADY?06活动2 揭秘“隐身术”分析恺撒密码加密原理加密原理加密原理:将明文中的每一个字
9、母用字母表中该字母后的第3个字母替换。1)若明文字母在“A”和“W”之间,则直接后移三位得到相应密文字母;2)否则,如果明文字母在“X”和“Z”之间,则返回字母表的开头按顺序后移。小写字母加密原理相同,同时恺撒密码只加密英文字母。补全算法流程图自定义函数开始自定义函数开始CaesarCipher()输入明文输入明文c c密文密文b b置初值为空置初值为空循环实现对循环实现对明文明文c c中的每一位字符进行中的每一位字符进行加加密密,并按顺序存放于,并按顺序存放于密文密文b b中中输出密文输出密文b自定义函数自定义函数结束结束计数器计数器i i置初值为置初值为0 0ii明文明文长度长度cici介
10、于介于 a a 与与 w w 或或 A A 与与 W W 之间之间cici在字母表中后移三在字母表中后移三位,并连接到密文位,并连接到密文b b后后cici后移三位,超出字后移三位,超出字母表,返回表头按顺序查母表,返回表头按顺序查找,并连接到密文找,并连接到密文b b后后cici介于介于 x x 与与 z z 或或 X X 与与 Z Z 之间之间计数器计数器i=i+1密文与明文相同密文与明文相同是是否否是是否否否否是是设计设计恺撒密码恺撒密码加密算法加密算法:循环加密过程循环加密过程 设计恺撒密码加密算法cici在字母表中后移三位在字母表中后移三位字母不能直接加字母不能直接加3 3,进行算术
11、运算,进行算术运算,因此,要先将字母转换成数字。因此,要先将字母转换成数字。计算机中每一个字母根据计算机中每一个字母根据ASCIIASCII码都码都可以转换成一个数字。可以转换成一个数字。ord()ord()和和 chr()chr()转换函数转换函数例如:例如:A A可以转换成数字可以转换成数字6565,后移,后移3 3位,即加位,即加3 3得到数字得到数字6868,数字,数字6868再转换成字母再转换成字母D D。chr(ord()+3)chr(ord()+3)连接到密文连接到密文b b后后 b b+chr(ord(ci)+3)chr(ord(ci)+3)b=b=cici后移三位,超出字母表
12、,返回后移三位,超出字母表,返回表头按顺序查找表头按顺序查找先用先用ord(ci)+3ord(ci)+3,实现后移三位,实现后移三位,再减再减2626,还原到,还原到2626位字母的开头,按顺序位字母的开头,按顺序找到相应字母的找到相应字母的ASCIIASCII。ord(ci)+3-26 ord(ci)+3-26 即即 ord(ci)-23ord(ci)-23最后用最后用chr()chr()将数字转换成相应的加将数字转换成相应的加密字母:密字母:ord(ci)-23 ord(ci)-23 连接到密文连接到密文b b后后 b=b b=b+chr(ord(ci)-23)chr(ord(ci)-23
13、)cici在字母表中后移三在字母表中后移三位,并连接到密文位,并连接到密文b b后后cici后移三位,超出字后移三位,超出字母表,返回表头按顺序查母表,返回表头按顺序查找,并连接到密文找,并连接到密文b b后后cici A A chr()chr()补全算法流程图自定义函数开始自定义函数开始CaesarCipher()CaesarCipher()输入明文输入明文c c密文密文b b置初值为空置初值为空循环实现对循环实现对明文明文c c中的每一位字符进行中的每一位字符进行加加密密,并按顺序存放于,并按顺序存放于密文密文b b中中输出密文输出密文b自定义函数自定义函数结束结束计数器计数器i i置初值
14、为置初值为0 0ii明文明文长度长度cici介于介于 a a 与与 w w 或或 A A 与与 W W 之间之间cici介于介于 x x 与与 z z 或或 X X 与与 Z Z 之间之间计数器计数器i=i+1密文与明文相同密文与明文相同是是否否是是否否否否是是设计设计恺撒密码恺撒密码加密算法加密算法:cici在字母表中后移三在字母表中后移三位,并连接到密文位,并连接到密文b b后后 b=b+chr(ord(ci)+3)b=b+chr(ord(ci)+3)cici后移三位,超出字后移三位,超出字母表,返回表头按顺序查母表,返回表头按顺序查找,并连接到密文找,并连接到密文b b后后b=b+chr
15、(ord(ci)-23)b=b+chr(ord(ci)-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=ci=w or A=ci=W:#判断aw或AW间的字母 b=b+chr(ord(ci)+3)#生成密文 elif x=ci=z or X=ci=Z:#判断xz或XZ间的字母 b=b+chr(or
16、d(ci)-23)#生成密文 else:b=b+ci#字母以外的明文不变 miwen.insert(0.0,b)#在miwen对象中显示结果mingwenmingwenmiwenmiwen分析分析“恺撒密码恺撒密码”(有界面有界面)程序部分核心算法代码:程序部分核心算法代码:在加法密码算法中,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。加密算法操作中的一组数字被称之为密钥。比如,恺撒密码的密钥为3 3,像这种加密和解密使用同一个密钥,被称为对称加密体制。加法密码又被称为移位密码。明文cawAWxzXZ其他密文bdzDZacAC不变规律公式 明文cawAWx
17、zXZ不变密文bdzDZacAC其他规律公式加密解密是加密的逆运算解密是加密的逆运算恺撒密码解密解密ASCII码+3ASCII码+3ASCII码-23ASCII码-23不变a=ci=w or A=ci=Wx=ci=z or X=ci=Zchr(ord(ci)+3)chr(ord(ci)-23)ciASCII码-3ASCII码-3ASCII码+23ASCII码+23不变d=bi=z or D=bi=Za=bi=c or A=bi=Cchr(ord(bi)-3)chr(ord(bi)+23)bi完善恺撒密码解密算法代码练一练 可以说,保密性能极差,很容易被解密。就算将明文字符前移或后移一个固定的长
18、度d(称为密钥)发生变化,也最多只需25次尝试d d的值,就能破解。一种可行的改进方式是,建立一个明文字符与密文字符之间的一一映射表,即“密表密表”。如:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:QWERTYUIOPASDFGHJKLZXCVBNM加密时,AQ,BW,;解密时QA,WB,。其小写字母对应法则也相同,即aq,bw,。这样保密性能大大提升,破解难度大大增加。另外,这个“密表”也可以按需要改变。密码二次加密利用恺撒密码的改进算法,对94个字符的组合密码,进行二次加密,这样就能更大限度的保障我们帐户和密码的安全了。DES加密算法,RC4加密算法,IDEA加密算法等
19、。感兴趣的同学们,可以通过网络自行搜索了解。常见加密算法常见加密算法:信息安全责任 要善于网上学习,不浏览不良信息。要诚实友好交流,不辱骂欺诈他人。要增强自我保护意识,不随意约会网友。要维护网络安全,不破坏网络秩序。要有益身心健康,不沉溺虚拟时空。要树立良好榜样,不违反行为准则。课堂练习王同学在申请微信账号时设置的密码哪个更安全()练习练习1 1C.设置了一个8位的纯数字密码B.用字母、数字和特殊字符组成的8位以上的密码A.用生日作为密码方便好记D.将密码与用户名设置成相同的B在信息社会中,密码成为保障我们财产安全的第一道枷锁,因此我们需要提高自身的防盗意识,以下说法正确的是:()练习练习2
20、2C.在安全级别较高的区域内,处理个人敏感信息B.绑定手机号码对账号进行认证A.不点击、不回复、不打开不知情链接D.以上说法都对D课堂练习练习练习3 3课堂练习 加密和解密本质上是对数据进行的某种交换,控制加密和解密过程进行的是()A 密钥B 明文C 密文D 信息练习练习4 4课堂练习 为保证信息安全,信息需要加密传输,其原理如下所示。为保证信息安全,信息需要加密传输,其原理如下所示。现将现将1010个数字按图示排成一圈,并设置一种信息加密规则个数字按图示排成一圈,并设置一种信息加密规则加密钥匙为加密钥匙为“n&3n&3”,“n&3n&3”表示把明文表示把明文n n换成图中从它开始顺时针跳过换成图中从它开始顺时针跳过3 3个数字后的那个数字,例如个数字后的那个数字,例如明文是明文是5 5时,它对应的密文是时,它对应的密文是9.9.若收到的密文是若收到的密文是64526452,那么通过解密,它对应的,那么通过解密,它对应的明文是(明文是()A 2017B 2018C 3219D 3216密文:密文:6 4 5 26 4 5 2明文:明文:2 0 1 80123456789任务一解开网站账号被盗之谜任务二让数据“隐身”项目:神秘密码之谜1活动1 设置安全密码2活动2 防范”盗窃“行为1活动1 古老的“隐身术”2活动2 揭秘“隐身术”课堂小结加密与解密