希爾密碼如何容易受到選擇明文攻擊?


希爾密碼是由萊斯特·S·希爾發明的一種多字母多表密碼。希爾密碼是一種編碼系統,它結合了矩陣的概念和線性同餘的方法,用於將明文加密成密文,以及將密文解密成明文。

希爾密碼不會將明文中相同的字母都對映到密文中相同的字母,因為它利用矩陣乘法進行加密和解密。希爾密碼是一種多表密碼,可以歸類為分組密碼,因為要處理的文字將被分成特定大小的塊。

一個塊中的每個字元都會影響加密和解密過程中塊中的其他字元,從而確保相同的字元不會對映到相同的字元。

希爾密碼屬於經典的密碼演算法,如果僅根據密文檔案來破解,對於密碼分析師來說非常複雜。然而,如果密碼分析師同時擁有密文檔案和明文檔案的一部分,那麼破解它就相對簡單了。這種密碼分析技術稱為已知明文攻擊。

希爾密碼的基礎需要矩陣乘法和矩陣求逆技術。希爾密碼的關鍵是n x n矩陣,其中n是塊的大小。

成為金鑰的K矩陣應該是一個可逆矩陣,它具有逆矩陣K-1,因此金鑰必須具有逆矩陣,因為K-1矩陣是用於解密的金鑰。

希爾密碼的階段如下:

  • 在希爾密碼中,明文被分成相同大小的塊。

  • 這些塊逐個加密,使得塊中的每個字元都參與到塊中新字元的加密中。

  • 在希爾密碼中,金鑰是一個大小為m x m的方陣,其中m定義了塊的大小。如果稱金鑰矩陣為K,則表示為:

    $$\mathrm{K=\begin{bmatrix} K_{11} & K_{12} & K_{1m} \ K_{21}& K_{22}& K_{2m}\ K_{31} & K_{32}& K_{3m}\ \end{bmatrix}}$$

  • 如果明文塊中有m個字元,即P1、P2…Pm,則密文塊中相應的字元C1、C2…Cm將由以下等式定義:

    $$\mathrm{C_{1}=P_{1}\, K_{11}+P_{2}\, K_{12}+P_{3}\, K_{13}\: mod\: 26}$$

    $$\mathrm{C_{2}=P_{1}\, K_{21}+P_{2}\, K_{22}+P_{3}\, K_{23}\: mod\: 26}$$

    $$\mathrm{C_{3}=P_{1}\, K_{31}+P_{2}\, K_{32}+P_{3}\, K_{33}\: mod\: 26}$$

  • 這些等式可以用列矩陣的形式表示為:

    $$\mathrm{\begin{pmatrix} C_{1} \ C_{2} \ C_{3} \end{pmatrix}=\begin{pmatrix} K_{11} &K_{12} & K_{13} \ K_{21} & K_{22} & K_{23} \ K_{31} & K_{32} & K_{33} \ \end{pmatrix} \begin{pmatrix} P_{1} \ P_{2} \ P_{3} \end{pmatrix} \: mod\: 26}$$

  • 一般情況下,希爾密碼的等式可以定義為:

    $$\mathrm{C\: =\: K\, P\: mod\: 26}$$

    $$\mathrm{P\: =\: K^{-1}\, C\: mod\: 26}$$

  • 希爾密碼很容易被已知明文攻擊破解。假設有m個明文-密文對,每個長度為m,使得

    $$\mathrm{C_{i}\, =\, K\, P_{i}\: for\: 1\leq i\leq m}$$

  • 未知金鑰矩陣K可以計算為:

    $$\mathrm{K=C_{i}\: P_{i}^{-1}}$$

    一旦計算出金鑰,就可以輕鬆地破解密碼。

更新於: 2022年3月14日

瀏覽量 1K+

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告