台大好課評價:密碼學導論

這是密碼學,不是破密學、資安學。

台大好課評價:密碼學導論
Photo by Markus Spiske / Unsplash

開課年度

105-2

授課教師

陳君明教授

開課系所與授課對象

數學系選修

私心推薦指數(滿分十分)

七分

課程大概內容

1. Introduction to Cryptography and Data Security
2. Stream Ciphers
3. The Data Encryption Standard (DES) and Alternatives
4. The Advanced Encryption Standard (AES)
5. More About Block Ciphers
Midterm
6. Introduction to Public-Key Cryptography
7. The RSA Cryptosystem
8. Public-Key Cryptosystems Based on the Discrete Logarithm Problem
9. Elliptic Curve Cryptosystems
10. Digital Signatures
11. Hash Functions
12. Message Authentication Codes (MACs)
13. Key Establishment
Final

上課用書

1. Understanding Cryptography by Christof Paar and Jan Pelzl
2. 教授將課本內容精要整理的課程投影片

上課方式

投影片教學,但效果出奇的好。因為所有檔案在一開始都放在Ceiba了,帶筆電開著投影片上課的話很容易掌握課程的節奏和內容。不過連上三節有些吃力,前面還有課的人要慎重考慮自己的專注力。

評分方式

作業 27% / 期中 32% / 期末 32% / 小考 9%作業有三次,每次都有十幾題,取較高分的10題為成績,都寫對的話每次分數大約會落在100前後。取三次分數加總除10為作業成績,超過27分以27分計。小考也有三次,每次滿分50,取較高兩次成績相加除以10當成績,超過9分以9分計。

教授有說基本上不調分。

考題型式、作業方式

小考為4~5個題組的數學,內容是課程會用到的代數和算術。

作業包含10題課本習題和3~4題補充題目,每題滿分介於8~15分。

期中考為10題單選+15題填充+1~2題計算,教授一開始就有給近十年的考古題和解答了(但沒有詳解),大略看一下很容易抓到方向。大體上出題都還算合理,只要有把上課的東西弄熟,剩下考驗的就是計算的細心。只是有少部分繁雜的背誦性知識,像是哪一年誰得了密碼學的什麼獎之類的,是我覺得考卷最大的敗筆。

其他

不太需要基礎,要求大概只有不能太排斥數學。課綱上有提到線性代數和代數導論會很有幫助,而事實上整門課幾乎沒有任何線代的內容。有修過代導應該會幫助不少,但我沒有修過也覺得不算困難(雖然某方面我是把這門課當做「代數導論的導論」在修的)。

整門課的數學全部集中在教授所給的Algebra、Finite Fields、Arithmetic這三份投影片內。這學期因為時間的因素,數學的部分教授叫我們回去自己看投影片,上課只快速點過重點。所以要判斷自己有無足夠能力修這門課,其實事前去Ceiba(這門課是公開的)把投影片下載下來翻一翻,看自己是否能接受自學這三份數學就知道了。

Ceiba課程連結:goo.gl/1xn8yS

心得與總結

這門課給我的感覺就是一門紮實的密碼學介紹課。課程的編排很有邏輯,而且相當完整,期中前上完對稱式密碼學,期末上非對稱式密碼學,每週介紹一個密碼系統,最後兩週會稍微趕些進度。

我覺得內容深度還算得宜,不會因為是導論就把它上的像通識,基本上近代重要的密碼系統背後的原理跟運作流程都仔仔細細的介紹過一遍了。只不過這是「密碼學」而不是「破密學」或「資安學」,跟某些同學的預期可能會有些落差。

數學內容上,對稱式密碼的難點在 Finite field,非對稱式密碼則在 Arithmetic,個人又感覺後者較前者簡單。如果要學好這門密碼學,我覺得最重要的是把三份數學投影片弄得清清楚楚,有達成的話應該會覺得其餘的內容都像在聽故事。

不過最後要小小抱怨一下,教授因為時間不夠,這學期把Bitcoin的介紹在課程中省去,讓我們回去看他去年在區塊鏈讀書會演講的影片。但影片的音質和畫質從各方面讓人感到痛苦,十分鐘就撐不下去了……後來是靠問助教跟 Google 大神才把這塊弄清楚的。