Back
PQCHub

後量子密碼學(六):數位簽章

數位簽章, Digital Signature

信任,但要驗證。

-隆納·雷根

在公鑰密碼學中,公私鑰對除了能應用在密鑰共享之外,也能用來實現「驗證訊息真偽」的功能。這個應用就是數位簽章 (Digital Signature)。 數位簽章能讓一個人(簽署者)對某份訊息生成一個獨特的「簽章」,任何人都可以透過簽署者的公鑰來驗證這份簽章是否正確,來確認訊息是否來自該簽署者且沒有被竄改。

簽章與驗證

數位簽章的安全目標是:只有持有私鑰的人能產生有效簽章,且任何人都能用公鑰驗證。

假設 Alice 想要簽署一份訊息並交給 Bob。 Alice 會用自己的私鑰(Alice’s private key)對訊息生成簽章,並把「訊息 + 簽章」一起傳給 Bob。 當 Bob 收到之後,可以使用 Alice 的公鑰(Alice’s public key)來驗證:

  1. 簽章是否真的是由 Alice 產生
  2. 訊息在傳輸過程中是否被修改過

這樣,Bob 就能確信訊息的真實性與完整性。

Alice 與 Bob 使用數位簽章的過程如下:

  1. Alice 擁有自己的公私鑰對
  2. Alice 使用私鑰對訊息生成簽章
  3. Alice 把「訊息 + 簽章」傳給 Bob
  4. Bob 用 Alice 的公鑰來驗證簽章是否正確

形成數位簽章的算法

在上述過程中,我們可以看到數位簽章的核心演算法有三個:密鑰生成 (KeyGen)、簽章 (Sign)、驗章 (Verify)

  1. $\textrm{KeyGen}$:生成公私鑰對,公鑰公開,私鑰需妥善保存。
  2. $\textrm{Sign}$:簽署者使用私鑰與訊息,生成對應的簽章。
  3. $\textrm{Verify}$:驗證者使用公鑰、訊息與簽章,檢查簽章是否正確。

透過這三個演算法,我們就能完整描述一個數位簽章系統!數位簽章常常被應用在電子合約、憑證、區塊鏈等領域中。

SNPQ © 2025