傳送報文時,傳送方用乙個雜湊函式從報文文字中生成
報文摘要
,然後用自己的私人金鑰對這個摘要進行加密,這個加密後的摘要將作為報文的數字簽名和報文一起傳送給接收方,接收方首先用與傳送方一樣的雜湊函式從接收到的原始報文中計算出報文摘要,接著再用傳送方的公用金鑰來對報文附加的數字簽名進行解密,如果這兩個摘要相同、那麼接收方就能確認該數字簽名是傳送方的。 1:
傳送方將message, 用hash 生成digest
2: 傳送方用自己的private key 將 digest 加密,生成 signature
3: 傳送方將 message, signature 一起發給接收方
3: 接收方用傳送方的public key 將signature 解密,生成digest
4: 接收方將message,用hash 生成digest,
5: 比較2個digest, 如果相同,則證明message沒有篡改過。
但是不能證明public key + private key 的正確性
證明signature中的public key 的正確性
數字證書
是乙個經證書授權中心
數字簽名
的包含公開金鑰
擁有者資訊以及公開金鑰的檔案。最簡單的
證書包含乙個
公開金鑰
、名稱以及證書授權中心的
數字簽名。
1: ca的signature -- 用ca的public key 解密
2: 證書擁有人的public key
3: 證書擁有者的身份資訊
假如現在 alice 向 bob 傳送數字資訊,為了保證資訊傳送的保密性、真實性、完整性和不可否認性,需要對傳送的資訊進行數字加密和簽名,其傳送過程為:
1.alice 準備好要傳送的數字資訊(明文);
2.alice 對數字資訊進行雜湊運算,得到乙個資訊摘要;
3.alice 用自己的私鑰對資訊摘要進行加密得到 alice 的數字簽名,並將其附在數字資訊上;
4.alice 隨機產生乙個加密金鑰,並用次密碼對要傳送的資訊進行加密,形成密文;
5.alice 用 bob 的公鑰對剛才隨機產生的加密金鑰進行加密,將加密後的 des 金鑰連同密文一起傳送給bob;
6.bob 收到 alice 傳送來的密文和加密過的 des 金鑰,先用自己的私鑰對加密的 des 金鑰進行解密,得到 des 金鑰;
7.bob 然後用 des 金鑰對收到的密文進行解密,得到明文的數字資訊,然後將 des 金鑰拋棄;
8.bob 用 alice 的公鑰對 alice 的數字簽名進行解密,得到資訊摘要;
9.bob 用相同的雜湊演算法對收到的明文再進行一次雜湊運算,得到乙個新的資訊摘要;
10.bob 將收到的資訊摘要和新產生的資訊摘要進行比較,如果一致,說明收到的資訊沒有被修改過。
包括四步
1: 傳送端 用 signature 方式傳送
由於signature中的rsa 非對稱加密演算法 只能用於小資料量。所以還需要des對稱加密演算法,對全部message加密。
2: random 生成乙個隨機數,作為des對稱加密的密碼,對message+signature 加密。
其中隨機數本身用接收者的public key 加密。
3: 接收方用自己的private key 解密 隨機數,用隨機數和des演算法解密得到 message+signature
4: 利用傳送方的public key 解密signature ,驗證message 的正確性。
其他任何人都看不到任何message的內容。
數字簽名,數字證書
數字簽名 將 報文按雙方約定的hash 演算法計算得到乙個固定位數的 報文摘要。在 數學上保證 只要改動報文中任何一位,重新計算出的 報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。將該報文摘要值用傳送者的私人 金鑰加密 然後連同原報文一起傳送給接收者,而產生的報文即稱 數字簽名 數字...
數字簽名 數字證書
一 數字簽名 1.1 為什麼需要數字簽名?由於網路環境的複雜性,我們無法保證通訊的雙方是真是的,而且內容是完整的 沒被修改過的,因此才需要數字簽名。數字簽名類似於現實生活中的簽名,有以下兩種功能 1 確認通訊雙方的真實身份,別人假冒不了 2 能確認訊息的完整性。它是基於非對稱加密演算法。1.2 數字...
非對稱加密 數字簽名,數字證書
非對稱加密對我們現在來說,其實是比較常見的,https,git 管理,最新的 ain交易時,都使用到了非對稱加密做核心的資料傳輸來完成.而數字簽名,數字證書也是非對稱加密的衍生品,非對稱加密的主要實現是通過一對私鑰 privatekey 和公鑰 publickey 完成的,這個過程就是原始資訊用私鑰...