2012年2月10日 星期五

密碼學的第三課:對稱式加密與非對稱式加密

各位大家新年好~ 龍年大順利!
放了一個好長的年假,就開始懶散沒有繼續來上課了。 

難得今天又有成員加入與回應,又燃起了我繼續寫下去的熱情!
(沒辦法,我就是這麼膚淺的人啊~~~ 要靠大家的鼓勵和讚才願意寫啊~~~) 

話說前幾天剛好在AXN電影台看到一部電影 攔截密碼戰(Enigma),
光看英文片名 就是二次大戰密碼界的神器 謎(Enigma),
表示這部片一定跟密碼有很大的關係 (中文電影名不就寫明了是密碼戰了嗎 = =)

這部電影雖然是文藝片,不過還蠻考證的,
把Enigma的機器、構造拍的很仔細,也有說出他的原理,
還蠻值得一看的!
(看完後才覺得,那我花這麼久時間寫這些文章幹麻,看電影就很清楚啦~~~ >"<)
(題外話,剛剛查資料才知道是凱特溫絲蕾主演的,難怪我一直覺得女主角好正,我好喜歡她啊!!!) 

如果沒看電影的,網路上也有不少關於Enigma的資料可以參考,譬如下面的資料。 看不懂英文沒關係,光看圖片也可以對Enigma有基本的了解了。
http://en.wikipedia.org/wiki/Enigma_machine
http://192.197.62.35/staff/mcsele/Enigma.html


不過今天課程要是只有講這樣,那就太混了,根本只是電影介紹而已嘛~
所以今天要講點新的東西。

古典密碼學的兩個加密技巧 換位法 和 替代法,大概也說得差不多了。
今天要來說說近代密碼學的兩大門派:
1.對稱式加密(Symmetric Encryption) 或 秘密金鑰加密(Secret Key Encryption)
2.非對稱式加密(Asymmetric Encryption) 或 公開金鑰加密(Public Key Encryption)

顧名思義,加密跟解密用同一把鑰匙的,就叫做對稱式密碼系統;用不同鑰匙的,就叫做非對稱式密碼系統,就這麼簡單! (就跟你說密碼學很簡單吧~)
生活中使用對稱式密碼系統,最常見的例子就是腳踏車的馬蹄鎖。
也就是把腳踏車上鎖後,另一個人也要用一樣的鑰匙(可能是備用鑰匙,但基本上還是同一把鑰匙)才能開鎖。
這樣的應用在二人的情侶世界時,都很方便,鑰匙也很容易保管;
但是如果有人劈腿 (當然不是鼓勵大家劈腿,劈腿是不道德的),有了小三、小四、小五、小六......
那麼在鑰匙的保管上就會變得很複雜 (就說劈腿很麻煩吧~)

為了改善金鑰管理的問題,也因此有了非對稱式密碼系統。
而生活中非對稱式密碼系統最常見的就是喇叭鎖了。
想想看,喇叭鎖上鎖的時候跟開鎖的時候,是不是有不同的動作。
任何人都可以把喇叭鎖上鎖,而只有有鑰匙的人才可以把門鎖打開。
喇叭鎖的那個按鈕就稱為公開金鑰(public key),而那把開鎖鑰匙就稱為私密金鑰(private key)。這兩把鑰匙是惟一相互依存的關係。
這樣雖然解決了金鑰管理的問題,不過缺點是加密與解密都需要更多的運算資源,因此在效能上並不如對稱式加密那樣迅速。

大家可以再想想生活中還有哪些對稱式密碼系統和非對稱式密碼系統的例子?!

由於對稱式密碼系統可以快速的加密大量資料,而非對稱式密碼系統可以降低金鑰管理的問題。
聰明的你/妳應該就會想到,是不是可以結合在一起,
用對稱式金鑰加密資料,再用非對稱式密碼系統將金鑰傳送給對方。
這樣,就可以同時達到便利性與效能了。
步驟大致上如下:

  1. 當使用者A要與使用者B溝通時,可以先取得B的公開金鑰(Public Key)。
  2. 使用者A隨機產生一組對稱式金鑰,作為此次的對談使用(稱為對話金鑰,Session Key)。
    (也就是說,只有在這一次序列的對談中有用。如果雙方都結束這次的對談後,下次要交談,就會用不同的對話金鑰了)
  3. 用使用者B的公開金鑰,把剛剛產生的對談金鑰加密送給B。
  4. B收到後,就可以用自己的私密金鑰解開,取得裡面包起來的對談金鑰。這樣一來,雙方就都有同樣的對談金鑰了,之後就可以用這把對談金鑰傳送加密資訊。

有興趣的同學可以參考下面連結,有更生動的描述唷!

http://www.study-area.org/network/network_enscp.htm


沒有留言:

張貼留言