寫給開發者的密碼學
寫給會寫程式但沒有系統學過安全的開發者的密碼學實用指南。
這個 23 章系列涵蓋對稱加密、非對稱密碼學、雜湊、數位簽章、真實世界協定以及安全思維。
Published: Sat Feb 01 2025
加密本身並不能保證安全。理解威脅模型以及「已加密」與「安全」之間的差距,是建構真正受保護系統的第一步。
Published: Sat Feb 01 2025
密碼學恰好解決四個問題:機密性、完整性、認證和不可否認性。用錯誤的演算法解決錯誤的問題就是災難的配方。
Published: Sat Feb 01 2025
對稱加密快但有金鑰分發問題。非對稱加密解決了金鑰分發但很慢。真實系統在混合方案中同時使用兩者。
Published: Sat Feb 01 2025
雜湊是設計上單向的。你無法「解密」雜湊,因為根本沒有東西被加密過。理解這個區別對於密碼儲存和資料完整性至關重要。
Published: Sat Feb 01 2025
大多數加密失敗不是因為演算法被破解,而是因為隨機數不夠隨機。理解真隨機與偽隨機的區別,以及為什麼 rand() 會害死人。
Published: Sat Feb 01 2025
為什麼加密要分組?Feistel 結構是什麼?DES 為什麼會失敗?理解這些歷史能幫助你更好地理解現代加密。
Published: Sat Feb 01 2025
AES 是現代加密的基石,但它的內部運作並不神秘。理解 SPN 結構、輪函式的四個步驟,以及為什麼是 128 位元區塊,能幫助你更好地使用它。
Published: Sat Feb 01 2025
AES 本身是安全的,但選錯工作模式可能導致災難。ECB 會洩漏模式,CBC 需要正確的 IV,而 GCM 提供加密和認證。選擇正確的模式比選擇金鑰長度更重要。
Published: Sat Feb 01 2025
理論是一回事,實踐是另一回事。HTTPS 中的對稱加密如何運作?如何正確加密檔案?資料庫加密有哪些陷阱?這篇文章帶你看真實系統中的對稱加密。
Published: Sat Feb 01 2025
RSA 的安全性建立在一個簡單的數學事實上:把兩個大質數相乘很容易,但把結果分解回去極其困難。理解這個核心思想,你就理解了非對稱加密的基礎。
Published: Sat Feb 01 2025
RSA 在現代系統中已不再用於直接加密。TLS 1.3 完全移除了 RSA 金鑰交換。理解 RSA 今天的真實角色、它的安全陷阱,以及為什麼世界正在轉向橢圓曲線。
Published: Sat Feb 01 2025
橢圓曲線密碼學用比 RSA 小 10 倍的金鑰達到同等安全性。理解曲線上的點如何建立單向函式,以及為什麼 ECC 主導著現代密碼學。
Published: Sat Feb 01 2025
Diffie-Hellman 解決了一個聽起來不可能的問題:兩個從未見面的人可以在公開通道上建立共享金鑰。理解這個讓安全網際網路成為可能的基礎協定。
Published: Sat Feb 01 2025
數位簽章像手寫簽名一樣證明作者身分和完整性,但具有數學保證。理解它們如何運作、保證什麼,以及如何正確使用它們。
Published: Sat Feb 01 2025
數位簽章證明某個金鑰簽署了某些東西,但你怎麼知道那是誰的金鑰?憑證和 PKI 解決了身分問題。理解信任是如何從根 CA 建立到你瀏覽器的鎖標誌的。
Published: Sat Feb 01 2025
數位簽章需要非對稱金鑰。但當雙方已經共享金鑰時,HMAC 提供了更快的方式來驗證資料沒有被篡改。理解 MAC、HMAC 建構以及何時使用它們。
Published: Sat Feb 01 2025
每個 HTTPS 連線都使用 TLS,但當你訪問網站時實際發生了什麼?逐步分析 TLS 1.3 握手,理解所有密碼學原語如何協同工作。
Published: Sat Feb 01 2025
加密密碼是錯誤的。用 SHA-256 雜湊也是錯誤的。了解為什麼密碼儲存需要像 bcrypt、Argon2 和 scrypt 這樣的專用演算法,以及如何正確實現它們。
Published: Sat Feb 01 2025
加密演算法從來不是弱點——金鑰管理才是。學習如何產生、儲存、分發、輪換和銷毀密碼學金鑰,而不使你的加密變得毫無意義。
Published: Sat Feb 01 2025
你知道這些原語:加密、雜湊、簽章、TLS。現在學習如何將它們組合成安全系統。端到端加密、安全 API、縱深防禦,以及避免常見的架構錯誤。
Published: Sat Feb 01 2025
"我就簡單實現一個加密……" 這是著名的臨終遺言。即使是專家也會犯錯。從歷史上最災難性的密碼學失敗中學習,理解為什麼實現細節可以破壞數學上完美的演算法。
Published: Sat Feb 01 2025
加密是完美的。系統仍然被攻破了。從真實世界的案例中學習,那些強大的密碼學毫無意義的情況——因為明文洩露、運維失誤和根本性的設計缺陷。
Published: Sat Feb 01 2025
如何判斷什麼時候「足夠安全」?學習威脅建模,像攻擊者一樣思考,培養做出正確安全決策的能力——即使沒有完美答案。