1. 程式人生 > >密碼學之維吉尼亞密碼

密碼學之維吉尼亞密碼

密碼學淺談

密碼學五元組:明文(P),密文(C),金鑰(K),加密演算法(E),解密演算法(D),S={P,C,K,E,D}
密碼學的資訊安全系統目標:C,I,A

  • C(Confidentiality):機密性
  • I(Integrity):完整性
  • A(Availability):可認證性

密碼學主要包括對稱密碼學(Symmetric Cipher)和非對稱密碼學(Asymmetric Cipher)
對稱密碼:加密演算法和解密演算法可以相互推到,共用同一把鑰匙。對稱金鑰體制也稱為單鑰體制。加密解密的鑰匙key也叫對稱金鑰、祕密金鑰、會話金鑰(因為常用來加密會話)。

凱撒密碼

說維吉尼亞密碼前首先簡單介紹一下凱撒密碼。
凱撒密碼是一種比較古老的加密體制,他主要使用代換來達到加密的目的,基本思想是:通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推X將變成A,Y變成B,Z變成C。由此可見,位數就是凱撒密碼加密和解密的金鑰。
在這裡插入圖片描述
比如密文是:ZHOFRPH 則其明文為:WELCOME
但是,我們發現,凱撒密碼很容易破解,只要知道移動的位數即可,即只要有一組明文密文就可以將整個機制破解,是非常不安全的。

維吉尼亞密碼

凱撒密碼用的是單表代換,而維多尼亞密碼是採用多表代換,而且也是分組代換。
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
金鑰:RELATIONS

首先,給每個字母一個編號0-25,如圖所示:
在這裡插入圖片描述
其次,我們發現金鑰一共九位,而明文比金鑰多了很多位,那麼我們可以將明文以九位為一組,然後將其相互對應起來
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
金鑰:RE LA TI ONS RE LA TION SR ELA TIONSREL
將相對應字母編號相加模26即可得到密文編號,根據編號寫出相應字母。
明文第一個字母為“T”,其編號為19,金鑰第一個字母為“R”,其編號為17,則其對於的密文第一個字母為(19+17)%26=10,對應的字母為“K”。以此類推,我們可以得到明文相對應的密文:
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
金鑰:RE LA TI ONS RE LA TION SR ELA TIONSREL
密文:KS ME HZ BBL KS ME MPOG AJ XSE JCSFLZSY
維吉尼亞密碼保證了相同的密文字母可以對應不同的明文字母,相同的明文字母也能對應不同的密文字母,不和凱撒密碼相同,一個密文字母唯一的對應一個明文字母(偏移量確定),大大降低了破解的可能性。