對稱密碼體制進行數字簽名

2021-03-31 08:56:59 字數 1523 閱讀 7161

今天,我來給大家簡單介紹一下用對稱密碼體制進行數字簽名,也許好多人聽過用

公鑰密碼體制進行數字簽名的,還沒有聽過這對稱密碼體制也可用來簽名。但我們現在

用得最多的當然是用公鑰密碼體制進行數字簽名的。

先說說數字簽名的功能。數字簽名可以解決否認、偽造、篡改及冒充等問題、

凡是需要對使用者的身份進行判斷的情況都可以使用數字簽名,比如加密信件、商

務信函、定貨購買系統、遠端金融交易、自動模式處理等等。

數字簽名在資訊保安的五大服務中主要是提供的是抗否認服務。資料簽名一般不採用

直接對資料進行簽名(好多資料上說是加密,這實際上是不對的雖然加密與簽名用的是加密

演算法,但是提供的安全服務與處理時是有一點小小的區別的),而是傳送方對整個明文進行

加密變換----如使用md5雜湊演算法,得到乙個雜湊值,將雜湊值進行簽名處理。

好了,說了這麼多的準備工作,該進入正題了,我這裡是由例子講解,設a:傳送方

b:接收方  另外,當然還要乙個a與b都信任的乙個機構,這個機構能提供金鑰的生成與分發

並且在通訊雙方發生爭執時能供確定地,公證地,能作為法律依據的裁定,說得通俗點就是

具有類似裁判的作用,我這裡設它為ca

當然,這次簽名過程中,a、與b在此過程中都要與ca進行通訊,所以a,b都有與ca通訊

的秘密金鑰,我們暫且設為ka與kb,也就是(a,ca,ka),(b,ca,kb)。

過程如下進行:

1、使用者a用自己的秘密金鑰加密資料報文p等到了密文ka(p),並且發給可信任機構ca。

2、ca用ka對密文ka(p)進行解密得到了明文p,然後建立乙個由a的名字和位址、日期d

初始的明文p組成乙個新的報文(a,d,p),這裡的日期d用於以後認證與作證

然後再用個對任何人都不知的金鑰k加密新的報文(a,d,p),從而得到新密文

k((a,d,p))。並把這個密文k((a,d,p))回發給傳送方a

3、這時,傳送方a把這個密文k((a,d,p))發給接收方b。進行a與b的通訊。

4、接收方b把k((a,d,p))發給ca,請求得到報文資料(當然這裡是對b與ca來說的,

實質上對其它使用者來說這個報文資料是以kb加密的密文) ,ca把k((a,d,p))

解密得到(a,d,p),並且用kb加密得到了kb((a,d,p)),然後嘛就發給b了。

5、b用自己的金鑰kb解密得到了(a,d,p),這就是a與b通訊的明文了。

如何抗否認過程:

如果傳送方a否認曾發過p給b的話,則b可以把密文k((a,d,p))提供給法官

法官則要求ca解密這個密文k((a,d,p)),然後法官可看到密文(a,d,p)。

顯然這樣法官則可確定是a傳送過,因為b不知k,所以也不可能偽造密文k((a,d,p))

同理,若b否認曾收到,也可得出。

1、ca是如何知是a請求要與b通訊的?

2、如果b否認曾收到過a發的資訊,則法官該如何進行取證裁定?

本文僅是簡單介紹用對稱密碼體制簽名的,要是有什麼不對地方,請指出,本人將不勝感激

我的郵箱是anmeihong@sina.***

對exe檔案進行數字簽名

在之前的文章 py2exe inno setup整合打包python程式 中,我們編寫了python指令碼,使得可以一鍵對python編寫的windows程式進行打包,並編譯成exe可執行檔案,現在我們在此基礎上新增對exe檔案進行數字簽名的指令碼。首先,在對exe檔案進行數字簽名時,當然要有乙個p...

如何給ocx,dll控制項進行數字簽名

下面用到的命令可以從 microsoft visual studio 6.0安裝後的 sdk bin 目錄中找到 1 製作證書 makecert sv bksx.pvk ss 某某ie外掛程式 n cn 公司名稱,e lga 163.com,o lga bksx.cer 這個是製作證書 sv 是製作...

對稱加密,非對稱加密,數字簽名

一般,非對稱加密有一對密碼,分別稱為公鑰和私鑰,互相成對使用。對稱加密,是收發方使用同一密碼,加密和解密。一種場景是 公鑰加密,私鑰解密。對外公開公鑰,私鑰自己保留,傳送資訊時,使用公鑰加密後傳送,接收方使用私鑰解密 一般地,使用這種方式傳送對稱加密的密碼,雙方得到該密碼後,使用對稱加密方式收發資料...