網路安全
數位簽章(digital signature)
想像你用一支只有你擁有的特別的筆簽合約,而它簽出的署名,任何人用一份公開的模板都能查驗——他們能確認那確實是你的、卻無法自己偽造。而且署名綁定合約的確切文字:改一條條款,署名就驗不過了。數位簽章是這件事的密碼學版本——一個證據,證明某則特定訊息來自某個特定的人、且未被改動,任何人都能驗證、除了簽署者沒有人能偽造。
它是把公開金鑰密碼學「反過來」用建構出來的。簽署時:你計算訊息的密碼雜湊,再用你的私鑰把那段雜湊加密——結果就是簽章,附在訊息上。驗證時:任何人取得訊息、自己算一次雜湊,再用你的公鑰把簽章對著那段雜湊查驗。若相符,就同時證明了兩件事:訊息未被改動(完整性),且它來自持有相對應私鑰的人(鑑別)。因為只有你握有私鑰,你事後無法否認簽過它——這個性質就是不可否認性。
為什麼重要:數位簽章做到了 MAC 做不到的事——任何人都能驗證、不需共享秘密,並且公開地約束簽署者。它是憑證背後的引擎(憑證授權單位簽署一個網站的身分)、軟體更新背後的引擎(你的裝置在安裝前檢查廠商的簽章),以及簽署文件與電子郵件的引擎。誠實的提醒跟所有公開金鑰密碼學一樣:簽章只證明訊息來自握有那把私鑰的人——它完全不告訴你那一方是否值得信任,而且它的可信度,只取決於你對「那把公鑰真的屬於你以為的對象」有多大信心(這正是憑證要處理的)。
一家軟體廠商簽署一個更新:簽章 = 加密(雜湊(更新), 廠商私鑰)。你的裝置對下載的檔案算雜湊、用廠商的公鑰把簽章解密、再比對。相符代表這個檔案確實是廠商的、且原封未動;不符代表它被破壞或偽造——於是安裝被拒絕。
用私鑰簽署,任何人用公鑰驗證。
簽章證明的是來源與完整性,不是誠實。一個病毒可以由它的作者完美而有效地簽署——簽章只確認是誰做的,從不保證他做的東西安全或為真。
又称
另见