乘法密碼是簡(jiǎn)單替換密碼的?種。它需要預(yù)先知道消息元素的個(gè)數(shù)(即英?26個(gè)字?,?個(gè)字
?相當(dāng)于?個(gè)消息元素),加密的過(guò)程其實(shí)是相當(dāng)于將每個(gè)元素替換成數(shù)字,然后選取密鑰(密鑰
為數(shù)字)與明?消息相乘再進(jìn)?模運(yùn)算,把最后得到的數(shù)值替換回字?。
加密時(shí):設(shè)明?消息元素個(gè)數(shù)為n,加密密鑰為k。密鑰k在選取的時(shí)候應(yīng)滿?兩個(gè)條件:
(1)0<k<n
(2)k與n互素
設(shè)明?消息為M,消息元素為m。則密?消息為C,密?元素為c,c=m×k mod n
解密時(shí):
?先要得到解密密鑰,設(shè)解密密鑰為k?1,求法為:k×k?1 mod n=1,當(dāng)n=26時(shí),通過(guò)計(jì)算后對(duì)應(yīng)具體
加密密鑰,解密密碼如下表;再計(jì)算m=c×k?1 mod n即可得到明?消息M。
例:
英?有26個(gè)字?,則消息元素n=26
加密:
我們把26個(gè)字?換成數(shù)字,即a=1,b=2,c=3……y=25,z=26;選取密鑰k=5,若加密ningning
n=14,14×5 mod 26=18,再把數(shù)字替換成英?18=r,即n=r
i=9,9×5 mod 26=19=s,即i=s
g=7,7×5 mod 26=9=i,即g=i
所以加密后得rsrirsri
解密:
因?yàn)榧用苊荑€為5,則對(duì)應(yīng)解密密鑰為21
r=18,18×21 mod 26=14=n
s=19,19×21 mod 26=9=i
i=9,9×21 mod 26=7=g
所以解密后得ningning
附:①凱撒密碼也可以理解為字?關(guān)于mod函數(shù)的函數(shù)變換,我們此時(shí)稱為加法密碼。若乘法密碼
算法為c=m×k mod n,則加法密碼算法可表示為c=m+k mod n,其中k在凱撒密碼中即為位移數(shù);②
有些乘法密碼會(huì)將字?定義為a=0,b=1,c=2……y=24,z=25,但加密程序不變;③上述加密解密
對(duì)應(yīng)密鑰表僅在n=26時(shí)成?,若n為其它數(shù)值,則需重新計(jì)算得到對(duì)應(yīng)密鑰;④加密時(shí),如果密鑰
k=1,加密變換為恒等變換,即?變化;⑤只有密鑰k與消息元素個(gè)數(shù)n互素時(shí),加密后才有唯?的結(jié)
果。
以上就是全部?jī)?nèi)容,如有錯(cuò)誤還請(qǐng)指出。