身為Java工程師多年,遇到關於密碼學的問題不勝其數,但總在一知半解中度過。希望透過這次鐵人賽的試煉不求全盤通透的了解,建立清晰的整體架構與實務概念。
前言 在前面的章節中,我們揭示了傳統組合模式(Encrypt-and-MAC 與 MAC-then-Encrypt)的致命缺陷,並確立了 Encrypt-the...
前言 在前面的章節中,我們分別探討了負責「資料機密性(Confidentiality)」的對稱加密(AES、ChaCha20),以及負責「資料完整性與真實性(I...
前言 在Day 20 我們建立了標準的 Encrypt-then-MAC 範式,並使用 HKDF 實現了嚴謹的金鑰分離。HKDF 表現優異,因為它面對的是由 S...
前言 經過前二十一天的深入探討,我們從傳統的分組密碼(DES/3DES)、工作模式(ECB/CBC)、金鑰衍生(KDF/HKDF)、訊息認證碼(MAC/HMAC...
前言 在前兩週的課程中,我們探討的對稱加密(AES、ChaCha20)透過 S-Box 替換、P-Box 置換與 XOR 運算,將資料混淆與擴散至極致。然而,進...
前言 在上一篇文章中,我們認識了數論與模運算,理解了加法、乘法如何在模數的限制下運作,也學會使用 Java 的 BigInteger.modPow() 進行模指...
前言 在對稱密碼學中,我們徹底解決了資料的機密性與完整性問題。然而,對稱密碼學存在一個天生的架構瓶頸——金鑰分配問題(Key Distribution Prob...
前言 在上一章中,我們推導了 RSA 的數學原理與大質數分解的安全性基石。然而,數學上的純粹並不等於工程上的安全。直接使用數學公式 c ≡ m^e mod n...
前言 在前面介紹 RSA 時,我們看到密碼學如何利用大數分解(Integer Factorization)的算力不對稱性,建立了公開金鑰體系。然而,RSA 的金...