簽名驗簽
更新時間 2023-09-20 17:01:48
最近更新時間: 2023-09-20 17:01:48
分享文章
本文為您介紹簽名驗簽場景中,如何通過用戶主密鑰實現消息的簽名、驗證。
數字簽名技術是非對稱加密算法的另一種典型應用。數字簽名分為簽名和驗證兩個過程,消息發送者使用私鑰對數據簽名,消息接收者使用公鑰進行簽名驗證。
由于簽名是使用私鑰加密產生,而私鑰不公開,這使得簽名具有唯一的特征,廣泛用于數據防篡改、身份認證等相關技術領域。
場景拓撲圖

操作流程
- 信息發送者通過KMS控制臺或者調用CreateKey接口,創建一個非對稱的用戶主密鑰(CMK)。
- 信息發送者通過調用KMS的getPublicKey接口獲取到公鑰,并將公鑰分發給消息接收者。
- 信息發送者通過調用KMS的asymmetricSign接口,使用創建的CMK私鑰對需要傳輸的數據生成簽名。
- 信息發送者將簽名和數據傳遞給信息接收者。
- 信息接收者拿到簽名和數據之后,在本地通過gmssl、openssl、密碼庫、KMS 的國密 Encryption SDK 等驗簽方法,使用信息發送者分發的公鑰進行驗證。特殊需求場景下,也可調用KMS的asymmetricVerify接口,使用CMK進行簽名校驗。
相關API
您可以調用以下KMS API,完成對數據的簽名驗簽處理。
| API名稱 | 說明 |
|---|---|
| createKey | 創建用戶主密鑰(CMK)。 |
| getPublicKey | 獲取非對稱密鑰的公鑰,可用于離線驗證數字簽名,或者加密數據。 |
| asymmetricSign | 非對稱密鑰的私鑰運算:產生數字簽名。 |
| asymmetricVerify | 非對稱密鑰的公鑰運算:驗證私鑰產生的數字簽名。 |