iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

我是Java工程師,關於密碼學我想懂的不多 系列

身為Java工程師多年,遇到關於密碼學的問題不勝其數,但總在一知半解中度過。希望透過這次鐵人賽的試煉不求全盤通透的了解,建立清晰的整體架構與實務概念。

參賽天數 29 天 | 共 29 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day20 - 手動打造安全的經典模式:Encrypt-then-MAC 結合 HKDF 金鑰分離

前言 在前面的章節中,我們揭示了傳統組合模式(Encrypt-and-MAC 與 MAC-then-Encrypt)的致命缺陷,並確立了 Encrypt-the...

2026-10-05 ‧ 由 James 分享
DAY 22

Day21 - 現代認證加密 (AEAD):AES-GCM 與 ChaCha20-Poly1305

前言 在前面的章節中,我們分別探討了負責「資料機密性(Confidentiality)」的對稱加密(AES、ChaCha20),以及負責「資料完整性與真實性(I...

2026-10-06 ‧ 由 James 分享
DAY 23

Day22 - 金鑰衍生與 PBE 實戰

前言 在Day 20 我們建立了標準的 Encrypt-then-MAC 範式,並使用 HKDF 實現了嚴謹的金鑰分離。HKDF 表現優異,因為它面對的是由 S...

2026-10-07 ‧ 由 James 分享
DAY 24

Day23 - 對稱加密總結與安全避坑指南

前言 經過前二十一天的深入探討,我們從傳統的分組密碼(DES/3DES)、工作模式(ECB/CBC)、金鑰衍生(KDF/HKDF)、訊息認證碼(MAC/HMAC...

2026-10-08 ‧ 由 James 分享
DAY 25

Day24 - 非對稱加密基礎:數論與模運算

前言 在前兩週的課程中,我們探討的對稱加密(AES、ChaCha20)透過 S-Box 替換、P-Box 置換與 XOR 運算,將資料混淆與擴散至極致。然而,進...

2026-10-09 ‧ 由 James 分享
DAY 26

Day25 - 非對稱加密基礎:歐幾里得演算法與歐拉定理

前言 在上一篇文章中,我們認識了數論與模運算,理解了加法、乘法如何在模數的限制下運作,也學會使用 Java 的 BigInteger.modPow() 進行模指...

2026-10-10 ‧ 由 James 分享
DAY 27

Day26 - 非對稱金鑰加密系統:RSA演算法

前言 在對稱密碼學中,我們徹底解決了資料的機密性與完整性問題。然而,對稱密碼學存在一個天生的架構瓶頸——金鑰分配問題(Key Distribution Prob...

2026-10-11 ‧ 由 James 分享
DAY 28

Day27 - 非對稱式加密系統:RSA與Padding 機制 (OAEP)

前言 在上一章中,我們推導了 RSA 的數學原理與大質數分解的安全性基石。然而,數學上的純粹並不等於工程上的安全。直接使用數學公式 c ≡ m^e mod n...

2026-10-12 ‧ 由 James 分享
DAY 29

Day28 - 橢圓曲線密碼學 (ECC) 數學基礎:有限域、群論與離散對數

前言 在前面介紹 RSA 時,我們看到密碼學如何利用大數分解(Integer Factorization)的算力不對稱性,建立了公開金鑰體系。然而,RSA 的金...

2026-10-13 ‧ 由 James 分享