數字簽名和數字證明書
數字簽名
在金融和商業等系統中許多業務都要求在單據上加以簽名或加蓋印章證實其真實性以備日後查驗在利用計算機網絡傳送報文時可將公開密鑰法用於電子(數字)簽名來代替傳統的簽名為使數字簽名能代替傳統的簽名必須滿足下述三個條件
() 接收者能夠核實發送者對報文的簽名
() 發送者事後不能抵賴其對報文的簽名
() 接收者無法偽造對報文的簽名
) 簡單數字簽名
在這種數字簽名方式中發送者A可使用私用密鑰Kda對明文P進行加密形成DKda(P)後傳送給接收者BB可利用A的公開密鑰Kea對DKda(P)進行解密得到EKea(DKda(P))=P如圖(a)所示
我們按照對數字簽名的三點基本要求進行分析後可得知
() 接收者能利用A的公開密鑰Kea對DKda(P)進行解密這便證實了發送者對報文的簽名
() 由於只有發送者A才能發送出DKda(P)密文故不容A進行抵賴
() 由於B沒有A所擁有的私用密鑰故B無法偽造對報文的簽名
由此可見圖 (a)所示的簡單方法可以實現對傳送的數據進行簽名但並不能達到保密的目的因為任何人都能接收DKda(P)且可用A的公開密鑰Kea對DKda(P)進行解密為使A所傳送的數據只能為B所接收必須采用保密數字簽名
) 保密數字簽名
為了實現在發送者A和接收者B之間的保密數字簽名要求A和B都具有密鑰再按照圖(b)所示的方法進行加密和解密
() 發送者A可用自己的私用密鑰Kda對明文P加密得到密文DKda(P)
() A再用B的公開密鑰Keb對DKda(P)進行加密得到EKeb(DKda(P))後送B
() B收到後先用私用密鑰Kdb進行解密即DKdb(EKeb(DKda(P)))=DKda(P)
() B再用A的公開密鑰Kea對DKda(P)進行解密得到EKea(DKda(P))=P
數字證明書(Certificate)
() 用戶A在使用數字證明書之前應先向認證機構CA申請數字證明書此時A應提供身份證明和希望使用的公開密鑰A
() CA在收到用戶A發來的申請報告後若決定接受其申請便發給A一份數字證明書在證明書中包括公開密鑰A和CA發證者的簽名等信息並對所有這些信息利用CA的私用密鑰進行加密(即CA進行數字簽名)
() 用戶A在向用戶B發送報文信息時由A用私用密鑰對報文加密(數字簽名)並連同已加密的數字證明書一起發送給B
() 為了能對所收到的數字證明書進行解密用戶B須向CA機構申請獲得CA的公開密鑰BCA收到用戶B的申請後可決定將公開密鑰B發送給用戶B
() 用戶B利用CA的公開密鑰B對數字證明書加以解密以確認該數字證明書確系原件並從數字證明書中獲得公開密鑰A並且也確認該公開密鑰A確系用戶A的
() 用戶B再利用公開密鑰A對用戶A發來的加密報文進行解密得到用戶A發來的報文的真實明文
——返回教材目錄
了解更多計算機相關基礎課程視頻
From:http://tw.wingwit.com/Article/program/czxt/201311/24329.html