
- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密的需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 組成部分
- 密碼系統的攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力攻擊
- 密碼系統 - 密碼分析技術
- 密碼學的型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰撤銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - Feistel 分組密碼
- 分組密碼的操作模式
- 分組密碼的操作模式
- 電子密碼本 (ECB) 模式
- 密碼分組連結 (CBC) 模式
- 密碼反饋 (CFB) 模式
- 輸出反饋 (OFB) 模式
- 計數器 (CTR) 模式
- 經典密碼
- 密碼學 - 反向密碼
- 密碼學 - 凱撒密碼
- 密碼學 - ROT13 演算法
- 密碼學 - 置換密碼
- 密碼學 - 加密置換密碼
- 密碼學 - 解密置換密碼
- 密碼學 - 乘法密碼
- 密碼學 - 仿射密碼
- 密碼學 - 簡單替換密碼
- 密碼學 - 簡單替換密碼的加密
- 密碼學 - 簡單替換密碼的解密
- 密碼學 - 維吉尼亞密碼
- 密碼學 - 維吉尼亞密碼的實現
- 現代密碼
- Base64 編碼與解碼
- 密碼學 - XOR 加密
- 替換技術
- 密碼學 - 單字母替換密碼
- 密碼學 - 單字母替換密碼的破解
- 密碼學 - 多字母替換密碼
- 密碼學 - Playfair 密碼
- 密碼學 - Hill 密碼
- 多字母替換密碼
- 密碼學 - 一次性密碼本密碼
- 一次性密碼本密碼的實現
- 密碼學 - 置換技術
- 密碼學 - 柵欄密碼
- 密碼學 - 列置換密碼
- 密碼學 -隱寫術
- 對稱演算法
- 密碼學 - 資料加密
- 密碼學 - 加密演算法
- 密碼學 - 資料加密標準 (DES)
- 密碼學 - 三重 DES
- 密碼學 - 雙重 DES
- 高階加密標準 (AES)
- 密碼學 - AES 結構
- 密碼學 - AES 變換函式
- 密碼學 - 位元組替換變換
- 密碼學 - 行移位變換
- 密碼學 - 列混淆變換
- 密碼學 - 輪金鑰加變換
- 密碼學 - AES 金鑰擴充套件演算法
- 密碼學 - Blowfish 演算法
- 密碼學 - SHA 演算法
- 密碼學 - RC4 演算法
- 密碼學 - Camellia 加密演算法
- 密碼學 - ChaCha20 加密演算法
- 密碼學 - CAST5 加密演算法
- 密碼學 - SEED 加密演算法
- 密碼學 - SM4 加密演算法
- IDEA - 國際資料加密演算法
- 公鑰(非對稱)密碼演算法
- 密碼學 - RSA 演算法
- 密碼學 - RSA 加密
- 密碼學 - RSA 解密
- 密碼學 - 建立 RSA 金鑰
- 密碼學 - 破解 RSA 密碼
- 密碼學 - ECDSA 演算法
- 密碼學 - DSA 演算法
- 密碼學 - Diffie-Hellman 演算法
- 密碼學中的資料完整性
- 密碼學中的資料完整性
- 訊息認證
- 密碼學數字簽名
- 公鑰基礎設施 (PKI)
- 雜湊
- MD5(訊息摘要演算法 5)
- SHA-1(安全雜湊演算法 1)
- SHA-256(安全雜湊演算法 256 位)
- SHA-512(安全雜湊演算法 512 位)
- SHA-3(安全雜湊演算法 3)
- 雜湊密碼
- Bcrypt 雜湊模組
- 現代密碼學
- 量子密碼學
- 後量子密碼學
- 密碼協議
- 密碼學 - SSL/TLS 協議
- 密碼學 - SSH 協議
- 密碼學 - IPsec 協議
- 密碼學 - PGP 協議
- 影像與檔案加密
- 密碼學 - 影像
- 密碼學 - 檔案
- 隱寫術 - 影像
- 檔案加密和解密
- 密碼學 - 檔案加密
- 密碼學 - 檔案解密
- 物聯網中的密碼學
- 物聯網安全挑戰、威脅和攻擊
- 物聯網安全的密碼技術
- 物聯網裝置的通訊協議
- 常用的密碼技術
- 自定義構建密碼演算法(混合密碼學)
- 雲密碼學
- 量子密碼學
- 密碼學中的影像隱寫術
- DNA 密碼學
- 密碼學中的一次性密碼 (OTP) 演算法
- 區別
- 密碼學 - MD5 與 SHA1
- 密碼學 - RSA 與 DSA
- 密碼學 - RSA 與 Diffie-Hellman
- 密碼學與密碼學
- 密碼學 - 密碼學與密碼分析
- 密碼學 - 經典與量子
- 密碼學與隱寫術
- 密碼學與加密
- 密碼學與網路安全
- 密碼學 - 流密碼與分組密碼
- 密碼學 - AES 與 DES 密碼
- 密碼學 - 對稱與非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
訊息認證
在上一章中,我們討論了資料完整性威脅以及使用雜湊技術來檢測資料是否發生了任何修改攻擊。
資料存在的另一種威脅是缺乏訊息認證。在這種威脅中,使用者不確定訊息的發起者。可以使用與加密情況下使用的金鑰相同的秘密金鑰的密碼技術來提供訊息認證。
訊息認證碼 (MAC)
MAC 演算法是一種對稱金鑰密碼技術,用於提供訊息認證。為了建立 MAC 過程,傳送方和接收方共享一個對稱金鑰 K。
本質上,MAC 是對傳送的訊息生成的加密校驗和,它與訊息一起傳送以確保訊息認證。
使用 MAC 進行身份驗證的過程如下圖所示:

現在讓我們詳細瞭解整個過程:
傳送方使用某種公開的 MAC 演算法,輸入訊息和秘密金鑰 K,並生成 MAC 值。
與雜湊類似,MAC 函式也將任意長的輸入壓縮成固定長度的輸出。雜湊和 MAC 的主要區別在於 MAC 在壓縮過程中使用秘密金鑰。
傳送方將訊息和 MAC 一起轉發。在這裡,我們假設訊息以明文傳送,因為我們關注的是提供訊息來源身份驗證,而不是機密性。如果需要機密性,則需要對訊息進行加密。
收到訊息和 MAC 後,接收方將接收到的訊息和共享金鑰 K 輸入 MAC 演算法,並重新計算 MAC 值。
接收方現在檢查新計算的 MAC 與從傳送方收到的 MAC 是否相等。如果匹配,則接收方接受訊息並確保訊息是由預期的傳送方傳送的。
如果計算出的 MAC 與傳送方傳送的 MAC 不匹配,接收方無法確定是訊息被更改了還是來源被偽造了。底線是,接收方安全地假設該訊息不是真實的。
MAC 的侷限性
MAC 主要有兩個侷限性,兩者都是由於其對稱操作的性質:
共享金鑰的建立。
它可以在擁有共享金鑰的預先確定的合法使用者之間提供訊息認證。
這需要在使用 MAC 之前建立共享金鑰。
無法提供不可否認性
不可否認性是指確保訊息發起人無法否認任何先前傳送的訊息、承諾或行為。
MAC 技術不提供不可否認性服務。如果傳送方和接收方就訊息來源發生爭議,MAC 無法證明訊息確實是傳送方傳送的。
雖然第三方無法計算 MAC,但傳送方仍可能否認傳送了訊息,並聲稱接收方偽造了它,因為不可能確定是哪一方計算了 MAC。
這兩種侷限性都可以透過使用下一節中討論的基於公鑰的數字簽名來克服。