- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 元件
- 密碼系統攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力破解攻擊
- 密碼系統 - 密碼分析技術
- 密碼學型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學 雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰吊銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - Feistel 分組密碼
- 分組密碼操作模式
- 分組密碼操作模式
- 電子密碼本 (ECB) 模式
- 密碼分組連結 (CBC) 模式
- 密碼反饋 (CFB) 模式
- 輸出反饋 (OFB) 模式
- 計數器 (CTR) 模式
- 經典密碼
- 密碼學 - 反向密碼
- 密碼學 - 凱撒密碼
- 密碼學 - ROT13 演算法
- 密碼學 - 換位密碼
- 密碼學 - 加密換位密碼
- 密碼學 - 解密換位密碼
- 密碼學 - 乘法密碼
- 密碼學 - 仿射密碼
- 密碼學 - 簡單替換密碼
- 密碼學 - 簡單替換密碼加密
- 密碼學 - 簡單替換密碼解密
- 密碼學 - 維吉尼亞密碼
- 密碼學 - 實現維吉尼亞密碼
- 現代密碼
- Base64 編碼和解碼
- 密碼學 - XOR 加密
- 替換技術
- 密碼學 - 單表替換密碼
- 密碼學 - 破解單表替換密碼
- 密碼學 - 多表替換密碼
- 密碼學 - Playfair 密碼
- 密碼學 - 希爾密碼
- 多表替換密碼
- 密碼學 - 一次性密碼本密碼
- 一次性密碼本密碼的實現
- 密碼學 - 換位技術
- 密碼學 - 柵欄密碼
- 密碼學 - 列置換
- 密碼學 - 密碼隱寫術
- 對稱演算法
- 密碼學 - 資料加密
- 密碼學 - 加密演算法
- 密碼學 - 資料加密標準
- 密碼學 - 三重DES
- 密碼學 - 雙重DES
- 高階加密標準
- 密碼學 - AES 結構
- 密碼學 - AES 變換函式
- 密碼學 - 位元組替換變換
- 密碼學 - 行移位變換
- 密碼學 - 列混淆變換
- 密碼學 - 輪金鑰加變換
- 密碼學 - AES 金鑰擴充套件演算法
- 密碼學 - Blowfish 演算法
- 密碼學 - SHA 演算法
- 密碼學 - RC4 演算法
- 密碼學 - Camellia 加密演算法
- 密碼學 - ChaCha20 加密演算法
- 密碼學 - CAST5 加密演算法
- 密碼學 - SEED 加密演算法
- 密碼學 - SM4 加密演算法
- IDEA - 國際資料加密演算法
- 公鑰(非對稱)密碼學演算法
- 密碼學 - RSA 演算法
- 密碼學 - RSA 加密
- 密碼學 - RSA 解密
- 密碼學 - 建立 RSA 金鑰
- 密碼學 - 破解 RSA 密碼
- 密碼學 - ECDSA 演算法
- 密碼學 - DSA 演算法
- 密碼學 - Diffie-Hellman 演算法
- 密碼學中的資料完整性
- 密碼學中的資料完整性
- 訊息認證
- 密碼學 數字簽名
- 公鑰基礎設施
- 雜湊
- 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 密碼
- 密碼學 - 對稱與非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
密碼學 數字簽名
數字簽名是訊息認證的公鑰基本原理。在現實世界中,在手寫或列印的訊息上使用手寫簽名很常見。它們用於將簽名者繫結到訊息。
類似地,數字簽名是一種將個人/實體繫結到數字資料的方法。這種繫結可以由接收方以及任何第三方獨立驗證。
數字簽名是從資料和僅簽名者知道的金鑰計算出的加密值。
在現實世界中,訊息接收者需要確保訊息屬於傳送者,並且傳送者不應該能夠否認該訊息的來源。此要求在業務應用程式中非常關鍵,因為交換資料發生爭議的可能性非常高。
數字簽名模型
如前所述,數字簽名方案基於公鑰密碼學。數字簽名方案的模型如下圖所示:
以下幾點詳細解釋了整個過程:
每個採用此方案的人都有一個公鑰-私鑰對。
通常,用於加密/解密和簽名/驗證的金鑰對是不同的。用於簽名的私鑰稱為簽名金鑰,公鑰稱為驗證金鑰。
簽名者將資料饋送到雜湊函式並生成資料的雜湊值。
然後將雜湊值和簽名金鑰饋送到簽名演算法,該演算法生成給定雜湊值的數字簽名。簽名附加到資料,然後兩者都發送到驗證者。
驗證者將數字簽名和驗證金鑰輸入到驗證演算法中。驗證演算法輸出一些值。
驗證者還對接收到的資料執行相同的雜湊函式以生成雜湊值。
為了驗證,將此雜湊值與驗證演算法的輸出進行比較。根據比較結果,驗證者確定數字簽名是否有效。
由於數字簽名是由簽名者的“私鑰”建立的,並且任何人都無法擁有此金鑰;簽名者將來無法否認簽署資料。
需要注意的是,簽名演算法通常不是直接對資料進行簽名,而是建立資料的雜湊值。由於資料雜湊是資料的唯一表示,因此對雜湊值進行簽名足以代替對資料進行簽名。使用雜湊而不是直接對資料進行簽名的最重要的原因是方案的效率。
假設 RSA 用作簽名演算法。如公鑰加密章節所述,使用 RSA 的加密/簽名過程涉及模冪運算。
透過模冪運算對大型資料進行簽名在計算上代價高昂且耗時。資料的雜湊值是資料的相對較小的摘要,因此對雜湊值進行簽名比對整個資料進行簽名更有效。
數字簽名的重要性
在所有加密基本原理中,使用公鑰密碼學的數字簽名被認為是實現資訊安全非常重要和有用的工具。
除了能夠提供訊息不可否認性之外,數字簽名還提供訊息認證和資料完整性。讓我們簡要了解一下數字簽名是如何實現這一點的:
訊息認證 - 當驗證者使用傳送者的公鑰驗證數字簽名時,他確信簽名僅由擁有相應私鑰的傳送者建立,而不是其他人。
資料完整性 - 如果攻擊者可以訪問資料並對其進行修改,則接收端處的數字簽名驗證將失敗。修改後的資料的雜湊值和驗證演算法提供的輸出將不匹配。因此,接收者可以安全地拒絕該訊息,假設資料完整性已被破壞。
不可否認性 - 由於假設只有簽名者知道簽名金鑰,因此他只能在給定資料上建立唯一的簽名。因此,如果將來發生任何爭議,接收者可以向第三方出示資料和數字簽名作為證據。
透過將公鑰加密新增到數字簽名方案中,我們可以建立一個可以提供安全性的四個基本要素的密碼系統,即:隱私、身份驗證、完整性和不可否認性。
帶數字簽名的加密
在許多數字通訊中,希望交換加密訊息而不是明文以實現機密性。在公鑰加密方案中,傳送者的公鑰(加密金鑰)在開放域中可用,因此任何人都可以偽造其身份並將任何加密訊息傳送到接收者。
這使得使用 PKC 進行加密的使用者必須尋求數字簽名以及加密資料,以確保訊息認證和不可否認性。
這可以透過將數字簽名與加密方案相結合來實現。讓我們簡要討論一下如何實現此要求。有兩種可能性,先簽名後加密和先加密後簽名。
但是,基於先簽名後加密的密碼系統可能會被接收者利用來偽造傳送者的身份並將該資料傳送到第三方。因此,此方法不受歡迎。先加密後簽名的方法更可靠且被廣泛採用。這在下圖中進行了說明:
接收者在收到加密資料和簽名後,首先使用傳送者的公鑰驗證簽名。在確保簽名的有效性後,他然後使用自己的私鑰透過解密檢索資料。