數字簽名的原理和應用
1.數字簽名的原理
在日常生活中,簽名的意義就是簽完你的名後,別人可以知道這件事是你做的,而由於每個人筆跡不同,你也無法否認這個名字是你籤的。同真實的簽名一樣,數字簽名也是用來證明某條資訊是本人發的,而且本人不可抵賴,他人不可偽造。
通常是用非對稱加密(RSA)實現數字簽名,分為以下幾個步驟:
1.計算訊息的摘要M
2.傳送方用自己的私鑰d對M進行加密,得到S(這裡叫作簽名,因為M不是一個需要加密的資訊,加密的目的是簽名),隨訊息一起發出
3.訊息傳送之後,接收方對訊息計算摘要M,再用傳送方的公鑰對S解密de’da,如果S==M,則說明是傳送方發的,由於其他人不知道d的值,所以其他人無法仿造這個加密,而只有傳送方知道d,他也無法否認這條資訊是他發的
2.先加密還是先簽名?
在上面這個過程中,如果在傳輸過程,傳送方想要對M加密,只讓接收方知道這個資訊,那他就要對M用接收方的公鑰加密,那是先簽名還是先加密嘞?
1.假設先加密再簽名
這時候中間人出現了,他擷取到這個資訊,用傳送方的公鑰解密後,得到訊息摘要,這時候,中間人就可以用自己的私鑰對這個資訊再重新簽名了啊!這就是中間人攻擊,接收方收到的訊息是正確的,但是他卻無法判斷訊息的傳送者是誰。
2.假設先簽名再加密
顯然更安全,
只有接收方能得知這個簽名後的訊息摘要M2,可以保證不會被篡改。
3.應用
1.網站認證使用數字簽名
我們訪問csdn網站,那怎麼知道這個網站是不是真的是csdn呢?
就是使用數字簽名了,csdn將自己的公鑰公開出去,並宣告只有自己持有私鑰,那使用者就可以用公鑰對簽名解密,比對是否與摘要相同,來判斷該網站是否為真正的csdn
2.保證資料完整性
軟體廠商為了保證自己程式碼不被他人更改,會對資料計算摘要後簽名。在執行時先檢查是否解密後的S與當前資料的摘要相同,如果程式碼或資料被篡改過,那麼解密後的簽名顯然不會與當前摘要相等。同時,其他人不知道我們的私鑰,也無法修改後重新簽名。
3.比特幣
比特幣是一種完全匿名的數字貨幣,它的身份認證是基於ECDSA。比特幣的賬戶地址就是對公鑰計算摘要得到的,向全世界公佈。而確認你是賬戶擁有者的唯一辦法就是看你有沒有賬戶對應的私鑰。對於比特幣中的任意一個交易記錄,只有當其中付款方的簽名是有效的,它才是有效的。如果賬戶私鑰丟失,那麼你將永遠地失去裡面的錢(相當於銀行卡丟了,沒法跟別人再交易了);一旦被駭客盜取,裡面的錢就完全歸駭客所有(駭客可以用私鑰簽名,交易,相當於駭客仿造你的筆跡跟別人籤合同)。
實際上不止rsa一種方法實現數字簽名,非對稱加密中還有DSA(基於離散對數問題),ECDSA(DSA的一個變種,基於橢圓曲線上的離散對數問題)也可用於簽名,但過程較rsa更為複雜,不作討論
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990899/viewspace-2743215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS逆向——應用簽名及重簽名原理iOS
- iOS逆向 - 應用簽名原理及重簽名 (重籤微信應用實戰)iOS
- 大話數字簽名
- iOS應⽤簽名原理淺析iOS
- 如何關閉win10的數字簽名_win10禁用數字簽名的方法Win10
- Android 應用簽名Android
- 給軟體數字簽名
- iOS應用重簽名ipa技術原理及流程iOS
- 文件數字簽名工作原理是什麼?文件簽名有什麼好處?哪些行業使用文件簽名證書?行業
- win10 如何禁用數字簽名 win10 關閉數字簽名方法Win10
- Android應用重簽名Android
- iOS應用簽名(上)iOS
- iOS應用簽名(下)iOS
- ActiveX控制元件數字簽名實踐(免費簽名)控制元件
- win10 禁止驗證數字簽名方法 win10 如何禁用數字簽名Win10
- windows10怎麼關閉數字簽名 win10永久關閉數字簽名的方法WindowsWin10
- 支付寶介面的數字簽名
- 安全基礎:數字信封、數字簽名、數字證書(加簽驗籤,加密解密)加密解密
- iOSApp簽名原理iOSAPP
- Java 新增數字簽名到Excel以及檢測、刪除簽名JavaExcel
- Java 操作PPT數字簽名(一):新增、檢測、刪除簽名Java
- win10如何永久禁用數字簽名_win10怎麼關閉禁用數字簽名Win10
- Java 新增、驗證PDF 數字簽名Java
- iOS逆向 應用重簽名+微信重簽名實戰iOS
- 詳解數字簽名的含義及作用
- IOS App簽名原理iOSAPP
- 區塊鏈能解決你的文件和數字簽名難題嗎?區塊鏈
- 使用者下載已簽名的軟體後 如何知道數字簽名是否可信
- 驅動沒有數字簽名的解決方案
- exe軟體如何進行數字簽名
- 程式碼簽名證書能給哪些應用程式進行簽名
- IOS 逆向開發(三)應用簽名iOS
- win10系統需要驅動數字簽名如何操作_win10需要數字簽名的驅動程式解決方法Win10
- C# 獲取PDF中的數字簽名證書C#
- 公鑰加密、數字簽名、訊息認證加密
- Window 7 驅動數字簽名解決方案
- 詳解移動和桌面應用程式的程式碼簽名過程
- 支付介面教程——公鑰與私鑰,雙鑰加密和數字簽名加密