我第一次接觸後量子密碼學,是在陳君明老師的「密碼學導論」課程中。當時的期末考題包含了一題加分題:「請敘述晶格中的短向量問題是什麼?」。這顯示出,後量子密碼學在該課程中只是一個小主題。但它已經開始引起我的興趣。
隔年,我在鄭皓中老師的「量子資訊與計算」課程中,深入學習了量子計算對於質因數分解問題的突破性能力,其中一個回家作業是探討「量子計算機如何破解離散對數問題」。這門課程不僅加深了我對量子計算的理解,也讓我注意到後量子密碼學的重要性。例如,期末就有同學選擇後量子密碼學的論文進行報告,這讓我對這個領域產生了更大的興趣。
再隔年,來自中研院的楊柏因老師來學校開設「後量子密碼學」課程。這門課程包含了晶格密碼學實作、計算方法優化、晶格破密學等內容,並邀請了其他學者來課堂上講解「超奇異橢圓曲線同源密碼系統」、「多元二次密碼系統」、以及「編碼密碼系統」等主題。
從兩年前第一次聽到「後量子密碼學」,到三十天前,我發現網路上針對該主題的「中文教材」極為稀少。每當我滿心期待地與他人討論密碼學,卻只聽到「凱薩密碼」、稍好一些的「RSA系統」,或是「橢圓曲線系統」等時,心中不禁感到一絲擔憂,因為這些加密技術在量子計算機面前已顯得脆弱。我們需要學習和掌握更多能抵抗量子攻擊的密碼系統,以確保未來的資訊安全。
因此,我決定投入撰寫「後量子密碼學」的三十天鐵人賽,目的是希望拋磚引玉,讓更多人接觸並了解這個重要的主題。同時,我也想以這三十天的文章為基礎,持續進行迭代和更新,逐步製作出更完整、更深入的後量子密碼學教材,為中文圈的學習者提供學習資源。
Day2 用SageMath來實作整數商環! 誒可是商環是什麼?
Day3 一個簡單二維晶格密碼系統!(但你根本看不出來它哪裡是晶格= =)
Day4 為什麼昨天提出的密碼系統是晶格密碼系統?然後其實我們現在就可以破解它!
Day5 為了做更好的晶格密碼學,我們必須先經歷一些痛苦(多項式環一)
Day6 為了做更好的晶格密碼學,我們必須先經歷一些痛苦(多項式環二)
Day7 (NTRU)「吾乃數論學家」晶格密碼學一
Day8(NTRU)「吾乃數論學家」晶格密碼學二 - 說好的晶格
Day9 晶格密碼學的攻擊與小結
Day10 多元二次多項式系統與雙極構造法
Day11 Matsumoto-Imai 系統 - 大概是歷史上第一個多元二次密碼系統
Day12 為何昨天的 F 是多元二次多項式?隱藏域方程系統(Hidden Field Equation)
Day13 關於 MI 的公鑰,似乎還需要多一點計算......
Day14 使用線性化攻擊來破解 MI 系統
Day15 只要會高斯消去法就能看懂的「不平衡油醋醬簽章」UOV
Day16 只要有看懂昨天的油醋醬簽章,就能看懂今天的彩虹簽章!Rainbow
Day17 多元二次多項式密碼系統小結
Day18 使用 hash 函數的一次性簽章系統: LD-OTS
Day19 WOTS+ 區塊化的一次性簽章
Day20 耳熟能詳的 Merkle-tree 如何在簽章系統中發揮?
Day21 HORS 簽章方案:原理、實作與示例
Day22 HORST 與 FORS 簽章系統,HORS 與 Merkle Tree 的結合
Day23 超級拼裝車! SPHINCS+ 簡介 - 目前唯一成為 NIST 標準的 hash 簽章系統
Day24 Code-based cryptography 編碼密碼學!但是編碼是什麼?
Day25 神奇的漢明編碼 Hamming Code 以及他的錯誤更正機制
Day26 里德-所羅門編碼!Reed-Solomon code 之又要回到多項式的懷抱了......
Day27 RS 編碼的錯誤更正機制!
Day28 正式介紹「編碼密碼系統」(McEliece Framework)
Day29 簡介 Goppa 編碼與編碼密碼學小結
對我來說寫文章還挺享受的(讀者讀起來不一定😂),這讓我在 Day15 時決定說,雖然鐵人賽一年一次,但我可以以三十天為週期繼續寫別的主題文章發佈在我的部落格。然後呢,事與願違, Day16 家母傳訊息來說收到我的兵單,今天的下禮拜一小弟就要展開12天補充兵的國軍 online ,只能說我本來都想好下一個三十天的主題是什麼云云但是暫時沒辦法
在尚未參加前,因為有囤積幾天份後量子的文章,所以我原本還想開另外一個系列叫做「使用python學習量子計算:Pennylane x Qiskit x Qutip」內容大約是
Day1 - 8 量子計算數學基礎:希爾伯特空間以及量子電路
Day9 - 15 量子破密學!量子電腦如何破解質因數分解以及離散對數問題、程式實作量子破密
Day16 - 22 更多量子演算法:量子化學、量子近似優化算法(QAOA)、量子機器學習案例研究
Day23 - 30 開放式量子系統模擬:量子相對資訊熵、量子通訊模型
那結果我根本沒有在計畫參賽的日期前完成到第三篇,所以計畫告吹。
你可以想像這有多好玩,如果我真的有寫,我就可以在 後量子 的第一篇講說「如果你很好奇量子電腦怎麼破密,請轉介我的另一個系列 - 用 python 學習量子計算!」,然後又可以在 用python 學習量子計算 的 Day9 - 15 說「所以密碼被破了怎麼辦!不要緊張!請轉介我另一個系列 - 後量子密碼學!」 call 來 call 去的超好玩。(可惜今年玩不出來)
好,謝謝大家