2010-05-21 178 views

回答

62

A 數字簽名用於驗證消息。它基本上是消息的加密哈希(由發送者的私鑰加密)。接收者可以通過散列接收到的消息並將該值與解密的簽名進行比較來檢查消息是否被篡改。

要解密簽名,需要相應的公鑰。 A 數字證書用於將公鑰綁定到個人或其他實體。如果沒有證書,簽名可能很容易僞造,因爲收件人無法檢查公鑰是否屬於發件人。

證書本身由受信任的第三方簽名,證書頒發機構,例如VeriSign。

15

維基百科(重點礦):

digital signature或數字簽名方案是用於證明數字消息或文件的真實性的數學方案。有效的數字簽名爲收件人提供理由認爲該郵件是由已知發件人創建的,並且該郵件在傳輸過程中未被更改。數字簽名通常用於軟件分發,金融交易,以及在檢測僞造和篡改非常重要的其他情況下。

在密碼學中,公鑰證書(也稱爲digital certificate或身份證明)是一種使用數字簽名的公鑰與身份結合在一起的電子文檔 - 諸如個人或組織名稱,他們的地址等信息。證書可用於驗證公鑰是否屬於個人。

因此,如果我正確理解上述內容,數字簽名僅證明文檔未被篡改,而數字證書證明文檔實際上來自您。

+0

+1這是我對它的理解 – 2010-05-21 13:42:08

+0

哦感謝一個非常好的總結! – 2010-05-21 13:57:29

8

從概念上講,它們是一種反例。使用數字證書使用公鑰加密並用私鑰解密,這樣可以確保只有擁有私鑰的人才能讀取您的文本。使用數字簽名,您使用私鑰進行加密並使用公鑰進行解密,這樣任何人都可以解密,但只有擁有私鑰的人才能加密,因此您知道該郵件來自使用私鑰的人。

+0

非常感謝你的回答!我的理解錯了:)謝謝! – 2010-05-21 14:00:44

+0

在我看來,您還可以使用證書的私鑰簽名消息,並且某人可以使用證書的公鑰驗證消息 – Chaos 2015-12-03 07:10:39

18

對我來說,最清晰的解釋可以在RSA實驗室:

數字簽名:假設Alice想要一個簽名 文檔或發送消息給Bob。第一步 步驟通常是將散列 函數應用於該消息,從而創建什麼 被稱爲消息摘要。消息摘要通常比原始消息短很多 。在 事實上,散列函數的工作是 採取任意長度的消息 並縮小到一個固定的長度。 要創建數字簽名,其中一個 通常會標記(加密)消息 摘要,而不是消息 本身。

...

Alice發送鮑勃加密的消息摘要 和消息,這是她可以 或者可以不加密。爲了讓鮑勃 認證愛麗絲 他必須 應用相同的哈希函數來她給他發郵件的簽名,解密 使用 Alice的公鑰加密的消息摘要和比較 兩項。如果兩者相同,他有 已成功驗證 簽名。如果兩者不匹配 有幾個可能的解釋。 有人試圖 冒充愛麗絲,消息本身 已被改變,因爲愛麗絲簽署它 或發生在 傳輸過程中的錯誤。

...

數字證書:另外,有人可以假裝 翹,並用鑰匙 對他聲稱是Alice的簽署文件。爲了避免這種情況,有 數字文檔稱爲證書 ,將人與特定公鑰關聯起來。

這些報價來自RSA實驗室在http://www.rsa.com/rsalabs/node.asp?id=2182http://www.rsa.com/rsalabs/node.asp?id=2277

+3

數字簽名的最明確解釋。謝謝。 – user1745356 2014-02-16 16:45:32

+0

用於數字證書解釋的很好的站點,用於清晰地解釋加密實體 – 2014-12-28 19:49:13

52

讓我的阿什利的解釋擴大。與所有事情密碼一樣,假設Alice(發件人)想要發送安全消息給Bob(收件人)

這裏有兩個問題需要解決。

  1. 如何加密消息,所以只有Bob可以解密它。
  2. 鮑勃如何確定這封郵件首先來自Alice,而不是由過境人員修改。

這兩個問題都可以用公鑰密碼來解決。對於(1),Alice用Bob的公鑰對消息進行加密。當鮑勃收到消息時,他可以用他的私鑰安全解密。所以加密與Bob的公共密鑰和解密使用Bob的私鑰(這是公鑰密碼基本的東西)

爲了解決(2),愛麗絲也與加密的消息一起發送的數字簽名。

  • 傳遞原始消息通過哈希函數(如sha-1)得到消息摘要
  • 加密用Alice的私鑰此消息摘要(注意,這是相反的:這是做如下原消息如何與Bob的公鑰加密)

當Bob收到消息+數字簽名,他將:

  • 用這個私鑰解密消息,然後計算它的消息摘要。讓我們稱這個摘要M1。
  • 使用Alice的公鑰解密簽名以獲取消息摘要。讓我們稱這個M2。
  • 如果M1和M2相同,Bob可以確定該消息在傳輸過程中未被修改,而且確實它來自Alice。

對於數字證書,請注意,Alice依賴用Bob的公鑰對原始消息進行加密,而Bob依靠Alice的公鑰解密簽名。他們怎麼能確定對方的公鑰?這就是數字證書的用途。它允許可信任的第三方驗證/說「Alice的公鑰是xyz」。

+3

+1。 – mavis 2014-03-19 17:14:32

0

如果簽名/證書由同一CA /可信實體簽署,則沒有區別。

如果簽名數據包含CA /可信實體簽署的委託發件人(即信任鏈)的一些簽名數據(例如發件人的公鑰),那麼也沒有區別(或者我們應該調用簽名數據證書?)。

換句話說,證書是簽名的一種用法。

+3

對於在X509 PKI中通常用於簽名和證書的常用術語,這是**不正確**。 – mkl 2015-07-31 04:12:08

2

@ numan的回答爲確保機密性,完整性和身份驗證的必要過程提供了很好的解釋。但是這並不能回答真正的問題。

一個數字簽名的目標是提供這些基本服務,

  • 真實性:如他聲稱(數據必須使用發件人的私鑰加密)發件人已簽名的數據。

  • 完整性:爲了保證數據在簽名時沒有變化。

  • 不可否認性:接收器可以提供數據的一些第三方它可以接受數字簽名,以證明數據 交換確實發生了。此外,發件人(簽署方)不能拒絕其已簽署數據 。

,它有屬性,以確保真實性和完整性,例如,

簽名是不可僞造:提供證明的簽名者,並沒有其他人,簽署文件。

簽名不能否認:這意味着,出於合法目的,簽名和文件被視爲物理事物。簽名者以後不能再聲明他們沒有簽名。

簽名保持不變:文檔簽名後,不能更改。

簽名不可重複使用:簽名是文檔的一部分,不能移動到其他文檔。

而在另一方面,數字證書是由一些第三方證書頒發機構(CA)頒發驗證證書持有者的身份。它實際上包含從CA自己的私鑰導出的證書頒發機構的數字簽名

它還包含與數字證書所有者相關聯的公鑰。

您可能想要了解如何對Digital Certificates進行結構化處理。

0

數字簽名解釋說:

Sender : Encrypt(hash(message), priv_key) = dig_sign 
Receiver : Decrypt(dig_sign, pub_key) => hash_of_message == hash(message)