Playfair算法是多表代换加密方式中最著名的一种,属于经典对称加密方式,1854年由英国科学家Chaeles W发明。曾经在相当长的一段时期内,Playfair算法被认为是一种牢不可破的加密方法。在网络安全、数据加密等方面,其加密思想被广泛应用。Playfair密码是把明文中的双字母音节作为一个单元并将其转换为密文的一种加密算法,原算法可用的字母对有26×26个,虽然比明文有着稍为平坦的频率分布曲线,但密文中仍透露了大量的信息给密码分析者。

Playfair算法
Playfair算法是把明文中的双字母作为一个单元,将其转换为密文的双字母,转换依据由密钥所构成的5×5字母矩阵。

1、转换矩阵的构成
先将密钥去掉重复字母(字母i和j视为同一个字母),然后从左向右、从上至下填写在矩阵格子中,假如密钥为successful,去除重复字母后为的有效密钥为sucefl。

浅析Playfair算法及其缺点

将剩下的英文字母(i和j视为同一个字母)按从左到右、从上而下的顺序填写在剩余空白的格子中。

浅析Playfair算法及其缺点

2、加密算法
加密时,每次从明文中提出2个字母,具体的加密算法如图所示。

浅析Playfair算法及其缺点

3 、Playfair算法的缺点
尽管Playfair算法被认为是比较安全的,但它仍是可以被破解的,因为它的密文中完好地保留了明文语言的大部分结构特征,有几百个字母的密文就可以分析出某些规律,从而为进一步破解提供线索。使用Playfair算法加密,之所以密文中保留了明文语言中的结构特征,基于多方面的原因,其中有3方面主要因素导致密文完好地保留了明文语言的大部分结构特征:
(1)明文的读取是按序读取,所以生成的密文与明文基本上是保持一一对应关系,这种一一对应关系直接暴露了明文的结构特征。
(2)由密钥构造5×5字母矩阵时,密钥写在前面,剩下的字母按序填写在后面,这样后面的字母基本保留了英文字母的顺序,使得破解者可以借助密文中的字母出现的频率来构造字母矩阵。一旦字母矩阵被构造出一部分,那么再结合字母对出现频率的统计,进一步从密文中挖掘出其他特征,密钥就很有可能被猜到。
(3)i和j字符认为是相同的字母,由于i在英文中出现的概率原本就很高,两字母被视为同一个字母后,通过密文中的字母,能够分析出哪些字母与i/j同行或同列,从而为构造5×5字母矩阵提供了线索。