密码学

网络安全技术

 朱本福  

关键字:密码学、易位、替换、栅栏密码、波雷费密码、恺撒密码、四位乘法密码 

摘要:

密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商密码学几乎专指加密(encryption)算法:将普通信息即明文转换成难以理解的资料即密文的过程;解密算法则是其相反的过程:由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密与解密的技术。

加解密的具体运作由两部分决定:一个是算法,另一个是密钥。密钥是一个用于加解密的秘密参数,通常只有通讯者拥有。历史上,密钥通常未经认证或完整性测试而被直接使用在密码机上。

下面介绍几种简单常用的加密解密方法:

1. 字母表顺序-数字

加密的时候,经常要把A~Z26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。

A代表1B代表2C代表3...

字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

每个单词的倒序:siht si a tset - this is a test

  整句的倒序:tset a si siht - this is a test

数字的倒序:02 50 91 02 - 20 05 19 20(test)

例如

2. 进制转换密码

例如二进制:1110 10101 1101 10 101 10010 1111 1110 101

转为十进制:14 21 13 2 5 18 15 14 5

对应字母表:number

3 . Mod算法

我们可以对字母序号进行数学运算,然后把所得的结果作为密文。当运算结果大于26或小于1的时候,我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。

Mod就是求余数的运算符,有时也用“%”表示。例如 29 Mod 26 = 3,或写成 29 % 26 = 3,意思是29除以26的余数是3

4. 倒序

加密时为经常要对字符进行倒序处理。如果让你按abcdef...的顺序背出字母表的每个字母会很容易,但是如果是zyxwvu...的顺序那就很难背出来了。一个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌生。

例如“love”字母倒过来拼就是“evol”。

5. 间隔

单词之间的间隔一般使用空格。在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为一种好的加密方案。错误空格位置也会起到很强的误导作用。

例如:t hi sis at est - this is a test

 

其他典型的加密解密方法:

1)栅栏密码,请先看下面的密文:

w h d x

u a a u

(  n   e )

这是一个比较简单的密码问题

先将密文分为两行

再按上下上下的顺序组合成一句话

(wu)(han)(da)(xue)

其实,还有多线的栅栏密码,又如下面的密文

ASLELNASLAJLLHLWLDCHLVILABEAJKAHEL利用上面方法即

A S L E L N A S L A J L

L H L W L D C H L V I

L A B E A J K A H E L

All shall be well and Jack shall have Jill.

翻译即为有情人终成眷属。

栅栏密码也可以用于中文,不过比较容易破解。 

明文: 这是中文的栅栏密码 

密文(3*3方阵):这文栏是的密中栅码 

由于中文用规则的栅栏比较容易破解,所以产生了一些变体,例如道家心法密籍《天仙金丹心法》中的一段加密方法。密文如下: 

  ○ 便  

  ○  

  天  

  然  

  鼎  

  器  

  净  

  无  

  尘  

  大  

  海 便  

明文(从上向下竖着读):天然鼎器净无尘,大海茫茫月半轮。著色空摹终是假,定光返照便为真。不分人我生还灭,但泥经权屈未伸。万法自来归一法,好从中路妙形神。

 

2)波雷费密码

这一种对称式密码,是首种双字母取代的加密法。关于波雷费密码最早的纪录出现在一份1854326日由查尔斯•惠斯登签署的文件。惠斯登的朋友波雷费勋爵普及了这个加密法。但是最初英国外交部拒绝使用这种密码,认为它太复杂。当惠斯登证明邻近学校的四个男孩中,有三个可以在15分钟内学会这种方法,外交部副秘书长的回应是:“这是有可能的,可惜你不能教晓那些高层人员。”在第二次布尔战争和第一次世界大战,英军用了它;在二战,澳大利亚人也用了。波雷费密码所用的工具很少,而且很快便能加密讯息。它主要用来加密重要而又不关键的讯息。

A B C D E 

F G H I/J K 

L M N O P 

Q R S T U 

V W X Y Z 

加密的方法是: 

1. 把讯息分拆成一对对的字母,即字母对( digraphs )。而字母对内之字母必须不同,相同时则在中间插入 x z q 等(选其一)较少用的字母。如最後只剩一个字母,同样地,加入 x 等来组成字母对。 

2. 从表中可看出,所有字母对可分成三类:两个字母在同一行,两个字母在同一列,或前述情况皆非。 

3. 对明文加密时,若两个字母都在同一行就各自用右边的字母代替,如果右边没字了,则用同行开头(即最左边)的字母代替。例如: lo 变成 MP wz 则变成 XV  

4. 同样道理,对同一列的字母,则用其下方的字母取代,最底的则用同列最上方的字母取代。例如: gr 变成 MW jy 则变了 OD  

5. 至於遇到第三种情况时,则用另一种加密方法:取字母对中第一个字母所在的行,及第二个字母所在的列,它们所交汇出的字母就用来加密第一个字母;加密第二个字时,则取字母对中第一个字母所在的栏,及第二个字母所在的行所交汇出的字母为替身。所以, mt 会变成 OR ,而 by 则变成 DW  

明文 minimize cheese cake 

分解成字母对的明文 mi ni mi ze ch ex es ec ak ex 

密码文 OG OH OG EK HN CZ AD EF CZ 

可以看出,波雷费密码算不上十分强固,因为其虽然抹除了单个字母的频率特徵,但掩盖不了明文内字母对的频率。所以只要找出最常出现的字母对,再假定它们就代表了英文中最常用的几个字母对- th he an in er 後,就能破解它了。

 

3)“恺撒密码”

据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,

据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。

它是将字母表中的字母依次后移一定的位置得到的。例如:通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E

举例如以下一句密文:

Ep_zpv_mpwf_nf 

e前面是d,排前面是o,字母表里面的,别说这都不知道……

原句就是do-you-love-me 

又如以一组密码为例:

HL FKZC VD LDS

只需把每个字母都按字母表中的顺序依次后移一个字母即可——A变成BB就成了C,依此类推。因此明文为:

IM GLAD WE MET

英文字母的移位以移25位为一个循环,移26位等于没有移位。所以可以用穷举法列出所有可能的组合。

例如:phhw ph diwhu wkh wrjd sduwb 

明文 F O R E S T

密文 K T W J X Y

WSKQUGEWWSKQYG

WSKQUGEWWSKQYG

突破点是WSKQ,密文中出现了两次,不妨把它当作一个单词 即可得easy comeeasy go

 

4)四位乘法密码 

    这种密码是一个叫前天英次郎的人本人发明的,编写很简单,而且密钥就是一个四位数字。

加密方法:

首先选一个合适的四位数字,如6543。既不要有0出现(为甚麽?往下看就知道了)

然后算出他的平方:6543*6543=42810849

取中间的三位数,再与6543相乘:108*6543=706644

接着取中间的三位数,再与6543相乘:664*6543=4344552

仍取中间的三位数,再与6543相乘:445*6543=2911635

一直计算(如果数位是2N就从第N位取)

直到这些数的长度和明文一样

现在加密:

明文:w i l   l y o u s e n d u s   t h e i n f o r m a t i o n

密钥:1 0 8 6 6 4 4 4 5 1 1 6 8 9 8 7 5 6 4 6 5 4 2 4 7 4 2

密文: X I T R E S Y W J O E A A C P L N T J U W Q C X P S P 

一样,数字也代表了位移顺序。

这种密码的好处是传递方便,密钥容易记,也不是很容易破译,缺点是编写比较麻烦,运算量太大。

现代的密码研究主要在分组密码(block cipher)与流密码(stream cipher)及其应用。分组密码在某种意义上是阿伯提的多字符加密法的现代化。分组密码取用明文的一个区块和钥匙,输出相同大小的密文区块。由于信息通常比单一区块还长,因此有了各种方式将连续的区块编织在一起。 DESAES是美国联邦政府核定的分组密码标准(AES将取代DES)。尽管将从标准上废除,DES依然很流行(triple-DES变形仍然相当安全),被使用在非常多的应用上,从自动交易机、电子邮件到远端存取。也有许多其他的区块加密被发明、释出,品质与应用上各有不同,其中不乏被破解者。

流密码,相对于区块加密,制造一段任意长的钥匙原料,与明文依位元或字符结合,有点类似一次一密密码本(one-time pad)。输出的串流根据加密时的内部状态而定。在一些流密码上由钥匙控制状态的变化。RC4是相当有名的流密码。

参考资料:

《维基百科》,《密码学》,《网络安全技术》,《柯南密码解读》及其他密码学相关资料

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Title: Python Hacking Essentials Author: Earnest Wish Length: 214 pages Edition: 1 Language: English Publisher: CreateSpace Independent Publishing Platform Publication Date: 2015-04-01 ISBN-10: 1511797568 ISBN-13: 9781511797566 Target Audience This book is not for professional hackers. Instead, this book is made for beginners who have programming experience and are interested in hacking. Here, hacking techniques that can be easily understood have been described. If you only have a home PC, you can test all the examples provided here. I have included many figures that are intuitively understandable rather than a litany of explanations. Therefore, it is possible to gain some practical experience while hacking, since I have only used examples that can actually be implemented. This book is therefore necessary for ordinary people who have a curiosity of hackers and are interested in computers. Organization of the Book This book is made up of five major parts, from basic knowledge to actual hacking code. A beginner is naturally expected to become a hacker while reading this book. Hacking Preparation: Briefly introduce the basic Python syntax that is necessary for hacking. Application Hacking: Introduce the basic skills to hack an application, such as Keyboard hooking, API hooking and image file hacking. Web Hacking: The Virtual Box test environment configuration is used for a Web Shell attack to introduce web hacking, which is currently an important issue. The techniques include SQL Injection, Password Cracking, and a Web Shell Attack. Network Hacking: A variety of tools and the Python language can be combined to support network hacking and to introduce the network hacking technique. Briefly, we introduce NMap with the Wireshark tool, and hacking techniques such as Port Scanning, Packet Sniffing, TCP SYN Flood, Slowris Attack are introduced. System Hacking:System hacking is difficult to understand for beginners, and in this section, figures are used to introduce difficult concepts. The hacking techniques that are introduced include a Backdoor, Registry Handling, Stack Based Buffer Overflow, and SEH Based Buffer Overflow. While reading this book, it is possible to obtain answers for such problems one by one. After reading the last chapter, you will gain the confidence to be a hacker. Features of this book When you start to study hacking, the most difficult task is to configure the test environment. There are many problems that need to be addressed, such as choosing from the variety in operating systems, obtaining expensive equipment and using complex technology. Such problems are too difficult to take in at once, so this book overcomes this difficulty by implementing a simple idea. First, systems will be described as Windows-based We are very familiar with Windows, so it is very easy to understand a description based on Windows. Since Windows, Linux, Unix, and Android are all operating systems, it is possible to expand the concepts that are discussed here. Second, we use a virtual machine called Virtual Box For hacking, it is necessary to connect at least three or more computers on a network. Since it is a significant investment to buy a few computers only to study these techniques, a virtual machine can be used instead to easily implement a honeypot necessary to hack by creating multiple virtual machines on a single PC. Finally, abstract concepts are explained using figures Rather than simply using words for descriptions, graphics are very effective in transferring information. An abstract concept can materialize through the use of graphics in order to improve the understanding on the part of the reader. Table of Contents Chapter 1 Preparation for Hacking Chapter 2 Application Hacking Chapter 3 Web Hacking Chapter 4 Network Hacking Chapter 5 System Hacking Chapter 6 Conclusion

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值