在18世纪时,Freemasons为了使让其他的人看不懂他所写而发明的,猪圈密码属于替换密码流,但它不是用一个字母替代另一个字母,而是用一个符号来代替一个字母, 把26个字母写进下四个表格中,然后加密时用这个字母所挨着表格的那部分来代替。
针孔加密法
这种加密法诞生于近代。由于当时邮费很贵,但是寄送报纸则花费很少。于是人们便在报纸上用针在需要的字下面刺一个孔,等到寄到收信人手里,收信人再把刺有孔的文字依次排列,连成文章。
人们已经很少使用这种加密了。
栅栏加密法是一种比较简单快捷的加密方法。栅栏加密法就是把要被加密的文件按照一上一下的写法写出来,再把第二行的文字排列到第一行的后面。相应的,破译方法就是把文字从中间分开,分成2行,然后插入。
栅栏加密法一般配合其他方法进行加密。
著名的维热纳尔方阵由密码学家维热纳尔编制,大体与凯撒加密法类似。即二人相约好一个密钥(单词
),然后把加密后内容给对方,之后对方即可按密码表译出明文。
密钥一般为一个单词,加密时依次按照密钥的每个字母对照明码行加密。
例如:我的密钥是who,要加密的内容是I love you,则加密后就是E SCRL MKB.即加密I,就从密钥第一个字母打头的w那行找明码行的I对应的字母E。加密l,就从密钥第2个字母打头的h那行找明码l对应的字母S。加密o,从密钥第三个字母O打头的那行找到明码行中o对应的字母C。加密v,就又从密钥第一个字母w打头的那行找到明码行中v对应的字母R。 依此类推。
所以由维热纳尔方阵加密的密码,在没有密钥的情况下给破译带来了不小的困难。
维热纳尔方阵很完美的避开了概率算法(按每个语种中每个字母出现的概率推算。例如英语中最多的是e),使当时的密码破译师必须重新找到新方法破译。
波雷费密码
1、选取一个英文字作密匙。除去重复出现的字母。将密匙的字母逐个逐个加入5×5的矩阵内,剩下的空间将未加入的英文字母依a-z的顺序加入。(将Q去除,或将I和J视作同一字。)
2、将要加密的讯息分成两个一组。若组内的字母相同,将X(或Q)加到该组的第一个字母后,重新分组。若剩下一个字,也加入X字。
3在每组中,找出两个字母在矩阵中的地方。
若两个字母不同行也不同列,在矩阵中找出另外两个字母,使这四个字母成为一个长方形的四个角。
若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。
若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。
新找到的两个字母就是原本的两个字母加密的结果。
仿射密码
仿射密码是一种替换密码。它是一个字母对一个字母的。
它的加密函数是e(x)=ax+b(mod m),其中 a和m互质。
m是字母的数目。
译码函数是d(x)=a^(x-b)(mod m),其中a^是a在M群的乘法逆元