当前位置:
首页 > 计算机 > 程序设计 > Python密码学编程(第2版)pdf/doc/txt格式电子书下载

Python密码学编程(第2版)pdf/doc/txt格式电子书下载

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

Python密码学编程(第2版)pdf/doc/txt格式电子书下载

书名:Python密码学编程(第2版)pdf/doc/txt格式电子书下载

推荐语:

作者:(美)阿尔·斯维加特,郑新芳,赵怡翾等译

出版社:人民邮电出版社

出版时间:2020-04-01

书籍编号:30611559

ISBN:9787115529992

正文语种:中文

字数:358675

版次:2

所属分类:计算机-程序设计

全书内容:

Python密码学编程(第2版)pdf/doc/txt格式电子书下载









版权声明


Copyright©2018 by Al Sweigart. Title of English-language original: Cracking Codes with Python: An Introduction to Building and Breaking Ciphers, ISBN 978-1-59327-822-9), published by No Starch Press. Simplified Chinese-language edition copyright ©2020 by Posts & Telecom Press. All rights reserved.


本书中文简体版由No Starch Press公司授权人民邮电出版社独家出版。


未经出版者书面许可,不得以任何方式复制或抄袭本书内容。


版权所有,侵权必究。



内容提要


自互联网面世以来,网络安全一直是人们所重视的问题。从20世纪中叶开始,流传千百年的密码算法纷纷被投入到了网络安全的应用中;随后,在20世纪70年代,与古典密码完全不同的密码体制——公钥密码算法横空出世,密码学的发展完成了一次飞跃。


Python诞生于20世纪90年代,它是一种面向对象语言特点与解释型语言特点相结合的高级程序设计语言,已经得到了大规模应用。本书将Python语言与密码学结合起来,从简单的古典密码算法开始,一直到公钥密码算法,进行了简洁而细致的说明与解读。每一种密码算法的讲解包括原理部分、实现部分和破解部分(公钥算法不包括破解部分),其中后两者附有详细的Python代码,注释简洁明了,可读性极高。每章的末尾还提供了一些习题,帮助读者巩固所学知识并进行深入理解。


本书适合任何想要学习Python编程并对密码学抱有兴趣的读者。本书对Python编程的基础要求不高,初学者可以放心地阅读本书。相信本书一定能够为读者带来绝佳的阅读体验。



作者简介


Al Sweigart是一名软件开发工程师和技术图书作者,现居旧金山。Python是他最喜欢的编程语言。他为Python开发了若干开源模块。



审稿人简介


Ari Lacenski设计过移动App和Python软件,现居西雅图。


Jean-Philippe Aumasson(第22~24章)是瑞士Kudelski Security的首席研究工程师。他定期在Black Hat、DEF CON、TROOPERS及Infiltrate等信息安全会议上发表演讲。他也是Serious Cryptography的作者。



致谢


如果没有No Starch团队的帮助,那么本书是不可能出版的。感谢出版人Bill Pllock;感谢编辑Riley Hoffman、Jan Cash、Annie Choi、Anne Marie Walker及Laurel Chun,在本书出版过程中对我的鼎力相助;感谢技术责编Ari Lacenski在本书编辑过程中对我的帮助,起初我将本书拿给她看时,那还只是一摞打印稿;感谢JP Aumasson在第23章中给我提供的专业意见;感谢Josh Ellingson为本书设计的精彩封面。



注意


本书介绍的密码算法都非常有趣,但它们实际上并不安全。切记不能使用本书中的任何加密程序去加密真实的文件。还有一个普遍的定理是,不要信任任何你自己创造出来的密码算法。真实世界中的密码算法是经过密码学家多年的专业分析及设计之后才投入使用的。


注意


读者需要确保下载的版本是Python 3系列(如Python 3.6)。本书中的程序是在Python 3上运行的,在Python 2上可能无法正常运行。

ImportError: No module named pyperclip print(\'Hello, world!\')Hello, world!

前言


如果读者带着本书穿越回到20世纪90年代,就会发现第23章关于RSA密码的内容在当时的美国是不允许出口的。由于RSA密码加密过的信息不可能被破解,因此美国政府将出口类似RSA的加密软件视作与美国国家安全相关的问题,需要由美国国务院提供许可。事实上,法律对高强度的密码算法甚至有着和坦克、导弹、火焰喷射器一样严格的限定。


1990年,加利福尼亚大学的一名学生Daniel J. Bernstein想要发表一篇关于Snuffle加密系统源代码的学术论文。美国政府告知他,如果想要将代码发表在互联网上,就必须先得到一张军火商的许可证。同时,美国政府还告诉他,因为他的技术安全等级太高,所以如果他要申请一张军火许可证的话,政府就不得不吊销他的出境护照。


电子前线基金会(EFF)是一个十分年轻的数字公民自由组织,在Bernstein起诉美国政府的时候,它与Bernstein站在了同一阵线。这是有史以来第一次,法庭判决一份软件代码受到宪法第一修正案的保护,且对该加密软件的出境控制触犯了Bernstein的法定人权。


现在,每天都有成千上万的互联网商人使用强大的密码算法。这些密码算法已然成为全球经济、商业安全保障和电子商务站点的基石。情报机构曾经预测加密软件将会毁灭国家安全机制的骇人言论早已失去踪影。



许多图书指导初学者如何运用密码算法写出密文以及破解密码算法,但目前几乎没有一本书教授初学者如何用计算机编程实现密码算法的破解,本书填补了这一空白。


本书是为对加密、破解或密码算法抱有浓厚兴趣的人士准备的。除第23章和第24章介绍的公钥密码算法以外,本书其余的密码算法均有超过一个世纪的历史,但目前的笔记本电脑有破解它们的计算能力。现在已经很少有组织或个人会使用这些密码算法了,但通过学习这些算法,读者能够了解密码算法建立的基础,也能了解黑客破解弱密码算法的方式。


本书也是为从未学习过编程的读者准备的。它将以Python语言传达基础的编程理念。对于新手来说,Python是一门优秀的编程语言,拥有平缓的学习曲线,各年龄段的初学者均可以掌握,而它同时也是一种用于专业软件开发的强大语言。Python程序可以运行在Windows、macOS、Linux系统,甚至树莓派,下载和使用Python程序都是完全免费的。


在本书中,作者将频繁用到“黑客”这一术语。“黑客”这个词语有两种定义,它可能指某个研究密码系统(如密码算法的原理或软件代码的片段)的人,这个人精通整个系统,以致他不会受到系统原则的限制,甚至可以创造性地对系统进行修改;这个词也可能是指闯入计算机系统的不法分子,他们会侵犯人们的隐私,造成各类损失。本书采用的是第一种释义。黑客是很“酷”的,而犯罪分子不过是一些认为搞破坏就能显得自己高人一等的家伙罢了。



第1~3章将介绍Python和密码学的基本概念。第4~24章则依次解释某种密码算法的加密程序与其对应的破解程序。每章配备习题,有助于读者复习所学到的知识。



  • 第1章:制作纸质密码学工具,包含了一些简单的书面工具的介绍,展示了在计算机出现之前加密是如何实现的。
  • 第2章:在交互式运行环境中编程,说明了如何使用Python交互式运行环境逐行执行代码。
  • 第3章:字符串及编写程序,包含了编写完整代码的教程和本书中所有程序都会用到的字符串数据类型的简介。
  • 第4章:反向密码,介绍了第一种密码算法的简单程序编写方法。
  • 第5章:凯撒密码,包含了一种数千年前发明的基础密码。
  • 第6章:用暴力算法破解凯撒密码,介绍了暴力破解算法及如何在没有密钥的情况下使用暴力破解算法解密信息。
  • 第7章:通过置换密码实现加密,介绍了置换密码及置换密码加密程序。
  • 第8章:解密置换密码,包含了置换密码的第二部分,即通过密钥解密消息。
  • 第9章:编写测试程序,介绍了通过一个程序测试另一个程序的技术。
  • 第 10 章:文件的加密与解密,介绍了如何从硬盘中读出文件以及如何将文件写入硬盘。
  • 第11章:编程检测英语文本,描述了计算机检测英文句子的方法。
  • 第12章:破解置换密码,结合之前章节的内容,破解置换密码。
  • 第13章:仿射密码的模运算模块,解释仿射密码的数学原理。
  • 第14章:编写仿射密码,包含了仿射密码实现程序的编写过程。
  • 第15章:破解仿射密码,解释了如何编写程序破解仿射密码。
  • 第16章:编写简单代换密码,包含了代换密码实现程序的编写过程。
  • 第17章:破解简单代换密码,解释了如何编写程序破解代换密码。
  • 第 18 章:编写维吉尼亚密码,介绍了维吉尼亚密码的实现程序。该密码是一种更为复杂的代换密码。
  • 第 19 章:频率分析,对英文单词的结构进行了探究,并据此说明如何利用其结构破解维吉尼亚密码。
  • 第20章:破解维吉尼亚密码,解释了如何通过编写程序破解维吉尼亚密码密码。
  • 第21章:一次一密,介绍了一次一密密码并从数学角度分析其无法被破解的原因。
  • 第22章:素数的查找与生成,介绍了如何编写一个用于快速判断素数的程序。
  • 第23章:为公钥密码生成密钥,描述了公钥密码原理及生成公私钥对的程序。
  • 第 24 章:编写公钥密码算法,说明了公钥密码加密程序,其生成的密文无法仅用一台便携式计算机破解。
  • 附录:调试Python代码,向读者展示了如何通过IDLE的调试器找到并修复程序中的错误。


本书与其他编程类图书的不同之处在于,它的重点在于讲解一段完整的源代码。本书会向读者展示完整的程序并解释其工作原理,而不是仅告诉读者编程的原理,然后让读者自己去研究如何编写一个程序。



在阅读本书的过程中,建议读者手动将本书中的代码输入Python文件中。这样做有助于读者更好地理解代码。


在输入源代码时,注意不要将每行开头的行号一起输入。这些数字并不是代码的一部分,只不过是在解释代码的过程中可能会提到具体的某一行代码,因此使用了行号。当然,除需要注意行号的问题以外,还必须确保输入的代码和书中完全一致,包括大小写形式。


读者可能会注意到,某些代码并不是从最左侧开始书写的,它的前面有4格、8格甚至更多的缩进。请确保输入正确的空格数,避免出错。



虽然手动输入程序的源代码对学习Python有很大帮助,但这个过程可能会偶尔出现拼写错误,导致程序报错。要检查出拼写错误可能十分困难,尤其是在源代码非常长的情况下。



本书并不是一本编程参考书,而是一本为初学者设计的实践指南。因此,本书中的代码有时候并未与最佳代码样式相符,但对本书而言,让代码学习起来更容易才是明智的选择。同时,本书并不会对计算机科学的理论做任何介绍。


老练的程序员可能会指出,本书的部分代码可以改进得更有效率一些,但本书最关心的问题不是代码执行的效率,而是以简单的方式让程序能够执行。



在开始编程之前,读者首先要安装Python编译器(Python Interpreter),即一种用于执行Python指令的软件。以下将Python编译器简称为Python。


读者可从Python官网上免费下载Windows、macOS、Ubuntu 版本的Python。只要下载最新版本,本书中的所有程序就能够正常运行。



在Windows上,首先下载Python安装包,该安装包的文件名应该以 .msi 结尾,双击这个安装包,然后按照安装程序在屏幕上显示的指南安装Python。


(1)选择Install Now开始安装。


(2)安装完成后,单击Close按钮。



在macOS上,首先下载符合当前macOS版本的.dmg文件并双击,然后按照安装程序在屏幕上显示的指南安装Python,如下所示。


(1)当DMG包打开新窗口时,双击Python.mpkg文件。这个过程可能要输入计算机的管理员密码。


(2)单击欢迎界面上的Continue按钮并单击Agree按钮接受相关条款。


(3)选择HD Macintosh(或读者硬盘的名称)并单击In

....

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

本站仅展示书籍部分内容
如有任何咨询

请加微信10090337咨询

再显示