日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DSA数字签名算法

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DSA数字签名算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DSA數字簽名算法

美國國家標準與技術研究所(NIST)發布的聯邦信息處理標準FIPS? 186,稱為數字簽名算法(DSA)。DSA最初提出于1991年,1993年根據公眾對其安全性的反饋意見進行了一些修改,1996年又稍作修改。2000年發布了該標準的擴充版,及FIPS 186-2,隨后在2009年更新為FIPS 186-3,在2013年更新為FIPS? 186-4。這個最新版本還包括基于RSA和橢圓曲線密碼的數字簽名算法。

下圖是用DSA產生數字簽名和用RSA產生數字簽名的這兩種方法的對比

?

分析:

  • 在RSA方法中,Hash函數的輸入值時要簽名的消息,輸出值是定長Hash碼,用發送方的私鑰PR將該hash碼加密形成簽名,然后發送其消息和簽名。接收方收到消息后,計算hash碼。接收方用發送方的公鑰PU對簽名進行解密,如果計算出的Hash碼與解密出的結果相同,則認為簽名是有效的。因為只有發送方擁有私鑰,所以只有發送方能產生有效的簽名
  • 在DSA方法中,也使用了hash函數,它產生的hash碼和為此次簽名產生的隨機數k作為簽名函數的輸入,簽名函數依賴于發送方的私鑰PR和一組參數PU,這些參數為一組通信伙伴所有,我們可以認為這些參數構成全局參數PU。簽名由兩部分組成,標記為s和r。接收方對于接收到的消息產生hash碼,這個hash碼和簽名一起作為驗證函數的輸入,驗證函數依賴于全局公鑰和發送方公鑰,該發送方公鑰同發送方私鑰組成密鑰對。若認證函數的輸出等于簽名中的r成分,則簽名有效。簽名函數保證只有擁有私鑰的發送方才能產生有效的簽名。
  • 對比:RSA與DSA安全性能差不多,但是DSA有兩個素數公開,因此,當使用別人的p和q時,即使不知道公鑰,仍能確定它們是否隨機產生還是做了手腳,但是RSA則不行。

?

數字簽名算法

下圖歸納總結了DSA算法,其中有三個公開參數為一組用戶所共有。選擇一個N位的素數q;然后選擇一個長度在512-1024間且滿足q能整除(p-1)的素數p;最后選擇形為的g,其中h是1到p-1間的整數,使得g>1.

DSA的公開參數的選擇與Schnorr簽名方案完全一樣

? ? ? 選定這些參數后,每個用戶選擇私鑰并產生公鑰。私鑰x的選擇必須是隨機或偽隨機選擇的、位于1到q-1之間的數。由計算出公鑰。由給定的x計算y比較簡單,而由給定的y確定x則在計算上是不可行的,因為這是求y的以g為低的模p的離散對數

? ? ? 要進行簽名,用戶需計算兩個量r和s。r和s是公鑰(p,q,g)、用戶私鑰x、消息的hash 碼H(M)和附加整數k的函數,其中k是隨機或偽隨機產生的,且k對每次簽名是唯一的。

? ? ? 令為接收方收到的M,r,s,接收方用圖上公式進行驗證。接收方計算值v,它是公鑰(p,q,g)、發送方公鑰、接收到的消息的hash碼的函數。若v與簽名中的r相同,則簽名是有效的

下圖描述了DSA算法的簽名和驗證函數

?

上圖所示的算法有這樣一個特點:接收端的驗證依賴于r,但是r卻根本不依賴于消息,它是k和全局公鑰的函數。k模p的乘法逆元傳給函數f1,f1的輸入還包含消息的hash碼和用戶私鑰,函數的這種結構使接收方可利用其收到的消息和簽名、他的公鑰以及全局公鑰來恢復r

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的DSA数字签名算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。