數字簽名原理剖析

2021-05-08 07:45:38 字數 4656 閱讀 5510

本系列通過通俗易懂的講解,讓您就像讀**一般,輕輕鬆鬆就能理解數字簽名的基本原理和應用方法(即使您是乙個並不精通計算機的企業老總,也能讀懂本篇文章)。然後我們再逐步深入技術細節,最後將給出乙個在b/s資訊系統中使用數字簽名的demo。

由於數字簽名基於非對稱加密技術,所以我們需要先囉嗦一下對稱加密和非對稱加密技術。

對稱加密

作為加密的乙個例項,我將使用由我杜撰的「景氏替換加密演算法」演示一下加密過程。

明文:good good study, day day up.

金鑰:google

景氏替換加密演算法:將明文中的所有的字母「d」替換成金鑰。

密文:將「good good study, day day up.」中的所有字母「d」替換成「google」,就得到密文「googoogle googoogle stugoogley,  googleay googleay up.」。這個密文亂得還可以吧?一般人看了肯定不知道它是什麼意思。

那麼什麼是解密呢?解密就是把密文再變回明文的過程。

例如「景氏替換解密演算法」就是:將密文中所有與金鑰相同的字串替換成「d」。

密文:googoogle googoogle stugoogley,  googleay googleay up.

金鑰:google

景氏替換解密演算法:將密文中所有與金鑰相同的字串替換成「d」。

明文:將「googoogle googoogle stugoogley,  googleay googleay up.」中的所有「google」替換成「d」,就得到了明文「good good study, day day up.」。

您肯定已經注意到了,我們在進行加密和解密時使用的金鑰必須是相同的,例如在上例中,加密和解密都必須使用相同的金鑰「google」。所以像「景氏替換加密演算法」這種就被稱為對稱加密演算法。目前最為流行的對稱加密演算法是des和aes,此外,對稱加密演算法還有idea、feal、loki、lucifer、rc2、rc4、rc5、blow fish、gost、cast、safer、seal等。winrar的檔案加密功能就是使用的aes加密演算法。

非對稱加密

非對稱加密演算法是一類與眾不同的加密演算法,它的金鑰不是1個,而是2個(一對),我們先姑且稱它們為金鑰k1和金鑰k2。非對稱加密演算法的特點是,如果用金鑰k1進行加密,則有且僅有金鑰k2能進行解密;反之,如果使用金鑰k2進行了加密,則有且僅有金鑰k1能進行解密。注意「有且僅有」的意思——如果用金鑰k1進行了加密,是不能用金鑰k1進行解密的;同樣,如果用金鑰k2進行了加密,也無法用金鑰k2進行解密。這是乙個非常重要的特性,至於如何在實際中運用這個特性,請看下文。

我想給clark傳送乙個*****,又怕被他的老婆發現......

後來......

clark,俺這個月手頭有點緊......

我是1-2-3,我真的是1-2-3,我是真的1-2-3

順便提一句,不但人可以申請數字證書,裝置(例如web伺服器)也可以申請數字證書(叫作裝置證書)。利用數字簽名的驗證功能,就可以驗證伺服器的身份了,這可是防釣魚的終極解決方案呦。

思考題如果clark每次都向我傳送相同的字串(例如「1234」),而不是每次在鍵盤上胡亂地(隨機地)敲一些字元,clark的老婆就會利用clark的懶惰模仿我跟clark聊qq,這是為什麼?

本系列通過通俗易懂的講解,讓您就像讀**一般,輕輕鬆鬆就能理解數字簽名的基本原理和應用方法(即使您是乙個並不精通計算機的企業老總,也能讀懂本篇文章)。然後我們再逐步深入技術細節,最後將給出乙個在b/s資訊系統中使用數字簽名的demo。

由於數字簽名基於非對稱加密技術,所以我們需要先囉嗦一下對稱加密和非對稱加密技術。

對稱加密

作為加密的乙個例項,我將使用由我杜撰的「景氏替換加密演算法」演示一下加密過程。

明文:good good study, day day up.

金鑰:google

景氏替換加密演算法:將明文中的所有的字母「d」替換成金鑰。

密文:將「good good study, day day up.」中的所有字母「d」替換成「google」,就得到密文「googoogle googoogle stugoogley,  googleay googleay up.」。這個密文亂得還可以吧?一般人看了肯定不知道它是什麼意思。

那麼什麼是解密呢?解密就是把密文再變回明文的過程。

例如「景氏替換解密演算法」就是:將密文中所有與金鑰相同的字串替換成「d」。

密文:googoogle googoogle stugoogley,  googleay googleay up.

金鑰:google

景氏替換解密演算法:將密文中所有與金鑰相同的字串替換成「d」。

明文:將「googoogle googoogle stugoogley,  googleay googleay up.」中的所有「google」替換成「d」,就得到了明文「good good study, day day up.」。

您肯定已經注意到了,我們在進行加密和解密時使用的金鑰必須是相同的,例如在上例中,加密和解密都必須使用相同的金鑰「google」。所以像「景氏替換加密演算法」這種就被稱為對稱加密演算法。目前最為流行的對稱加密演算法是des和aes,此外,對稱加密演算法還有idea、feal、loki、lucifer、rc2、rc4、rc5、blow fish、gost、cast、safer、seal等。winrar的檔案加密功能就是使用的aes加密演算法。

非對稱加密

非對稱加密演算法是一類與眾不同的加密演算法,它的金鑰不是1個,而是2個(一對),我們先姑且稱它們為金鑰k1和金鑰k2。非對稱加密演算法的特點是,如果用金鑰k1進行加密,則有且僅有金鑰k2能進行解密;反之,如果使用金鑰k2進行了加密,則有且僅有金鑰k1能進行解密。注意「有且僅有」的意思——如果用金鑰k1進行了加密,是不能用金鑰k1進行解密的;同樣,如果用金鑰k2進行了加密,也無法用金鑰k2進行解密。這是乙個非常重要的特性,至於如何在實際中運用這個特性,請看下文。

我想給clark傳送乙個*****,又怕被他的老婆發現......

後來......

clark,俺這個月手頭有點緊......

我是1-2-3,我真的是1-2-3,我是真的1-2-3

順便提一句,不但人可以申請數字證書,裝置(例如web伺服器)也可以申請數字證書(叫作裝置證書)。利用數字簽名的驗證功能,就可以驗證伺服器的身份了,這可是防釣魚的終極解決方案呦。

思考題如果clark每次都向我傳送相同的字串(例如「1234」),而不是每次在鍵盤上胡亂地(隨機地)敲一些字元,clark的老婆就會利用clark的懶惰模仿我跟clark聊qq,這是為什麼?

由於數字簽名基於非對稱加密技術,所以我們需要先囉嗦一下對稱加密和非對稱加密技術。

對稱加密

作為加密的乙個例項,我將使用由我杜撰的「景氏替換加密演算法」演示一下加密過程。

明文:good good study, day day up.

金鑰:google

景氏替換加密演算法:將明文中的所有的字母「d」替換成金鑰。

密文:將「good good study, day day up.」中的所有字母「d」替換成「google」,就得到密文「googoogle googoogle stugoogley,  googleay googleay up.」。這個密文亂得還可以吧?一般人看了肯定不知道它是什麼意思。

那麼什麼是解密呢?解密就是把密文再變回明文的過程。

例如「景氏替換解密演算法」就是:將密文中所有與金鑰相同的字串替換成「d」。

密文:googoogle googoogle stugoogley,  googleay googleay up.

金鑰:google

景氏替換解密演算法:將密文中所有與金鑰相同的字串替換成「d」。

明文:將「googoogle googoogle stugoogley,  googleay googleay up.」中的所有「google」替換成「d」,就得到了明文「good good study, day day up.」。

您肯定已經注意到了,我們在進行加密和解密時使用的金鑰必須是相同的,例如在上例中,加密和解密都必須使用相同的金鑰「google」。所以像「景氏替換加密演算法」這種就被稱為對稱加密演算法。目前最為流行的對稱加密演算法是des和aes,此外,對稱加密演算法還有idea、feal、loki、lucifer、rc2、rc4、rc5、blow fish、gost、cast、safer、seal等。winrar的檔案加密功能就是使用的aes加密演算法。

非對稱加密

非對稱加密演算法是一類與眾不同的加密演算法,它的金鑰不是1個,而是2個(一對),我們先姑且稱它們為金鑰k1和金鑰k2。非對稱加密演算法的特點是,如果用金鑰k1進行加密,則有且僅有金鑰k2能進行解密;反之,如果使用金鑰k2進行了加密,則有且僅有金鑰k1能進行解密。注意「有且僅有」的意思——如果用金鑰k1進行了加密,是不能用金鑰k1進行解密的;同樣,如果用金鑰k2進行了加密,也無法用金鑰k2進行解密。這是乙個非常重要的特性,至於如何在實際中運用這個特性,請看下文。

我想給clark傳送乙個*****,又怕被他的老婆發現......

後來......

clark,俺這個月手頭有點緊......

我是1-2-3,我真的是1-2-3,我是真的1-2-3

順便提一句,不但人可以申請數字證書,裝置(例如web伺服器)也可以申請數字證書(叫作裝置證書)。利用數字簽名的驗證功能,就可以驗證伺服器的身份了,這可是防釣魚的終極解決方案呦。

思考題如果clark每次都向我傳送相同的字串(例如「1234」),而不是每次在鍵盤上胡亂地(隨機地)敲一些字元,clark的老婆就會利用clark的懶惰模仿我跟clark聊qq,這是為什麼?

數字簽名原理

數字簽名是一種確保資料完整性和原始性的方法。數字簽名可以提供有力的證據,表明自從資料被簽名以來資料尚未發生更改,並且它可以確認對資料簽名的人或實體的身份。數字簽名實現了 完整性 和 認可性 這兩項重要的安全功能,而這是實施安全電子商務的基本要求。當資料以明文或未加密形式分發時,通常使用數字簽名。在這...

數字簽名原理

數字簽名是一種確保資料完整性和原始性的方法。數字簽名可以提供有力的證據,表明自從資料被簽名以來資料尚未發生更改,並且它可以確認對資料簽名的人或實體的身份。數字簽名實現了 完整性 和 認可性 這兩項重要的安全功能,而這是實施安全電子商務的基本要求。當資料以明文或未加密形式分發時,通常使用數字簽名。在這...

數字簽名 原理

2.簽名的生成和驗證 3.數字簽名的方法 4.數字簽名無法解決的問題 數字簽名 訊息到底是誰寫的 數字簽名是一種將相當於現實世界中的蓋章 簽字的功能在計算機世界中進行實現的技術。使用數字簽名可以識別篡改和偽裝,還可以防止否認。通過上篇中介紹的訊息認證碼,可以識別訊息是否被篡改或者傳送者身份是否被偽裝...