使用對稱密鑰加密的數字簽名
一般來說,數字簽名是一個公鑰密碼學概念。但是它需要很高的成本。那麼是否有任何可用的出版物或連結解釋了“使用對稱密鑰的數字簽名”?是否可以生成一種將 RSA 算法的公鑰和私鑰相結合的算法,使其成為對稱密鑰?
您可能有興趣閱讀TESLA 廣播身份驗證協議,該協議使用單向密鑰鏈概念來實現身份驗證。
密鑰鏈的基本思想是重複對密鑰值進行散列,並以相反的順序使用散列或“密鑰”進行身份驗證。一個簡單的例子是讓 Alice 計算
$$ H(H(H(H(\text{secret key})))) $$
並將這個值安全地發送給 Bob。接下來,Alice 公開了
$$ H(H(H(\text{secret key}))). $$
由於散列函式 H(.) 被假定為單向函式,因此任何知道原像的一方都被假定為 Alice。
發送方使用單向鏈中的最新值作為加密密鑰來計算 MAC。每個接收者都可以驗證公開的密鑰是否正確(使用自我認證和先前發布的密鑰)。作者指出,密鑰鏈的任何密鑰都可以作為密鑰鏈承諾,類似於數字簽名的公鑰
我對此有一些想法。如果兩個人 Alice 和 Bob 共享只有他們知道的秘密對稱密鑰,那麼如果 Bob 將使用密鑰 K 加密的消息 M 發送給 Alice,則足以證明 M 確實是由 Bob 創建的。因為只有 Bob 知道密鑰 K,所以只有他可以用這個密鑰加密消息 M。Alice 和 Bob 只有一個問題是如何共享密鑰 K。因此,如果不存在這個問題,那麼就不需要所有的公鑰加密。但是因為 Alice 和 Bob 之間的所有對話都可以在中間被 Man 修改,他們沒有機會交換密鑰 K。這就是他們使用公鑰加密的原因。Bob 共享了他的公鑰,Alice 可以使用它來證明收到的消息是由他創建的。
關於您的問題,您可以使用對稱密鑰 K 來證明消息是由特定人員(例如 MAC)創建的,但為此您首先需要共享密鑰。為此,您需要使用公鑰或受信任的密鑰分發中心(這不如公鑰加密方便)。