古典密碼


作為一個不務正業的密碼手,稍微學一點點密碼(主要是水一篇博客)。

密碼學中,最基礎的是古典密碼。

按照百度百科的說法,古典密碼無非兩種:置換與代換。

置換就是把明文中的字母(或者其他什么東西)換換位置,但是那些字母還是它們自己,比如把kroos換成soork就是一種置換。

代換就是把明文中的字母換成別的字符,比如把kroos換成11,18,15,15,19(這幾個字母在字母表中的位置)就是一種代換。

這么看來,簡單的置換與代換所產生的加密方法比較好破解,基本上都可以比較簡單地破解出來,以下是幾種常見古典密碼。

 

 

凱撒密碼:

  它的做法是按照字母表把明文中的字母變成數字,再偏移幾位,再轉換回字母,這是一種非常典型的代換密碼

  而它的破解也很簡單,畢竟字母表一共就26位,最多試26次就可以了

  破解網站:http://www.metools.info/code/c70.html

 

 

柵欄密碼:

  它的做法是把明文分成幾個不同的部分,比如:

  明文是:

  

 

  可以把它分成兩個部分:

  

  再之后,把第二個部分排在第一部分的后面,變成:
  

  這就加密完了,解密也十分簡單

  首先把密文分成兩行:

  

  之后再把它每行讀一個就可以了:

  

 

  柵欄密碼破解也比較簡單,只要猜測總共把字符分成了幾個部分就可以了。

  破解網站:http://www.hiencode.com/railfence.html

 

 

維吉尼亞密碼:

  維吉尼亞密碼是一個破解難度相對較高的古典密碼,它采用了簡單的多表代換。

  首先使用維吉尼亞密碼需要密鑰

  具體操作如下:

  假如明文為:

  

  然后可以選擇一個關鍵詞然后將它反復重復變成密鑰,比如關鍵詞為LEMON時,密鑰為:

  

  之后,用密鑰的第n位加密明文的第n位,比如用L加密A,用E加密T等等,而具體方法如下:

  

 

  當然,也不一定需要查表,可以用數學的方法求出:

  

 

  在知道密鑰的情況下,可以直接解密

  在線解密:http://www.metools.info/code/c71.html

  用這種方法,在不知道密鑰(或者關鍵詞)的情況下,破解有些難度,不過有一個大致的思路:

  因為維吉尼亞密碼的密鑰是循環重復的(假如它不是而你又不知道密鑰,那就是一次一密的加密,破解幾乎沒有可能),所以維吉尼亞密碼可以看做很多組凱撒密碼

  這樣的話,在文本較長的情況下,就有可能出現相同的單詞遇到的密鑰也一樣的情況,這樣就會導致密文中出現重復字段

  找到相同字段間的距離,可以大致判斷出關鍵詞長度是距離的因數

  多找一些不同的重復字段,找到距離找公因數可以大致算出密鑰長度,再嘗試猜測密鑰即可

  不過,實際上這已經需要非常巨大的工作量了,因此,維吉尼亞密碼在不知道密鑰的情況下較難破解。

 

 

(最近比較忙,博客比較水,下次一定不)

 

 

 

  

 

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM