簡述希爾密碼

數(shù)學(xué)和密碼學(xué)一直是不可分割的兩門學(xué)科,像我們熟悉的RSA算法就是基于數(shù)學(xué)中大素數(shù)之積難被分解所設(shè)計的。那么我們今天來了解一種將字母替換為數(shù)字的密碼——希爾密碼。

希爾密碼簡介

希爾密碼(Hill Cipher)是Lester S. Hill在1929年發(fā)明的,它是運(yùn)用基本矩陣論原理的替換密碼,首先將字母轉(zhuǎn)換為數(shù)字,將字母分成多個n維向量,跟一個n×n的矩陣相乘,再將得出的結(jié)果模26。需要注意的是密鑰矩陣必須是可逆的,即矩陣的行列式和26互質(zhì)。

希爾密碼

希爾密碼的原理

每個字母當(dāng)作26進(jìn)制數(shù)字:A=0, B=1, C=2... 一串字母當(dāng)成n維向量,跟一個n×n的矩陣相乘,再將得出的結(jié)果mod26。用作加密的矩陣(即密匙)必須是可逆的,否則就不可能譯碼。只有矩陣的行列式和26互質(zhì),才是可逆的。

  • 加密:

1、定義一個矩陣a(須存在逆矩陣)作為加密密鑰:

[1,2,1]

[0,2,1]

[1,0,2]

2、將需要加密的明文字母轉(zhuǎn)換為其對應(yīng)的字母表數(shù)字(1-a,2-b……);

3、將轉(zhuǎn)換后的明文數(shù)字序列按照密鑰矩陣的階數(shù)進(jìn)行分組(如本次為3個字符一組);

4、每組數(shù)字序列和密鑰矩陣進(jìn)行矩陣的乘法運(yùn)算(1x3 矩陣乘以 3x3矩陣),結(jié)果即為密文數(shù)字序列;

5、可將密文數(shù)字序列轉(zhuǎn)換為其對應(yīng)字母,即為密文字符串。

  • 解密:

解密流程與加密相同,唯一不同之處在于需先求出加密密鑰的逆矩陣,在做矩陣相成時,用密文分組乘以逆矩陣,結(jié)果即為明文。

希爾密碼

希爾密碼的優(yōu)缺點(diǎn)

由于希爾密碼采用矩陣運(yùn)算加密,因此在相同的明文加密時,可能會出現(xiàn)不同的密文,因此可以很好的抵御字母頻率攻擊法,對抗唯密文攻擊的強(qiáng)度較高,但是容易受到已知明文攻擊。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。