乘法密碼

乘法密碼是簡單代替密碼的一種。它需要預先知道訊息元素的個數,加密的過程其實是相當於對明文訊息所組成的數組下標進行加密,然後用明文訊息中加密後位置所對應的明文字元代替。

基本信息

乘法密碼是簡單代替密碼的一種。

它需要預先知道訊息元素的個數,加密的過程其實是相當於對明文訊息所組成的數組下標進行加密,然後用明文訊息中加密後位置所對應的明文字元代替。

加密過程

設明文訊息元素個數為n,密鑰為k。

密鑰k在選取的時候應滿足兩個條件:

(1)0<k<n

(2)k與n互素

設明文訊息為M,訊息元素為m;

則密文訊息為C,密文元素為c=m*k mod n;

其解密過程如下:

乘法密碼 乘法密碼

首先要得到解密密鑰,就是要求得加密密鑰k模n的逆元;

乘法密碼 乘法密碼

具體求法為k *mod n=1;

乘法密碼 乘法密碼

然後計算m=c *mod n即可得到明文訊息M。

舉例說明如下:

英文字母有26個,即n=26;

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

M=m[26]={a , b , c ,d , e , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x , y , z };

我們選取密鑰k=5;

現在我們對hello進行加密

hello所對應的數組為[8,5,12,12 15];

由於8*5 (mod 26) =40(mod)26=14;

依次類推,可得到加密後的數組為[ 14 , 25,8,8, 23 ];

對應的密文訊息就是nyhhw

現在我們開始對nyhhw解密

乘法密碼 乘法密碼

首先要求得解密密鑰;

由於5*21(mod 26)=105(mod26)=1;

乘法密碼 乘法密碼

所以=21;

nyhhw所對應的數組為[ 14 , 25,8,8, 23 ];

由於14*21(mod26)=294(mod26)=8;

依次類推,可得到解密後的數組為[8,5,12,12 15];

對應的明文訊息就是hello。

相關詞條

相關搜尋

熱門詞條

聯絡我們