天天看點

sa數字簽名算法c語言,橢圓曲線數字簽名算法(ECDSA).pdf

摘要

橢圓曲線數字簽名算法(ECDSA)是使用橢圓曲線對數字簽名算法(DSA)的模拟。

ECDSA 于 1999 年成為 ANSI 标準,并于 2000 年成為 IEEE 和 NIST 标準。它在 1998年既

已為 ISO 所接受,并且包含它的其他一些标準亦在 ISO 的考慮之中。與普通的離散對數問

題(discrete logarithm problem DLP )和大數分解問題(integer factorization problem IFP)

不同,橢圓曲線離散對數問題(elliptic curve discrete logarithm problem ECDLP )沒有亞

指數時間的解決方法。

是以橢圓曲線密碼的機關比特強度要高于其他公鑰體制。

本文将詳細論述 ANSIX9.62 标準及其協定,安全,實作,互操作性方面的問題。

1、介紹

數字簽名算法(DSA)在聯邦資訊處理标準 FIPS 中有詳細論述,稱為數字簽名标準。它的

安全性基于素域上的離散對數問題。橢圓曲線密碼(ECC)由 Neal Koblitz 和 Victor Miller

于 1985 年發明。它可以看作是橢圓曲線對先前基于離散對數問題(DLP)的密碼系統的模

拟,隻是群元素由素域中的元素數換為有限域上的橢圓曲線上的點。橢圓曲線密碼體制的安

全性基于橢圓曲線離散對數問題(ECDLP)的難解性。橢圓曲線離散對數問題遠難于離散

對數問題,橢圓曲線密碼系統的機關比特強度要遠高于傳統的離散對數系統。是以在使用較

短的密鑰的情況下,ECC 可以達到于 DL 系統相同的安全級别。這帶來的好處就是計算參

數更小,密鑰更短,運算速度更快,簽名也更加短小。是以橢圓曲線密碼尤其适用于處理能

力、存儲空間、帶寬及功耗受限的場合。

ECDSA 是橢圓曲線對 DSA 的模拟。ECDSA 首先由 Scott 和 Vanstone 在 1992 年為了響應

NIST 對數字簽名标準(DSS)的要求而提出。ECDSA 于 1998年作為 ISO 标準被采納,在

1999 年作為ANSI 标準被采納,并于 2000 年成為 IEEE 和 FIPS 标準。包含它的其他一些

标準亦在 ISO 的考慮之中。本文中我們将介紹ANSI X9.62 标準。也将介紹一些簽名的基礎

知識以及協定、安全性、實作、互操作性方面的問題。

本文其他部分的安排如下:

第二節中我們将回顧數字簽名方案和 DSA,

第三節和第四節将分别介紹有限域和橢圓曲線,

第五節将講述域參數的産生和參數有效性的驗證,

第六節将講述密鑰對的産生和公鑰有效性的驗證,

第七節的内容是 ECDSA 的簽名和驗證過程。第八章論證 ECDSA 的安全性,

第九節和第十節講述的是 ECDSA 協定和實作方面的問題。

2、數字簽名方案

2.1 背景知識

數字簽名的目的是提供一個手寫簽名的數字化副本。簽名是一個依賴于簽名者私鑰和被簽名

一段消息的比特串。簽名必須是可驗證的,即如果對簽名的真實性存在疑問,必須由一個中

立的第三方作出公正的裁決,并且無需知道簽名者的私鑰。對簽名的抵賴以及僞造簽名應該

能被發現。

本文論述的是非對稱摘要數字簽名。“非對稱”即使用者的密鑰對各不相同。使用者的私鑰用于

簽名,其他使用者用他的公鑰來檢驗簽名的真實性。摘要是指對一段消息先用哈希函數進行摘

要計算,爾後再對消息摘要進行簽名,而不是消息。

安全性:

從理論上講,在選擇消息攻擊下,數字簽名應該是不可僞造的。這一概念由 Goldwasser,

Micali 和 Rivest 提出。更一般的講就是攻擊者獲得使用者 A 的摘要和簽名,但他無法用其他

的摘要來僞造這樣一個簽名。

應用:

數字簽名方案用于以下一些用途:資料完整性(確定資料沒有被未知或未授權的中間人改

變),資料源認證(確定資料的來源是可信的),不可否認性(確定使用者不能對自己的行為

進行抵賴)。數字簽名是密碼學協定的基本組成部分,并且可以提供其他一些服務如:身份

認證(FIPS 196,ISO/IEC 9798-3),密鑰傳遞前的認證(ANSI X9.63 ,ISO/IEC 11770-3),

經驗證的密鑰協商(ISO/IEC 11770-3)。

分類:

數字簽名方案可以根據所基于的數學難題進行分類:

1、基于大整數分解(IF)的方案,安全性基于大整數分解的難度。執行個體有 RSA 方案和 Rabin

方案。

2、基于離散對數 (DL)的方案,安全性基于有限域上普通的離散對數問題。執行個體包 El