隨著量子計算技術的快速發展,主流的公鑰加密技術如 RSA 和 ECC (橢圓曲線密碼學)可能無法再確保資訊的安全性。量子計算機在這密碼學問題上具有顛覆性的計算能力,因數分解問題與橢圓曲線離散對數問題可能不再適用。
密碼學家於是將焦點放在能抵禦量子電腦的數學問題,設計「後量子密碼學」,也稱為「抗量子密碼學」。這可說是未來資訊安全的基礎。
然而,「後量子密碼學」中的數學問題,並不如直因數分解或離散對數問題那樣直觀後好理解。趁著這次的三十天鐵人賽,我希望在這裡分享個人在學習後量子密碼學上的心得。
預計涵蓋內容:
1.相關數學知識:
在介紹每個密碼學主題時,順帶介紹所需的數學知識,包括(聽到爛的)模算數、多項式模算數、晶格(Lattices)、多變量二次方程組、雜湊函數、和編碼理論等。這些數學概念對於理解和實作後量子密碼學協議至關重要。
SageMath 是我研究後量子密碼學的主要工具。SageMath 是一款基於 Python 上的開源數學計算軟體,方便操作且已經定義好許多複雜的數學結構運算。為了不要把整個篇幅搞得都是數學,儘量多一些可以實作的部分,讓大家體驗「建構密碼學」,甚至「破密碼學」。
3. 晶格密碼學(Lattice Based Cryptography)
4. 多變量二次方程密碼學(Multivariate Quadratic Based Cryptography)
5. 雜湊函數密碼學(Hash Based Cryptography)
6. 編碼密碼學(Code Based Cryptography)
ref:
https://utimaco.com/service/knowledge-base/post-quantum-cryptography/what-lattice-based-cryptography
https://www.isara.com/blog-posts/hash-based-cryptography.html
Singh, Harshdeep. "Code based cryptography: Classic mceliece." arXiv preprint arXiv:1907.12754 (2019).