- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
伏魔平天下——恺撒密码
赢了守护使这一关,阿派终于进入了那一方神秘世界。一路上,他披荆斩棘、伏魔降妖平天下,并获得了胜利的奖励——魔法羊皮卷。展开卷宗,只有一行看不懂的咒语,内容是PQETQUUPQETQYP。阿派照着字母念了几遍,都没有任何动静。忽然,他想到一种古老的加密方法——恺撒密码。于是,他一遍又一遍地尝试,终于发现若将所有字母都往前移2位,就可以形成一句有含义的话:NOCROSSNOCROWN(不经历风雨,怎能见彩虹)。阿派大声朗读出破解的咒语,只见一道金光闪现。
这节课的设计灵感来源于恺撒密码的故事。传说,古罗马皇帝恺撒在打仗时曾经使用“字母错位”的方法来加密军事情报。本课中,教师带领学生理解这种古老而简单的加密方法,并利用Python语言实现加密和解密。
在苏托尼厄斯于公元二世纪写的《恺撒传》中,对恺撒密码作了详细描述,简而言之,就是将真正的信件内容(明文)中的每一个字母用其后的第N个字母代替,转换成一封密信(密文)。这样,即便敌军截住信件,也不知其意。据说,这种加密方法在当时的古罗马颇为流行。这种将字母表中的字母移动一定位置而实现加密的方法,被称为“恺撒移位密码”,简称“恺撒密码”。移动的位数N就是加密和解密的密钥。
如图1所示,前文中破解咒语的密钥为2,也就是明文和密文表中的字母相错两位。A加密后所对应的字母就是后两位的字母C,以此类推,且A~Z循环,因此,字母Z的加密字母为B,解码的过程正好与之相反。
恺撒密码的编码方法相对简单,密钥也只有25种,只需逐个试验,很容易破解,但这种加密、解密的思想影响深远。现今的密码术不断发展,大致可分为两种方法,即移位和替换,或者将两者结合产生更复杂的方法,但万变不离其宗,其核心还是算法和密钥。
恺撒密码的算法思想,前面已经解读,此处不再赘述。但在Python中实现咒语的破解(解密),还需要了解字符在计算机中的表示方式。英文字母在计算机中通常采用ASCII码表示,占一个字节。如图2所示,密文中的字符P转换为明文字符N的过程是这样的:先利用ord()函数将ASCII字符P转换为对应的ASCII数值80;再根据密钥2进行倒推,计算出其明文的字符所对应的数值应为78;最后利用chr()函数将数值78转换为对应的ASCII字符N。在这里,ord()和chr()这两个函数的效果正好相反,结合两者,可以实现字符的加密或解密。
利用Python语言实现破解咒语的具体过程如上表所示。想一想,如何允许用户自行输入咒语的文字信息,该如何修改程序?
isupper()方法的作用是检测字符串中所有的字母是否都为大写,如果所有字符都是大写,则返回True,否则返回False。例如,字符A的ASCII码值是65,密钥为2,因此在前移2位后,ASCII码值变成了63,对应的字符是问号“?”,非大写字母。此时,可在63的基础上再向后移位26位,对应码值为89(字符Y),即字符A对应的密文字符为Y。这样,就形成了A~Z的循环。
本课中,阿派所破解的羊皮卷咒语是指定的密钥2。加密的过程与解密相反,前移2位,变为后移2位,即-2。A~Z的循环处理,也是一样,+26变为-26。此外,利用input()函数,允许用户自行输入咒语内容,具体的Python代码如图3所示。
upper()方法的作用是将字符串中的字母全部转换为大写字母。这样,如果用户输入的明文信息包含了大小写字母,都会统一转换为大写字母,再进行加密。
使用不同的自定义密钥进行加密,可以提高信息传递过程中的安全性。如图4所示,新增变量key,提示用户选择1~25之间的某一个整数作为密钥,实现自定义密钥的加密咒语。
如果想让这段程序更加实用,还可以询问用户选择加密还是解密,多一次判断,使用户在同一个程序内可以自由选择加密或解密模式。
由于恺撒密码的秘钥设置只有1至25,很容易被暴力破解,因此,人们在此基础上进一步改善,主要方法是将密文的字母顺序打乱。例如,圆盘密码就是典型的利用单表置换的加密方法。在两个同心圆盘上,外圈按照A~Z的字母序排列,内圈则按不同的顺序填好字母或数字。转动圆盘就可以找到字母的置换方法,很方便地进行信息的加密与解密。恺撒密码与圆盘密码本质都是一样的,都属于单表置换,即一个明文字母对应的密文字母是确定的,截获者可以分析字母出现的频率进行破译。为了提高密码的破譯难度,人们又发明了一种多表置换的密码——维吉尼亚密码。这种加密方法是根据密钥决定用哪一行的密表来进行替换。因此,一个明文字母可以表示为多个密文字母,使得针对单表置换的用词频分析来破译的方法失效,安全性更高一些。古代密码的编码方法还有很多。例如,滚桶密码(又称密码棒),利用字条缠绕木棒的方式,实现字母的位移,收信人要使用相同直径的木棒才能还原真实的信息。随着社会发展,现
您可能关注的文档
最近下载
- 2025年中国半乳甘露聚糖项目创业计划书.docx
- 2025年中国四氯化锆项目投资计划书.docx
- 外研版(三起)五年级英语上册专项提升训练- 写作(含答案).doc VIP
- 阀门、法兰、弯头、封头等保温计算公式.xls VIP
- 中国溶剂油项目投资计划书.docx
- 中国电子测量仪器行业市场占有率及投资前景预测分析报告.pdf VIP
- 2025至2030中国MPV商务车行业运营态势与投资前景调查研究报告.docx VIP
- 计算方法与实习第5版 孙志忠 习题解析 东南大学.pdf VIP
- 数字经济学 课件全套 第1--15章 数字经济学基础 --- 数字经济监管.pptx
- 2023年青少年百科知识竞赛题库及答案(共390题).docx VIP
文档评论(0)