數字簽名的原理及其應用

2021-08-17 11:49:50 字數 2018 閱讀 2394

出自:shusheng007

我們日常都親自簽過各種名,例如你和你的公司簽訂勞動合同時候會簽上你自己的名字。那這個簽名有什麼用呢?對於公司來說就是將來開除你的時候可以讓你不可抵賴。當然合同條款都是不允許塗改的,不然就得重寫,這個用來保證合同的不可偽造性。

數字簽名和這個類似,是用來保證一段資訊不可偽造而且使這段資訊產生者不可抵賴

例如小明和二狗互不相識,碰巧在各自家裡組局打王者榮耀,小明總搶二狗的藍爸爸,二狗怒了,直接問候了小名媽媽:「xx媽」。假設二狗對這個資訊加了數字簽名。走到**大家都會知道是二狗罵了小明「xx媽」,無論二狗如何狡辯說資訊不是他發的,或者說他發的不是「xx媽」而是其他的。

保證資訊傳輸的完整性、傳送者的身份認證、防止交易中的抵賴發生。

要理解數字簽名的原理,必須先要對非對稱加密數字摘要這兩種技術有所了解,不然無法進行。因為數字簽名就是對這兩種技術的實際應用。

非對稱加密演算法需要兩個金鑰:公開金鑰(public key)和私有金鑰(private key)。公開金鑰與私有金鑰是一對,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密;如果用私有金鑰對資料進行加密,那麼只有用對應的公開金鑰才能解密。因為加密和解密使用的是兩個不同的金鑰,所以這種演算法叫作非對稱加密演算法。

非對稱加密演算法實現機密資訊交換的基本過程是:

1 a生成一對金鑰並將其公鑰向b公開;

2 b使用該金鑰對機密資訊進行加密後再傳送給a

3 a接到資訊後用自己的私鑰對加密後的資訊進行解密。

例如大名鼎鼎的rsa非對稱加密演算法。

數字摘要是將任意長度的訊息變成固定長度的短訊息。數字摘要就是採用單向hash函式將需要加密的明文「摘要」成一串固定長度的密文,這一串密文又稱為數字指紋,不同的明文摘要成密文,其結果總是不同的(嚴格意義上說存在相同的機率,因為有可能發生雜湊碰撞),而同樣的明文其摘要必定一致。

例如md5sha1sha256sha384sha512等都是摘要演算法,被破解難度由左到右逐漸公升高。

假設ab傳送資訊hb現在持有a的公鑰

簽名a對要傳送的資訊h做數字簽名並傳送

1.a將要傳送的資訊h使用摘要演算法(例如sha256)生成訊息摘要m。

2.a將m用自己的私鑰加密生成數字簽名 s.

3.a將訊息h與數字簽名s一起傳送給b

解簽名b接收到資訊後需要解簽名拿到確認拿到正確的資訊

1.ba的公鑰對接到的數字簽名s2解密獲得了訊息摘要m2

2.b使用相同的摘要演算法(例如sha256)將收到的資訊h2生成訊息摘要m3

3.b對比m2與m3,如果相同說明訊息是從a發過來的,而且沒有被篡改。

整個過程如下圖所示

那麼以上過程是如何保證資訊的不可偽造不可抵賴這兩個特性的呢?

是不是很神奇,數字簽名被廣泛應用在了https協議,區塊鏈等技術上。

數字簽名原理及其應用

簽名的作用簡單來說就是證明某個檔案上的內容確實是我寫的 我認同的,別人不能冒充我的簽名 不可偽造 我也不能否認上面的簽名是我的 不可抵賴 我們知道,手寫簽名之所以不能偽造,是因為每乙個人的筆跡都是獨一無二的,即使模仿,也可以通過專家鑑定分別出來。而不可抵賴,是因為每個人的筆跡都有固定特徵,這些特徵是...

數字簽名的原理和應用

在日常生活中,簽名的意義就是簽完你的名後,別人可以知道這件事是你做的,而由於每個人筆跡不同,你也無法否認這個名字是你籤的。同真實的簽名一樣,數字簽名也是用來證明某條資訊是本人發的,而且本人不可抵賴,他人不可偽造。通常是用非對稱加密 rsa 實現數字簽名,分為以下幾個步驟 1.計算訊息的摘要m 2.傳...

數字簽名原理

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