3.4 加密与解密 教科版
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如2017年6月1日起施行的《中华人民共和国网络安全法》,明确要求网络运营者应当按照网络 安全等级保护制度的要求,履行安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防 止网络数据泄露或者被窃取、篡改。
《中华人民共和国刑法》第二百八十五条至第二百八十七条,对非法侵入计算机信息系统,对 计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,利用计算 机实施金融诈骗、盗窃、贪污、挪用公款、窃取国家秘密等行为进行了量刑定罪。
单元学习评价
10110100 (2) = ( 180 )(10)
3D(16) = ( 61 )(10)
255(10) = ( FF )(16)
100(10) = (1100100 )(2)
E2(16) = (11100010)(2)
11100101(2) = ( E5
)(16)
总结
任意R进制数( R为大于等于2且不等于10的正整数,下同)转换为 十进制数时,都可采用 按权展开求和法 方法。十进制数转换为R进制数 时,都可采用 除R取余法 方法。
不要使用字典中能找到的词语作为密码,即使是字母次序 颠倒过来的常用词语也不可以。
加密
自古以来,在管理国家、指挥战斗或是经济来往中,都需要高效、安 全的数据通信系统。古人就已会用很多办法将数据伪装起来,使得只有 联络好的数据接收者才能读懂。比如,将数据刻在木板上,然后再覆上 一层蜡,使其成为一个看上去很普通的刻写板;使用一套尺寸不等、形状 各异的“阴符”,每支符都表示特定的含义等。这些都是数据的加密。
#如果密码相同
◦
d2=datetime.datetime.now() #获取当前系统时间d2
◦
d=d2-d1
#取得时间差
◦
#在输出文本框中显示解密用时
◦
varout.set(str(d.seconds)+"秒"+str(d.microseconds/1000)+"毫秒")
varin和varout是程序中的两个文本框对象,分别用来接收输入的密码和显示解密所需时间。
用Python语言实现加密算法时,明文和密文都被抽象为字符串类型的数据Python 中的字符串由一串字符组成,用引号引起来表示,比如“abCEd”。类似于列表的操 作,我们可以指向或操作字符串中的某一个字符,比如c[0]表示字符串中的第一个字 符。 我们还可以用Python系统函数对数据进行特定的操作,
3.4加密与解密
博山实验中学电教中心制作
导入
数据应用既为我们带来便利,同时也存在许多安全隐 患,如未经许可数据被复制、篡改、暴露或破坏。因 此,在数据传输、交换、存储、处理的过程中,我们 必须采取相应的策略,进行数据保护。
如设置密码和验证码、对数据加密、验证数据完整性、 安装防火墙及安全软件、对数据进行备份等,确保信 息的完整、可用、保密和可靠。在本节中,我们将了 解如何使用密码保护数据。
本项目主要包含“解开网站账号被盗之谜”和“让数据‘隐身’”两 个任务。
※活动1防范“盗窃”行为 不少人有密码被盗的经历,这往往会导致个人信息泄露,甚至
是财产损失。你是否有使用账号、密码的经验?请你与同学交流。
密码 密码是指用来核对用户ID以验证用户就是本人的一组字符。
具体实验结果会根据计算机性能不 同而有所不同。
3. 人、狼、羊、菜过河问题:有一个人带着一只狼、一只羊和一捆白菜,来到一条河边,河边 只有一条小船,人每次过河最多只能带一样, 如果人不在现场,狼就要吃羊,羊就要吃菜。他 应该怎样安排过河呢?请完成下面的“树”结构分析图,帮他找到可行的过河方案。
提示:可约定对象在左岸用0表示,在右岸用1表示。
想一想,如果密码还有字母,破解的时间会变长吗?
◦ def jiemi():
◦ d1=datetime.datetime.now() #获取当前系统时间d1
◦ p=int(varin.get())
#获取输入文本框的数字密码
◦ for i in range(p+1):
#从0循环到正确密码数值
◦
if i==p:
一段时长为1分钟,采样频率为44.1kHz,量化位数为16位,双声 道立体声的无压缩音频(如基于PCM编码的wav格式),占用的存储 空间是 10.1 MB (精确到0.1 )。
解析:采样频率44.1kHz,量化位数16位,意味着每秒采集数据44.1k个,每个数据占2字节,(量化位
数是16位,按照计算机术语来看,1位指的是一个二进制位,就是1bit,8bit是一字节,那么16位 就是2字节)这是一个声道的数据,双声道再乘以2,最后结果再乘以60秒,就是 44.1×1000×2×2×60=10584000字节, 1MB=1024×1024=1048576字节,所以一分钟的存储容量为10584000/1048576=10.09MB,约为 10.1MB。
get和set是文本框的两个方法,分别用于接收文本框中的数据和在文本框中显示输出数据。
示例1
创建安全密码的一般技巧
使用长度不少于8个字符的密码。密码长度越长越不容易被 破解。在可能的情况下,尽量使用字母、数字和特殊字符( 如$、 #)相结合的密码。
不要使用电话号码、身份证号码或生日等信息作为密码。 不要使用整个用户ID或用户ID的一部分作为密码。
这种“阴书”保密性较好,且在某一角度上讲类似于移位密码的特性。因为即使某一信使被敌方抓获,“阴书” 落入敌方手里,也得不到完整的情报。但也有其缺陷,由于原文被分成了三份,故一旦丢失一份,接受者也无法 了解其原意。
这种方式经过历代的演变,一直延续到明清时期仍有人使用。古人为了密上加密,还在“阴书”上用藏头诗、藏 尾诗、回文诗、诗谜、哑谜、密写等多种巧妙的方法来传递信息。
#生成密文
else:
b=b+c[i]
#字母以外的明文不变
miwen.insert("0.0",b)
#在miwen对象中显示结果
mingwen和miwen是两个文本框对象,用于接收待加密的文本和显示加密后的密文。 get方法用于接收文本框中的数据,delete方法用于删除文本框中的内容, insert方法用于将数据插入文本框内。 加密算法操作中的一组数字被称为密钥。 比如,恺撒密码的密钥为3,加密和解密使用同一个密钥,被称为对称加密体制。
拉丁语:veni,vidi,vici 翻译成英文就是“I came,I saw,I conquered”。 这句话出自恺撒大帝征服潘特斯王国后写给元老院的信。
ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符
◦ 大写: ◦ A → 65,B → 66,C → 67,D → 68,E → 69, ◦ F → 70,G → 71,H → 72,I → 73,J → 74, ◦ K → 75,L → 76,M → 77,N → 78,O → 79, ◦ P → 80,Q → 81,R → 82,S → 83,T → 84, ◦ U → 85,V → 86,W → 87,X → 88,Y → 89,Z → 90 ◦ 小写: ◦ a → 97,b → 98,c → 99,d → 100,e → 101,f → 102, ◦ g → 103,h → 104,i → 105,j → 106,k → 107,l → 108, ◦ m → 109,n → 110,o → 111,p→ 112,q → 113,r → 114, ◦ s → 115,t → 116,u → 117,v → 118,w → 119,x → 120,y → 121,z → 122
示例2
加法密码
加法密码又被称为移位密码。在加法密码算法中,明文中的所有字母都在字母表 上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时 候,所有的字母A将被替换成D, B变成E,以此类推,X将变成A,Y变成B, Z变成C。
恺撒密码作为一种最为古老的对称加密体制,在古罗马的时候已经很流行,它是 加法密码的典型代表。
加密就是将原始信息(数据)隐匿起来,使之在缺少特殊信息(数据)时 不可读。原始信息(数据)称为明文,加密后的信息(数据)称为密文。将密 文还原成明文的过程称为解密( 或解码)。
(摘自《六韬》(卷三)—龙韬·阴书)
所谓“阴书”,实际上是一种军事文书,传递的方法更秘密些。其方法是:先把所要传递的机密内容完完整整地 写在一编竹简或木简上,然后将这篇竹简或木简拆开、打乱,分成三份,称“一合而再离”。然后派三名信使各 传递一份到同一个目的地。“阴书”被送到目的地后,收件人再把三份“阴书”按顺序拼合起来,于是“阴书” 的内容便一目了然,称“三发而一知”。
def CaesarCipher():
#“加密”按钮激发函数
c=mingwen.get("0.0", "end")[:-1] #获取mingwen对象的内容(明文)
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)
len函数可以获取字符串中字符的个数
ord函数可以将字符类型的参数转换为对应的整数值,
chr函数可以将整数类型的参数转换为对应的字符。
了解密码安全与加密、解密的技术能够帮助我们来自百度文库护个人隐私。同时,我们也要 从自己做起,遵守相关法律和必要的道德规范,共同维护健康、良好的数据环境。
拓展知识
当今数字时代,数据已经广泛应用于国家安全、公共治理、企业发展、民生改善等诸多领域, 大大提高了人们工作、生活的便利程度,但各种数据也存在安全风险。为此,国家出台多部法律, 大力实施数据保护,维护国家安全和网络秩序,保障社会、公民利益,促进经济社会信息化健康发 展。
学习目标
★理解数据加密和解密的概念及原理。 ★了解数据加密的历史。 ★会用Python实现简单的加密算法。 ★会分析生活中由密码引起的数据安全问题,理解对数据进行保护的意义。
任务一 解开网站账号被盗之谜
数据聚集和共享为人们充分应用数据创造便捷的生活提供了条件,但 在享受数据带来的便利的同时,也伴随着数据安全问题。本节我们将围绕 “神秘密码之谜”项目展开学习,通过项目活动,学习数据加密和解密的 知识,树立保护数据安全的意识。
※活动2揭秘“隐身术”
恺撒在征服高卢、袭击日耳曼和不列颠的多次战斗中频繁使 用加密技术。苏托尼厄斯在公元2世纪写的《恺撒传》中对恺撒 用过的一种加密技术进行了详细的介绍。恺撒只是简单地将明 文中的每一个字母用字母表中该字母后的第3个字母替换。例如, 将明文中的a用d替换,b用e替换,.... z用c替换,这就是恺撒 密码。
《中华人民共和国刑法》第二百八十五条至第二百八十七条,对非法侵入计算机信息系统,对 计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,利用计算 机实施金融诈骗、盗窃、贪污、挪用公款、窃取国家秘密等行为进行了量刑定罪。
单元学习评价
10110100 (2) = ( 180 )(10)
3D(16) = ( 61 )(10)
255(10) = ( FF )(16)
100(10) = (1100100 )(2)
E2(16) = (11100010)(2)
11100101(2) = ( E5
)(16)
总结
任意R进制数( R为大于等于2且不等于10的正整数,下同)转换为 十进制数时,都可采用 按权展开求和法 方法。十进制数转换为R进制数 时,都可采用 除R取余法 方法。
不要使用字典中能找到的词语作为密码,即使是字母次序 颠倒过来的常用词语也不可以。
加密
自古以来,在管理国家、指挥战斗或是经济来往中,都需要高效、安 全的数据通信系统。古人就已会用很多办法将数据伪装起来,使得只有 联络好的数据接收者才能读懂。比如,将数据刻在木板上,然后再覆上 一层蜡,使其成为一个看上去很普通的刻写板;使用一套尺寸不等、形状 各异的“阴符”,每支符都表示特定的含义等。这些都是数据的加密。
#如果密码相同
◦
d2=datetime.datetime.now() #获取当前系统时间d2
◦
d=d2-d1
#取得时间差
◦
#在输出文本框中显示解密用时
◦
varout.set(str(d.seconds)+"秒"+str(d.microseconds/1000)+"毫秒")
varin和varout是程序中的两个文本框对象,分别用来接收输入的密码和显示解密所需时间。
用Python语言实现加密算法时,明文和密文都被抽象为字符串类型的数据Python 中的字符串由一串字符组成,用引号引起来表示,比如“abCEd”。类似于列表的操 作,我们可以指向或操作字符串中的某一个字符,比如c[0]表示字符串中的第一个字 符。 我们还可以用Python系统函数对数据进行特定的操作,
3.4加密与解密
博山实验中学电教中心制作
导入
数据应用既为我们带来便利,同时也存在许多安全隐 患,如未经许可数据被复制、篡改、暴露或破坏。因 此,在数据传输、交换、存储、处理的过程中,我们 必须采取相应的策略,进行数据保护。
如设置密码和验证码、对数据加密、验证数据完整性、 安装防火墙及安全软件、对数据进行备份等,确保信 息的完整、可用、保密和可靠。在本节中,我们将了 解如何使用密码保护数据。
本项目主要包含“解开网站账号被盗之谜”和“让数据‘隐身’”两 个任务。
※活动1防范“盗窃”行为 不少人有密码被盗的经历,这往往会导致个人信息泄露,甚至
是财产损失。你是否有使用账号、密码的经验?请你与同学交流。
密码 密码是指用来核对用户ID以验证用户就是本人的一组字符。
具体实验结果会根据计算机性能不 同而有所不同。
3. 人、狼、羊、菜过河问题:有一个人带着一只狼、一只羊和一捆白菜,来到一条河边,河边 只有一条小船,人每次过河最多只能带一样, 如果人不在现场,狼就要吃羊,羊就要吃菜。他 应该怎样安排过河呢?请完成下面的“树”结构分析图,帮他找到可行的过河方案。
提示:可约定对象在左岸用0表示,在右岸用1表示。
想一想,如果密码还有字母,破解的时间会变长吗?
◦ def jiemi():
◦ d1=datetime.datetime.now() #获取当前系统时间d1
◦ p=int(varin.get())
#获取输入文本框的数字密码
◦ for i in range(p+1):
#从0循环到正确密码数值
◦
if i==p:
一段时长为1分钟,采样频率为44.1kHz,量化位数为16位,双声 道立体声的无压缩音频(如基于PCM编码的wav格式),占用的存储 空间是 10.1 MB (精确到0.1 )。
解析:采样频率44.1kHz,量化位数16位,意味着每秒采集数据44.1k个,每个数据占2字节,(量化位
数是16位,按照计算机术语来看,1位指的是一个二进制位,就是1bit,8bit是一字节,那么16位 就是2字节)这是一个声道的数据,双声道再乘以2,最后结果再乘以60秒,就是 44.1×1000×2×2×60=10584000字节, 1MB=1024×1024=1048576字节,所以一分钟的存储容量为10584000/1048576=10.09MB,约为 10.1MB。
get和set是文本框的两个方法,分别用于接收文本框中的数据和在文本框中显示输出数据。
示例1
创建安全密码的一般技巧
使用长度不少于8个字符的密码。密码长度越长越不容易被 破解。在可能的情况下,尽量使用字母、数字和特殊字符( 如$、 #)相结合的密码。
不要使用电话号码、身份证号码或生日等信息作为密码。 不要使用整个用户ID或用户ID的一部分作为密码。
这种“阴书”保密性较好,且在某一角度上讲类似于移位密码的特性。因为即使某一信使被敌方抓获,“阴书” 落入敌方手里,也得不到完整的情报。但也有其缺陷,由于原文被分成了三份,故一旦丢失一份,接受者也无法 了解其原意。
这种方式经过历代的演变,一直延续到明清时期仍有人使用。古人为了密上加密,还在“阴书”上用藏头诗、藏 尾诗、回文诗、诗谜、哑谜、密写等多种巧妙的方法来传递信息。
#生成密文
else:
b=b+c[i]
#字母以外的明文不变
miwen.insert("0.0",b)
#在miwen对象中显示结果
mingwen和miwen是两个文本框对象,用于接收待加密的文本和显示加密后的密文。 get方法用于接收文本框中的数据,delete方法用于删除文本框中的内容, insert方法用于将数据插入文本框内。 加密算法操作中的一组数字被称为密钥。 比如,恺撒密码的密钥为3,加密和解密使用同一个密钥,被称为对称加密体制。
拉丁语:veni,vidi,vici 翻译成英文就是“I came,I saw,I conquered”。 这句话出自恺撒大帝征服潘特斯王国后写给元老院的信。
ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符
◦ 大写: ◦ A → 65,B → 66,C → 67,D → 68,E → 69, ◦ F → 70,G → 71,H → 72,I → 73,J → 74, ◦ K → 75,L → 76,M → 77,N → 78,O → 79, ◦ P → 80,Q → 81,R → 82,S → 83,T → 84, ◦ U → 85,V → 86,W → 87,X → 88,Y → 89,Z → 90 ◦ 小写: ◦ a → 97,b → 98,c → 99,d → 100,e → 101,f → 102, ◦ g → 103,h → 104,i → 105,j → 106,k → 107,l → 108, ◦ m → 109,n → 110,o → 111,p→ 112,q → 113,r → 114, ◦ s → 115,t → 116,u → 117,v → 118,w → 119,x → 120,y → 121,z → 122
示例2
加法密码
加法密码又被称为移位密码。在加法密码算法中,明文中的所有字母都在字母表 上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时 候,所有的字母A将被替换成D, B变成E,以此类推,X将变成A,Y变成B, Z变成C。
恺撒密码作为一种最为古老的对称加密体制,在古罗马的时候已经很流行,它是 加法密码的典型代表。
加密就是将原始信息(数据)隐匿起来,使之在缺少特殊信息(数据)时 不可读。原始信息(数据)称为明文,加密后的信息(数据)称为密文。将密 文还原成明文的过程称为解密( 或解码)。
(摘自《六韬》(卷三)—龙韬·阴书)
所谓“阴书”,实际上是一种军事文书,传递的方法更秘密些。其方法是:先把所要传递的机密内容完完整整地 写在一编竹简或木简上,然后将这篇竹简或木简拆开、打乱,分成三份,称“一合而再离”。然后派三名信使各 传递一份到同一个目的地。“阴书”被送到目的地后,收件人再把三份“阴书”按顺序拼合起来,于是“阴书” 的内容便一目了然,称“三发而一知”。
def CaesarCipher():
#“加密”按钮激发函数
c=mingwen.get("0.0", "end")[:-1] #获取mingwen对象的内容(明文)
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)
len函数可以获取字符串中字符的个数
ord函数可以将字符类型的参数转换为对应的整数值,
chr函数可以将整数类型的参数转换为对应的字符。
了解密码安全与加密、解密的技术能够帮助我们来自百度文库护个人隐私。同时,我们也要 从自己做起,遵守相关法律和必要的道德规范,共同维护健康、良好的数据环境。
拓展知识
当今数字时代,数据已经广泛应用于国家安全、公共治理、企业发展、民生改善等诸多领域, 大大提高了人们工作、生活的便利程度,但各种数据也存在安全风险。为此,国家出台多部法律, 大力实施数据保护,维护国家安全和网络秩序,保障社会、公民利益,促进经济社会信息化健康发 展。
学习目标
★理解数据加密和解密的概念及原理。 ★了解数据加密的历史。 ★会用Python实现简单的加密算法。 ★会分析生活中由密码引起的数据安全问题,理解对数据进行保护的意义。
任务一 解开网站账号被盗之谜
数据聚集和共享为人们充分应用数据创造便捷的生活提供了条件,但 在享受数据带来的便利的同时,也伴随着数据安全问题。本节我们将围绕 “神秘密码之谜”项目展开学习,通过项目活动,学习数据加密和解密的 知识,树立保护数据安全的意识。
※活动2揭秘“隐身术”
恺撒在征服高卢、袭击日耳曼和不列颠的多次战斗中频繁使 用加密技术。苏托尼厄斯在公元2世纪写的《恺撒传》中对恺撒 用过的一种加密技术进行了详细的介绍。恺撒只是简单地将明 文中的每一个字母用字母表中该字母后的第3个字母替换。例如, 将明文中的a用d替换,b用e替换,.... z用c替换,这就是恺撒 密码。