為何需要認證訊息
- 確定訊息來自受信任的發送者: secret key
- 訊息未被修改: 錯誤偵測碼
- 訊息是否即時傳達,沒有受到延遲或重送: timestamp
確認內容來源
可能的方法
- message 不需要保密: 利用MAC algorithm算出Message Authentication Code
- 對 message Hash,並且對hash加密
- public key加密,並且有對映的private key
- Secret value: 運算效能不一定足夠使用public key,但依然需要安全保護的替代方法
Secure Hash function的性質
- 可變化的輸入長度
- 固定的輸出長度
- 有效率的演算法
- 單向: 無法透過hash還原
- 弱碰撞抗性: 任意x不可被碰撞,eg: A可以決定x, B嘗試碰撞出x'
- 強碰撞抗性: 攻擊者可以控制的x與x’也不可以碰撞, eg: B能夠控制x與x'
- 偽隨機抗性: 符合偽隨機測試標準
關於攻擊
- 找出演算法的邏輯弱點
- 透過brute-force 攻擊
SHA簡介
關於SHA-512
- 第一次: f(訊息, IV) xor IV
- 之後: f(訊息, 先前hash) xor 先前hash
HMAC
- HMAC: 透過hash
- CMAC: 透過chaining多次加密,並且透過最終的結果作為Tag
CCM
CMAC 與 CTR 結合,先計算CMAC tag並且透過CTR加密
公鑰加密
- 基於數學函數
- 非對稱雙金鑰
常見公開金鑰加密系統
- RSA
- Elliptic Curve
- Diffie-Hellman: 僅適合金鑰交換
- DSS: 僅適合數位簽章
RSA
- 產生金鑰
- 找出兩個大質數 (因數分解極為困難)
- n = p * q
- e與phi(n)互質
- 加密
- 解密
術語
- Message Digest: 訊息摘要,產出 128 bits 的雜湊值,用來確保訊息的完整一致。
Network Security Information Security Cryptography