共用方式為


數字簽名

當收件者必須識別並驗證 郵件發件者時,數位簽名 可用來在純文本 窗體中散發郵件。 簽署訊息不會改變訊息;它只會產生一個數位簽名字符串,您可以搭配訊息或個別傳輸。 數位簽名是一段簡短的數據,會以發件人的 私鑰加密。 使用寄件者的 公鑰解密簽章數據, 證明數據是由寄件者或有權存取發件者私鑰的人員加密。

數字簽名是使用 公鑰 簽章演算法所產生。 私鑰 會產生簽章,而且必須使用對應的公鑰來驗證簽章。 下圖顯示此程式。

產生數位簽名

從訊息建立數位簽名有兩個步驟。 第一個步驟涉及從訊息建立 哈希 值(也稱為 訊息摘要)。 接著會使用簽署者的私鑰來簽署這個哈希值。 以下是建立數位簽名相關步驟的圖例。

從訊息

若要驗證簽章,需要訊息和簽章。 首先,必須以與建立簽章相同的方式,從訊息建立哈希值。 然後使用簽署者的公鑰,針對簽章驗證此哈希值。 如果哈希值和簽章相符,您可以確信訊息確實是簽署者最初簽署的訊息,而且尚未遭到竄改。 下圖說明驗證數字簽名所涉及的程式。

驗證數位簽名

哈希值是由少量的二進位數據所組成,通常大約160位。 這是使用 哈希演算法所產生的。 本節稍後會列出其中一些演算法。

不論使用的演算法為何,所有哈希值都會共用下列屬性:

  • 哈希值的長度取決於所使用的演算法類型,而且其長度不會隨著訊息的大小而有所不同。 最常見的哈希值長度為128或160位。
  • 每對非完全相同的訊息都會轉譯成完全不同的哈希值,即使這兩個訊息只有一個位不同。 使用現今的技術,在不中斷哈希演算法的情況下,探索一組轉譯為相同哈希值的訊息是不可行的。
  • 每次使用相同演算法來哈希特定訊息時,都會產生相同的哈希值。
  • 所有哈希演算法都是單向的。 假設有哈希值,就無法復原原始訊息。 事實上,沒有原始訊息的屬性可以單獨判斷哈希值。