當愛麗斯希望證明文件 M 確實是由她寄出,而不特別關心機密性時,她可以使用數字簽名的方法來確保文件的真實性和完整性。數字簽名是非對稱加密技術的一個重要應用,使得接收者可以驗證文件確實來自於聲稱的發送者,並且在傳輸過程中未被篡改。以下是實現這一過程的步驟:
步驟 1: 愛麗斯生成密鑰對
- 愛麗斯生成一對密鑰:一個私有密鑰和一個公開密鑰。她保留私有密鑰,並將公開密鑰公開發布或發送給圓圓。
步驟 2: 創建數字簽名
- 生成數字指紋:愛麗斯使用一個哈希函數對文件 M 進行哈希處理,生成一個獨特的數字摘要(指紋)h(M)。
- 簽名數字指紋:愛麗斯使用她的私有密鑰對這個數字摘要進行加密,生成數字簽名 S。
步驟 3: 發送文件和簽名
- 愛麗斯將原始文件 M 和數字簽名 S 一同發送給圓圓。由於不關心機密性,文件 M 可以不進行加密。
步驟 4: 驗證簽名
- 驗證簽名的真實性:圓圓收到文件 M 和簽名 S 后,使用愛麗斯的公開密鑰對簽名 S 進行解密,得到數字摘要 h′(M)。
- 計算接收到的文件的哈希值:圓圓對接收到的文件 M 使用相同的哈希函數計算出一個數字摘要。
- 比較摘要:圓圓比較從簽名中解密出的摘要 h′(M) 與直接計算的文件摘要是否一致。如果兩者一致,則證明文件未被篡改且確實由愛麗斯發送。
這種數字簽名方法不僅證明了文件的來源,也保護了文件的完整性。透過這個過程,即使文件在傳輸過程中是公開的,圓圓也能確定文件是愛麗斯發送的,並且在傳輸過程中未被修改。