自由和山巔上的空氣相似,對弱者都是吃不消的。
——芥川龍之介
愷撒的時代,絕大多數人目不識丁,所以即使愷撒密碼只是簡單地位移,也可以起到很好的保護作用。
但隨著時代的發展,我們已經可以輕鬆地解開愷撒密碼,那就是把所有可能的密鑰都嘗試一遍,這種解法叫做「暴力破解(Brute Force Attack)」。
那麼,為了增加計算成本,使得這種窮舉的思路計算量巨大,慢慢就演變成了我們現代的密碼學,或者說計算機時代的密碼學。
今天,我們講講同樣有著悠久歷史的替換式密碼(Substitution Cipher)。
01
替換式密碼
替換式密碼,可以簡單分為兩類:單表密碼和多表密碼。這期先講講單表密碼,又稱簡單替換密碼(Simple Substitution Cipher)。
簡單替換,顧名思義,就是通過替換而非移位的思路,進行密文撰寫。比如,我們將26個字母一一對應到這26個字母本身,那麼得到的密文就是一組唯一解了,這就是簡單替換密碼。
其實,從這個角度來說,愷撒密碼是簡單替換密碼的特例,只是把替換的結果變成了平移而已。
下面,我們就用「Satoshi」這個明文來舉例說明。在經典愷撒密碼(也就是密鑰為3的平移加密)中,「Satoshi」的密文可以替換成:
s 移位為 v;
a 移位為 d;
t 移位為 w;
o 移位為 r;
s 移位為 v;
h 移位為 k;
i 移位為 l;
所以,密文就可以寫成「Vdwrvkl」。
我們可以看到,愷撒密碼的字母之間也是一一對應的,而加密後的這串字母本身沒有任何意義,但可以經過暴力破解得到答案。
如果使用替換加密,就完全不同了,首先我們需要定義一個唯一的加密規則,例如:
s 定義替換為 e;
a 定義不替換;
t 定義替換為 s;
o 定義替換為 t;
s 定義替換為 e;
h 定義替換為 r;
i 定義替換為 n;
那麼,密文就變成了「eastern」。發現了嗎?這也是一個正確寫法的英文單詞:「東方人」。
想在一段密文中,混雜著看似正確的英文單詞是一件非常困難的事情。所以,這也是替換密碼比移位密碼更難的原因。除非你知道替換規則,否則基本無法通過暴力破解,畢竟單表密碼的難度為「26!」。
「26!」這個數字有多大呢?如果計算機1秒可以計算10億種加密可能的話,大概需要120億年左右才能遍歷結束。當然,不排除運氣好,一下就得到了正確答案。但平均下來,依然需要60億年時間,比愷撒密碼難出好幾個量級。
「26!」的意思是26的階乘,也就是26*25*24*…*3*2*1的結果。
如此來說,簡單替換加密豈不是無堅不摧了?不是。
在實際情況下,密文通常都會很長,而密文越長,簡單替換加密就越容易被破解。
當然,這個我們留到下回講解。
02
第9期謎題
密文正文:
Ancient
密文提示:話說,筆者的魔獸世界職業是武僧,為了聯盟!
密文難度:★★
本期獎勵最快解出密文的前三名(以留言時間為準),在得到答案並斷句後,你需要在本文下方留言中寫出。如果無人中獎或中獎人數不足3位,未領取的獎勵將會計入下次活動中。
由於上一期沒有第三名,第三名的36.6元獎金,將按比例分配給本期的前三名。所以,本期第一名將獲得84.9元,第二、三名各獲得45.8元。
03
第8期謎題與解密
第8期密文正文:
ZkdwlvwkhNooerivngvbabsLaolylbt?
第8期明文答案:
ETH
上期使用到的加密方式自然是「愷撒密碼」。順便說一下,從上期開始,新玩家再也不用去網上查提示中的解密方法了,看看每期文中的講解即可。
看完謎題,你可能會認為破譯密文的核心是找到密鑰就行了,畢竟愷撒密碼就是如此的簡單。但僅此而已的話,難度為3星是否誇大了難度?畢竟慢慢地,你會發現暴力破解(人工或者用工具一個一個試)也無法得到一個完整的句子。
所以,繼續思考,仔細看密文,會發現有3個大寫的英文字母。根據提示,指明了需要用到暴力破解。通過網上隨手可搜到的破解器破解的時候,你會發現,這句話三個大寫字母的隔斷處,分別對應了一個愷撒密碼的密鑰,分別為「3,13,7」。
那麼,明文就迎刃而解了,斷句後即得到「What is the abbreviation of Ethereum?」,翻譯為「以太坊的縮寫是什麼?」。
這還沒完,隨後還需要通過作答,畢竟題目中有個「?」號。所以,你解對了嗎?
最後,依然祝各位玩得開心,周末愉快!
享受破譯、喜歡密碼學小夥伴,可以添加小編微信(微信號:dabaibtc),進入「大白解密群」哦。
——End——
『聲明:本文為白話區塊鏈解密專欄特約作者「Dr. Strange」供稿,答案下期揭曉。』
親,給「白話區塊鏈」加個「星標」
👇 不錯過重要推送哦 👇
親,您點個 再走吧~