簡述仿射密碼

在說起古典密碼時,凱撒密碼總是繞不開的話題,它是將明文與密鑰相加,從而得到的密文,而我們今天要了解的仿射密碼,則是將明文與密鑰的一部分相乘,然后再加上密鑰的另一部分,以此來實現(xiàn)加密。

仿射密碼簡介

仿射密碼(Affine cipher)是一種表單替換密碼,它通過對字母數(shù)值進行簡單的乘法和加法方程運算,而得到另一個與其對應(yīng)的字母,從而進行加密。

仿射加密函數(shù):F(x) = (ax + b) (mod m),其中a和b互質(zhì),m是字母的數(shù)量;

仿射解密函數(shù):F(x) = a-1(x - b) (mod m),其中a-1是a在Zm群的乘法逆元,m是字母的數(shù)量。

仿射密碼

仿射密碼的加密過程

  1. 將純文本字母表中的每個字母轉(zhuǎn)換為0到m -1范圍內(nèi)的相應(yīng)整數(shù);
  2. 對每個字母數(shù)值進行如下算式計算(其中a和b是密碼的密鑰):E(x)=(ax + b)mod m
  3. 即將純文本字母的整數(shù)值乘以a,然后將b加到結(jié)果中,最后我們?nèi)∧?shù)m(也就是說,當(dāng)解除以m時取余數(shù),或者取掉字母的長度,直到得到小于該長度的數(shù)字)。

舉個例子:

使用密鑰a = 5,b = 8加密明文“AFFINE CIPHER”:

1、首先,我們必須找到明文字母表中每個字母的整數(shù)值(以字母表中的26個字母為例),如:

仿射密碼

2、找到的明文字母的整數(shù)值后,對這些值執(zhí)行計算,在此例中,所需的計算為(5x + 8);

3、最后,我們必須確保所有答案均在mod 26中計算,并將整數(shù)轉(zhuǎn)換回密文字母。

最后,得到的密文是“IHHWVC SWFRCP”。

仿射密碼的解密過程

仿射密碼的解密過程于加密相反,使用解密F(x) = a-1(x - b) (mod m)進行計算,即可得到對應(yīng)的解密后的原文。

仿射密碼

仿射密碼的優(yōu)缺點

仿射密碼的優(yōu)缺點為同一點,那就是簡單,當(dāng)a=1,仿射加密為凱撒密碼。它明文空間一般為26個英文字母,任意兩個不同的字母加密或解密后對應(yīng)不用的字母,相同的字母加密或解密后對應(yīng)相同的字母,所有仿射密碼可以使用頻率分析法破解。

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