三種常見機制處理不同問題
雜湊將 bytes 轉為固定長度摘要,適合比對內容;它不是用金鑰還原原文的加密。加密讓持有適當金鑰的對象還原資料,重點是保密;現代系統通常還需要驗證密文完整性,應使用成熟的認證加密介面。
數位簽章由私鑰產生,以相應公開金鑰驗證,可支援內容完整性與簽署來源的確認。它不把文件內容隱藏。驗證還依賴你如何相信公開金鑰與聲稱的身分之間的關係。
延伸閱讀:Python: hashlib·NIST FIPS 186-5: Digital Signature Standard
演算法正確之外,還有金鑰與流程
若私鑰外洩,攻擊者可能產生看似有效的簽章;若接收者接受攻擊者提供的公開金鑰,也可能驗證了錯的身分。因此應處理金鑰保存、輪替、撤銷與可信發布管道。
本單元只做機制選擇與既有雜湊範例。不要自行設計密碼演算法或把教學用固定字串當成實際密鑰。密碼保護的成效需在完整協定與部署情境下驗證。
例子:公開教材下載與私人研究檔案
公開教材希望讀者確認下載內容與發布者一致;私人研究檔案則還需要限制讀取。
可信摘要可支援內容比對;可信公開金鑰下的簽章增加簽署來源驗證;私人檔案另需適當加密與存取控制。不能因簽章成功就說檔案已保密。
判斷:依需求組合機制,分別驗證內容、來源與保密。
紙上練習:需求與機制配對
使用虛構需求,不建立或公開真實金鑰。
- 列出下載摘要比對、私人檔案保密、發布者簽署驗證三個需求。
- 分別配對雜湊、加密與數位簽章。
- 替每個配對補上一項信任或金鑰前提。
預期結果
摘要需可信參考;加密需妥善保護金鑰;簽章需可信公開金鑰與私鑰保管。
自行檢核
簽章有效但公開金鑰來源不明時,哪個身分結論仍不能成立?
結束與清理
保存配對表;本練習沒有金鑰或秘密需要清理。