移位密码与防射密码
移位密碼
移位密碼也叫凱撒密碼,是一種古典密碼。
移位密碼是替換密碼的一種特例。
移位密碼就是將明文中每個字母在字母表中移動固定長度的位置。例如k=3,則明文中a會變成d,b會變成e。而字母表的最后3位則對應開頭的abc。
可見明文中的字母和密文中的字母都在同一個環Z26中。由于大于26的移位是沒有意義的,所以密鑰也在這個環中。
則可以用模運算來描述移位密碼。
移位密碼的定義
假設k,x,y∈Z26,則:
加密:ek(x)≡x+k mod 26。
解密:dk(y)≡y-k mod 26。
移位密碼的攻擊方法
防射密碼
防射密碼加密的思路是,首先將明文乘以密鑰對一部分,然后再加上密鑰的另一部分。
防射密碼的定義
假設x,y,a,b∈Z26,則
加密:ek(x)=y≡a×x+b mod 26。
解密:ek(y)=x≡a-1×(y-b) mod 26。
密鑰:k=(a,b),并且gcd(a,26)=1。
即,a∈{1,3,5,7,9,11,15,17,19,21,23,25},而a-1可以用試錯法得到(a-1與a屬于同一個集合)。
舉例
假設k=(a,b)=(9,13),明文為attack=0,19,19,0,2,10。a-1=3,則密文為13,2,2,13,5,25=nccnfz。
防射密碼的安全性
防射密碼也并不安全,它的密鑰空間僅比移位密碼大一點而已。
密鑰空間=(a可以取的值數)×(b可以取的值數)=13×26=312。所以很容易被窮盡搜索。
并且防射密碼有和移位密碼、替換密碼相同的缺點:明文和密文之間的映射關系固定 。因此頻率攻擊依然可以輕而易舉的破解。
總結