一、Porta密码--替换密码
1.介绍:Porta密码(Porta Cipher)是一个由意大利那不勒斯的医生Giovanni Battista della Porta发明的多表代换密码,Porta密码加密解密过程的是相同的。Vigenere 密码是具有 26 个字母的多字母密码,而 Porta 除了仅使用 13 个字母外基本相同。它使用的 13 个密码字母是互惠的,因此加密与破译相同。
2.密码表:
3.明文:ertyuiop
秘钥循环使用:wertyuio
密文:明文与秘钥对应的字母在密码表中的交点为密文
二、普莱菲尔密码(Playfair)
1.介绍:Playfair密码是第一个实用的二元图替换密码。该方案由查尔斯·惠斯通(Charles Wheatstone)于1854年发明,但以推广使用密码的普莱费尔勋爵(Lord Playfair)的名字命名。该技术对成对的字母(二元字符)进行加密,而不是像简单的替换密码那样对单个字母进行加密。Playfair更难破解,因为用于简单替换密码的频率分析不适用于它。仍然可以进行频率分析,但要对 25*25=625 个可能的二元图而不是 25 个可能的专论进行分析。因此,频率分析需要更多的密文才能工作。
2.算法
生成5*5的”钥匙方块”,任何 25 个字母的序列都可以用作键,只要所有字母都在其中并且没有重复。请注意,没有“j”,它与“i”组合。现在,我们应用加密规则来加密明文。
m o n a r c h y b d e f g i k l p q s t u v w x z
- 删除键方块中不存在的任何标点符号或字符(这可能意味着拼写出数字、标点符号等)。
- 识别明文中的任何双字母,并将第二个出现字母替换为“x”,例如“hammer”->“hamxer”。
- 如果明文的字符数为奇数,请在末尾附加一个“x”以使其为偶数。
- 将明文分成成对的字母,例如“hamxer”->“ha mx er”
- 该算法现在适用于每个字母对。
- 在钥匙方块中找到字母,(给出的示例使用上面的钥匙方块)
- 如果字母位于不同的行和列中,则将该对分别替换为同一行上的字母,但位于原始对定义的矩形的另一对角处。顺序很重要——对中的第一个加密字母是与第一个明文字母位于同一行的字母。'ha' -> 'bo', 'es' -> 'il'
- 如果字母出现在表格的同一行上,请分别将它们替换为紧靠右侧的字母(如果原始对中的字母位于行的右侧,则绕行到行的左侧)。'马' -> 'or', 'lp' -> 'pq'
- 如果字母出现在表格的同一列上,请分别将它们替换为紧挨着下方的字母(如果原始对中的字母位于列的底部,则绕行到列的顶部)。'rk' -> 'dt', 'pv' -> 'vo'
三、ROT系列
加密方式 | 加密方法 | 对象 | 例 |
---|---|---|---|
ROT5 | 往后移5位,即+5 | 数字 | 1-->6 |
ROT13 | 往后移13位 | 字母 | a->n |
ROT18 | ROT5+ROT13,以上两种方法结合 | 数字、字母 | 1-->6、a->n |
ROT47 | ASCLL码往后移47位 | 数字、字母、常用符号 | 0->_ |
四、棋盘密码(Polybius)
2.加密方式:将一个字母替换成两个数字,密文就是字符密码表中对应的横纵坐标。
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
1 | a | b | c | d | e |
2 | f | g | h | i/j | k |
3 | l | m | n | o | p |
4 | q | r | s | t | u |
5 | v | w | x | y | z |
注意:
- 数字范围1-5
- 加密对象为小写字母
- 数字每两个一组
五、埃特巴什码
1.介绍:这种密码是由熊斐特博士发现的。熊斐特博士为库姆兰《死海古卷》的最初研究者之一,他在《圣经》历史研究方面最有名气的著作是《逾越节的阴谋》。他运用这种密码来研究别人利用其他方法不能破解的那些经文。这种密码被运用在公元1世纪的艾赛尼/萨多吉/拿撒勒教派的经文中,用以隐藏姓名。其实早在公元前500年,它就被抄经人用来写作《耶利米书》。它也是希伯来文所用的数种密码系统之一。
2.埃特巴什码(Atbash Cipher)是一个系统:最后一个字母代表第一个字母,倒数第二个字母代表第二个字母。
常文: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
密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A