密码故事——最最简单地攻防(1)——Zfund量化套利基金

字母表顺序和数字

      加密的时候,经常要把A~Z这26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。A代表1,B代表2,C代表3...以此类推

最最简单的

进制转换密码 

Mod法

倒序法

间隔法

反字母表法

随机乱序字母

进制转换密码 

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

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

对应字母表:number

Mod法

 

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

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

倒序法

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

       具体加密时倒序有很多种方案,需要灵活运用。

例如:

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

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

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

间隔法

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

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

反字母表法

就是丹·布朗在《达·芬奇密码》一书中提到的埃特巴什码(Atbash Cipher)。它的原理是取一个字母,指出它位于字母表正数第几位,再把它替换为从字母表倒数同样的位数后得到的字母。如:E被替换为V,N被替换为M等。

明文:sophia 

密文:hlksrz

随机乱序字母 

即单字母替换密码。重排密码表二十六个字母的顺序,密码表会增加到四千亿亿亿多种,能有效的防止用筛选的方法检验所有的密码表。这种密码持续使用几个世纪,直到有人发现了破解大法

明文:forest 

密文:gbmrst

破解大法

     说到这,不得不提阿拉伯人,在阿拉伯黄金时代,他们发明频率分析法,终结了几个世纪的单字母替换密码,阿拉伯人最早在数学和医学都是很领先了,不要一提到阿拉伯人,不是土豪就是身上捆满炸弹那种,他们的祖先很令人尊重


     频率分析法可以有效的破解单字母替换密码,特别是现代计算机的出现,替换法密码基本上可以秒破

关于词频问题,这里提供英文字母的出现频率给大家,其中数字全部是出现的百分比:

     词频法其实就是计算各个字母在文章中的出现频率,然后大概猜测出明码表,最后验证自己的推算是否正确,这种方法由于要统计字母出现频率,需要花费时间较长。

你可能感兴趣的:(密码故事——最最简单地攻防(1)——Zfund量化套利基金)