數(shù)字簽名介紹
一、概念
- 數(shù)字簽名: 也稱為公鑰數(shù)字簽名,是一種通過公鑰加密領(lǐng)域的技術(shù)來鑒別數(shù)字信息的方法
- 作用: 區(qū)塊鏈使用公鑰、私鑰加密解密信息,數(shù)字簽名在其中保證發(fā)送的信息不被篡改
二、分類
- 數(shù)字簽名算法包括:RSA(RSA加密算法 + 哈希算法)、DSA、ECDSA
- 雙向算法——加密(解密)算法
- 包括對稱加密(單秘鑰加密)——DES、3DES、AES
- 非對稱加密(公開秘鑰加密)——RSA、ECC
- 單向算法——加密算法
- 哈希算法——MD5、SHA-1、SHA-256、SHA-512
三、數(shù)字簽名的兩種運算過程
1、簽名過程
- 簽名:即指使用私鑰處理信息或因信息的哈希值而產(chǎn)生簽名的過程
- 簽名使用解密公式
2、驗證過程
- 驗證:指使用公鑰驗證簽名的真實性
- 驗證使用加密公式
RSA數(shù)字簽名算法
-
場景假設(shè):小明向小紅借了一筆錢,需要寫一張借條,紙質(zhì)版的借條我們可以使用筆跡簽名來鑒定簽名者的身份是小明,然后通過肉眼觀察確保文件內(nèi)容,但如果是電子版的借條就需要使用數(shù)字簽名來保證了
-
具體過程:
-
(1)小明完成對文件的數(shù)字簽名:
- 小明通過RSA算法生成自己的私鑰和公鑰,對文件進行哈希運算,得出文件哈希值H,
- 使用私鑰根據(jù)RSA解密公式對文件哈希值進行簽名運算,得出數(shù)字簽名S
-
(2)公鑰、文件及數(shù)字簽名發(fā)送到互聯(lián)網(wǎng)上
-
(3)小紅完成簽名驗證
- 小紅使用公鑰根據(jù)RSA加密共識對數(shù)字簽名進行驗證運算,得出文件哈希值H
- 同時對文件進行哈希運算,得出文件哈希值
- 將者兩個文件哈希值進行對比,若兩者相同,則證明簽名成立,不同則簽名不成立
-
?
-
如何保證數(shù)據(jù)文件沒被篡改?
- 若文件被篡改,則文件的哈希值就會發(fā)生變化,兩個文件哈希值就會不相同,簽名驗證也就不能通過
-
如何保證文件是小明本人簽署的?
- 數(shù)字簽名只能由私鑰擁有者生成,也就確保了簽字者身份一定是私鑰擁有者的,但不能確定私鑰擁有者一定是小明
- 因為其他人自己也可生成一套私鑰公鑰,并進行數(shù)字簽名冒充成小明簽名,小紅使用冒充者的私鑰和公鑰同樣可以驗證通過
- 需要數(shù)字證書來保證私鑰公鑰生成者是小明
- 小明將公鑰及部分個人身份信息發(fā)送到某個權(quán)威公正的證書頒發(fā)(簡稱CA)機構(gòu)
- CA機構(gòu)在核實小明身份后,將頒發(fā)一個數(shù)字證書
- 該證書內(nèi)包含了小明的身份信息和其公鑰數(shù)據(jù),也就證明了該公鑰生成者的身份為小明
- 小明將該證書放到互聯(lián)網(wǎng)上,然后小紅通過該證書可以確定哪一個公鑰是小明的
- 其他人的數(shù)字簽名使用小明公鑰驗證出的結(jié)果會發(fā)生變化,也就不能通過數(shù)字簽名驗證
- 數(shù)字簽名只能由私鑰擁有者生成,也就確保了簽字者身份一定是私鑰擁有者的,但不能確定私鑰擁有者一定是小明
? 文章來源:http://www.zghlxwxcb.cn/news/detail-829412.html
-
如何確保數(shù)字簽名不被偽造?
- 數(shù)字證書是經(jīng)過CA機構(gòu)數(shù)字簽名的
- CA機構(gòu)自己也生成一套公鑰私鑰
- 使用私鑰對“小明身份信息及其公鑰數(shù)據(jù)”這一文件內(nèi)容進行數(shù)字簽名,并放到數(shù)字證書中
- 數(shù)字證書相當于文件和數(shù)字簽名的組合體
- 在每個人電腦或手機系統(tǒng)里,默認安裝了根證書
- 根證書里記錄了可以信賴的CA機構(gòu)信息及其公鑰
- 根證書預(yù)先安裝在系統(tǒng)中可以杜絕CA機構(gòu)公鑰被偽造的可能
- 通過CA機構(gòu)公鑰就可以驗證數(shù)字證書里的數(shù)字簽名,從而確保了數(shù)字證書的不可偽造性
- 使用私鑰對“小明身份信息及其公鑰數(shù)據(jù)”這一文件內(nèi)容進行數(shù)字簽名,并放到數(shù)字證書中
? 文章來源地址http://www.zghlxwxcb.cn/news/detail-829412.html
四、比特幣簽名的具體過程描述
- 大體過程:由比特幣轉(zhuǎn)賬的轉(zhuǎn)出方生成的一段防偽造的字符串,可以用來驗證簽名者的身份和簽名時間,從而保證被簽信息是否真實正確
-
假設(shè)用戶A要給用戶B轉(zhuǎn)賬具體流程:
- 用戶A在轉(zhuǎn)賬前需要先將交易信息縮短成一段字符串,用自己的私鑰進行加密以形成數(shù)字簽名
- 用戶A將交易信息、數(shù)字簽名和公鑰都廣播出去,礦工會將這些信息記錄下來,并用A的公鑰進行驗證
在轉(zhuǎn)賬前需要先將交易信息縮短成一段字符串,用自己的私鑰進行加密以形成數(shù)字簽名
到了這里,關(guān)于數(shù)字簽名介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!