數字簽名的原理和應用

2021-10-12 03:08:44 字數 1343 閱讀 1457

在日常生活中,簽名的意義就是簽完你的名後,別人可以知道這件事是你做的,而由於每個人筆跡不同,你也無法否認這個名字是你籤的。同真實的簽名一樣,數字簽名也是用來證明某條資訊是本人發的,而且本人不可抵賴,他人不可偽造。

通常是用非對稱加密(rsa)實現數字簽名,分為以下幾個步驟:

1.計算訊息的摘要m

2.傳送方用自己的私鑰d對m進行加密,得到s(這裡叫作簽名,因為m不是乙個需要加密的資訊,加密的目的是簽名),隨訊息一起發出

3.訊息傳送之後,接收方對訊息計算摘要m,再用傳送方的公鑰對s解密de』da,如果s==m,則說明是傳送方發的,由於其他人不知道d的值,所以其他人無法仿造這個加密,而只有傳送方知道d,他也無法否認這條資訊是他發的

在上面這個過程中,如果在傳輸過程,傳送方想要對m加密,只讓接收方知道這個資訊,那他就要對m用接收方的公鑰加密,那是先簽名還是先加密嘞?

1.假設先加密再簽名

這時候中間人出現了,他擷取到這個資訊,用傳送方的公鑰解密後,得到訊息摘要,這時候,中間人就可以用自己的私鑰對這個資訊再重新簽名了啊!這就是中間人攻擊,接收方收到的訊息是正確的,但是他卻無法判斷訊息的傳送者是誰。

2.假設先簽名再加密

顯然更安全,只有接收方能得知這個簽名後的訊息摘要m2,可以保證不會被篡改。

1.**認證使用數字簽名

我們訪問csdn**,那怎麼知道這個**是不是真的是csdn呢?

就是使用數字簽名了,csdn將自己的公鑰公開出去,並宣告只有自己持有私鑰,那使用者就可以用公鑰對簽名解密,比對是否與摘要相同,來判斷該**是否為真正的csdn

2.保證資料完整性

軟體廠商為了保證自己**不被他人更改,會對資料計算摘要後簽名。在執行時先檢查是否解密後的s與當前資料的摘要相同,如果**或資料被篡改過,那麼解密後的簽名顯然不會與當前摘要相等。同時,其他人不知道我們的私鑰,也無法修改後重新簽名。

3.位元幣

位元幣是一種完全匿名的數字貨幣,它的身份認證是基於ecdsa。位元幣的賬戶位址就是對公鑰計算摘要得到的,向全世界公布。而確認你是賬戶擁有者的唯一辦法就是看你有沒有賬戶對應的私鑰。對於位元幣中的任意乙個交易記錄,只有當其中付款方的簽名是有效的,它才是有效的。如果賬戶私鑰丟失,那麼你將永遠地失去裡面的錢(相當於銀行卡丟了,沒法跟別人再交易了);一旦被黑客盜取,裡面的錢就完全歸黑客所有(黑客可以用私鑰簽名,交易,相當於黑客仿造你的筆跡跟別人簽合同)。

實際上不止rsa一種方法實現數字簽名,非對稱加密中還有dsa(基於離散對數問題),ecdsa(dsa的乙個變種,基於橢圓曲線上的離散對數問題)也可用於簽名,但過程較rsa更為複雜,不作討論

數字簽名原理及其應用

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

數字簽名的原理及其應用

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

數字簽名原理

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