1. 程式人生 > >公鑰密碼學_數字簽名 1

公鑰密碼學_數字簽名 1

關於數字簽名我們要掌握哪些方面的知識呢,主要是數字簽名方案的種類和之間的異同。

  • ElGamal數字簽名方案
  • Schnorr數字簽名方案
  • NIST數字簽名方案
  • 橢圓曲線數字簽名方案
  • RSA-PSS數字簽名方案

 其中 橢圓曲線數字簽名演算法ECDSA和RSA概率簽名方案RSA-PSS已經被定為標準的數字簽名方案。

訊息認證可以保護資訊交換的雙方不受第三方的攻擊,但是如果通訊雙方之間產生矛盾就不好解決了,比如,

接收方可以偽造一條訊息並稱該訊息來自發送方,但其實發送方並沒有傳送給這條訊息,比如在支付寶、微信轉賬的例子裡,

還有一種是傳送方不承認之前他發過訊息給接收方,但其實真發過,這種情況在電子支付、郵件收發也有很多例子。

 

這個時候就要用到數字簽名了,數字簽名特徵:

  • 它必須能驗證簽名者、簽名日期、時間
  • 它必須能認證被籤的訊息內容
  • 簽名應該由第三方仲裁,以便解決爭執

 

攻擊和偽造

那麼數字簽名演算法也會遭受攻擊麼?當然,讓我們一起看看:

下面攻擊危害程度由高到低排名:(C是攻擊者、A是被攻擊者(也就簽名的那一方))

  • 唯祕鑰攻擊:C僅知道A的公鑰
  • 已知訊息攻擊:C掌握一些訊息以及對應的合法簽名
  • 一般選擇訊息攻擊:在攻擊A的簽名方案之前,C首先選擇一些訊息,而無需知道A的公鑰,然而C對於這些選擇的訊息從A處獲得合法簽名,該攻擊是一般性的,因為與A的公鑰無關,同樣的攻擊可用於其他使用者
  • 定向選擇訊息攻擊
  • 適應性選擇訊息攻擊
  • 完全破譯:C判斷出A的私鑰
  • 通用偽造:C掌握一個有效的簽名演算法,使得對於任意訊息都能夠等價地構造出合法簽名
  • 選擇偽造:C對於所選特定訊息能夠偽造出合法簽名
  • 存在性偽造

 

Reference:《Encryptography and Networking Security》6th William Stalling