數字簽名的工作原理

2021-10-09 18:14:10 字數 1688 閱讀 2569

數字簽名是公鑰基礎結構的基礎部分。當我們說pki時,一般想到的是數字證書,證書頒發機構(ca),銀行使用的key,以及ssl通訊等等。

數字證書,一般都是成對存在的,包含證書的公鑰,和證書對應的私鑰,公鑰本身有一定的身份標識功能(如ssl證書中的網域名稱資訊,郵件客戶端證書的郵箱位址等),對於數字證書的應用比較廣泛,但其基本原理簡單來說就是公鑰用來加密,私鑰用來解密。私鑰用來簽名,公鑰用來驗證簽名。

hash演算法是一種雜湊(密碼雜湊)演算法。簡單來說這個演算法有幾個很顯著的特性:

1.易壓縮性,可以很容易的將任何長度的資料對映到固定長度的輸出。

2.單向性,它是一種單向密碼體制,根據源資料計算乙個雜湊值很容易,但是要根據計算出的結果得出源資料是不可能的。

3.高靈敏性,就是對於輸入資料的變化非常靈敏,即使很小的變化都會輸出差異性很大的結果。

4.抗碰撞性,對於不同的資料塊,其hash值相同的可能性極小;對於乙個指定的資料塊,找到和它hash值相同的資料塊極為困難。

由於具有這些特性,所以它非常適合用來做資料完整性和檔案完整性的校驗。目前應用較為廣泛的雜湊演算法主要有sha1,sha256,sha384等,而我們國密與之相對應的是sm3演算法,其安全性也是遞增的。幾年前google就對sha-1碰撞實驗,就是為了驗證其安全性。現在隨著科技的飛速的發展和計算能力的提公升,sha1也即將要退出歷史舞台。

一、工作原理:建立數字簽名

現在,讓我們逐步了解一下數字簽名的過程:

1、將要簽名的檔案進行hash計算。

2、用私鑰將檔案的hash值進行簽名。

3、除了簽名外,還可以新增時間戳以指示簽名時間。

這個就是數字簽名的主要過程,總的來說就是先對文件進行雜湊處理,然後簽名者用自己的私鑰對檔案生成的雜湊值進行簽名,使用時將原檔案和簽名資料一起傳送。

值得注意的是,數字簽名並沒有對整個檔案進行簽名,而是對檔案的hash值進行了簽名。這樣的不僅節約了資源而且提高了效率。

好的,接下來我們討論一下如何讀取和認證簽名。

二、工作原理:閱讀數字簽名

我們已經知道了建立數字簽名的過程,隨著要來進行數字簽名驗證。主要過程有以下步驟:

1、將原檔案進行hash計算得到hash值。

2、將簽名的公鑰從簽名資料中計算出簽名資料中的hash值。

3、將步驟1中得到的hash值和步驟2得到的hash值進行對比,如果對比結果一致則驗證通過,反之驗證失敗。

三、為什麼我們要對所有內容進行數字簽名?(數字簽名的優勢)

防偽造:數字簽名中的私鑰具有唯一性,除簽名者之外都不能偽造簽名,並防止被假冒。

完整性:由於數字簽名中包含hash演算法,對簽名文件的任何未經授權的修改將立即被顯見。

身份標識:證書頒發機構可以對證書的持有者的身份進行識別和驗證,可信的ca機構簽發的證書可以用於做身份標識。

時間戳:知道文件簽署的時間是非常重要的,數字簽名可以蓋上指示建立簽名時間的時間戳。

防抵賴:數字簽名不僅可以成為身份識別的依據,同時它也是簽名者進行簽名操作的有效證據,防止簽名方對其產生的行為進行抵賴。

除了要點之外,數字簽名的應用會越來越廣泛,如今連電子發票和電子合同都加入了數字簽名的應用行列,所以它的重要性可以預見。

數字簽名原理

數字簽名是一種確保資料完整性和原始性的方法。數字簽名可以提供有力的證據,表明自從資料被簽名以來資料尚未發生更改,並且它可以確認對資料簽名的人或實體的身份。數字簽名實現了 完整性 和 認可性 這兩項重要的安全功能,而這是實施安全電子商務的基本要求。當資料以明文或未加密形式分發時,通常使用數字簽名。在這...

數字簽名原理

數字簽名是一種確保資料完整性和原始性的方法。數字簽名可以提供有力的證據,表明自從資料被簽名以來資料尚未發生更改,並且它可以確認對資料簽名的人或實體的身份。數字簽名實現了 完整性 和 認可性 這兩項重要的安全功能,而這是實施安全電子商務的基本要求。當資料以明文或未加密形式分發時,通常使用數字簽名。在這...

數字簽名 原理

2.簽名的生成和驗證 3.數字簽名的方法 4.數字簽名無法解決的問題 數字簽名 訊息到底是誰寫的 數字簽名是一種將相當於現實世界中的蓋章 簽字的功能在計算機世界中進行實現的技術。使用數字簽名可以識別篡改和偽裝,還可以防止否認。通過上篇中介紹的訊息認證碼,可以識別訊息是否被篡改或者傳送者身份是否被偽裝...