本課簡單介紹了何謂密碼學
以及介紹一種最簡單的加密方式 - 替換加密法 (Substitution Cipher)
教學影片
注意:影片有高畫質 720P 的選項,可以看得更清楚喔!
重點提示
1. (重要) 密碼學並非教大家如何入侵別人帳號
2. 把一篇看得懂的文章 (明文),轉換成一堆看不懂的文字 (密文)
這個過程稱之為「加密」
3. 密碼學主要是在研究如何加密才最難被破解
4. 替換加密法 (Substitution Cipher) 是密碼學之中最簡單的加密法之一
其核心概念就是建立一份密碼表,然後把明文中對應的文字換成另一個字
使得看到密文的人難以看懂
5. 有密碼表跟密文就能夠輕易地還原文章,如果沒有密碼表的話,在英文中可以從兩處下手:
(1) 觀察法
因為通常明文中的空格與標點符號不會被加密,所以仍可以分辨出單字的長度
藉由猜測這些單字可能是甚麼,就有可能還原每一個文字原本對應的字為何
通常會先從長度最短的單字開始猜起,例如一個字的單字很有可能是 a, I
兩個字的單字則有可能是 am, it, is, in, to, on...
三個字則有可能是 the, are.... 等常用單字
此時再配合出現的位置就可以更容易猜出單字
(2) 頻率分析法
根據維基百科上的資料顯示,每個英文字母在英文中出現的頻率並不相同
有些英文字母出現的次數遠高於其他字母
因此我們可以分析密文中某些字母出現的頻率
進而猜測頻率最高的字可能是那些常出現的字
通常此法可以配合觀察法使用
另外,你們可以在下方的相關連結中找到我自己寫的簡易計算程式
6. 凱撒加密法 (Caesar cipher) 是替換加密法的一種特殊狀況
加密方式與替換法相同
差別在於凱撒法的密碼表只是單純地把英文字母根據順序移動幾格形成的
例如右移三格的密碼表如下:
原來 | A | B | C | D | E | ... |
換成 | X | Y | Z | A | B | ... |
7. 因為英文字母位移 26 格之後即會回到原位
導致凱撒加密法的密碼表只有 26 種可能性
因此一旦知道密文使用了凱撒加密法,只需要將 26 種皆嘗試看看就可以破解\
練習
1. 將影片中出現的英文文章完全破解:
E fm ZSMK. Rdsaimd ki my kgkipefs anfttds. Knd lebdi yig fpd rfkanetx ez fcigk apyjkixpfjny. Knez ez f ldpy emjipkftk hedsb ih ethipmfkeit zdagpeky. Itd ih knd zemjsdzk dtaibetx mdknibz ez zgczkekgkeit aejndp, ftb yig fpd kpyetx ki bdaibetx ek tir.
點此看破解後的明文與密碼表
2. 嘗試看看 PicoCTF 2013 的 Read the Manual (題目翻譯)
相關資訊連結
Github - 我自己撰寫的簡易字元頻率計算程式
https://github.com/SLMT/sercuirty_tutorial/tree/master/cryptography/alphabet_frequency_count
維基百科 - 密碼學
http://zh.wikipedia.org/zh/%E5%AF%86%E7%A0%81%E5%AD%A6
維基百科 - 替換加密法
http://zh.wikipedia.org/wiki/%E6%9B%BF%E6%8D%A2%E5%BC%8F%E5%AF%86%E7%A0%81
維基百科 - 凱撒加密法
http://zh.wikipedia.org/wiki/%E5%87%B1%E6%92%92%E5%AF%86%E7%A2%BC
沒有留言:
張貼留言