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

第1章 制作纸质加密工具

本章主要内容:

密码学是什么;

代码和加密法;

凯撒加密法;

加密轮盘;

St. Cyr滑条;

用纸笔做加密;

“双重强度”加密。

我忍不住偷听,可能因为我在窃听。

——佚名

1.1 密码学是什么

看看以下两段文字:

左边的文字是秘密消息。这段消息已被加密,或者说被变成了秘密代码。任何不知道如何解密(也就是把它变回普通英语消息)的人都无法阅读。本书将会教你如何加密和解密消息。

右边的消息只是随机乱码,没有包含任何有意义的内容。加密你写下来的消息是对其他人保密的一种方式,即使他们得到了加密之后的消息。这看起来和随机乱码完全一样。

密码学是使用秘密代码的科学。密码编译者是使用和研究秘密代码的人。本书会告诉你成为一名密码编译者需要知道什么。

当然,这些秘密消息并不总是保持秘密状态。密码破译者是能破译秘密代码并读取其他人的加密消息的人。密码破译者又称为代码破译者(code breaker)或代码黑客(hacker)。本书也会告诉你成为一名密码破译者需要知道什么。遗憾的是,你在本书里学到的破译方式不会给你带来麻烦(我的意思是,幸亏如此)。

间谍、士兵、黑客、海盗、贵族、商人、暴君、政治激进分子、网购者以及任何要与可信好友分享秘密的人都依赖密码学,以确保他们的秘密还是秘密。

时间: 2024-10-24 04:17:44

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

《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树莓派编程第3章

第3章 Python介绍 你可能还记得我们在第1章中提到,制作树莓派的初衷是为了让每个人(尤其是孩子们)都拥有编程的环境.为了实现该目的,树莓派的创造者们想要推出一台价格相对便宜但性能十分强劲的计算机,每个人都可以将这台计算机连接至键盘.鼠标.显示器进行编程. 创造树莓派的另一个原因是希望简化编程.为此,Eben Upton和他的同伴决定将Python语言集成到树莓派的操作系统中.他们认为,Python是一种强大的编程语言,那些没有编程经验的人也可以轻松快速地学会. 在本章,我将对Python进

《Python密码学编程》——2.8 使用在线比较工具检查输入的代码

2.8 使用在线比较工具检查输入的代码 虽然通过输入这些程序的源代码来学习Python很有帮助,但你可能不小心输入错误导致程序崩溃.输入错误的位置可能无法一眼看出. 你可以复制粘贴你输入的源代码的文本到本书网站的在线比较工具.这个比较工具会显示本书代码和你输入的代码之间的差别.这是找出你的程序的输入错误的一个简单方法. 这个在线比较工具在http://invpy.com/hackingdiff .有一段关于如何使用这个比较工具的视频也可以在本书的网站http://invpy.com/hackin

《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.11 双重强度加密

1.11 双重强度加密 你可能在想,使用两个不同密钥加密同一条消息两次会加倍加密的强度.但这对于凯撒加密法(以及大多数其他加密法)来说不是那么一回事.让我们双重加密一条消息看个究竟. 如果我们用密钥3加密"KITTEN"这个词,得到的密文将是"NLWWHQ".如果我们用密钥4加密"NLWWHQ"这个词,得到的密文将是"RPAALU".这和用密钥7加密"KITTEN"这个词完全一样."双重"

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

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

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

1.5 如何使用加密轮盘加密 首先,在纸上用英语写下你的消息.在这个例子里,我们将会加密这条消息:"The secret password is Rosebud.".接着,旋转内圈,直到它的字母匹配外圈的字母.值得注意的是,外圈的字母A下面有一个点.再看看外圈里的这个点对应的内圈里的数字,这个数字就是密钥. 这个密钥就是加密或解密消息的秘密所在.任何读过这本书的人都知道凯撒加密法,就像任何读过关于锁的书的人都知道门锁的工作原理.但是,就像平常的锁和钥匙,除非他们有密钥,否则他们不能解锁

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

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