簡(jiǎn)述仿射密碼

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

仿射密碼簡(jiǎn)介

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

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

舉個(gè)例子:

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

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

仿射密碼

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

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

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

仿射密碼的解密過程

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

仿射密碼

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

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

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