希尔密码如何容易受到选择明文攻击?


希尔密码是由莱斯特·S·希尔发明的一种多字母多表密码。希尔密码是一种编码系统,它结合了矩阵的概念和线性同余的方法,用于将明文加密成密文,以及将密文解密成明文。

希尔密码不会将明文中相同的字母都映射到密文中相同的字母,因为它利用矩阵乘法进行加密和解密。希尔密码是一种多表密码,可以归类为分组密码,因为要处理的文本将被分成特定大小的块。

一个块中的每个字符都会影响加密和解密过程中块中的其他字符,从而确保相同的字符不会映射到相同的字符。

希尔密码属于经典的密码算法,如果仅根据密文文件来破解,对于密码分析师来说非常复杂。然而,如果密码分析师同时拥有密文文件和明文文件的一部分,那么破解它就相对简单了。这种密码分析技术称为已知明文攻击。

希尔密码的基础需要矩阵乘法和矩阵求逆技术。希尔密码的关键是n x n矩阵,其中n是块的大小。

成为密钥的K矩阵应该是一个可逆矩阵,它具有逆矩阵K-1,因此密钥必须具有逆矩阵,因为K-1矩阵是用于解密的密钥。

希尔密码的阶段如下:

  • 在希尔密码中,明文被分成相同大小的块。

  • 这些块逐个加密,使得块中的每个字符都参与到块中新字符的加密中。

  • 在希尔密码中,密钥是一个大小为m x m的方阵,其中m定义了块的大小。如果称密钥矩阵为K,则表示为:

    K=[K11K12K1m K21K22K2m K31K32K3m ]

  • 如果明文块中有m个字符,即P1、P2…Pm,则密文块中相应的字符C1、C2…Cm将由以下等式定义:

    C1=P1K11+P2K12+P3K13mod26

    C2=P1K21+P2K22+P3K23mod26

    C3=P1K31+P2K32+P3K33mod26

  • 这些等式可以用列矩阵的形式表示为:

    (C1 C2 C3)=(K11K12K13 K21K22K23 K31K32K33 )(P1 P2 P3)mod26

  • 一般情况下,希尔密码的等式可以定义为:

    C=KPmod26

    P=K1Cmod26

  • 希尔密码很容易被已知明文攻击破解。假设有m个明文-密文对,每个长度为m,使得

    Ci=KPifor1im

  • 未知密钥矩阵K可以计算为:

    K=CiP1i

    一旦计算出密钥,就可以轻松地破解密码。

更新于: 2022年3月14日

浏览量 1K+

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告