Ⅰ 電子合同中的數字簽名防篡改,有什麼原理
在公鑰密碼學中,密鑰是由公開密鑰和私有密鑰組成的密鑰對。數字簽名就是用私有密鑰進行加密,接收方用公開密鑰進行解密。由於公開密鑰不能推算出私有密鑰,所以公開密鑰不會損壞私有密鑰的安全,公開密鑰無需保密可以公開傳播,而私有密鑰必須保密。
因此,當某人用其私有密鑰加密信息,能夠用TA的公開密鑰正確解密就可以肯定該消息是經過某人簽字的,因為其他人的公開密鑰不可能正確解密該加密信息,其他人也不可能擁有該人的私有密鑰而製造出該加密過的信息。
就其實質而言,數字簽名是接收方能夠向第三方證明接收到的消息及發送源的真實性而採取的一種安全措施,其使用可以保證發送方不能否認和偽造信息。
數字簽名的主要方式是:報文的發送方從報文文本中生成一個散列值(或報文摘要),發送方用自己的私有密鑰對這個散列值進行加密來形成發送方的數字簽名,然後這個數字簽名將作為報文的附件和報文一起發送給報文的接收方,報文的接收方首先從接收到的原始報文中計算出散列值(或報文摘要),接著再用發送方的公開密鑰來對報文附加的數字簽名進行解密,如果兩個散列值相同,那麼接收方就能確認該數字簽名是發送方的。
Ⅱ 電子簽名原理是什麼
簡單來說,電子簽名是利用哈希演算法與加密演算法實現的電子文件上直接簽字、蓋章的技術。為了保障簽署後的電子文件具備法律有效性,使用電子簽名簽署後的電子文件還需要具備簽署身份可識別、簽署內容不可篡改的特性。
但是,通過上述技術名詞解釋並不能直觀、易懂的說明電子簽名的原理,以下是通過還原電子簽名簽署的過程簡介實現原理:
場景:由於業務需要,你和我需要簽署一份合作協議。為方便起見,你將擬好的電子版合同文本在線發送給我簽署。
怎樣確保合同只有我可查看且不被他人惡意竊取?我又怎樣才能確定文件的發送人就是你呢?
關鍵點1:公鑰私鑰登場
為了滿足電子合同內容保密性和發送人認證的要求,我們了解到非對稱加密的加密方式。
非對稱加密:具有唯一對應的一對秘鑰,一個公鑰一個私鑰,公鑰所有人可見,而私鑰僅自己可見。
非對稱加密具有這樣的特性:用公鑰加密的文件只能用私鑰解密,而私鑰加密的文件只能用公鑰解密。
發送合同時,你將擬好的電子合同使用自己的私鑰加密後發送;接收合同時,如果能夠使用你的公鑰解密,則說明這份文件就是你發送的。
但是,我怎麼才能知道你的公鑰呢?
關鍵點2:政府出了個CA來幫忙
我了解到,政府授權了一個權威機構叫CA,可以提供網路身份認證的服務。
CA(Certificate Authority):全稱證書管理機構,即數字證書的申請、簽發及管理機關。其主要功能為:產生密鑰對、生成數字證書、分發密鑰、密鑰管理等。
數字證書:是由CA機構頒發的證明,它包含公鑰、公鑰擁有者名稱、CA的數字簽名、有效期、授權中心名稱、證書序列號等信息,可以通俗為理解個人或企業在「網路身份證」。
我向CA機構申請獲取你的公鑰,使用它對電子合同解密,解密成功則說明發送人就是你。文件發送人的身份確認了,那怎麼保障電子合同傳輸過程中未被篡改呢?
關鍵點3:哈希兄弟出場
有技術人員推薦了哈希演算法(摘要演算法),可以證明電子合同傳輸過程中是否被篡改。
哈希演算法:通過加密演算法將文本內容生成為一段代碼,即信息摘要,其主要特徵是加密過程不需要密鑰,經加密的數據無法被反向還原。也就是說,只有兩份完全相同的合同經過相同的哈希演算法才能得到相同的摘要。
發送合同時,你將電子合同原文和經哈希運算的摘要一起發送給我接收合同時,通過對合同原文進行同樣的哈希運算得到新的摘要,對比兩組摘要是否一致即可證明我接收的文件是否被篡改
但是,如果傳輸過程中文件原文與摘要同時被替換了怎麼辦?
關鍵點4:對稱加密來幫忙
除了上述的哈希演算法、非對稱加密、CA,為確保合同由發送到接收滿足三個要求,即:由你發送、只能發給我、不能被篡改,我們還需要應用新的加密方式:對稱加密。
對稱加密:採用單鑰密碼系統的加密方法,信息的加密和解密只能使用同一個密碼。
發送文件時:
1、你通過哈希運算得到原文摘要並使用私鑰對其加密,得到你的數字簽名,再將數字簽名和合同原文進行對稱加密,得到密文A——對原文加密
2、再通過CA獲得我的公鑰,對上述步驟中對稱加密的秘鑰進行非對稱加密,即我的「數字信封」——對秘鑰加密
3、將密文A和我的數字信封一起發送給我
數字簽名:用哈希演算法提取出源文件的摘要並用發送人的私鑰進行加密後的內容。
數字信封:用接收方的公鑰加密對稱秘鑰」,這就叫「給乙的數字信封。
接收文件時:
1、我使用自己的私鑰解密數字信封得到對稱秘鑰——能解開,說明是發給我的
2、再使用對稱秘鑰解密密文A,得到帶有你的數字簽名的原文
3、使用你的公鑰解密你的數字簽名,得到簽名中的原文摘要——能解開,說明發送者是你
4、使用相同的摘要演算法獲取原文摘要並與解密簽名中的摘要對比——摘要一致,則說明原文沒有被篡改
除了文件內容不可篡改,精確記錄簽署時間固定合同生效期限也十分重要,網路環境中怎樣怎麼確保合同簽署時間不可篡改呢?
關鍵點5:時間戳來證明
我又請教了專家,原來我們國家還有專門確定時間的法定授時中心,它可以在我們簽署的文件上加蓋「時間印跡」,即時間戳。
時間戳(time-stamp):書面簽署文件的時間是由簽署人自己寫上,而數字時間戳則由第三方認證單位(DTS)添加,以DTS收到文件的時間為依據,更精準、更有公信力。
至此,我們簽合同的時間精準記錄、合同內容不可篡改、雙方身份也真實有效,這下沒問題了!但是,簽署完的電子合同怎麼存儲呢?不管是哪一方簽署,日後產生糾紛都難免對合同存儲期間的安全性產生質疑。
關鍵點6:找個權威第三方來存證
聽說有專門的第三方電子數據存證機構,可以保存已簽署的電子合同數據,當用戶雙方對合同內容產生爭議時可申請出具具有公信力的證明。
合同簽署的最後一個問題:存儲問題也解決了!但唯一不足之處就是:簽署過程太麻煩!為保障電子合同有效性,我們用到了非對稱加密、哈希運算、時間戳等技術,還要CA機構、公證處等機構協助;
怎樣更簡單快捷地簽一份有效的電子合同呢?
關鍵點7:選擇可靠的第三方電子合同平台
根據《電子簽名法》規定,使用可靠的電子簽名簽署的電子合同具備與手寫簽字或蓋章的紙質合同同等的法律效力。
根據《電子簽名法》規定,符合下列條件的,視為可靠的電子簽名:
1)電子簽名製作數據用於電子簽名時,屬於電子簽名人專有
2)簽署時電子簽名製作數據僅由電子簽名人控制
3)簽署後對電子簽名的任何改動能夠被發現
4)簽署後對數據電文內容和形式的任何改動能夠被發現
結合上述電子合同簽署過程,我們可歸納總結有效的電子合同應關注以下幾個核心點:內容保密性、內容防篡改、明確簽訂身份、明確簽訂時間。
同時,為保障電子合同作為書面形式的證據能力,合同簽署全程還應當由權威第三方機構存儲公證。
商務部在《電子合同在線訂立流程規范》指出:「通過第三方(電子合同服務提供商)的電子合同訂立系統中訂立電子合同,才能保證其過程的公正性和結果的有效性」。
綜上,就是電子簽名各個環節中需涉及的實現原理。
Ⅲ 數字簽名的實現方法
數字簽名演算法依靠公鑰加密技術來實現的。在公鑰加密技術里,每一個使用者有一對密鑰:一把公鑰和一把私鑰。公鑰可以自由發布,但私鑰則秘密保存;還有一個要求就是要讓通過公鑰推算出私鑰的做法不可能實現。
普通的數字簽名演算法包括三種演算法:
1.密碼生成演算法;
2.標記演算法;
3.驗證演算法。
Ⅳ 數字簽名的原理是什麼
數字簽名採用了雙重加密的方法來實現防偽、防賴。其原理為:
1、被發送文件用SHA編碼加密產生128bit的數字摘要。
2、發送方用自己的私用密鑰對摘要再加密,這就形成了數字簽名
3、將原文和加密的摘要同時傳給對方
Ⅳ 簡述數字簽名和加密的基本原理及其區別 急!急!急!
數字簽名主要經過以下幾個過程:
信息發送者使用一單向散列函數(HASH函數)對信息生成信息摘要;
信息發送者使用自己的私鑰簽名信息摘要;
信息發送者把信息本身和已簽名的信息摘要一起發送出去;
信息接收者通過使用與信息發送者使用的同一個單向散列函數(HASH函數)對接收的信息本身生成新的信息摘要,再使用信息發送者的公鑰對信息摘要進行驗證,以確認信息發送者的身份和信息是否被修改過。
數字加密主要經過以下幾個過程:
當信息發送者需要發送信息時,首先生成一個對稱密鑰,用該對稱密鑰加密要發送的報文;
信息發送者用信息接收者的公鑰加密上述對稱密鑰;
信息發送者將第一步和第二步的結果結合在一起傳給信息接收者,稱為數字信封;
信息接收者使用自己的私鑰解密被加密的對稱密鑰,再用此對稱密鑰解密被發送方加密的密文,得到真正的原文。
數字簽名和數字加密的過程雖然都使用公開密鑰體系,但實現的過程正好相反,使用的密鑰對也不同。數字簽名使用的是發送方的密鑰對,發送方用自己的私有密鑰進行加密,接收方用發送方的公開密鑰進行解密,這是一個一對多的關系,任何擁有發送方公開密鑰的人都可以驗證數字簽名的正確性。數字加密則使用的是接收方的密鑰對,這是多對一的關系,任何知道接收方公開密鑰的人都可以向接收方發送加密信息,只有唯一擁有接收方私有密鑰的人才能對信息解密。另外,數字簽名只採用了非對稱密鑰加密演算法,它能保證發送信息的完整性、身份認證和不可否認性,而數字加密採用了對稱密鑰加密演算法和非對稱密鑰加密演算法相結合的方法,它能保證發送信息保密性。
Ⅵ 數字簽名的基本原理是什麼
數字簽名是基於非對稱密鑰加密技術與數字摘要技術的應用,是一個包含電子文件信息以及發送者身份並能夠鑒別發送者身份以及發送信息是否被篡改的一段數字串。
一段數字簽名數字串包含了電子文件經過Hash編碼後產生的數字摘要,即一個Hash函數值以及發送者的公鑰和私鑰三部分內容。
數字簽名有兩個作用,一是能確定消息確實是由發送方簽名並發出來的。二是數字簽名能確定數據電文內容是否被篡改,保證消息的完整性。數字簽名的基本工作流程如下:
發送加密
1.數字簽名用戶發送電子文件時,發送方通過哈希函數對電子數據文件進行加密生成數據摘要(digest);
2.數字簽名發送方用自己的私鑰對數據摘要進行加密,私鑰加密後的摘要即為數字簽名;
3.數字簽名和報文將一起發送給接收方。
接收解密
1.接收方首先用與發送方一樣的哈希函數從接收到的原始報文中計算出報文摘要;
2.接收方用發送方的提供的公鑰來對報文附加的數字簽名進行解密,得到一個數字摘要;
3.如果以上兩個摘要相一致,則可以確認文件內容沒有被篡改。
4.發送方的公鑰能夠對數字簽名進行解密,證明數字簽名由發送方發送。
以上過程逆向也可以進行,即當文件接受者想要回信時,可以先通過hash函數生成數字摘要,再用公鑰加密即可起到文件加密的作用,收信人(數字簽名擁有者)可以用私鑰解密查看文件數字摘要。
函數加密原理
Hash函數又叫加密散列函數,其特點在於正向輸出結果唯一性和逆向解密幾乎不可解,因此可用於與數據加密。
正向輸出容易且結果唯一:由數據正向計算對應的Hash值十分容易,且任何的輸入都可以生成一個特定Hash值的輸出,完全相同的數據輸入將得到相同的結果,但輸入數據稍有變化則將得到完全不同的結果。
Hash函數逆向不可解:由Hash值計算出其對應的數據極其困難,在當前科技條件下被視作不可能。
了解了數字簽名,我們順便來提一嘴數字證書的概念:
數字證書
由於網路上通信的雙方可能都不認識對方,那麼就需要第三者來介紹,這就是數字證書。數字證書由Certificate Authority( CA 認證中心)頒發。
首先A B雙方要互相信任對方證書。
然後就可以進行通信了,與上面的數字簽名相似。不同的是,使用了對稱加密。這是因為,非對稱加密在解密過程中,消耗的時間遠遠超過對稱加密。如果密文很長,那麼效率就比較低下了。但密鑰一般不會特別長,對對稱加密的密鑰的加解密可以提高效率。
Ⅶ 數字簽名的原理
數字簽名是附加在數據單元上的一些數據,或是對數據單元所作的密碼變換。這種數據或變換允許數據單元的接收者用以確認數據單元的來源和數據單元的完整性並保護數據,防止被人(例如接收者)進行偽造。
它是對電子形式的消息進行簽名的一種方法,一個簽名消息能在一個通信網路中傳輸。基於公鑰密碼體制和私鑰密碼體制都可以獲得數字簽名,主要是基於公鑰密碼體制的數字簽名。包括普通數字簽名和特殊數字簽名。
(7)加密原理實現數字簽名擴展閱讀:
實現方法
數字簽名演算法依靠公鑰加密技術來實現的。在公鑰加密技術里,每一個使用者有一對密鑰:一把公鑰和一把私鑰。公鑰可以自由發布,但私鑰則秘密保存;還有一個要求就是要讓通過公鑰推算出私鑰的做法不可能實現。
普通的數字簽名演算法包括三種演算法:
1.密碼生成演算法;
2.標記演算法;
3.驗證演算法。
Ⅷ 數字簽名的加密方式是怎樣的原理
數字簽名(又稱公鑰數字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑒別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。
每個人都有一對「鑰匙」(數字身份),其中一個只有她/他本人知道(密鑰),另一個公開的(公鑰)。簽名的時候用密鑰,驗證簽名的時候用公鑰。又因為任何人都可以落款聲稱她/他就是你,因此公鑰必須向接受者信任的人(身份認證機構)來注冊。注冊後身份認證機構給你發一數字證書。對文件簽名後,你把此數字證書連同文件及簽名一起發給接受者,接受者向身份認證機構求證是否真地是用你的密鑰簽發的文件。
公鑰加密系統允許任何人在發送信息時使用公鑰進行加密,數字簽名能夠讓信息接收者確認發送者的身份。當然,接收者不可能百分之百確信發送者的真實身份,而只能在密碼系統未被破譯的情況下才有理由確信。
鑒權的重要性在財務數據上表現得尤為突出。舉個例子,假設一家銀行將指令由它的分行傳輸到它的中央管理系統,指令的格式是(a,b),其中a是賬戶的賬號,而b是賬戶的現有金額。這時一位遠程客戶可以先存入100元,觀察傳輸的結果,然後接二連三的發送格式為(a,b)的指令。這種方法被稱作重放攻擊。
完整性。傳輸數據的雙方都總希望確認消息未在傳輸的過程中被修改。加密使得第三方想要讀取數據十分困難,然而第三方仍然能採取可行的方法在傳輸的過程中修改數據。一個通俗的例子就是同形攻擊:回想一下,還是上面的那家銀行從它的分行向它的中央管理系統發送格式為(a,b)的指令,其中a是賬號,而b是賬戶中的金額。一個遠程客戶可以先存100元,然後攔截傳輸結果,再傳輸(a,b3),這樣他就立刻變成百萬富翁了。
不可抵賴。在密文背景下,抵賴這個詞指的是不承認與消息有關的舉動(即聲稱消息來自第三方)。消息的接收方可以通過數字簽名來防止所有後續的抵賴行為,因為接收方可以出示簽名給別人看來證明信息的來源。
Ⅸ 數字簽名的原理和作用分別是什麼
數字簽名是通過一個單向函數對要傳送的報文進行處理得到的用以認證報文來源並核實報文是否發生變化的一個字母數字串。
在電子商務中,傳送的文件是通過數字簽名證明當事人身份與數據真實性的。數據加密是保護數據的最基本方法,但也只能防止第三者獲得真實數據。數字簽名則可以解決否認、偽造、篡改及冒充等問題。
要求:發送者事後不能否認發送的報文簽名、接收者能夠核實發送者發送的報文簽名、接收者不能偽造發送者的報文簽名、接收者不能對發送者的報文進行部分篡改、網路中的某一用戶不能冒充另一用戶作為發送者或接收者。
數字簽名的實現
目前的數字簽名是建立在公共密鑰體制基礎上,它是公用密鑰加密技術的另一類應用。它的主要方式是:報文的發送方從報文文本中生成一個128位的散列值(或報文摘要)。
發送方用自己的私人密鑰對這個散列值進行加密來形成發送方的數字簽名。這個數字簽名將作為報文的附件和報文一起發送給報文的接收方。
報文的接收方首先從接收到的原始報文中計算出128位的散列值(或報文摘要),再用發送方的公用密鑰來對報文附加的數字簽名進行解密。
如果兩個散列值相同、那麼接收方就能確認該數字簽名是發送方的。通過數字簽名能夠實現對原始報文的鑒別。
加入數字簽名和驗證的文件傳輸過程如下:
發送方首先用哈希函數從原文得到數字簽名,然後採用公開密鑰體系用發送方的私有密鑰對數字簽名進行加密,並把加密後的數字簽名附加在要發送的原文後面;
發送一方選擇一個秘密密鑰對文件進行加密,並把加密後的文件通過網路傳輸到接收方;
發送方用接收方的公開密鑰對密秘密鑰進行加密,並通過網路把加密後的秘密密鑰傳輸到接收方;
接受方使用自己的私有密鑰對密鑰信息進行解密,得到秘密密鑰的明文;
接收方用秘密密鑰對文件進行解密,得到經過加密的數字簽名;
接收方用發送方的公開密鑰對數字簽名進行解密,得到數字簽名的明文;
接收方用得到的明文和哈希函數重新計算數字簽名,並與解密後的數字簽名進行對比。如果兩個數字簽名是相同的,說明文件在傳輸過程中沒有被破壞。
Ⅹ 簡述數字簽名的原理
數字簽名就是附加在數據單元上的一些數據,或是對數據單元所作的密碼變換。這種數據或變換允許數據單元的接收者用以確認數據單元的來源和數據單元的完整性並保護數據,防止被人(例如接收者)進行偽造。
它是對電子形式的消息進行簽名的一種方法,一個簽名消息能在一個通信網路中傳輸。基於公鑰密碼體制和私鑰密碼體制都可以獲得數字簽名,主要是基於公鑰密碼體制的數字簽名。包括普通數字簽名和特殊數字簽名。
(10)加密原理實現數字簽名擴展閱讀:
數字簽名有兩種功效:一是能確定消息確實是由發送方簽名並發出來的,因為別人假冒不了發送方的簽名。二是數字簽名能確定消息的完整性。
因為數字簽名的特點是它代表了文件的特徵,文件如果發生改變,數字摘要的值也將發生變化。不同的文件將得到不同的數字摘要。 一次數字簽名涉及到一個哈希函數、發送者的公鑰、發送者的私鑰。」
數字簽名技術是將摘要信息用發送者的私鑰加密,與原文一起傳送給接收者。接收者只有用發送者的公鑰才能解密被加密的摘要信息,然後用HASH函數對收到的原文產生一個摘要信息,與解密的摘要信息對比。如果相同,則說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改過,因此數字簽名能夠驗證信息的完整性。