從消息認證碼到數(shù)字簽名

公眾號屈磊
屈磊
數(shù)字簽名(又稱公鑰數(shù)字簽名)是只有信息的發(fā)送者才能產(chǎn)生的別人無法偽造的一段數(shù)字串,這段數(shù)字串同時也是對信息的發(fā)送者發(fā)送信息真實性的一個有效證明。

數(shù)字簽名相當(dāng)于現(xiàn)實世界中的蓋章、簽字的功能,數(shù)字簽名可以識別篡改、偽裝、防止否認。

1、從消息認證碼到數(shù)字簽名

消息認證碼:因為密鑰是共享的,兩方都可以知道。對于第三方來說,你無法確定是誰的

數(shù)字簽名:

●生成消息簽名的行為

發(fā)送者對消息進行簽名(簽名密鑰)

●驗證消息簽名的行為

接收者驗證簽名(驗證密鑰)

以上兩個行為,需要各自專用的密鑰來完成。

驗證密鑰無法生成簽名

●簽名密鑰只有簽名的人才可持有。

驗證密鑰則可以任何驗證的人都可持有。

●(這不是和第五章講的公鑰密碼嗎?。?/p>

簡而言之,數(shù)字簽名就是通過將公鑰密碼“反過來用”而實現(xiàn)的。

(這不是和第五章講的公鑰密碼嗎?。?/p>

簡而言之,數(shù)字簽名就是通過將公鑰密碼“反過來用”而實現(xiàn)的。

2、公鑰密碼與數(shù)字簽名

反過來:兩者是反過來的。數(shù)字簽名:私鑰加密(生成簽名),公鑰解密(驗證簽名)

●公鑰密碼中,任何人都可以加密

●數(shù)字簽名中,任何人都可以驗證

3、數(shù)字簽名的方法

1、直接對消息簽名的方法(一般不會用)

2、對消息的散列值簽名的方法(一般都使用這種方法)

第一種需要對整個消息進行加密,非常耗時

(想到了單向散列函數(shù))我們直接把消息轉(zhuǎn)換成散列值,再加密

一些問題:

●數(shù)字簽名的作用本來就不是保證機密性的。如果需要也可以直接加密后發(fā)送。關(guān)于密碼和簽名的組合方法,第十三章會講到

●簽名能不能被復(fù)制不重要,重要的是特定的簽名者與特定的消息綁定在一起了這一事實

●如果拿著私鑰的人說我的私鑰被竊取了怎么辦?第十章會進行討論

4、數(shù)字簽名的應(yīng)用實例

●安全信息公告

●軟件下載

●公鑰證書

●SSL/TLS

5、對數(shù)字簽名的攻擊

1、中間人攻擊

對公鑰密碼的攻擊方式

對發(fā)送者偽裝成接收者,對接收者偽裝成發(fā)送者

防止:對公鑰的認證。一般情況下是先計算出散列值,然后電話溝通。也可用后面要講的“證書”

2、對單向散列函數(shù)的攻擊

使用散列值的話,必須要有抗碰撞性

3、利用數(shù)字簽名攻擊公鑰密碼

(簽名的操作實際上是對消息的解密)絕對不要對意思不清楚的消息進行簽名

解決方式:

對散列值進行簽名比較安全

公鑰密碼和數(shù)字簽名最好使用不同的密鑰對

4、潛在偽造

對一個無意思的消息,沒有私鑰的情況下,能生成合法的數(shù)字簽名

RSA-PASS

5、其他攻擊

暴力破解、對RSA的N進行質(zhì)因數(shù)分解等

6、各種密碼技術(shù)的對比

7、數(shù)字簽名無法解決的問題

●可以識別出篡改、偽裝、防止否認

●前提:公鑰必須屬于真正的發(fā)送者

●我們需要使用“證書”。公鑰基礎(chǔ)設(shè)施(PKI)

原標(biāo)題:密碼筆記 | 數(shù)字簽名

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論