什么是數(shù)字簽名?如何制作數(shù)字簽名?
數(shù)字簽名是用于驗證數(shù)字?jǐn)?shù)據(jù)的真實性和完整性的加密機(jī)制。我們可能會認(rèn)為它是常見手寫簽名的數(shù)字版本,但是它更復(fù)雜,更安全。
簡而言之,數(shù)字簽名是附加在消息或文檔上的一段代碼。生成代碼后,可以證明該消息在從發(fā)送方發(fā)送到接收方時未被篡改。
通過加密保護(hù)通信的概念可以追溯到遠(yuǎn)古時代,但是隨著1970年代公鑰加密(PKC)的發(fā)展,數(shù)字簽名方案成為可能。因此,要了解數(shù)字簽名的工作方式,您首先需要了解哈希函數(shù)和公共密鑰密碼學(xué)的基礎(chǔ)知識。
哈希函數(shù)
散列是數(shù)字簽名系統(tǒng)的關(guān)鍵元素之一。散列涉及將任何大小的數(shù)據(jù)轉(zhuǎn)換為固定大小的值。這是通過稱為哈希函數(shù)的特殊算法完成的。哈希函數(shù)產(chǎn)生的結(jié)果值稱為哈希值或消息摘要。
當(dāng)與加密結(jié)合使用時,可以使用所謂的加密哈希函數(shù)來生成可用作唯一數(shù)字指紋的哈希值(摘要)。這意味著輸入數(shù)據(jù)(消息)的任何更改都將導(dǎo)致完全不同的結(jié)果(哈希值)。這就是為什么加密哈希函數(shù)被廣泛用于驗證數(shù)字?jǐn)?shù)據(jù)的真實性的原因。
公鑰密碼術(shù)(PKC)
公鑰密碼術(shù)(PKC)是指使用一對密鑰組成的加密系統(tǒng),該密鑰對包括一個公鑰和一個私鑰。這兩個密鑰在數(shù)學(xué)上相關(guān),并且可以用于數(shù)據(jù)加密和數(shù)字簽名。
作為一種加密工具,PKC 比最基本的方法對稱加密更安全。較早的系統(tǒng)需要相同的密鑰來加密和解密信息,但是PKC使用公共密鑰加密數(shù)據(jù),并使用相應(yīng)的私有密鑰進(jìn)行數(shù)據(jù)解密。
此外,PKC方案可以應(yīng)用于數(shù)字簽名生成。基本上,這涉及通過簽名者的私鑰對消息(或數(shù)字?jǐn)?shù)據(jù))進(jìn)行哈希處理。然后,郵件收件人可以使用簽名者提供的公共密鑰來驗證簽名是否有效。
在某些情況下,數(shù)字簽名可能包括加密,但并非總是如此。例如,比特幣區(qū)塊鏈?zhǔn)褂肞KC和數(shù)字簽名,但是與許多人相反,該過程不包括加密。嚴(yán)格來說,比特幣使用橢圓曲線數(shù)字簽名算法(ECDSA)來驗證交易。
如何制作數(shù)字簽名?
在加密世界中,數(shù)字簽名系統(tǒng)通常包含三個基本步驟:哈希,簽名和驗證。
數(shù)據(jù)散列
第一步是對消息或數(shù)字?jǐn)?shù)據(jù)進(jìn)行哈希處理。這是通過使用哈希算法提交數(shù)據(jù)以生成哈希值(例如,消息摘要)來完成的。如前所述,消息大小可以有很大的不同,但是當(dāng)進(jìn)行散列處理時,它們將具有相同長度的散列。這是哈希函數(shù)的最基本屬性。
但是,對數(shù)據(jù)進(jìn)行哈希處理以生成數(shù)字簽名不是必需的,您還可以使用私鑰對根本沒有哈希的消息進(jìn)行簽名。但是,在使用加密貨幣的情況下,總是對數(shù)據(jù)進(jìn)行哈希處理,因為處理固定長度的摘要會簡化整個過程。
簽名
對信息進(jìn)行哈希處理后,需要消息發(fā)送者的簽名。這是使用公鑰加密的時刻。數(shù)字簽名算法有很多不同的類型,每種都有自己的機(jī)制。但是,默認(rèn)情況下,散列消息使用私鑰簽名,并且郵件收件人可以使用相應(yīng)的公共密鑰(由簽名者提供)進(jìn)行驗證。
換句話說,如果在生成簽名時不包括私鑰,則郵件接收者將無法使用相應(yīng)的公鑰來對其進(jìn)行驗證。公鑰和私鑰都是由消息發(fā)送者生成的,但是只有公鑰才與收件人共享。
重要的是要注意,數(shù)字簽名與每個消息的內(nèi)容直接相關(guān)。因此,與手寫簽名不同,每個數(shù)字簽名的消息將具有不同的數(shù)字簽名。
驗證
讓我們以一個示例來說明最終驗證階段的整個過程。假設(shè)愛麗絲(Alice)向鮑勃(Bob)寫了一條消息,對其進(jìn)行了哈希處理,然后根據(jù)哈希值和私鑰生成了數(shù)字簽名。該簽名將用作特定消息的唯一數(shù)字指紋。
Bob收到消息后,可以使用Alice的公鑰來驗證數(shù)字簽名。這樣,Bob可以確保簽名是由Alice生成的,因為只有Alice(至少,正如我們期望的那樣)具有與公鑰相對應(yīng)的私鑰。
結(jié)果,Alice必須保持她的私鑰安全。如果有人獲得了Alice的私鑰,則可以生成數(shù)字簽名并假裝為Alice。就比特幣而言,這意味著有人可以在未經(jīng)許可的情況下移動或使用Alice的比特幣。
為什么數(shù)字簽名很重要?
數(shù)字簽名通常用于實現(xiàn)三個結(jié)果:數(shù)據(jù)完整性,真實性和不可否認(rèn)性。
- 數(shù)據(jù)完整性:Bob可以驗證傳輸過程中Alice的消息沒有更改。如果消息被修改,將生成完全不同的簽名。
- 真實性:只要保持Alice的私鑰安全,鮑勃就可以驗證數(shù)字簽名是由Alice而不是其他任何人生成的。
- 不可否認(rèn)性:除非出于某些特定原因公開了Alice的私鑰,否則一旦生成簽名,Alice將無法否認(rèn)他或她已經(jīng)對其進(jìn)行簽名。
應(yīng)用實例
數(shù)字簽名可以應(yīng)用于各種數(shù)字文檔和證書。因此,數(shù)字簽名以多種方式使用,最常見的用例是:
- 信息技術(shù):用于增強(qiáng)Internet通信系統(tǒng)的安全性。
- 財務(wù):數(shù)字簽名可用于審計,費用報告,貸款協(xié)議等。
- 法律:數(shù)字簽名可用于所有類型的商業(yè)和法律協(xié)議,包括政府文件。
- 醫(yī)療:數(shù)字簽名可用于防止虛假處方和醫(yī)療記錄。
- 區(qū)塊鏈:數(shù)字簽名方案確保只有那些擁有加密貨幣合法所有權(quán)的人(除非私鑰被泄露)才能簽署交易以進(jìn)行資金轉(zhuǎn)移。
余量
數(shù)字簽名方案面臨的主要挑戰(zhàn)來自三個最低要求。
- 算法:數(shù)字簽名方案中使用的算法級別很重要。這包括選擇一個受信任的哈希函數(shù)和一個加密系統(tǒng)。
- 實現(xiàn):如果算法不錯,但實現(xiàn)不好,則數(shù)字簽名系統(tǒng)將存在缺陷。
- 私鑰:如果私鑰泄漏或被泄露,則真實性和不可否認(rèn)屬性將不再有效。如果加密貨幣用戶丟失其私鑰,則可能導(dǎo)致重大的財務(wù)損失。
數(shù)字簽名與電子簽名
簡而言之,數(shù)字簽名與某些類型的電子簽名相關(guān)聯(lián),這意味著如何對文檔和消息進(jìn)行電子簽名。因此,所有數(shù)字簽名都是電子簽名,但是電子簽名并不總是數(shù)字簽名。
它們之間的主要區(qū)別在于身份驗證方法。數(shù)字簽名使用加密系統(tǒng),例如哈希函數(shù), 公共密鑰密碼學(xué)和密碼學(xué)。
最后
哈希函數(shù)和公共密鑰密碼術(shù)是數(shù)字簽名系統(tǒng)的核心,并在當(dāng)今廣泛的應(yīng)用中得到使用。正確實施后,數(shù)字簽名可以提高安全性,確保完整性并啟用任何類型的數(shù)字?jǐn)?shù)據(jù)的身份驗證。
在區(qū)塊鏈?zhǔn)澜缰校瑪?shù)字簽名用于簽署和批準(zhǔn)加密貨幣交易。該簽名在比特幣中尤其重要,因為只有擁有相應(yīng)私鑰的人才能使用該硬幣。
電子簽名和數(shù)字簽名已經(jīng)使用了很多年,但是仍有很大的增長空間。當(dāng)今,許多官僚機(jī)構(gòu)仍以書面工作為基礎(chǔ),但是隨著我們轉(zhuǎn)向更數(shù)字化的系統(tǒng),將會采用更多的數(shù)字簽名方案。
以上就是什么是數(shù)字簽名?如何制作數(shù)字簽名?的詳細(xì)內(nèi)容,更多關(guān)于數(shù)字簽名制作詳解的資料請關(guān)注腳本之家其它相關(guān)文章!
你可能感興趣的文章
-
什么是多簽錢包 一文解讀多重簽名錢包優(yōu)缺點及應(yīng)用
本文將向你說明V神也贊賞的多簽錢包(Multisig Wallet)是什么、它的優(yōu)缺點,和應(yīng)用場景是什么?以及簡介目前最受歡迎的多簽錢包方案…
2023-06-29 -
錢包簽名會被盜嗎?錢包簽名授權(quán)安全嗎?
這篇文章主要介紹了錢包簽名會被盜嗎?錢包簽名授權(quán)安全嗎?的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-05-11 -
什么是多重簽名錢包(Multisig Wallet)?
這篇文章主要介紹了什么是多重簽名錢包(Multisig Wallet)?的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-02-16 -
區(qū)塊鏈知識:Schnorr 簽名如何提升比特幣
這篇文章主要介紹了區(qū)塊鏈知識:Schnorr 簽名如何提升比特幣的相關(guān)資料,希望這篇關(guān)于Schnorr簽名如何提升比特幣的文章,能夠幫助到各位朋友對Schnorr簽名的深入了解?!?/p> 2021-12-13
-
什么是CGMiner?使用CGMiner挖掘數(shù)字貨幣操作教程
這篇文章主要介紹了什么是CGMiner?使用CGMiner挖掘數(shù)字貨幣操作教程的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-05-18 -
一文分析為什么Web3需要數(shù)字身份?
這篇文章主要介紹了一文分析為什么Web3需要數(shù)字身份?的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-04-26 -
區(qū)塊鏈中的智能合約是什么?如何用智能合約來建立數(shù)字信任社會
這篇文章主要介紹了區(qū)塊鏈中的智能合約是什么?如何用智能合約來建立數(shù)字信任社會的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-04-18 -
什么是數(shù)字貨幣挖礦?數(shù)字貨幣的挖礦到底是怎么挖的?
這篇文章主要介紹了什么是數(shù)字貨幣挖礦?數(shù)字貨幣的挖礦到底是怎么挖的?的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-04-17 -
幣圈一般都在哪看資訊_前十?dāng)?shù)字貨幣app排名匯總
這篇文章主要介紹了幣圈一般都在哪看資訊_前十?dāng)?shù)字貨幣app排名匯總的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-03-23 -
冷錢包真的是最佳選擇嗎?這樣存儲數(shù)字貨幣更安全好用
這篇文章主要介紹了冷錢包真的是最佳選擇嗎?這樣存儲數(shù)字貨幣更安全好用的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹…
2023-02-28