1 數字簽名是什么
數字簽名指的是通過某種密碼運算生成一系列符號及代碼組成電子密碼進行簽名,以代替手書簽名或印章的技術。數字簽名采用了規范化的程序和科學化的方法,用于鑒定簽名人的身份以及對一項電子數據內容的認可,還能驗證出文件的原文在傳輸過程中有無變動,確保發送者的身份認證,以及保證傳輸電子文件的完整、真實和不可抵賴。利用數字簽名,信息的發送者可以產生別人無法偽造的一段數字串,同時這段數字串可以證明發送者發送信息的真實性。數字簽名應用了非對稱密鑰加密技術與數字摘要技術。數字簽名所具有的特點:身份認證、不可抵賴、保證數據的完整性。數字簽名在網絡中可以防重放、防冒充、防篡改、可鑒別身份和防抵賴。
2 數字簽名中簽名的性質
數字簽名的安全前提條件是,不存在一個多項式時間的算法能夠通過公鑰獲取私鑰,簽名方使用私鑰對消息進行簽名,驗證方用公鑰驗證簽名合法性。一般來說,簽名應該具有下列的性質:
(1)簽名是可信的。協議中的所有參與方均可以驗證簽名的有效性
(2)簽名是不可偽造的。除合法簽名方,攻擊者很難偽造簽名。
(3)簽名是不可復制的。不同消息的簽名是不同的,攻擊者無法基于某個消息的簽名,復制進而構造出另一個消息的簽名。如果攻擊者通過復制某消息的簽名構造簽名,驗證方一定能發現此簽名是偽造的,從而拒絕接受此簽名
(4)簽名的消息是不可改變的。一旦簽名內部消息被更改,驗證方會發現并且拒絕接受此簽名,也就是簽名協議提供的保障消息完整性。
(5)簽名是不可抵賴的,也就是不可否認性。
3 數字簽名認證過程
以設備A發送信息M到設備B為例。數字簽名認證的過程可以用圖表示:

首先,設備A對消息M進行哈希運算,可以得到信息摘要e。然后設備A通過私鑰對信息摘要e進行簽名運算得到簽名S,設備A把簽名S以及消息M發送到設備B。最后,當設備B接收到簽名S和消息M后,為了驗證消息M是否來自于設備A以及消息是否完整,利用公鑰對簽名進行驗證運算。由于不需要像加密一樣對整個消息進行運算,數字簽名只對哈希后的e進行簽名,可以減少簽名的運算量。
4 數字簽名的算法
目前,RSA算法(由Ron Rivest、Adi Shamir和Leonard Adleman提出)、DSA(Digital Signature
Algorithm)算法和橢圓曲線算法(ECC)是較為成熟的數字簽名算法。
(1)從安全性的角度考慮,在加密算法中,被攻破的時間越長,抗攻擊能力越強,就越安全。RSA通過利用整數因式分解的難度保證了安全,該算法的破解難度是亞指數級的,DSA通過利用離散對數的難度保證了安全,該算法破解難度與RSA破解難度差別不大。ECC算法有著指數級的破解難度,RSA和DSA的密鑰攻擊難度相當,RSA和DSA破解難度低于ECC破解難度。數字簽名算法的速度對于其應用有著十分重要的地位,從計算速度的角度考慮,ECC的總體速度比RSA和DSA算法要快。
(2)在安全性相當的條件下,在簽名和驗證的過程計算過程中,ECC算法的速度要比DSA算法快,在解密和簽名過程的速度要比RSA算法快,但是在加密和驗證過程計算速度低于RSA算法。在相同安全條件下,ECC算法比RSA和DSA算法在計算速度要快。在安全性相當的條件下,比較ECC、RSA、DSA算法在存儲空間的需求,DSA算法和RSA算法所需要的存儲空間相差不大,比ECC所需要的存儲空間大。因此從空間需求的角度來看,ECC算法比較占優勢。
以上是關于數字簽名是什么及其相關知識的介紹,更多信息請關注三個皮匠報告的行業知識欄目
推薦閱讀:
什么是數字簽名?作用和原理是什么?龍頭企業介紹
什么是電子簽名?可靠的電子簽名有什么特征?相關政策介紹