《Python密码学编程》——1.5 如何使用加密轮盘加密

1.5 如何使用加密轮盘加密

首先,在纸上用英语写下你的消息。在这个例子里,我们将会加密这条消息:“The secret password is Rosebud.”。接着,旋转内圈,直到它的字母匹配外圈的字母。值得注意的是,外圈的字母A下面有一个点。再看看外圈里的这个点对应的内圈里的数字,这个数字就是密钥。

这个密钥就是加密或解密消息的秘密所在。任何读过这本书的人都知道凯撒加密法,就像任何读过关于锁的书的人都知道门锁的工作原理。但是,就像平常的锁和钥匙,除非他们有密钥,否则他们不能解锁(也就是解密)已被加密的消息。在图1-9中,外圈的A在内圈的数字8上,这意味着我们将会使用8这个密钥来加密我们的消息。凯撒加密法使用的密钥范围是0~25。我们的例子将会使用8这个密钥。保管好这个密钥,任何知道这条消息使用8这个密钥加密的人都能读懂密文。

对于我们的消息里的每个字母,我们将会找到它在外圈的位置,然后把它替换成内圈对应的字母。我们的消息的第一个字母是T(“The secret…”里的第一个“T”),于是我们在外圈找到字母T,然后找到内圈对应的字母。这个字母是B,因此,我们总会把我们的秘密消息里的T替换成B(如果我们使用8以外的其他密钥,那么明文里的T将被替换成别的字母)。

我们的消息里的下一个字母是H,它会变成P。字母E会变成M。当我们加密完整条消息时,这条消息会从“The secret password is Rosebud.”变成“Bpm amkzmb xiaaewzl qa Zwamjcl.”(见图1-10)。现在你可以把这条消息发给某人(或者给自己写下来),没人可以读懂它,除非你把密钥(数字8)告诉他们。

外圈上的每个字母总是加密成内圈上相同的字母。为了节约时间,在你查找“The secret…”里的第一个T,并看到它会加密成B之后,你可以把这条消息里的每个T都替换成B。这样,一个字母你只需要查找一次。

时间: 2024-10-13 11:48:24

《Python密码学编程》——1.5 如何使用加密轮盘加密的相关文章

《Python密码学编程》——第1章 制作纸质加密工具 1.1 密码学是什么

第1章 制作纸质加密工具 本章主要内容: 密码学是什么: 代码和加密法: 凯撒加密法: 加密轮盘: St. Cyr滑条: 用纸笔做加密: "双重强度"加密. 我忍不住偷听,可能因为我在窃听. --佚名 1.1 密码学是什么 看看以下两段文字: 左边的文字是秘密消息.这段消息已被加密,或者说被变成了秘密代码.任何不知道如何解密(也就是把它变回普通英语消息)的人都无法阅读.本书将会教你如何加密和解密消息. 右边的消息只是随机乱码,没有包含任何有意义的内容.加密你写下来的消息是对其他人保密的

《Python密码学编程》——导读

前 言 有很多书教初学者如何使用加密法写秘密消息,有一些书教初学者如何破译加密法.据我所知,还没有书教初学者如何编写程序来破译加密法.这本书填补了这个空缺. 本书适合不懂加密.破译或密码学的初学者.本书的加密法(除了最后一章的RSA加密法)都有数百年历史了,现代计算机的计算能力可以破译使用它们加密的信息,现代组织或个人已经不再使用这些加密法了.有鉴于此,你不会因为本书里的内容而惹麻烦. 本书适合从来没有编过程序的初学者.本书使用Python编程语言讲解基本编程概念.Python非常适合初学者学习

《Python密码学编程》——1.3 制作纸质加密轮盘

1.3 制作纸质加密轮盘 在学习通过计算机编程进行加密和解密之前,我们先来了解一下如何使用简单的纸质工具手工完成这项任务.把可理解的英语文字(明文)变成隐藏秘密代码的乱码文字(密文)是很容易的.加密法(cipher)是一组转换明文和密文的规则.这些规则通常使用一个密钥.我们会在本书里学到多种不同的加密法. 我们来学一下凯撒加密法.这种加密法曾在两千年前被凯撒大帝用过.好消息是,它学起来很简单很容易.坏消息是,正因为它简单,密码破译者也很容易破译它.但我们可以把它看做一个简单的练习.Wikiped

《Python密码学编程》——1.9 不用纸质工具做加密

1.9 不用纸质工具做加密 在使用凯撒加密法做加密和解密时,加密轮盘和St. Cyr滑条都是很好的工具.但我们只用铅笔和纸也可以实现凯撒加密法. 把字母表的字母从A到Z写下来,在每个字母下面写下数字0到25.在A下面写0,B下面写1,如此类推,直到在Z下面写25(字母表里有26个字母,但我们的数字最多只到25,因为我们从0而不是1开始的).最终看起来像这样: 有了上面这个从字母到数字的代码,我们就可以用数字来表示字母了.这是一个非常强大的概念,因为数学使用数字.现在我们可以在字母上做运算了. 现

《Python密码学编程》——1.6 如何使用加密轮盘解密

1.6 如何使用加密轮盘解密 要解密一条密文,从内圈向外圈走.假设你从一个朋友那里收到这条密文:"Iwt ctl ephhldgs xh Hldgsuxhw.".你和其他人都不能解密它,除非你知道密钥(或者除非你是个很聪明的黑客).但你的朋友决定使用15这个密钥加密自己发给你的每条消息. 把外圈上的字母A(下面有个点的那个)对准内圈上带有数字15的字母(即字母P).密文里的第一个字母是I,因此,我们在内圈上找I,看看旁边外圈上的字母,是T.密文里的W会解密成字母H.一个接一个地,我们把

《Python密码学编程》——1.4 虚拟加密轮盘

1.4 虚拟加密轮盘 如果你手头没有剪刀和复印机,你也可以使用在线虚拟加密轮盘(见图1-9).用浏览器打开http://invpy.com/cipherwheel ,使用软件版的加密轮盘. 要旋转轮盘,用鼠标在上面点击一下,然后移动鼠标,直到你想要的密钥在适当的位置上.再次点击鼠标,就可以停止轮盘的旋转.

《Python密码学编程》——2.11 编程和密码学

2.11 编程和密码学 编程和密码学是两个独立的技能,但一起学是很有用的,因为计算机做加密比人更快.比如说,以下是用简单替换密码的方式加密莎士比亚的<罗密欧与朱丽叶>之后的全部文本: 如果你尝试手工加密,每天工作12小时,周末休息,需要大约三周时间才能完成加密.或许你还会犯些错误.然后需要另外的三周时间才能解密这段加密的文本. 你的计算机只需不到两秒就能完全加密或解密整部戏剧. 但你需要知道如何进行计算机编程才能加密.这就是本书的目的了.如果你会计算机编程,你也可以破译别人加密并试图保密的密文

《Python密码学编程》——1.7 另一个加密法工具:St. Cyr滑条

1.7 另一个加密法工具:St. Cyr滑条 还有一个纸质工具可以用来做加密和解密,这个纸质工具叫做St. Cyr滑条.它很像密钥索引轮盘,但它是直的. 复印本页的St. Cyr滑条图片(或者从http://invpy.com/stcyrslide打印),剪下三条纸带,如图1-11所示. 连接两条字母表纸带,把黑框A粘在另一条纸带上的白框Z旁边.割开主滑框两边的裂缝,使连接起来的纸条可以穿过它.最后看起来应该是如图1-12所示. 当黑框A在字母H(数字7)下面时,如果要加密,就在长纸带上找出明文

《Python密码学编程》——1.12 通过计算机编程进行加密

1.12 通过计算机编程进行加密 几个世纪以来,凯撒加密法或者类似的加密法曾被用于加密信息.图1-13是Albert Myer设计的加密圆盘,这个加密圆盘曾在1863年的美国南北战争中使用. 如果你有一段很长的消息希望加密(如加密一整本书),手工加密需要耗费数日或数周的时间.这正是编程派上用场的地方.计算机可以在一秒之内完成大量文字工作.但是,我们需要学习如何指示(也就是编程)计算机执行我们所做的步骤. 我们要会说一门计算机能懂的语言.幸运的是,学习编程语言不像学习日语或西班牙语等外语那么难.你